@pepperi-addons/ngx-composite-lib 0.4.2-beta.84 → 0.4.2-beta.86

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.
@@ -35,7 +35,6 @@ export class PepLayoutBuilderComponent extends BaseDestroyerDirective {
35
35
  this.viewportWidth = 0;
36
36
  this.pepAddonService.setShellRouterData({ showSidebar: false, addPadding: false });
37
37
  this.renderer.addClass(this.hostElement.nativeElement, 'pep-layout-builder');
38
- this.layoutBuilderInternalService.setEditMode(true);
39
38
  }
40
39
  set availableBlocksForDrag(value) {
41
40
  this._availableBlocksForDrag = value;
@@ -130,6 +129,7 @@ export class PepLayoutBuilderComponent extends BaseDestroyerDirective {
130
129
  });
131
130
  }
132
131
  ngOnInit() {
132
+ this.layoutBuilderInternalService.setEditMode(true);
133
133
  // Get the first translation for load all translations.
134
134
  this.translate.get('LAYOUT_BUILDER.DESKTOP').subscribe((res) => {
135
135
  this.screenTypes = [
@@ -140,6 +140,10 @@ export class PepLayoutBuilderComponent extends BaseDestroyerDirective {
140
140
  });
141
141
  this.subscribeEvents();
142
142
  }
143
+ ngOnDestroy() {
144
+ super.ngOnDestroy();
145
+ this.layoutBuilderInternalService.setEditMode(false);
146
+ }
143
147
  onResize(event) {
144
148
  this.updateViewportWidth();
145
149
  }
@@ -194,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
194
198
  type: HostListener,
195
199
  args: ['window:resize', ['$event']]
196
200
  }] } });
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxTQUFTLEVBQVUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsc0JBQXNCLEVBQW1CLE1BQU0seUJBQXlCLENBQUM7QUFJbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUcsT0FBTyxFQUErQixtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFXcEcsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHNCQUFzQjtJQTBDakUsWUFDWSxRQUFtQixFQUNuQixXQUF1QixFQUN2QixTQUEyQixFQUMzQiw0QkFBMEQsRUFDMUQsZUFBZ0M7UUFFeEMsS0FBSyxFQUFFLENBQUM7UUFOQSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFDMUQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBM0NwQyw0QkFBdUIsR0FBNkIsRUFBRSxDQUFDO1FBU3ZELHdCQUFtQixHQUEwQixF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Q3RFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDekI7YUFBTTtZQUNILElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQzlEO0lBQ0wsQ0FBQzs7c0hBak1RLHlCQUF5QjswR0FBekIseUJBQXlCLG9qQkFFdkIsbUJBQW1CLDJCQUFVLFVBQVUsb0RDcEJ0RCwwZ0pBdUVrQjsyRkRyREwseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNJLG9CQUFvQjtpT0FLdUIsb0JBQW9CO3NCQUF4RSxTQUFTO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDVyxnQkFBZ0I7c0JBQTdFLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUloRCxzQkFBc0I7c0JBRHpCLEtBQUs7Z0JBVUYsa0JBQWtCO3NCQURyQixLQUFLO2dCQVFGLGlCQUFpQjtzQkFEcEIsS0FBSztnQkFRSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQXNJUCxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQsIE9uSW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQmFzZURlc3Ryb3llckRpcmVjdGl2ZSwgUGVwQWRkb25TZXJ2aWNlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgRGF0YVZpZXdTY3JlZW5TaXplIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL3BhcGktc2RrJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFBlcEJ1dHRvbiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2J1dHRvbic7XG5pbXBvcnQgeyBwZXBJY29uRGV2aWNlRGVza3RvcCwgcGVwSWNvbkRldmljZU1vYmlsZSwgcGVwSWNvbkRldmljZVRhYmxldCB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuaW1wb3J0IHsgSVBlcFNpZGVCYXJTdGF0ZUNoYW5nZUV2ZW50LCBQZXBTaWRlQmFyQ29tcG9uZW50IH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc2lkZS1iYXInO1xuaW1wb3J0IHsgSVBlcERyYWdnYWJsZUl0ZW0gfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kcmFnZ2FibGUtaXRlbXMnO1xuXG5pbXBvcnQgeyBJUGVwTGF5b3V0U2VjdGlvbiwgSVBlcExheW91dEJsb2NrQWRkZWRFdmVudCwgSVBlcExheW91dEJsb2NrQ29uZmlnLCBJRWRpdG9yIH0gZnJvbSAnLi9sYXlvdXQtYnVpbGRlci5tb2RlbCc7XG5pbXBvcnQgeyBJTGF5b3V0RWRpdG9yLCBJTGF5b3V0U2VjdGlvbkVkaXRvciwgTGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZSB9IGZyb20gJy4vbGF5b3V0LWJ1aWxkZXItaW50ZXJuYWwuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWxheW91dC1idWlsZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xheW91dC1idWlsZGVyLmNvbXBvbmVudC5zY3NzJywgJy4vbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LnRoZW1lLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwTGF5b3V0QnVpbGRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ2xheW91dEJ1aWxkZXJXcmFwcGVyJywgeyBzdGF0aWM6IHRydWUgfSkgbGF5b3V0QnVpbGRlcldyYXBwZXIhOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoUGVwU2lkZUJhckNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pIHByaXZhdGUgc2lkZUJhckNvbXBvbmVudCE6IEVsZW1lbnRSZWY7XG4gICAgXG4gICAgcHJpdmF0ZSBfYXZhaWxhYmxlQmxvY2tzRm9yRHJhZzogQXJyYXk8SVBlcERyYWdnYWJsZUl0ZW0+ID0gW107XG4gICAgQElucHV0KCkgXG4gICAgc2V0IGF2YWlsYWJsZUJsb2Nrc0ZvckRyYWcodmFsdWU6IEFycmF5PElQZXBEcmFnZ2FibGVJdGVtPikge1xuICAgICAgICB0aGlzLl9hdmFpbGFibGVCbG9ja3NGb3JEcmFnID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBhdmFpbGFibGVCbG9ja3NGb3JEcmFnKCk6IEFycmF5PElQZXBEcmFnZ2FibGVJdGVtPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdmFpbGFibGVCbG9ja3NGb3JEcmFnO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Jsb2Nrc0xheW91dENvbmZpZzogSVBlcExheW91dEJsb2NrQ29uZmlnID0ge307XG4gICAgQElucHV0KClcbiAgICBzZXQgYmxvY2tzTGF5b3V0Q29uZmlnKHZhbHVlOiBJUGVwTGF5b3V0QmxvY2tDb25maWcpIHtcbiAgICAgICAgdGhpcy5fYmxvY2tzTGF5b3V0Q29uZmlnID0gdmFsdWU7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zZXRCbG9ja3NDb25maWcodGhpcy5fYmxvY2tzTGF5b3V0Q29uZmlnKTtcbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBfbGF5b3V0RWRpdG9yVGl0bGUgPSAnJztcbiAgICBASW5wdXQoKVxuICAgIHNldCBsYXlvdXRFZGl0b3JUaXRsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2xheW91dEVkaXRvclRpdGxlID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBsYXlvdXRFZGl0b3JUaXRsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGF5b3V0RWRpdG9yVGl0bGU7XG4gICAgfVxuICAgIFxuICAgIEBPdXRwdXQoKSBiYWNrQ2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZWRpdG9yQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUVkaXRvcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGJsb2NrQWRkZWQ6IEV2ZW50RW1pdHRlcjxJUGVwTGF5b3V0QmxvY2tBZGRlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYmxvY2tzUmVtb3ZlZDogRXZlbnRFbWl0dGVyPHN0cmluZ1tdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHByb3RlY3RlZCBsb2NrU2NyZWVuID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHByZXZpZXdNb2RlID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIGN1cnJlbnRFZGl0b3I6IElFZGl0b3IgfCBudWxsID0gbnVsbDtcbiAgICBwcm90ZWN0ZWQgdmlld3BvcnRXaWR0aCA9IDA7XG4gICAgcHJvdGVjdGVkIHNjcmVlblR5cGVzITogQXJyYXk8UGVwQnV0dG9uPjtcblxuICAgIHByb3RlY3RlZCBzZWxlY3RlZFNjcmVlblR5cGUhOiBEYXRhVmlld1NjcmVlblNpemU7XG4gICAgXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZTogTGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBwZXBBZGRvblNlcnZpY2U6IFBlcEFkZG9uU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLnBlcEFkZG9uU2VydmljZS5zZXRTaGVsbFJvdXRlckRhdGEoeyBzaG93U2lkZWJhcjogZmFsc2UsIGFkZFBhZGRpbmc6IGZhbHNlfSk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAncGVwLWxheW91dC1idWlsZGVyJyk7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zZXRFZGl0TW9kZSh0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNjcmVlbldpZHRoKHNjcmVlblR5cGU6IERhdGFWaWV3U2NyZWVuU2l6ZSkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uuc2V0U2NyZWVuV2lkdGgoc2NyZWVuVHlwZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVWaWV3cG9ydFdpZHRoKCkge1xuICAgICAgICBpZiAodGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3cG9ydFdpZHRoID0gdGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVFdmVudHMoKSB7XG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgIEludGVybmFsIEV2ZW50cyAtIGZvciBjb2RlIHVzYWdlXG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UucHJldmlld01vZGVDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChwcmV2aWV3TW9kZTogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByZXZpZXdNb2RlID0gcHJldmlld01vZGU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5sb2NrU2NyZWVuQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgobG9ja1NjcmVlbjogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvY2tTY3JlZW4gPSBsb2NrU2NyZWVuO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uuc2NyZWVuU2l6ZUNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKHNpemU6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2NyZWVuVHlwZSA9IHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5nZXRTY3JlZW5UeXBlKHNpemUpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNjcmVlblR5cGUgPSBzY3JlZW5UeXBlO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBGb3IgdXBkYXRlIHRoZSBsYXlvdXQgZGF0YVxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UubGF5b3V0Vmlld0NoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGxheW91dFZpZXc6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGxheW91dFZpZXcpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXhXaWR0aCA9IGNvZXJjZU51bWJlclByb3BlcnR5KGxheW91dFZpZXcuTGF5b3V0Lk1heFdpZHRoLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF4V2lkdGhUb1NldCA9IG1heFdpZHRoID09PSAwID8gJzEwMCUnIDogYCR7bWF4V2lkdGh9cHhgO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMubGF5b3V0QnVpbGRlcldyYXBwZXIubmF0aXZlRWxlbWVudCwgJ21heC13aWR0aCcsIG1heFdpZHRoVG9TZXQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0V2lkdGgoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zY3JlZW5XaWR0aENoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKHdpZHRoOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxheW91dEJ1aWxkZXJXcmFwcGVyPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmxheW91dEJ1aWxkZXJXcmFwcGVyLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIHdpZHRoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0V2lkdGgoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gR2V0IHRoZSBzZWN0aW9ucyBpZCdzIGludG8gc2VjdGlvbnNDb2x1bW5zRHJvcExpc3QgZm9yIHRoZSBkcmFnICYgZHJvcC5cbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnNlY3Rpb25zQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoc2VjdGlvbnM6IGFueSkgPT4ge1xuICAgICAgICAgICAgLy8gQ29uY2F0IGFsbCByZXN1bHRzIGludG8gb25lIGFycmF5LlxuICAgICAgICAgICAgY29uc3Qgc2VjdGlvbnNDb2x1bW5zRHJvcExpc3QgPSBbXS5jb25jYXQoLi4uc2VjdGlvbnMubWFwKChzZWN0aW9uOiBJUGVwTGF5b3V0U2VjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWN0aW9uLkNvbHVtbnMubWFwKChjb2x1bW4sIGluZGV4KSA9PiBcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmdldFNlY3Rpb25Db2x1bW5LZXkoc2VjdGlvbi5LZXksIGluZGV4LnRvU3RyaW5nKCkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uuc2V0U2VjdGlvbnNDb2x1bW5zRHJvcExpc3RDaGFuZ2Uoc2VjdGlvbnNDb2x1bW5zRHJvcExpc3QpO1xuICAgICAgICB9KTtcblxuXG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsIEV2ZW50cyAtIGZvciByYWlzZSB0byB0aGUgY2xpZW50XG4gICAgICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgICAgICAvLyBGb3IgdXBkYXRlIGVkaXRvci5cbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmVkaXRvckNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGVkaXRvcjogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZWRpdG9yKSB7XG4gICAgICAgICAgICAgICAgLy8gSW5pdCB0aGUgc2lkZSBiYXIgc2Nyb2xsIHRvcCB0byAwLlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNpZGVCYXJDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2lkZUxheW91dCA9IHRoaXMuc2lkZUJhckNvbXBvbmVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zaWRlLWxheW91dCcpO1xuICAgICAgICAgICAgICAgICAgICBzaWRlTGF5b3V0Py5zY3JvbGxUbygwLCAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RWRpdG9yID0gZWRpdG9yO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8vIFJhaXNlIGV2ZW50IHRvIGxldCB0aGUgdXNlciBzZXQgdGhlIGJsb2NrIGVkaXRvciBpbiB0aGUgVUkuXG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0b3JDaGFuZ2UuZW1pdChlZGl0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuYmxvY2tBZGRlZEV2ZW50U3ViamVjdCQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tBZGRlZC5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmJsb2Nrc1JlbW92ZWRFdmVudFN1YmplY3QkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQ/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1JlbW92ZWQuZW1pdChldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBHZXQgdGhlIGZpcnN0IHRyYW5zbGF0aW9uIGZvciBsb2FkIGFsbCB0cmFuc2xhdGlvbnMuXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnTEFZT1VUX0JVSUxERVIuREVTS1RPUCcpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMuc2NyZWVuVHlwZXMgPSBbXG4gICAgICAgICAgICAgICAgeyBrZXk6ICdMYW5kc2NhcGUnLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnTEFZT1VUX0JVSUxERVIuREVTS1RPUCcpLCBjYWxsYmFjazogKCkgPT4gdGhpcy5zZXRTY3JlZW5XaWR0aCgnTGFuZHNjYXBlJyksIGljb25OYW1lOiBwZXBJY29uRGV2aWNlRGVza3RvcC5uYW1lLCBpY29uUG9zaXRpb246ICdlbmQnIH0sXG4gICAgICAgICAgICAgICAgeyBrZXk6ICdUYWJsZXQnLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnTEFZT1VUX0JVSUxERVIuVEFCTEVUJyksIGNhbGxiYWNrOiAoKSA9PiB0aGlzLnNldFNjcmVlbldpZHRoKCdUYWJsZXQnKSwgaWNvbk5hbWU6IHBlcEljb25EZXZpY2VUYWJsZXQubmFtZSwgaWNvblBvc2l0aW9uOiAnZW5kJyB9LFxuICAgICAgICAgICAgICAgIHsga2V5OiAnUGhhYmxldCcsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdMQVlPVVRfQlVJTERFUi5NT0JJTEUnKSwgY2FsbGJhY2s6ICgpID0+IHRoaXMuc2V0U2NyZWVuV2lkdGgoJ1BoYWJsZXQnKSwgaWNvbk5hbWU6IHBlcEljb25EZXZpY2VNb2JpbGUubmFtZSwgaWNvblBvc2l0aW9uOiAnZW5kJyB9XG4gICAgICAgICAgICBdO1xuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgb25SZXNpemUoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0V2lkdGgoKTtcbiAgICB9XG5cbiAgICB0b2dnbGVQcmV2aWV3TW9kZSgpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmNoYW5nZVByZXZpZXdNb2RlKCF0aGlzLnByZXZpZXdNb2RlKTtcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3cG9ydFdpZHRoKCk7XG4gICAgfVxuXG4gICAgb25TaWRlYmFyU3RhdGVDaGFuZ2UoZXZlbnQ6IElQZXBTaWRlQmFyU3RhdGVDaGFuZ2VFdmVudCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0V2lkdGgoKTtcbiAgICB9XG5cbiAgICBvbkxheW91dEVkaXRvck9iamVjdENoYW5nZShwYWdlRWRpdG9yOiBJTGF5b3V0RWRpdG9yKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS51cGRhdGVMYXlvdXRGcm9tRWRpdG9yKHBhZ2VFZGl0b3IpO1xuICAgIH1cblxuICAgIG9uU2VjdGlvbkVkaXRvck9iamVjdENoYW5nZShzZWN0aW9uRWRpdG9yOiBJTGF5b3V0U2VjdGlvbkVkaXRvcikge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UudXBkYXRlU2VjdGlvbkZyb21FZGl0b3Ioc2VjdGlvbkVkaXRvcik7XG4gICAgfVxuXG4gICAgb25OYXZpZ2F0ZUJhY2tGcm9tRWRpdG9yKCkge1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudEVkaXRvciB8fCB0aGlzLmN1cnJlbnRFZGl0b3I/LnR5cGUgPT09ICdsYXlvdXQtYnVpbGRlcicpIHtcbiAgICAgICAgICAgIHRoaXMuYmFja0NsaWNrLmVtaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5uYXZpZ2F0ZUJhY2tGcm9tRWRpdG9yKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwibG9ja1NjcmVlblwiIGNsYXNzPVwiY2RrLW92ZXJsYXktYmFja2Ryb3AgY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCBjZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nXCI+PC9kaXY+XG5cbjxwZXAtcGFnZS1sYXlvdXQgW3Nob3dTaGFkb3ddPVwiIXByZXZpZXdNb2RlICYmIGN1cnJlbnRFZGl0b3IgIT09IG51bGxcIiA+XG4gICAgPGRpdiBwZXAtc2lkZS1hcmVhICpuZ0lmPVwiIXByZXZpZXdNb2RlICYmIGN1cnJlbnRFZGl0b3JcIiBzdHlsZT1cImhlaWdodDogaW5oZXJpdDtcIj5cbiAgICAgICAgPHBlcC1zaWRlLWJhciAjc2lkZUJhciBbaWdub3JlUmVzaXplXT1cInRydWVcIiAoc3RhdGVDaGFuZ2UpPVwib25TaWRlYmFyU3RhdGVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGRpdiBoZWFkZXItY29udGVudCBjbGFzcz1cInNpZGUtYmFyLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPHBlcC1idXR0b24gY2xhc3M9XCJiYWNrLWJ1dHRvblwiIHNpemVUeXBlPVwic21cIiBpY29uTmFtZT1cImFycm93X2xlZnRfYWx0XCIgKGJ1dHRvbkNsaWNrKT1cIm9uTmF2aWdhdGVCYWNrRnJvbUVkaXRvcigpO1wiPjwvcGVwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZGl2ICNlZGl0b3JUaXRsZSBjbGFzcz1cInRpdGxlIHRpdGxlLWxnIGVsbGlwc2lzXCIgXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjdXJyZW50RWRpdG9yLnR5cGUgPT09ICdsYXlvdXQtYnVpbGRlcicgPyAobGF5b3V0RWRpdG9yVGl0bGUgfHwgY3VycmVudEVkaXRvci50aXRsZSkgOiBjdXJyZW50RWRpdG9yLnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGVkaXRvclRpdGxlLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWJ1aWxkZXItZWRpdG9yLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8bWFpbi1lZGl0b3IgKm5nSWY9XCJjdXJyZW50RWRpdG9yLnR5cGUgPT09ICdsYXlvdXQtYnVpbGRlcidcIiBbYXZhaWxhYmxlQmxvY2tzRm9yRHJhZ109XCJhdmFpbGFibGVCbG9ja3NGb3JEcmFnXCJcbiAgICAgICAgICAgICAgICAgICAgW2hvc3RPYmplY3RdPVwiY3VycmVudEVkaXRvci5ob3N0T2JqZWN0XCIgKGhvc3RPYmplY3RDaGFuZ2UpPVwib25MYXlvdXRFZGl0b3JPYmplY3RDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBsYXlvdXQtZWRpdG9yLXRvcC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xheW91dC1lZGl0b3ItdG9wLWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8bmctY29udGFpbmVyIGxheW91dC1lZGl0b3ItYm90dG9tLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbGF5b3V0LWVkaXRvci1ib3R0b20tY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPiAtLT5cbiAgICAgICAgICAgICAgICA8L21haW4tZWRpdG9yPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPHNlY3Rpb24tZWRpdG9yICpuZ0lmPVwiY3VycmVudEVkaXRvci50eXBlID09PSAnc2VjdGlvbidcIiBcbiAgICAgICAgICAgICAgICAgICAgW2hvc3RPYmplY3RdPVwiY3VycmVudEVkaXRvci5ob3N0T2JqZWN0XCIgKGhvc3RPYmplY3RDaGFuZ2UpPVwib25TZWN0aW9uRWRpdG9yT2JqZWN0Q2hhbmdlKCRldmVudClcIj48L3NlY3Rpb24tZWRpdG9yPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRFZGl0b3IudHlwZSA9PT0gJ2Jsb2NrJ1wiID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Jsb2NrLWVkaXRvci1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3BlcC1zaWRlLWJhcj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyIHBlcC1tYWluLWFyZWE+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWFyZWEtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydwcmV2aWV3LW1vZGUnOiBwcmV2aWV3TW9kZSB9XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWNvbnRhaW5lclwiID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXByZXZpZXdNb2RlOyB0aGVuIGVkaXRvclRpdGxlVGVtcGxhdGU7IGVsc2UgcHJldmlld1RpdGxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRvclRpdGxlVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlci10aXRsZSBib2R5LXhzXCI+e3soJ0xBWU9VVF9CVUlMREVSLlZJRVdQT1JUX1dJRFRIJyB8IHRyYW5zbGF0ZSl9fTombmJzcDs8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJvZHkteHNcIj48Yj57e3ZpZXdwb3J0V2lkdGh9fTwvYj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNwcmV2aWV3VGl0bGVUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctdGl0bGUgYm9keS1zbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3soJ0xBWU9VVF9CVUlMREVSLlBSRVZJRVdfVElUTEUnIHwgdHJhbnNsYXRlKX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1ncm91cC1idG5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHBlcC1ncm91cC1idXR0b25zIFtidXR0b25zXT1cInNjcmVlblR5cGVzXCIgW3NlbGVjdGVkQnV0dG9uS2V5XT1cInNlbGVjdGVkU2NyZWVuVHlwZVwiIHNpemVUeXBlPVwic21cIiB2aWV3VHlwZT1cInRvZ2dsZVwiID5cbiAgICAgICAgICAgICAgICAgICAgPC9wZXAtZ3JvdXAtYnV0dG9ucz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcHJldmlld01vZGU7IHRoZW4gZWRpdG9yQnV0dG9uc1RlbXBsYXRlOyBlbHNlIHByZXZpZXdCdXR0b25zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRvckJ1dHRvbnNUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwZXAtYnV0dG9uIGtleT0nUHJldmlldycgW3ZhbHVlXT1cIidBQ1RJT05TLlBSRVZJRVcnIHwgdHJhbnNsYXRlXCIgc2l6ZVR5cGU9XCJzbVwiIChidXR0b25DbGljayk9XCJ0b2dnbGVQcmV2aWV3TW9kZSgpXCI+PC9wZXAtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hlYWRlci1lbmQtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNwcmV2aWV3QnV0dG9uc1RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImNvbG9yLWxpbmsgYm9keS1zbVwiIChjbGljayk9XCJ0b2dnbGVQcmV2aWV3TW9kZSgpXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiPnt7KCdMQVlPVVRfQlVJTERFUi5QUkVWSUVXX0NMSUNLX0hFUkUnIHwgdHJhbnNsYXRlKX19PC9hPiAgICBcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICNsYXlvdXRCdWlsZGVyV3JhcHBlciBjbGFzcz1cImxheW91dC1idWlsZGVyLXdyYXBwZXJcIiBbbmdDbGFzc109XCJ7J2xpbWl0LW1pbi13aWR0aCc6IHNlbGVjdGVkU2NyZWVuVHlwZSA9PT0gJ0xhbmRzY2FwZScgfVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsYXlvdXQtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFwcmV2aWV3TW9kZVwiIGNsYXNzPVwiYmFja2Ryb3BcIiBbbmdDbGFzc109XCJ7J3Nob3ctYmFja2Ryb3AnOiBjdXJyZW50RWRpdG9yPy50eXBlID09PSAnc2VjdGlvbicgfHwgY3VycmVudEVkaXRvcj8udHlwZSA9PT0gJ2Jsb2NrJ31cIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvcGVwLXBhZ2UtbGF5b3V0PiJdfQ==
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxTQUFTLEVBQVUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMxSSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsc0JBQXNCLEVBQW1CLE1BQU0seUJBQXlCLENBQUM7QUFJbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUcsT0FBTyxFQUErQixtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFXcEcsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHNCQUFzQjtJQTBDakUsWUFDWSxRQUFtQixFQUNuQixXQUF1QixFQUN2QixTQUEyQixFQUMzQiw0QkFBMEQsRUFDMUQsZUFBZ0M7UUFFeEMsS0FBSyxFQUFFLENBQUM7UUFOQSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFDMUQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBM0NwQyw0QkFBdUIsR0FBNkIsRUFBRSxDQUFDO1FBU3ZELHdCQUFtQixHQUEwQixF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O0lBQzdFLENBQUM7SUFFRCx3QkFBd0I7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLEtBQUssZ0JBQWdCLEVBQUU7WUFDdEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN6QjthQUFNO1lBQ0gsSUFBSSxDQUFDLDRCQUE0QixDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDOUQ7SUFDTCxDQUFDOztzSEF2TVEseUJBQXlCOzBHQUF6Qix5QkFBeUIsb2pCQUV2QixtQkFBbUIsMkJBQVUsVUFBVSxvRENwQnRELDBnSkF1RWtCOzJGRHJETCx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0ksb0JBQW9CO2lPQUt1QixvQkFBb0I7c0JBQXhFLFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNXLGdCQUFnQjtzQkFBN0UsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSWhELHNCQUFzQjtzQkFEekIsS0FBSztnQkFVRixrQkFBa0I7c0JBRHJCLEtBQUs7Z0JBUUYsaUJBQWlCO3NCQURwQixLQUFLO2dCQVFJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBNElQLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgT25Jbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUsIFBlcEFkZG9uU2VydmljZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IERhdGFWaWV3U2NyZWVuU2l6ZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9wYXBpLXNkayc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBQZXBCdXR0b24gfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHsgcGVwSWNvbkRldmljZURlc2t0b3AsIHBlcEljb25EZXZpY2VNb2JpbGUsIHBlcEljb25EZXZpY2VUYWJsZXQgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9pY29uJztcbmltcG9ydCB7IElQZXBTaWRlQmFyU3RhdGVDaGFuZ2VFdmVudCwgUGVwU2lkZUJhckNvbXBvbmVudCB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NpZGUtYmFyJztcbmltcG9ydCB7IElQZXBEcmFnZ2FibGVJdGVtIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvZHJhZ2dhYmxlLWl0ZW1zJztcblxuaW1wb3J0IHsgSVBlcExheW91dFNlY3Rpb24sIElQZXBMYXlvdXRCbG9ja0FkZGVkRXZlbnQsIElQZXBMYXlvdXRCbG9ja0NvbmZpZywgSUVkaXRvciB9IGZyb20gJy4vbGF5b3V0LWJ1aWxkZXIubW9kZWwnO1xuaW1wb3J0IHsgSUxheW91dEVkaXRvciwgSUxheW91dFNlY3Rpb25FZGl0b3IsIExheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UgfSBmcm9tICcuL2xheW91dC1idWlsZGVyLWludGVybmFsLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1sYXlvdXQtYnVpbGRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC1idWlsZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9sYXlvdXQtYnVpbGRlci5jb21wb25lbnQuc2NzcycsICcuL2xheW91dC1idWlsZGVyLmNvbXBvbmVudC50aGVtZS5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBlcExheW91dEJ1aWxkZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlRGVzdHJveWVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoJ2xheW91dEJ1aWxkZXJXcmFwcGVyJywgeyBzdGF0aWM6IHRydWUgfSkgbGF5b3V0QnVpbGRlcldyYXBwZXIhOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoUGVwU2lkZUJhckNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pIHByaXZhdGUgc2lkZUJhckNvbXBvbmVudCE6IEVsZW1lbnRSZWY7XG4gICAgXG4gICAgcHJpdmF0ZSBfYXZhaWxhYmxlQmxvY2tzRm9yRHJhZzogQXJyYXk8SVBlcERyYWdnYWJsZUl0ZW0+ID0gW107XG4gICAgQElucHV0KCkgXG4gICAgc2V0IGF2YWlsYWJsZUJsb2Nrc0ZvckRyYWcodmFsdWU6IEFycmF5PElQZXBEcmFnZ2FibGVJdGVtPikge1xuICAgICAgICB0aGlzLl9hdmFpbGFibGVCbG9ja3NGb3JEcmFnID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBhdmFpbGFibGVCbG9ja3NGb3JEcmFnKCk6IEFycmF5PElQZXBEcmFnZ2FibGVJdGVtPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdmFpbGFibGVCbG9ja3NGb3JEcmFnO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Jsb2Nrc0xheW91dENvbmZpZzogSVBlcExheW91dEJsb2NrQ29uZmlnID0ge307XG4gICAgQElucHV0KClcbiAgICBzZXQgYmxvY2tzTGF5b3V0Q29uZmlnKHZhbHVlOiBJUGVwTGF5b3V0QmxvY2tDb25maWcpIHtcbiAgICAgICAgdGhpcy5fYmxvY2tzTGF5b3V0Q29uZmlnID0gdmFsdWU7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zZXRCbG9ja3NDb25maWcodGhpcy5fYmxvY2tzTGF5b3V0Q29uZmlnKTtcbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBfbGF5b3V0RWRpdG9yVGl0bGUgPSAnJztcbiAgICBASW5wdXQoKVxuICAgIHNldCBsYXlvdXRFZGl0b3JUaXRsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2xheW91dEVkaXRvclRpdGxlID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBsYXlvdXRFZGl0b3JUaXRsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGF5b3V0RWRpdG9yVGl0bGU7XG4gICAgfVxuICAgIFxuICAgIEBPdXRwdXQoKSBiYWNrQ2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZWRpdG9yQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUVkaXRvcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGJsb2NrQWRkZWQ6IEV2ZW50RW1pdHRlcjxJUGVwTGF5b3V0QmxvY2tBZGRlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgYmxvY2tzUmVtb3ZlZDogRXZlbnRFbWl0dGVyPHN0cmluZ1tdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHByb3RlY3RlZCBsb2NrU2NyZWVuID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHByZXZpZXdNb2RlID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIGN1cnJlbnRFZGl0b3I6IElFZGl0b3IgfCBudWxsID0gbnVsbDtcbiAgICBwcm90ZWN0ZWQgdmlld3BvcnRXaWR0aCA9IDA7XG4gICAgcHJvdGVjdGVkIHNjcmVlblR5cGVzITogQXJyYXk8UGVwQnV0dG9uPjtcblxuICAgIHByb3RlY3RlZCBzZWxlY3RlZFNjcmVlblR5cGUhOiBEYXRhVmlld1NjcmVlblNpemU7XG4gICAgXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZTogTGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBwZXBBZGRvblNlcnZpY2U6IFBlcEFkZG9uU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLnBlcEFkZG9uU2VydmljZS5zZXRTaGVsbFJvdXRlckRhdGEoeyBzaG93U2lkZWJhcjogZmFsc2UsIGFkZFBhZGRpbmc6IGZhbHNlfSk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAncGVwLWxheW91dC1idWlsZGVyJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTY3JlZW5XaWR0aChzY3JlZW5UeXBlOiBEYXRhVmlld1NjcmVlblNpemUpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnNldFNjcmVlbldpZHRoKHNjcmVlblR5cGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmlld3BvcnRXaWR0aCgpIHtcbiAgICAgICAgaWYgKHRoaXMubGF5b3V0QnVpbGRlcldyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmlld3BvcnRXaWR0aCA9IHRoaXMubGF5b3V0QnVpbGRlcldyYXBwZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgc3Vic2NyaWJlRXZlbnRzKCkge1xuICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcm5hbCBFdmVudHMgLSBmb3IgY29kZSB1c2FnZVxuICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnByZXZpZXdNb2RlQ2hhbmdlJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgocHJldmlld01vZGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcmV2aWV3TW9kZSA9IHByZXZpZXdNb2RlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UubG9ja1NjcmVlbkNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGxvY2tTY3JlZW46IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2NrU2NyZWVuID0gbG9ja1NjcmVlbjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnNjcmVlblNpemVDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChzaXplOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNjcmVlblR5cGUgPSB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZ2V0U2NyZWVuVHlwZShzaXplKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTY3JlZW5UeXBlID0gc2NyZWVuVHlwZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRm9yIHVwZGF0ZSB0aGUgbGF5b3V0IGRhdGFcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmxheW91dFZpZXdDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChsYXlvdXRWaWV3OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChsYXlvdXRWaWV3KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0QnVpbGRlcldyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF4V2lkdGggPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eShsYXlvdXRWaWV3LkxheW91dC5NYXhXaWR0aCwgMCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heFdpZHRoVG9TZXQgPSBtYXhXaWR0aCA9PT0gMCA/ICcxMDAlJyA6IGAke21heFdpZHRofXB4YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmxheW91dEJ1aWxkZXJXcmFwcGVyLm5hdGl2ZUVsZW1lbnQsICdtYXgtd2lkdGgnLCBtYXhXaWR0aFRvU2V0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWaWV3cG9ydFdpZHRoKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uuc2NyZWVuV2lkdGhDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKCh3aWR0aDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlcj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5sYXlvdXRCdWlsZGVyV3JhcHBlci5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCB3aWR0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWaWV3cG9ydFdpZHRoKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEdldCB0aGUgc2VjdGlvbnMgaWQncyBpbnRvIHNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0IGZvciB0aGUgZHJhZyAmIGRyb3AuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zZWN0aW9uc0NoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKHNlY3Rpb25zOiBhbnkpID0+IHtcbiAgICAgICAgICAgIC8vIENvbmNhdCBhbGwgcmVzdWx0cyBpbnRvIG9uZSBhcnJheS5cbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0ID0gW10uY29uY2F0KC4uLnNlY3Rpb25zLm1hcCgoc2VjdGlvbjogSVBlcExheW91dFNlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VjdGlvbi5Db2x1bW5zLm1hcCgoY29sdW1uLCBpbmRleCkgPT4gXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5nZXRTZWN0aW9uQ29sdW1uS2V5KHNlY3Rpb24uS2V5LCBpbmRleC50b1N0cmluZygpKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnNldFNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0Q2hhbmdlKHNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0KTtcbiAgICAgICAgfSk7XG5cblxuICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbCBFdmVudHMgLSBmb3IgcmFpc2UgdG8gdGhlIGNsaWVudFxuICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICAgICAgLy8gRm9yIHVwZGF0ZSBlZGl0b3IuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5lZGl0b3JDaGFuZ2UkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChlZGl0b3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGVkaXRvcikge1xuICAgICAgICAgICAgICAgIC8vIEluaXQgdGhlIHNpZGUgYmFyIHNjcm9sbCB0b3AgdG8gMC5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaWRlQmFyQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpZGVMYXlvdXQgPSB0aGlzLnNpZGVCYXJDb21wb25lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2lkZS1sYXlvdXQnKTtcbiAgICAgICAgICAgICAgICAgICAgc2lkZUxheW91dD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEVkaXRvciA9IGVkaXRvcjtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBSYWlzZSBldmVudCB0byBsZXQgdGhlIHVzZXIgc2V0IHRoZSBibG9jayBlZGl0b3IgaW4gdGhlIFVJLlxuICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yQ2hhbmdlLmVtaXQoZWRpdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmJsb2NrQWRkZWRFdmVudFN1YmplY3QkLnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrQWRkZWQuZW1pdChldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5ibG9ja3NSZW1vdmVkRXZlbnRTdWJqZWN0JC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50Py5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja3NSZW1vdmVkLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnNldEVkaXRNb2RlKHRydWUpO1xuXG4gICAgICAgIC8vIEdldCB0aGUgZmlyc3QgdHJhbnNsYXRpb24gZm9yIGxvYWQgYWxsIHRyYW5zbGF0aW9ucy5cbiAgICAgICAgdGhpcy50cmFuc2xhdGUuZ2V0KCdMQVlPVVRfQlVJTERFUi5ERVNLVE9QJykuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5zY3JlZW5UeXBlcyA9IFtcbiAgICAgICAgICAgICAgICB7IGtleTogJ0xhbmRzY2FwZScsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdMQVlPVVRfQlVJTERFUi5ERVNLVE9QJyksIGNhbGxiYWNrOiAoKSA9PiB0aGlzLnNldFNjcmVlbldpZHRoKCdMYW5kc2NhcGUnKSwgaWNvbk5hbWU6IHBlcEljb25EZXZpY2VEZXNrdG9wLm5hbWUsIGljb25Qb3NpdGlvbjogJ2VuZCcgfSxcbiAgICAgICAgICAgICAgICB7IGtleTogJ1RhYmxldCcsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdMQVlPVVRfQlVJTERFUi5UQUJMRVQnKSwgY2FsbGJhY2s6ICgpID0+IHRoaXMuc2V0U2NyZWVuV2lkdGgoJ1RhYmxldCcpLCBpY29uTmFtZTogcGVwSWNvbkRldmljZVRhYmxldC5uYW1lLCBpY29uUG9zaXRpb246ICdlbmQnIH0sXG4gICAgICAgICAgICAgICAgeyBrZXk6ICdQaGFibGV0JywgdmFsdWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0xBWU9VVF9CVUlMREVSLk1PQklMRScpLCBjYWxsYmFjazogKCkgPT4gdGhpcy5zZXRTY3JlZW5XaWR0aCgnUGhhYmxldCcpLCBpY29uTmFtZTogcGVwSWNvbkRldmljZU1vYmlsZS5uYW1lLCBpY29uUG9zaXRpb246ICdlbmQnIH1cbiAgICAgICAgICAgIF07XG4gICAgICAgIH0pO1xuICAgICAgICBcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVFdmVudHMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnNldEVkaXRNb2RlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgICBvblJlc2l6ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVmlld3BvcnRXaWR0aCgpO1xuICAgIH1cblxuICAgIHRvZ2dsZVByZXZpZXdNb2RlKCkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuY2hhbmdlUHJldmlld01vZGUoIXRoaXMucHJldmlld01vZGUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0V2lkdGgoKTtcbiAgICB9XG5cbiAgICBvblNpZGViYXJTdGF0ZUNoYW5nZShldmVudDogSVBlcFNpZGVCYXJTdGF0ZUNoYW5nZUV2ZW50KSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmlld3BvcnRXaWR0aCgpO1xuICAgIH1cblxuICAgIG9uTGF5b3V0RWRpdG9yT2JqZWN0Q2hhbmdlKHBhZ2VFZGl0b3I6IElMYXlvdXRFZGl0b3IpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLnVwZGF0ZUxheW91dEZyb21FZGl0b3IocGFnZUVkaXRvcik7XG4gICAgfVxuXG4gICAgb25TZWN0aW9uRWRpdG9yT2JqZWN0Q2hhbmdlKHNlY3Rpb25FZGl0b3I6IElMYXlvdXRTZWN0aW9uRWRpdG9yKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS51cGRhdGVTZWN0aW9uRnJvbUVkaXRvcihzZWN0aW9uRWRpdG9yKTtcbiAgICB9XG5cbiAgICBvbk5hdmlnYXRlQmFja0Zyb21FZGl0b3IoKSB7XG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50RWRpdG9yIHx8IHRoaXMuY3VycmVudEVkaXRvcj8udHlwZSA9PT0gJ2xheW91dC1idWlsZGVyJykge1xuICAgICAgICAgICAgdGhpcy5iYWNrQ2xpY2suZW1pdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLm5hdmlnYXRlQmFja0Zyb21FZGl0b3IoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJsb2NrU2NyZWVuXCIgY2xhc3M9XCJjZGstb3ZlcmxheS1iYWNrZHJvcCBjZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIGNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmdcIj48L2Rpdj5cblxuPHBlcC1wYWdlLWxheW91dCBbc2hvd1NoYWRvd109XCIhcHJldmlld01vZGUgJiYgY3VycmVudEVkaXRvciAhPT0gbnVsbFwiID5cbiAgICA8ZGl2IHBlcC1zaWRlLWFyZWEgKm5nSWY9XCIhcHJldmlld01vZGUgJiYgY3VycmVudEVkaXRvclwiIHN0eWxlPVwiaGVpZ2h0OiBpbmhlcml0O1wiPlxuICAgICAgICA8cGVwLXNpZGUtYmFyICNzaWRlQmFyIFtpZ25vcmVSZXNpemVdPVwidHJ1ZVwiIChzdGF0ZUNoYW5nZSk9XCJvblNpZGViYXJTdGF0ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8ZGl2IGhlYWRlci1jb250ZW50IGNsYXNzPVwic2lkZS1iYXItdGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8cGVwLWJ1dHRvbiBjbGFzcz1cImJhY2stYnV0dG9uXCIgc2l6ZVR5cGU9XCJzbVwiIGljb25OYW1lPVwiYXJyb3dfbGVmdF9hbHRcIiAoYnV0dG9uQ2xpY2spPVwib25OYXZpZ2F0ZUJhY2tGcm9tRWRpdG9yKCk7XCI+PC9wZXAtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgI2VkaXRvclRpdGxlIGNsYXNzPVwidGl0bGUgdGl0bGUtbGcgZWxsaXBzaXNcIiBcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImN1cnJlbnRFZGl0b3IudHlwZSA9PT0gJ2xheW91dC1idWlsZGVyJyA/IChsYXlvdXRFZGl0b3JUaXRsZSB8fCBjdXJyZW50RWRpdG9yLnRpdGxlKSA6IGN1cnJlbnRFZGl0b3IudGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZWRpdG9yVGl0bGUudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtYnVpbGRlci1lZGl0b3Itd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxtYWluLWVkaXRvciAqbmdJZj1cImN1cnJlbnRFZGl0b3IudHlwZSA9PT0gJ2xheW91dC1idWlsZGVyJ1wiIFthdmFpbGFibGVCbG9ja3NGb3JEcmFnXT1cImF2YWlsYWJsZUJsb2Nrc0ZvckRyYWdcIlxuICAgICAgICAgICAgICAgICAgICBbaG9zdE9iamVjdF09XCJjdXJyZW50RWRpdG9yLmhvc3RPYmplY3RcIiAoaG9zdE9iamVjdENoYW5nZSk9XCJvbkxheW91dEVkaXRvck9iamVjdENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGxheW91dC1lZGl0b3ItdG9wLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbGF5b3V0LWVkaXRvci10b3AtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgbGF5b3V0LWVkaXRvci1ib3R0b20tY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsYXlvdXQtZWRpdG9yLWJvdHRvbS1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+IC0tPlxuICAgICAgICAgICAgICAgIDwvbWFpbi1lZGl0b3I+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8c2VjdGlvbi1lZGl0b3IgKm5nSWY9XCJjdXJyZW50RWRpdG9yLnR5cGUgPT09ICdzZWN0aW9uJ1wiIFxuICAgICAgICAgICAgICAgICAgICBbaG9zdE9iamVjdF09XCJjdXJyZW50RWRpdG9yLmhvc3RPYmplY3RcIiAoaG9zdE9iamVjdENoYW5nZSk9XCJvblNlY3Rpb25FZGl0b3JPYmplY3RDaGFuZ2UoJGV2ZW50KVwiPjwvc2VjdGlvbi1lZGl0b3I+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudEVkaXRvci50eXBlID09PSAnYmxvY2snXCIgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYmxvY2stZWRpdG9yLWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcGVwLXNpZGUtYmFyPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgcGVwLW1haW4tYXJlYT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1haW4tYXJlYS1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7J3ByZXZpZXctbW9kZSc6IHByZXZpZXdNb2RlIH1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItY29udGFpbmVyXCIgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcHJldmlld01vZGU7IHRoZW4gZWRpdG9yVGl0bGVUZW1wbGF0ZTsgZWxzZSBwcmV2aWV3VGl0bGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdG9yVGl0bGVUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyLXRpdGxlIGJvZHkteHNcIj57eygnTEFZT1VUX0JVSUxERVIuVklFV1BPUlRfV0lEVEgnIHwgdHJhbnNsYXRlKX19OiZuYnNwOzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9keS14c1wiPjxiPnt7dmlld3BvcnRXaWR0aH19PC9iPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3ByZXZpZXdUaXRsZVRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy10aXRsZSBib2R5LXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eygnTEFZT1VUX0JVSUxERVIuUFJFVklFV19USVRMRScgfCB0cmFuc2xhdGUpfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWdyb3VwLWJ0blwiPlxuICAgICAgICAgICAgICAgICAgICA8cGVwLWdyb3VwLWJ1dHRvbnMgW2J1dHRvbnNdPVwic2NyZWVuVHlwZXNcIiBbc2VsZWN0ZWRCdXR0b25LZXldPVwic2VsZWN0ZWRTY3JlZW5UeXBlXCIgc2l6ZVR5cGU9XCJzbVwiIHZpZXdUeXBlPVwidG9nZ2xlXCIgPlxuICAgICAgICAgICAgICAgICAgICA8L3BlcC1ncm91cC1idXR0b25zPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwcmV2aWV3TW9kZTsgdGhlbiBlZGl0b3JCdXR0b25zVGVtcGxhdGU7IGVsc2UgcHJldmlld0J1dHRvbnNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdG9yQnV0dG9uc1RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBlcC1idXR0b24ga2V5PSdQcmV2aWV3JyBbdmFsdWVdPVwiJ0FDVElPTlMuUFJFVklFVycgfCB0cmFuc2xhdGVcIiBzaXplVHlwZT1cInNtXCIgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZVByZXZpZXdNb2RlKClcIj48L3BlcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyLWVuZC1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3ByZXZpZXdCdXR0b25zVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiY29sb3ItbGluayBib2R5LXNtXCIgKGNsaWNrKT1cInRvZ2dsZVByZXZpZXdNb2RlKClcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCI+e3soJ0xBWU9VVF9CVUlMREVSLlBSRVZJRVdfQ0xJQ0tfSEVSRScgfCB0cmFuc2xhdGUpfX08L2E+ICAgIFxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgI2xheW91dEJ1aWxkZXJXcmFwcGVyIGNsYXNzPVwibGF5b3V0LWJ1aWxkZXItd3JhcHBlclwiIFtuZ0NsYXNzXT1cInsnbGltaXQtbWluLXdpZHRoJzogc2VsZWN0ZWRTY3JlZW5UeXBlID09PSAnTGFuZHNjYXBlJyB9XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xheW91dC1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXByZXZpZXdNb2RlXCIgY2xhc3M9XCJiYWNrZHJvcFwiIFtuZ0NsYXNzXT1cInsnc2hvdy1iYWNrZHJvcCc6IGN1cnJlbnRFZGl0b3I/LnR5cGUgPT09ICdzZWN0aW9uJyB8fCBjdXJyZW50RWRpdG9yPy50eXBlID09PSAnYmxvY2snfVwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9wZXAtcGFnZS1sYXlvdXQ+Il19
@@ -53,7 +53,7 @@ export class SectionComponent extends BaseDestroyerDirective {
53
53
  }
54
54
  set collapseOnTablet(value) {
55
55
  this._collapseOnTablet = value;
56
- this.pepScreenSizeToFlipToVertical = value ? PepScreenSizeType.MD : PepScreenSizeType.SM;
56
+ this.pepScreenSizeToFlipToVertical = value ? PepScreenSizeType.MD : PepScreenSizeType.XS;
57
57
  this.refreshSplit();
58
58
  }
59
59
  get collapseOnTablet() {
@@ -292,4 +292,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
292
292
  type: HostBinding,
293
293
  args: ['style.height']
294
294
  }] } });
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9sYXlvdXQtYnVpbGRlci9zZWN0aW9uL3NlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi9zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFnQixLQUFLLEVBQXVFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEwsT0FBTyxFQUFFLHNCQUFzQixFQUFvQixpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7QUFTdEcsTUFBTSxPQUFPLGdCQUFpQixTQUFRLHNCQUFzQjtJQXlHeEQsWUFDWSxRQUFtQixFQUNuQiw0QkFBMEQ7UUFHbEUsS0FBSyxFQUFFLENBQUM7UUFKQSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFyRzdELFFBQUcsR0FBRyxFQUFFLENBQUM7UUFDVCxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRVgsV0FBTSxHQUEwQixTQUFTLENBQUM7UUFVMUMsWUFBTyxHQUF1QixTQUFTLENBQUM7UUFVeEMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBVzFCLGFBQVEsR0FBbUMsRUFBRSxDQUFDO1FBUzlDLFlBQU8sR0FBeUIsRUFBRSxDQUFDO1FBYTNDLG1CQUFjLEdBQUcsT0FBTyxDQUFDO1FBR3pCLGdCQUFXLEdBQUcsT0FBTyxDQUFDO1FBRVosNEJBQXVCLEdBQWEsRUFBRSxDQUFDO1FBcUJqRCx5Q0FBeUM7UUFDL0IsMkJBQXNCLEdBQUcsRUFBRSxDQUFDO1FBRTVCLHNCQUFpQixHQUFHLEtBQUssQ0FB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QUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsNEJBQTRCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELHdCQUF3QixDQUFDLEtBQWtCO1FBQ3ZDLEVBQUU7SUFDTixDQUFDO0lBRUQseUJBQXlCLENBQUMsS0FBbUI7UUFDekMsRUFBRTtJQUNOLENBQUM7OzZHQXRUUSxnQkFBZ0I7aUdBQWhCLGdCQUFnQiwra0JDWjdCLDR2SEE0Q0E7MkZEaENhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDSSxTQUFTOzJJQUtZLG1CQUFtQjtzQkFBakQsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBQ0csaUJBQWlCO3NCQUFoRCxZQUFZO3VCQUFDLGdCQUFnQjtnQkFFckIsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUlGLEtBQUs7c0JBRFIsS0FBSztnQkFXRixNQUFNO3NCQURULEtBQUs7Z0JBV0YsZ0JBQWdCO3NCQURuQixLQUFLO2dCQVlGLE9BQU87c0JBRFYsS0FBSztnQkFVRixNQUFNO3NCQURULEtBQUs7Z0JBU0csVUFBVTtzQkFBbEIsS0FBSztnQkFHTixjQUFjO3NCQURiLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUkvQixXQUFXO3NCQURWLFdBQVc7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBRdWVyeUxpc3QsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtEcmFnLCBDZGtEcmFnRHJvcCwgQ2RrRHJhZ0VuZCwgQ2RrRHJhZ0VudGVyLCBDZGtEcmFnRXhpdCwgQ2RrRHJhZ1N0YXJ0LCBDZGtEcm9wTGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgRGF0YVZpZXdTY3JlZW5TaXplLCBTcGxpdFR5cGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvcGFwaS1zZGsnO1xuaW1wb3J0IHsgQmFzZURlc3Ryb3llckRpcmVjdGl2ZSwgUGVwTGF5b3V0U2VydmljZSwgUGVwU2NyZWVuU2l6ZVR5cGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBMYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlIH0gZnJvbSAnLi4vbGF5b3V0LWJ1aWxkZXItaW50ZXJuYWwuc2VydmljZSc7XG5pbXBvcnQgeyBJUGVwTGF5b3V0U2VjdGlvbkNvbHVtbiwgUGVwTGF5b3V0U2l6ZVR5cGUgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2VjdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlY3Rpb24uY29tcG9uZW50LnNjc3MnLCAnLi9zZWN0aW9uLmNvbXBvbmVudC50aGVtZS5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3NlY3Rpb25Db250YWluZXInKSBzZWN0aW9uQ29udGFpbmVyUmVmITogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkcmVuKCdjb2x1bW5zV3JhcHBlcicpIGNvbHVtbnNFbGVtZW50UmVmITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gICAgQElucHV0KCkgYmxvY2tUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGtleSA9ICcnO1xuICAgIEBJbnB1dCgpIG5hbWUgPSAnJztcblxuICAgIHByaXZhdGUgX3NwbGl0OiBTcGxpdFR5cGUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KClcbiAgICBzZXQgc3BsaXQodmFsdWU6IFNwbGl0VHlwZSB8IHVuZGVmaW5lZCApIHtcbiAgICAgICAgdGhpcy5fc3BsaXQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICB9XG4gICAgZ2V0IHNwbGl0KCk6IFNwbGl0VHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zcGxpdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oZWlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBoZWlnaHQodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9oZWlnaHQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRTdHlsZUhlaWdodCgpO1xuICAgIH1cbiAgICBnZXQgaGVpZ2h0KCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29sbGFwc2VPblRhYmxldCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvbGxhcHNlT25UYWJsZXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY29sbGFwc2VPblRhYmxldCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnBlcFNjcmVlblNpemVUb0ZsaXBUb1ZlcnRpY2FsID0gdmFsdWUgPyBQZXBTY3JlZW5TaXplVHlwZS5NRCA6IFBlcFNjcmVlblNpemVUeXBlLlNNO1xuICAgICAgICB0aGlzLnJlZnJlc2hTcGxpdCgpO1xuICAgIH1cbiAgICBnZXQgY29sbGFwc2VPblRhYmxldCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxhcHNlT25UYWJsZXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29sdW1uczogQXJyYXk8SVBlcExheW91dFNlY3Rpb25Db2x1bW4+ID0gW107XG4gICAgQElucHV0KClcbiAgICBzZXQgY29sdW1ucyh2YWx1ZTogQXJyYXk8SVBlcExheW91dFNlY3Rpb25Db2x1bW4+KSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMgPSB2YWx1ZSB8fCBbXTtcbiAgICB9XG4gICAgZ2V0IGNvbHVtbnMoKTogQXJyYXk8SVBlcExheW91dFNlY3Rpb25Db2x1bW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbnM7XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgX2hpZGVJbjogRGF0YVZpZXdTY3JlZW5TaXplW10gPSBbXTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBoaWRlSW4odmFsdWU6IERhdGFWaWV3U2NyZWVuU2l6ZVtdKSB7XG4gICAgICAgIHRoaXMuX2hpZGVJbiA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk7XG4gICAgfVxuICAgIGdldCBoaWRlSW4oKTogRGF0YVZpZXdTY3JlZW5TaXplW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZUluO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGNvbHVtbnNHYXAhOiBQZXBMYXlvdXRTaXplVHlwZTtcbiAgICAgICAgXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtaGVpZ2h0JylcbiAgICBzdHlsZU1heEhlaWdodCA9ICd1bnNldCc7XG4gICAgXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKVxuICAgIHN0eWxlSGVpZ2h0ID0gJ3Vuc2V0JztcbiAgICBcbiAgICBwcm90ZWN0ZWQgc2VjdGlvbnNDb2x1bW5zRHJvcExpc3Q6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBwcml2YXRlIF9lZGl0YWJsZSA9IGZhbHNlO1xuICAgIC8vIHByb3RlY3RlZCBzZXQgZWRpdGFibGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAvLyAgICAgdGhpcy5fZWRpdGFibGUgPSB2YWx1ZTtcbiAgICAvLyAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICAvLyB9XG4gICAgcHJvdGVjdGVkIGdldCBlZGl0YWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5lZGl0YWJsZVN0YXRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NjcmVlblNpemUhOiBQZXBTY3JlZW5TaXplVHlwZTtcbiAgICBwcm90ZWN0ZWQgc2V0IHNjcmVlblNpemUodmFsdWU6IFBlcFNjcmVlblNpemVUeXBlKSB7XG4gICAgICAgIHRoaXMuX3NjcmVlblNpemUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICAgICAgdGhpcy5zZXRTY3JlZW5UeXBlKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBnZXQgc2NyZWVuU2l6ZSgpOiBQZXBTY3JlZW5TaXplVHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zY3JlZW5TaXplO1xuICAgIH1cblxuICAgIC8vIFBlcFNjcmVlblNpemVUeXBlID0gUGVwU2NyZWVuU2l6ZVR5cGU7XG4gICAgcHJvdGVjdGVkIHNlY3Rpb25Db2x1bW5LZXlQcmVmaXggPSAnJztcbiAgICBcbiAgICBwcm90ZWN0ZWQgaXNNYWluRWRpdG9yU3RhdGUgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHNlbGVjdGVkU2VjdGlvbktleSA9ICcnO1xuICAgIHByb3RlY3RlZCBzZWxlY3RlZEJsb2NrS2V5ID0gJyc7XG4gICAgXG4gICAgcHJvdGVjdGVkIGNvbnRhaW5zQmxvY2tzID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHNob3VsZFNldERlZmF1bHRIZWlnaHQgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgcGVwU2NyZWVuU2l6ZVRvRmxpcFRvVmVydGljYWwgPSBQZXBTY3JlZW5TaXplVHlwZS5TTTtcbiAgICBwcm90ZWN0ZWQgc2NyZWVuVHlwZSE6IERhdGFWaWV3U2NyZWVuU2l6ZTtcbiAgICBwcm90ZWN0ZWQgaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIGRyYWdnaW5nQmxvY2tLZXkgPSAnJztcbiAgICBwcm90ZWN0ZWQgZHJhZ2dpbmdTZWN0aW9uS2V5ID0gJyc7XG4gICAgcHJvdGVjdGVkIGhvdmVyU3RhdGUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgbGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZTogTGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZSxcbiAgICAgICAgLy8gcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBQZXBMYXlvdXRTZXJ2aWNlLFxuICAgICkgeyBcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZUlmU2VjdGlvbkNvbnRhaW5zQmxvY2tzKCkge1xuICAgICAgICB0aGlzLmNvbnRhaW5zQmxvY2tzID0gdGhpcy5jb2x1bW5zLnNvbWUoY29sdW1uID0+IGNvbHVtbi5CbG9ja0NvbnRhaW5lcik7XG5cbiAgICAgICAgaWYgKHRoaXMuZWRpdGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvdWxkU2V0RGVmYXVsdEhlaWdodCA9ICF0aGlzLmNvbnRhaW5zQmxvY2tzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTY3JlZW5UeXBlKCkge1xuICAgICAgICB0aGlzLnNjcmVlblR5cGUgPSB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZ2V0U2NyZWVuVHlwZSh0aGlzLnNjcmVlblNpemUpO1xuICAgICAgICB0aGlzLnNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk7XG4gICAgICAgIHRoaXMuc2V0U3R5bGVIZWlnaHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSA9IHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5nZXRJc0hpZGRlbih0aGlzLmhpZGVJbiwgdGhpcy5zY3JlZW5UeXBlKTtcbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBnZXRDc3NTcGxpdFN0cmluZygpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnNwbGl0KSB7XG4gICAgICAgICAgICBjYXNlICcxLzIgMS8yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS8yIDEvNCAxLzQnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMmZyIDFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS8zIDEvMyAxLzMnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMWZyIDFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS8zIDIvMyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnIgMmZyJztcbiAgICAgICAgICAgIGNhc2UgJzEvNCAxLzIgMS80JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmciAyZnIgMWZyJztcbiAgICAgICAgICAgIGNhc2UgJzEvNCAxLzQgMS8yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmciAxZnIgMmZyJztcbiAgICAgICAgICAgIGNhc2UgJzEvNCAxLzQgMS80IDEvNCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnIgMWZyIDFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS80IDMvNCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnIgM2ZyJztcbiAgICAgICAgICAgIGNhc2UgJzIvMyAxLzMnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMmZyIDFmcic7XG4gICAgICAgICAgICBjYXNlICczLzQgMS80JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzNmciAxZnInO1xuICAgICAgICAgICAgZGVmYXVsdDogLy8gRm9yIG9uZSBjb2x1bW4uXG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnInO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWZyZXNoU3BsaXQoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VjdGlvbkNvbnRhaW5lclJlZikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNzc1NwbGl0U3RyaW5nID0gdGhpcy5nZXRDc3NTcGxpdFN0cmluZygpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8vIEdvIGZvciBhbGwgdGhlIGNvbHVtbnMgaW4gdGhlIGNvbHVtbnNXcmFwcGVyXG4gICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zRWxlbWVudFJlZi50b0FycmF5KCkubWFwKChzZWN0aW9uLCBzZWN0aW9uSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSG9yaXpvbnRhbCAodHJ1ZSkgZm9yIGxhcmdlIHNjcmVlbnMsIGZhbHNlIGZvciBzbWFsbCBzY3JlZW5zLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0hvcml6b250YWxWaWV3ID0gdGhpcy5zY3JlZW5TaXplIDwgdGhpcy5wZXBTY3JlZW5TaXplVG9GbGlwVG9WZXJ0aWNhbDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNIb3Jpem9udGFsVmlldykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLWF1dG8tZmxvdycsICdjb2x1bW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2VjdGlvbi5uYXRpdmVFbGVtZW50LCAnZ3JpZC10ZW1wbGF0ZS1yb3dzJywgJ3Vuc2V0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucycsIGNzc1NwbGl0U3RyaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2VjdGlvbi5uYXRpdmVFbGVtZW50LCAnZ3JpZC1hdXRvLWZsb3cnLCAncm93Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucycsICd1bnNldCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLXJvd3MnLCAndW5zZXQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gcnVudGltZSAob3IgcHJldmlldyBtb2RlKS5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5lZGl0YWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNzc1NwbGl0QXJyYXkgPSBjc3NTcGxpdFN0cmluZy5zcGxpdCgnICcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBzb21lIGhpZGRlbiBjb2x1bW5zIGNoYW5nZSB0aGUgY29sdW1uIHdpZHRoIHRvIDAgKGZvciBjdXQgdGhlIHNwYWNpbmcgaW4gdGhlIGdyaWQtdGVtcGxhdGUtcm93cykuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zLmZvckVhY2goKGNvbHVtbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb2x1bW4uQmxvY2tDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzc1NwbGl0QXJyYXlbaW5kZXhdID0gJzAnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLXJvd3MnLCAnYXV0bycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLXJvd3MnLCBjc3NTcGxpdEFycmF5LmpvaW4oJyAnKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTdHlsZUhlaWdodCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaGVpZ2h0ICYmIHRoaXMuaGVpZ2h0ID4gMCAmJiB0aGlzLnNjcmVlblR5cGUgIT09ICdQaGFibGV0Jykge1xuICAgICAgICAgICAgdGhpcy5zdHlsZUhlaWdodCA9IHRoaXMuc3R5bGVNYXhIZWlnaHQgPSBgJHt0aGlzLmhlaWdodH1weGA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0eWxlSGVpZ2h0ID0gdGhpcy5zdHlsZU1heEhlaWdodCA9ICd1bnNldCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRJc0RyYWdnaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kcmFnZ2luZ0Jsb2NrS2V5Lmxlbmd0aCA+IDAgJiYgdGhpcy5kcmFnZ2luZ1NlY3Rpb25LZXkubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBnZXRJc0hpZGRlbihoaWRlSW46IERhdGFWaWV3U2NyZWVuU2l6ZVtdIHwgdW5kZWZpbmVkLCBjdXJyZW50U2NyZWVuVHlwZTogRGF0YVZpZXdTY3JlZW5TaXplKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZ2V0SXNIaWRkZW4oaGlkZUluLCBjdXJyZW50U2NyZWVuVHlwZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5wcmV2aWV3TW9kZUNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUocHJldmlld01vZGUgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gSnVzdCB0byBjYWxjdWxhdGUgaWYgc2VjdGlvbnMgY29udGFpbnMgYmxvY2tzXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zZWN0aW9uc0NoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlSWZTZWN0aW9uQ29udGFpbnNCbG9ja3MoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gdGhpcy5sYXlvdXRTZXJ2aWNlLm9uUmVzaXplJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoc2l6ZTogYW55KSA9PiB7XG4gICAgICAgIC8vICAgICB0aGlzLnNjcmVlblNpemUgPSBzaXplO1xuICAgICAgICAvLyB9KTtcblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uuc2NyZWVuU2l6ZUNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKHNpemU6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zY3JlZW5TaXplID0gc2l6ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZWRpdGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zZWN0aW9uc0NvbHVtbnNEcm9wTGlzdENoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKHNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0ID0gc2VjdGlvbnNDb2x1bW5zRHJvcExpc3Q7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmVkaXRvckNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGVkaXRvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc01haW5FZGl0b3JTdGF0ZSA9IGVkaXRvciAmJiBlZGl0b3IudHlwZSA9PT0gJ2xheW91dC1idWlsZGVyJztcbiAgICAgICAgICAgICAgICB0aGlzLmlzRWRpdGluZyA9IGVkaXRvciAmJiBlZGl0b3IudHlwZSA9PT0gJ3NlY3Rpb24nICYmIGVkaXRvci5pZCA9PT0gdGhpcy5rZXk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNlY3Rpb25LZXkgPSBlZGl0b3IgJiYgZWRpdG9yLnR5cGUgPT09ICdzZWN0aW9uJyA/IGVkaXRvci5pZCA6ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRCbG9ja0tleSA9IGVkaXRvciAmJiBlZGl0b3IudHlwZSA9PT0gJ2Jsb2NrJyA/IGVkaXRvci5pZCA6ICcnO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5kcmFnZ2luZ0Jsb2NrS2V5LnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChkcmFnZ2luZ0Jsb2NrS2V5OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdnaW5nQmxvY2tLZXkgPSBkcmFnZ2luZ0Jsb2NrS2V5O1xuXG4gICAgICAgICAgICAgICAgaWYgKGRyYWdnaW5nQmxvY2tLZXkgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlSWZTZWN0aW9uQ29udGFpbnNCbG9ja3MoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBvbmx5IG9uZSBibG9jayBpbiB0aGUgc2VjdGlvbiBhbmQgbm93IGl0J3MgdGhpcyBibG9jayB0aGF0IHRoZSB1c2VyIGlzIGRyYWdnaW5nLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9ja3NMZW5ndGggPSB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4uQmxvY2tDb250YWluZXIpLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2Nrc0xlbmd0aCA9PT0gMSAmJiB0aGlzLmNvbHVtbnMuZmluZChjID0+IGMuQmxvY2tDb250YWluZXI/LkJsb2NrS2V5ID09PSB0aGlzLmRyYWdnaW5nQmxvY2tLZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3VsZFNldERlZmF1bHRIZWlnaHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmRyYWdnaW5nU2VjdGlvbktleS5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoZHJhZ2dpbmdTZWN0aW9uS2V5OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdnaW5nU2VjdGlvbktleSA9IGRyYWdnaW5nU2VjdGlvbktleTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWN0aW9uQ29sdW1uS2V5UHJlZml4ID0gdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmdldFNlY3Rpb25Db2x1bW5LZXkodGhpcy5rZXkpO1xuICAgIH1cblxuICAgIG9uRWRpdFNlY3Rpb25DbGljaygpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLm5hdmlnYXRlVG9FZGl0b3IoJ3NlY3Rpb24nLCB0aGlzLmtleSk7XG4gICAgfVxuXG4gICAgb25SZW1vdmVTZWN0aW9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5yZW1vdmVTZWN0aW9uKHRoaXMua2V5KTtcbiAgICB9XG5cbiAgICBvbkhpZGVTZWN0aW9uQ2hhbmdlKGhpZGVJbjogRGF0YVZpZXdTY3JlZW5TaXplW10pIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmhpZGVTZWN0aW9uKHRoaXMua2V5LCBoaWRlSW4pO1xuICAgIH1cblxuICAgIG9uSGlkZUluTWVudU9wZW5lZCgpIHtcbiAgICAgICAgdGhpcy5ob3ZlclN0YXRlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkhpZGVJbk1lbnVDbG9zZWQoKSB7XG4gICAgICAgIHRoaXMuaG92ZXJTdGF0ZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uQmxvY2tEcm9wcGVkKGV2ZW50OiBDZGtEcmFnRHJvcDxJUGVwTGF5b3V0U2VjdGlvbkNvbHVtbiwgYW55LCBhbnk+KSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5vbkJsb2NrRHJvcHBlZChldmVudCwgdGhpcy5rZXkpO1xuICAgIH1cblxuICAgIGNhbkRyb3BQcmVkaWNhdGUoY29sdW1uSW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gKGRyYWc6IENka0RyYWcsIGRyb3A6IENka0Ryb3BMaXN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXMgPSAhdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmRvZXNDb2x1bW5Db250YWluQmxvY2sodGhpcy5rZXksIGNvbHVtbkluZGV4KTtcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgb25EcmFnU3RhcnQoZXZlbnQ6IENka0RyYWdTdGFydCkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uub25TZWN0aW9uRHJhZ1N0YXJ0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkRyYWdFbmQoZXZlbnQ6IENka0RyYWdFbmQpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLm9uU2VjdGlvbkRyYWdFbmQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uU2VjdGlvbkJsb2NrRHJhZ0V4aXRlZChldmVudDogQ2RrRHJhZ0V4aXQpIHtcbiAgICAgICAgLy9cbiAgICB9XG5cbiAgICBvblNlY3Rpb25CbG9ja0RyYWdFbnRlcmVkKGV2ZW50OiBDZGtEcmFnRW50ZXIpIHtcbiAgICAgICAgLy9cbiAgICB9XG59XG4iLCI8ZGl2ICNzZWN0aW9uQ29udGFpbmVyICpuZ0lmPVwiZWRpdGFibGUgfHwgKGNvbnRhaW5zQmxvY2tzICYmICFoaWRlRm9yQ3VycmVudFNjcmVlblR5cGUpXCIgY2xhc3M9XCJzZWN0aW9uLWNvbnRhaW5lciBcIlxuICAgIFtuZ0NsYXNzXT1cInsgXG4gICAgICAgICdtb2JpbGUnOiBzY3JlZW5UeXBlID09PSAnUGhhYmxldCcsXG4gICAgICAgICdlZGl0YWJsZS1zdGF0ZSc6IGVkaXRhYmxlLCAnbWFpbi1lZGl0b3Itc3RhdGUnOiBpc01haW5FZGl0b3JTdGF0ZSwgJ2RlZmF1bHQtaGVpZ2h0Jzogc2hvdWxkU2V0RGVmYXVsdEhlaWdodCwgJ2FjdGl2ZS1zZWN0aW9uJzogaXNFZGl0aW5nLFxuICAgICAgICAnc2VjdGlvbi1oaWRkZW4tc3RhdGUnOiBoaWRlRm9yQ3VycmVudFNjcmVlblR5cGUsICdzZWN0aW9uLWlzLWRyYWdnaW5nJzogZHJhZ2dpbmdTZWN0aW9uS2V5ICE9PSAnJywgJ3Nob3ctaG92ZXItc3RhdGUnOiBob3ZlclN0YXRlIH1cIiBcbiAgICAgICAgY2RrRHJhZ0JvdW5kYXJ5PVwiLmxheW91dC1idWlsZGVyLXdyYXBwZXJcIiBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJrZXlcIiBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBzZWxlY3RlZFNlY3Rpb25LZXkubGVuZ3RoID4gMCB8fCBzZWxlY3RlZEJsb2NrS2V5Lmxlbmd0aCA+IDBcIiAoY2RrRHJhZ1N0YXJ0ZWQpPVwib25EcmFnU3RhcnQoJGV2ZW50KVwiIChjZGtEcmFnRW5kZWQpPVwib25EcmFnRW5kKCRldmVudClcIiBcbiAgICA+XG4gICAgPHBlcC1kcmFnZ2FibGUtaXRlbSAqbmdJZj1cImVkaXRhYmxlICYmIGlzTWFpbkVkaXRvclN0YXRlICYmIGRyYWdnaW5nU2VjdGlvbktleSA9PT0gJydcIiBjZGtEcmFnSGFuZGxlIHN0eWxlPVwiY3Vyc29yOiBncmFiO1wiXG4gICAgICAgIGNsYXNzPVwic2VjdGlvbi10b29sYmFyXCIgW25nQ2xhc3NdPVwieyAnaGlkZS10b29sYmFyJzogIWhvdmVyU3RhdGUgfVwiIFt0aXRsZV09XCJuYW1lXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgcGVwLWFjdGlvbnM+XG4gICAgICAgICAgICA8cGVwLWJ1dHRvbiBjbGFzc05hbWVzPVwiY2F1dGlvblwiIHNpemVUeXBlPVwieHNcIiBpY29uTmFtZT1cInN5c3RlbV9iaW5cIiAoYnV0dG9uQ2xpY2spPVwib25SZW1vdmVTZWN0aW9uQ2xpY2soKTtcIj48L3BlcC1idXR0b24+XG4gICAgICAgICAgICA8aGlkZS1pbiBbaGlkZUluXT1cImhpZGVJblwiIChoaWRlSW5DaGFuZ2UpPVwib25IaWRlU2VjdGlvbkNoYW5nZSgkZXZlbnQpXCIgKG1lbnVDbG9zZWQpPVwib25IaWRlSW5NZW51Q2xvc2VkKClcIiAobWVudU9wZW5lZCk9XCJvbkhpZGVJbk1lbnVPcGVuZWQoKVwiPjwvaGlkZS1pbj5cbiAgICAgICAgICAgIDxwZXAtYnV0dG9uIHNpemVUeXBlPVwieHNcIiBpY29uTmFtZT1cInN5c3RlbV9lZGl0XCIgKGJ1dHRvbkNsaWNrKT1cIm9uRWRpdFNlY3Rpb25DbGljaygpO1wiPjwvcGVwLWJ1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9wZXAtZHJhZ2dhYmxlLWl0ZW0+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiZWRpdGFibGVcIiBjbGFzcz1cInNlY3Rpb24tYmFja2dyb3VuZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmFjay10ZW1wbGF0ZVwiICpuZ0Zvcj1cImxldCBudW1iZXIgb2YgWzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTFdXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAjY29sdW1uc1dyYXBwZXIgY2xhc3M9XCJjb2x1bW5zLXdyYXBwZXIgZ2FwLXt7IGNvbHVtbnNHYXAgfX1cIiBcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnbW9iaWxlJzogc2NyZWVuVHlwZSA9PT0gJ1BoYWJsZXQnLCAnaXMtZHJhZ2dpbmcnOiBlZGl0YWJsZSAmJiBnZXRJc0RyYWdnaW5nIH1cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCBpPWluZGV4O1wiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVkaXRhYmxlIHx8IChjb2x1bW4uQmxvY2tDb250YWluZXIgJiYgY29sdW1uLkJsb2NrQ29udGFpbmVyLkJsb2NrS2V5ICYmIGNvbHVtbi5CbG9ja0NvbnRhaW5lci5CbG9ja0tleS5sZW5ndGggPiAwICYmICFnZXRJc0hpZGRlbihjb2x1bW4/LkJsb2NrQ29udGFpbmVyPy5IaWRlLCBzY3JlZW5UeXBlKSlcIiBcbiAgICAgICAgICAgICAgICBbaWRdPVwic2VjdGlvbkNvbHVtbktleVByZWZpeCArIGlcIiBcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNlY3Rpb24tY29sdW1uIHt7c2NyZWVuU2l6ZSA8PSBwZXBTY3JlZW5TaXplVG9GbGlwVG9WZXJ0aWNhbCA/ICdob3Jpem9udGFsJyA6ICd2ZXJ0aWNhbCd9fVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnYWN0aXZlLWNvbHVtbic6IHNlbGVjdGVkQmxvY2tLZXkgPT09IGNvbHVtbi5CbG9ja0NvbnRhaW5lcj8uQmxvY2tLZXksIFxuICAgICAgICAgICAgICAgICAgICAnaXMtaGlkZGVuJzogZ2V0SXNIaWRkZW4oY29sdW1uPy5CbG9ja0NvbnRhaW5lcj8uSGlkZSwgc2NyZWVuVHlwZSksXG4gICAgICAgICAgICAgICAgICAgICdhbHJlYWR5LWNvbnRhaW5zLWJsb2NrJzogZWRpdGFibGUgJiYgY29sdW1uLkJsb2NrQ29udGFpbmVyICYmIGNvbHVtbi5CbG9ja0NvbnRhaW5lci5CbG9ja0tleSAmJiBjb2x1bW4uQmxvY2tDb250YWluZXIuQmxvY2tLZXkubGVuZ3RoID4gMCAmJiBcbiAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdnaW5nQmxvY2tLZXkgJiYgZHJhZ2dpbmdCbG9ja0tleS5sZW5ndGggPiAwICYmIGNvbHVtbi5CbG9ja0NvbnRhaW5lci5CbG9ja0tleSAhPT0gZHJhZ2dpbmdCbG9ja0tleSB9XCJcbiAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RPcmllbnRhdGlvbl09XCJzY3JlZW5TaXplIDw9IHBlcFNjcmVlblNpemVUb0ZsaXBUb1ZlcnRpY2FsID8gJ2hvcml6b250YWwnIDogJ3ZlcnRpY2FsJ1wiIFxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cInNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0XCJcbiAgICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uQmxvY2tEcm9wcGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImNhbkRyb3BQcmVkaWNhdGUoaSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzZWN0aW9uLWJsb2NrICpuZ0lmPVwiY29sdW1uLkJsb2NrQ29udGFpbmVyPy5CbG9ja0tleVwiIGNsYXNzPVwic2VjdGlvbi1ibG9ja1wiIFtzZWN0aW9uS2V5XT1cImtleVwiIFtibG9ja1RlbXBsYXRlXT1cImJsb2NrVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbYmxvY2tDb250YWluZXJdPVwiY29sdW1uLkJsb2NrQ29udGFpbmVyXCIgW2VkaXRhYmxlXT1cImVkaXRhYmxlXCIgW2lzTWFpbkVkaXRvclN0YXRlXT1cImlzTWFpbkVkaXRvclN0YXRlXCIgW3NlY3Rpb25IZWlnaHRdPVwic3R5bGVIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICBbYWN0aXZlXT1cInNlbGVjdGVkQmxvY2tLZXkgPT09IGNvbHVtbi5CbG9ja0NvbnRhaW5lcj8uQmxvY2tLZXlcIiBbc2NyZWVuVHlwZV09XCJzY3JlZW5UeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgKGRyYWdFeGl0ZWQpPVwib25TZWN0aW9uQmxvY2tEcmFnRXhpdGVkKCRldmVudClcIiAoZHJhZ0VudGVyZWQpPVwib25TZWN0aW9uQmxvY2tEcmFnRW50ZXJlZCgkZXZlbnQpXCI+PC9zZWN0aW9uLWJsb2NrPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9sYXlvdXQtYnVpbGRlci9zZWN0aW9uL3NlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvbGF5b3V0LWJ1aWxkZXIvc2VjdGlvbi9zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFnQixLQUFLLEVBQXVFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEwsT0FBTyxFQUFFLHNCQUFzQixFQUFvQixpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7QUFTdEcsTUFBTSxPQUFPLGdCQUFpQixTQUFRLHNCQUFzQjtJQXlHeEQsWUFDWSxRQUFtQixFQUNuQiw0QkFBMEQ7UUFHbEUsS0FBSyxFQUFFLENBQUM7UUFKQSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFyRzdELFFBQUcsR0FBRyxFQUFFLENBQUM7UUFDVCxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRVgsV0FBTSxHQUEwQixTQUFTLENBQUM7UUFVMUMsWUFBTyxHQUF1QixTQUFTLENBQUM7UUFVeEMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBVzFCLGFBQVEsR0FBbUMsRUFBRSxDQUFDO1FBUzlDLFlBQU8sR0FBeUIsRUFBRSxDQUFDO1FBYTNDLG1CQUFjLEdBQUcsT0FBTyxDQUFDO1FBR3pCLGdCQUFXLEdBQUcsT0FBTyxDQUFDO1FBRVosNEJBQXVCLEdBQWEsRUFBRSxDQUFDO1FBcUJqRCx5Q0FBeUM7UUFDL0IsMkJBQXNCLEdBQUcsRUFBRSxDQUFDO1FBRTVCLHNCQUFpQixHQUFHLEtBQUssQ0FB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QUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsNEJBQTRCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELHdCQUF3QixDQUFDLEtBQWtCO1FBQ3ZDLEVBQUU7SUFDTixDQUFDO0lBRUQseUJBQXlCLENBQUMsS0FBbUI7UUFDekMsRUFBRTtJQUNOLENBQUM7OzZHQXRUUSxnQkFBZ0I7aUdBQWhCLGdCQUFnQiwra0JDWjdCLDR2SEE0Q0E7MkZEaENhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDSSxTQUFTOzJJQUtZLG1CQUFtQjtzQkFBakQsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBQ0csaUJBQWlCO3NCQUFoRCxZQUFZO3VCQUFDLGdCQUFnQjtnQkFFckIsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUlGLEtBQUs7c0JBRFIsS0FBSztnQkFXRixNQUFNO3NCQURULEtBQUs7Z0JBV0YsZ0JBQWdCO3NCQURuQixLQUFLO2dCQVlGLE9BQU87c0JBRFYsS0FBSztnQkFVRixNQUFNO3NCQURULEtBQUs7Z0JBU0csVUFBVTtzQkFBbEIsS0FBSztnQkFHTixjQUFjO3NCQURiLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUkvQixXQUFXO3NCQURWLFdBQVc7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBRdWVyeUxpc3QsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtEcmFnLCBDZGtEcmFnRHJvcCwgQ2RrRHJhZ0VuZCwgQ2RrRHJhZ0VudGVyLCBDZGtEcmFnRXhpdCwgQ2RrRHJhZ1N0YXJ0LCBDZGtEcm9wTGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgRGF0YVZpZXdTY3JlZW5TaXplLCBTcGxpdFR5cGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvcGFwaS1zZGsnO1xuaW1wb3J0IHsgQmFzZURlc3Ryb3llckRpcmVjdGl2ZSwgUGVwTGF5b3V0U2VydmljZSwgUGVwU2NyZWVuU2l6ZVR5cGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBMYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlIH0gZnJvbSAnLi4vbGF5b3V0LWJ1aWxkZXItaW50ZXJuYWwuc2VydmljZSc7XG5pbXBvcnQgeyBJUGVwTGF5b3V0U2VjdGlvbkNvbHVtbiwgUGVwTGF5b3V0U2l6ZVR5cGUgfSBmcm9tICcuLi9sYXlvdXQtYnVpbGRlci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2VjdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlY3Rpb24uY29tcG9uZW50LnNjc3MnLCAnLi9zZWN0aW9uLmNvbXBvbmVudC50aGVtZS5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VEZXN0cm95ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3NlY3Rpb25Db250YWluZXInKSBzZWN0aW9uQ29udGFpbmVyUmVmITogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkcmVuKCdjb2x1bW5zV3JhcHBlcicpIGNvbHVtbnNFbGVtZW50UmVmITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gICAgQElucHV0KCkgYmxvY2tUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGtleSA9ICcnO1xuICAgIEBJbnB1dCgpIG5hbWUgPSAnJztcblxuICAgIHByaXZhdGUgX3NwbGl0OiBTcGxpdFR5cGUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KClcbiAgICBzZXQgc3BsaXQodmFsdWU6IFNwbGl0VHlwZSB8IHVuZGVmaW5lZCApIHtcbiAgICAgICAgdGhpcy5fc3BsaXQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICB9XG4gICAgZ2V0IHNwbGl0KCk6IFNwbGl0VHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zcGxpdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oZWlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBoZWlnaHQodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9oZWlnaHQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRTdHlsZUhlaWdodCgpO1xuICAgIH1cbiAgICBnZXQgaGVpZ2h0KCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29sbGFwc2VPblRhYmxldCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvbGxhcHNlT25UYWJsZXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY29sbGFwc2VPblRhYmxldCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnBlcFNjcmVlblNpemVUb0ZsaXBUb1ZlcnRpY2FsID0gdmFsdWUgPyBQZXBTY3JlZW5TaXplVHlwZS5NRCA6IFBlcFNjcmVlblNpemVUeXBlLlhTO1xuICAgICAgICB0aGlzLnJlZnJlc2hTcGxpdCgpO1xuICAgIH1cbiAgICBnZXQgY29sbGFwc2VPblRhYmxldCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxhcHNlT25UYWJsZXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29sdW1uczogQXJyYXk8SVBlcExheW91dFNlY3Rpb25Db2x1bW4+ID0gW107XG4gICAgQElucHV0KClcbiAgICBzZXQgY29sdW1ucyh2YWx1ZTogQXJyYXk8SVBlcExheW91dFNlY3Rpb25Db2x1bW4+KSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMgPSB2YWx1ZSB8fCBbXTtcbiAgICB9XG4gICAgZ2V0IGNvbHVtbnMoKTogQXJyYXk8SVBlcExheW91dFNlY3Rpb25Db2x1bW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbnM7XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgX2hpZGVJbjogRGF0YVZpZXdTY3JlZW5TaXplW10gPSBbXTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBoaWRlSW4odmFsdWU6IERhdGFWaWV3U2NyZWVuU2l6ZVtdKSB7XG4gICAgICAgIHRoaXMuX2hpZGVJbiA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk7XG4gICAgfVxuICAgIGdldCBoaWRlSW4oKTogRGF0YVZpZXdTY3JlZW5TaXplW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZUluO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGNvbHVtbnNHYXAhOiBQZXBMYXlvdXRTaXplVHlwZTtcbiAgICAgICAgXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtaGVpZ2h0JylcbiAgICBzdHlsZU1heEhlaWdodCA9ICd1bnNldCc7XG4gICAgXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQnKVxuICAgIHN0eWxlSGVpZ2h0ID0gJ3Vuc2V0JztcbiAgICBcbiAgICBwcm90ZWN0ZWQgc2VjdGlvbnNDb2x1bW5zRHJvcExpc3Q6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBwcml2YXRlIF9lZGl0YWJsZSA9IGZhbHNlO1xuICAgIC8vIHByb3RlY3RlZCBzZXQgZWRpdGFibGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAvLyAgICAgdGhpcy5fZWRpdGFibGUgPSB2YWx1ZTtcbiAgICAvLyAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICAvLyB9XG4gICAgcHJvdGVjdGVkIGdldCBlZGl0YWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5lZGl0YWJsZVN0YXRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NjcmVlblNpemUhOiBQZXBTY3JlZW5TaXplVHlwZTtcbiAgICBwcm90ZWN0ZWQgc2V0IHNjcmVlblNpemUodmFsdWU6IFBlcFNjcmVlblNpemVUeXBlKSB7XG4gICAgICAgIHRoaXMuX3NjcmVlblNpemUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICAgICAgdGhpcy5zZXRTY3JlZW5UeXBlKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBnZXQgc2NyZWVuU2l6ZSgpOiBQZXBTY3JlZW5TaXplVHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zY3JlZW5TaXplO1xuICAgIH1cblxuICAgIC8vIFBlcFNjcmVlblNpemVUeXBlID0gUGVwU2NyZWVuU2l6ZVR5cGU7XG4gICAgcHJvdGVjdGVkIHNlY3Rpb25Db2x1bW5LZXlQcmVmaXggPSAnJztcbiAgICBcbiAgICBwcm90ZWN0ZWQgaXNNYWluRWRpdG9yU3RhdGUgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHNlbGVjdGVkU2VjdGlvbktleSA9ICcnO1xuICAgIHByb3RlY3RlZCBzZWxlY3RlZEJsb2NrS2V5ID0gJyc7XG4gICAgXG4gICAgcHJvdGVjdGVkIGNvbnRhaW5zQmxvY2tzID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHNob3VsZFNldERlZmF1bHRIZWlnaHQgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgcGVwU2NyZWVuU2l6ZVRvRmxpcFRvVmVydGljYWwgPSBQZXBTY3JlZW5TaXplVHlwZS5TTTtcbiAgICBwcm90ZWN0ZWQgc2NyZWVuVHlwZSE6IERhdGFWaWV3U2NyZWVuU2l6ZTtcbiAgICBwcm90ZWN0ZWQgaGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIGRyYWdnaW5nQmxvY2tLZXkgPSAnJztcbiAgICBwcm90ZWN0ZWQgZHJhZ2dpbmdTZWN0aW9uS2V5ID0gJyc7XG4gICAgcHJvdGVjdGVkIGhvdmVyU3RhdGUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgbGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZTogTGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZSxcbiAgICAgICAgLy8gcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBQZXBMYXlvdXRTZXJ2aWNlLFxuICAgICkgeyBcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZUlmU2VjdGlvbkNvbnRhaW5zQmxvY2tzKCkge1xuICAgICAgICB0aGlzLmNvbnRhaW5zQmxvY2tzID0gdGhpcy5jb2x1bW5zLnNvbWUoY29sdW1uID0+IGNvbHVtbi5CbG9ja0NvbnRhaW5lcik7XG5cbiAgICAgICAgaWYgKHRoaXMuZWRpdGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvdWxkU2V0RGVmYXVsdEhlaWdodCA9ICF0aGlzLmNvbnRhaW5zQmxvY2tzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTY3JlZW5UeXBlKCkge1xuICAgICAgICB0aGlzLnNjcmVlblR5cGUgPSB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZ2V0U2NyZWVuVHlwZSh0aGlzLnNjcmVlblNpemUpO1xuICAgICAgICB0aGlzLnNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk7XG4gICAgICAgIHRoaXMuc2V0U3R5bGVIZWlnaHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldElmSGlkZUZvckN1cnJlbnRTY3JlZW5UeXBlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZGVGb3JDdXJyZW50U2NyZWVuVHlwZSA9IHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5nZXRJc0hpZGRlbih0aGlzLmhpZGVJbiwgdGhpcy5zY3JlZW5UeXBlKTtcbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBnZXRDc3NTcGxpdFN0cmluZygpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnNwbGl0KSB7XG4gICAgICAgICAgICBjYXNlICcxLzIgMS8yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS8yIDEvNCAxLzQnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMmZyIDFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS8zIDEvMyAxLzMnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMWZyIDFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS8zIDIvMyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnIgMmZyJztcbiAgICAgICAgICAgIGNhc2UgJzEvNCAxLzIgMS80JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmciAyZnIgMWZyJztcbiAgICAgICAgICAgIGNhc2UgJzEvNCAxLzQgMS8yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzFmciAxZnIgMmZyJztcbiAgICAgICAgICAgIGNhc2UgJzEvNCAxLzQgMS80IDEvNCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnIgMWZyIDFmciAxZnInO1xuICAgICAgICAgICAgY2FzZSAnMS80IDMvNCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnIgM2ZyJztcbiAgICAgICAgICAgIGNhc2UgJzIvMyAxLzMnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMmZyIDFmcic7XG4gICAgICAgICAgICBjYXNlICczLzQgMS80JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzNmciAxZnInO1xuICAgICAgICAgICAgZGVmYXVsdDogLy8gRm9yIG9uZSBjb2x1bW4uXG4gICAgICAgICAgICAgICAgcmV0dXJuICcxZnInO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWZyZXNoU3BsaXQoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VjdGlvbkNvbnRhaW5lclJlZikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNzc1NwbGl0U3RyaW5nID0gdGhpcy5nZXRDc3NTcGxpdFN0cmluZygpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8vIEdvIGZvciBhbGwgdGhlIGNvbHVtbnMgaW4gdGhlIGNvbHVtbnNXcmFwcGVyXG4gICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zRWxlbWVudFJlZi50b0FycmF5KCkubWFwKChzZWN0aW9uLCBzZWN0aW9uSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSG9yaXpvbnRhbCAodHJ1ZSkgZm9yIGxhcmdlIHNjcmVlbnMsIGZhbHNlIGZvciBzbWFsbCBzY3JlZW5zLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0hvcml6b250YWxWaWV3ID0gdGhpcy5zY3JlZW5TaXplIDwgdGhpcy5wZXBTY3JlZW5TaXplVG9GbGlwVG9WZXJ0aWNhbDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNIb3Jpem9udGFsVmlldykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLWF1dG8tZmxvdycsICdjb2x1bW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2VjdGlvbi5uYXRpdmVFbGVtZW50LCAnZ3JpZC10ZW1wbGF0ZS1yb3dzJywgJ3Vuc2V0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucycsIGNzc1NwbGl0U3RyaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2VjdGlvbi5uYXRpdmVFbGVtZW50LCAnZ3JpZC1hdXRvLWZsb3cnLCAncm93Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucycsICd1bnNldCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLXJvd3MnLCAndW5zZXQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gcnVudGltZSAob3IgcHJldmlldyBtb2RlKS5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5lZGl0YWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNzc1NwbGl0QXJyYXkgPSBjc3NTcGxpdFN0cmluZy5zcGxpdCgnICcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBzb21lIGhpZGRlbiBjb2x1bW5zIGNoYW5nZSB0aGUgY29sdW1uIHdpZHRoIHRvIDAgKGZvciBjdXQgdGhlIHNwYWNpbmcgaW4gdGhlIGdyaWQtdGVtcGxhdGUtcm93cykuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zLmZvckVhY2goKGNvbHVtbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb2x1bW4uQmxvY2tDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzc1NwbGl0QXJyYXlbaW5kZXhdID0gJzAnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLXJvd3MnLCAnYXV0bycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdncmlkLXRlbXBsYXRlLXJvd3MnLCBjc3NTcGxpdEFycmF5LmpvaW4oJyAnKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTdHlsZUhlaWdodCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaGVpZ2h0ICYmIHRoaXMuaGVpZ2h0ID4gMCAmJiB0aGlzLnNjcmVlblR5cGUgIT09ICdQaGFibGV0Jykge1xuICAgICAgICAgICAgdGhpcy5zdHlsZUhlaWdodCA9IHRoaXMuc3R5bGVNYXhIZWlnaHQgPSBgJHt0aGlzLmhlaWdodH1weGA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0eWxlSGVpZ2h0ID0gdGhpcy5zdHlsZU1heEhlaWdodCA9ICd1bnNldCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRJc0RyYWdnaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kcmFnZ2luZ0Jsb2NrS2V5Lmxlbmd0aCA+IDAgJiYgdGhpcy5kcmFnZ2luZ1NlY3Rpb25LZXkubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBnZXRJc0hpZGRlbihoaWRlSW46IERhdGFWaWV3U2NyZWVuU2l6ZVtdIHwgdW5kZWZpbmVkLCBjdXJyZW50U2NyZWVuVHlwZTogRGF0YVZpZXdTY3JlZW5TaXplKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2UuZ2V0SXNIaWRkZW4oaGlkZUluLCBjdXJyZW50U2NyZWVuVHlwZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5wcmV2aWV3TW9kZUNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUocHJldmlld01vZGUgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoU3BsaXQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gSnVzdCB0byBjYWxjdWxhdGUgaWYgc2VjdGlvbnMgY29udGFpbnMgYmxvY2tzXG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zZWN0aW9uc0NoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlSWZTZWN0aW9uQ29udGFpbnNCbG9ja3MoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gdGhpcy5sYXlvdXRTZXJ2aWNlLm9uUmVzaXplJC5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoc2l6ZTogYW55KSA9PiB7XG4gICAgICAgIC8vICAgICB0aGlzLnNjcmVlblNpemUgPSBzaXplO1xuICAgICAgICAvLyB9KTtcblxuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uuc2NyZWVuU2l6ZUNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKHNpemU6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zY3JlZW5TaXplID0gc2l6ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZWRpdGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5zZWN0aW9uc0NvbHVtbnNEcm9wTGlzdENoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKHNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0ID0gc2VjdGlvbnNDb2x1bW5zRHJvcExpc3Q7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmVkaXRvckNoYW5nZSQucGlwZSh0aGlzLmdldERlc3Ryb3llcigpKS5zdWJzY3JpYmUoKGVkaXRvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc01haW5FZGl0b3JTdGF0ZSA9IGVkaXRvciAmJiBlZGl0b3IudHlwZSA9PT0gJ2xheW91dC1idWlsZGVyJztcbiAgICAgICAgICAgICAgICB0aGlzLmlzRWRpdGluZyA9IGVkaXRvciAmJiBlZGl0b3IudHlwZSA9PT0gJ3NlY3Rpb24nICYmIGVkaXRvci5pZCA9PT0gdGhpcy5rZXk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNlY3Rpb25LZXkgPSBlZGl0b3IgJiYgZWRpdG9yLnR5cGUgPT09ICdzZWN0aW9uJyA/IGVkaXRvci5pZCA6ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRCbG9ja0tleSA9IGVkaXRvciAmJiBlZGl0b3IudHlwZSA9PT0gJ2Jsb2NrJyA/IGVkaXRvci5pZCA6ICcnO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5kcmFnZ2luZ0Jsb2NrS2V5LnBpcGUodGhpcy5nZXREZXN0cm95ZXIoKSkuc3Vic2NyaWJlKChkcmFnZ2luZ0Jsb2NrS2V5OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdnaW5nQmxvY2tLZXkgPSBkcmFnZ2luZ0Jsb2NrS2V5O1xuXG4gICAgICAgICAgICAgICAgaWYgKGRyYWdnaW5nQmxvY2tLZXkgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlSWZTZWN0aW9uQ29udGFpbnNCbG9ja3MoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBvbmx5IG9uZSBibG9jayBpbiB0aGUgc2VjdGlvbiBhbmQgbm93IGl0J3MgdGhpcyBibG9jayB0aGF0IHRoZSB1c2VyIGlzIGRyYWdnaW5nLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9ja3NMZW5ndGggPSB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4uQmxvY2tDb250YWluZXIpLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2Nrc0xlbmd0aCA9PT0gMSAmJiB0aGlzLmNvbHVtbnMuZmluZChjID0+IGMuQmxvY2tDb250YWluZXI/LkJsb2NrS2V5ID09PSB0aGlzLmRyYWdnaW5nQmxvY2tLZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3VsZFNldERlZmF1bHRIZWlnaHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmRyYWdnaW5nU2VjdGlvbktleS5waXBlKHRoaXMuZ2V0RGVzdHJveWVyKCkpLnN1YnNjcmliZSgoZHJhZ2dpbmdTZWN0aW9uS2V5OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdnaW5nU2VjdGlvbktleSA9IGRyYWdnaW5nU2VjdGlvbktleTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWN0aW9uQ29sdW1uS2V5UHJlZml4ID0gdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmdldFNlY3Rpb25Db2x1bW5LZXkodGhpcy5rZXkpO1xuICAgIH1cblxuICAgIG9uRWRpdFNlY3Rpb25DbGljaygpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLm5hdmlnYXRlVG9FZGl0b3IoJ3NlY3Rpb24nLCB0aGlzLmtleSk7XG4gICAgfVxuXG4gICAgb25SZW1vdmVTZWN0aW9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5yZW1vdmVTZWN0aW9uKHRoaXMua2V5KTtcbiAgICB9XG5cbiAgICBvbkhpZGVTZWN0aW9uQ2hhbmdlKGhpZGVJbjogRGF0YVZpZXdTY3JlZW5TaXplW10pIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmhpZGVTZWN0aW9uKHRoaXMua2V5LCBoaWRlSW4pO1xuICAgIH1cblxuICAgIG9uSGlkZUluTWVudU9wZW5lZCgpIHtcbiAgICAgICAgdGhpcy5ob3ZlclN0YXRlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkhpZGVJbk1lbnVDbG9zZWQoKSB7XG4gICAgICAgIHRoaXMuaG92ZXJTdGF0ZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uQmxvY2tEcm9wcGVkKGV2ZW50OiBDZGtEcmFnRHJvcDxJUGVwTGF5b3V0U2VjdGlvbkNvbHVtbiwgYW55LCBhbnk+KSB7XG4gICAgICAgIHRoaXMubGF5b3V0QnVpbGRlckludGVybmFsU2VydmljZS5vbkJsb2NrRHJvcHBlZChldmVudCwgdGhpcy5rZXkpO1xuICAgIH1cblxuICAgIGNhbkRyb3BQcmVkaWNhdGUoY29sdW1uSW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gKGRyYWc6IENka0RyYWcsIGRyb3A6IENka0Ryb3BMaXN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXMgPSAhdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLmRvZXNDb2x1bW5Db250YWluQmxvY2sodGhpcy5rZXksIGNvbHVtbkluZGV4KTtcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgb25EcmFnU3RhcnQoZXZlbnQ6IENka0RyYWdTdGFydCkge1xuICAgICAgICB0aGlzLmxheW91dEJ1aWxkZXJJbnRlcm5hbFNlcnZpY2Uub25TZWN0aW9uRHJhZ1N0YXJ0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkRyYWdFbmQoZXZlbnQ6IENka0RyYWdFbmQpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRCdWlsZGVySW50ZXJuYWxTZXJ2aWNlLm9uU2VjdGlvbkRyYWdFbmQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uU2VjdGlvbkJsb2NrRHJhZ0V4aXRlZChldmVudDogQ2RrRHJhZ0V4aXQpIHtcbiAgICAgICAgLy9cbiAgICB9XG5cbiAgICBvblNlY3Rpb25CbG9ja0RyYWdFbnRlcmVkKGV2ZW50OiBDZGtEcmFnRW50ZXIpIHtcbiAgICAgICAgLy9cbiAgICB9XG59XG4iLCI8ZGl2ICNzZWN0aW9uQ29udGFpbmVyICpuZ0lmPVwiZWRpdGFibGUgfHwgKGNvbnRhaW5zQmxvY2tzICYmICFoaWRlRm9yQ3VycmVudFNjcmVlblR5cGUpXCIgY2xhc3M9XCJzZWN0aW9uLWNvbnRhaW5lciBcIlxuICAgIFtuZ0NsYXNzXT1cInsgXG4gICAgICAgICdtb2JpbGUnOiBzY3JlZW5UeXBlID09PSAnUGhhYmxldCcsXG4gICAgICAgICdlZGl0YWJsZS1zdGF0ZSc6IGVkaXRhYmxlLCAnbWFpbi1lZGl0b3Itc3RhdGUnOiBpc01haW5FZGl0b3JTdGF0ZSwgJ2RlZmF1bHQtaGVpZ2h0Jzogc2hvdWxkU2V0RGVmYXVsdEhlaWdodCwgJ2FjdGl2ZS1zZWN0aW9uJzogaXNFZGl0aW5nLFxuICAgICAgICAnc2VjdGlvbi1oaWRkZW4tc3RhdGUnOiBoaWRlRm9yQ3VycmVudFNjcmVlblR5cGUsICdzZWN0aW9uLWlzLWRyYWdnaW5nJzogZHJhZ2dpbmdTZWN0aW9uS2V5ICE9PSAnJywgJ3Nob3ctaG92ZXItc3RhdGUnOiBob3ZlclN0YXRlIH1cIiBcbiAgICAgICAgY2RrRHJhZ0JvdW5kYXJ5PVwiLmxheW91dC1idWlsZGVyLXdyYXBwZXJcIiBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJrZXlcIiBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBzZWxlY3RlZFNlY3Rpb25LZXkubGVuZ3RoID4gMCB8fCBzZWxlY3RlZEJsb2NrS2V5Lmxlbmd0aCA+IDBcIiAoY2RrRHJhZ1N0YXJ0ZWQpPVwib25EcmFnU3RhcnQoJGV2ZW50KVwiIChjZGtEcmFnRW5kZWQpPVwib25EcmFnRW5kKCRldmVudClcIiBcbiAgICA+XG4gICAgPHBlcC1kcmFnZ2FibGUtaXRlbSAqbmdJZj1cImVkaXRhYmxlICYmIGlzTWFpbkVkaXRvclN0YXRlICYmIGRyYWdnaW5nU2VjdGlvbktleSA9PT0gJydcIiBjZGtEcmFnSGFuZGxlIHN0eWxlPVwiY3Vyc29yOiBncmFiO1wiXG4gICAgICAgIGNsYXNzPVwic2VjdGlvbi10b29sYmFyXCIgW25nQ2xhc3NdPVwieyAnaGlkZS10b29sYmFyJzogIWhvdmVyU3RhdGUgfVwiIFt0aXRsZV09XCJuYW1lXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgcGVwLWFjdGlvbnM+XG4gICAgICAgICAgICA8cGVwLWJ1dHRvbiBjbGFzc05hbWVzPVwiY2F1dGlvblwiIHNpemVUeXBlPVwieHNcIiBpY29uTmFtZT1cInN5c3RlbV9iaW5cIiAoYnV0dG9uQ2xpY2spPVwib25SZW1vdmVTZWN0aW9uQ2xpY2soKTtcIj48L3BlcC1idXR0b24+XG4gICAgICAgICAgICA8aGlkZS1pbiBbaGlkZUluXT1cImhpZGVJblwiIChoaWRlSW5DaGFuZ2UpPVwib25IaWRlU2VjdGlvbkNoYW5nZSgkZXZlbnQpXCIgKG1lbnVDbG9zZWQpPVwib25IaWRlSW5NZW51Q2xvc2VkKClcIiAobWVudU9wZW5lZCk9XCJvbkhpZGVJbk1lbnVPcGVuZWQoKVwiPjwvaGlkZS1pbj5cbiAgICAgICAgICAgIDxwZXAtYnV0dG9uIHNpemVUeXBlPVwieHNcIiBpY29uTmFtZT1cInN5c3RlbV9lZGl0XCIgKGJ1dHRvbkNsaWNrKT1cIm9uRWRpdFNlY3Rpb25DbGljaygpO1wiPjwvcGVwLWJ1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9wZXAtZHJhZ2dhYmxlLWl0ZW0+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiZWRpdGFibGVcIiBjbGFzcz1cInNlY3Rpb24tYmFja2dyb3VuZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmFjay10ZW1wbGF0ZVwiICpuZ0Zvcj1cImxldCBudW1iZXIgb2YgWzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTFdXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAjY29sdW1uc1dyYXBwZXIgY2xhc3M9XCJjb2x1bW5zLXdyYXBwZXIgZ2FwLXt7IGNvbHVtbnNHYXAgfX1cIiBcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnbW9iaWxlJzogc2NyZWVuVHlwZSA9PT0gJ1BoYWJsZXQnLCAnaXMtZHJhZ2dpbmcnOiBlZGl0YWJsZSAmJiBnZXRJc0RyYWdnaW5nIH1cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCBpPWluZGV4O1wiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVkaXRhYmxlIHx8IChjb2x1bW4uQmxvY2tDb250YWluZXIgJiYgY29sdW1uLkJsb2NrQ29udGFpbmVyLkJsb2NrS2V5ICYmIGNvbHVtbi5CbG9ja0NvbnRhaW5lci5CbG9ja0tleS5sZW5ndGggPiAwICYmICFnZXRJc0hpZGRlbihjb2x1bW4/LkJsb2NrQ29udGFpbmVyPy5IaWRlLCBzY3JlZW5UeXBlKSlcIiBcbiAgICAgICAgICAgICAgICBbaWRdPVwic2VjdGlvbkNvbHVtbktleVByZWZpeCArIGlcIiBcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNlY3Rpb24tY29sdW1uIHt7c2NyZWVuU2l6ZSA8PSBwZXBTY3JlZW5TaXplVG9GbGlwVG9WZXJ0aWNhbCA/ICdob3Jpem9udGFsJyA6ICd2ZXJ0aWNhbCd9fVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnYWN0aXZlLWNvbHVtbic6IHNlbGVjdGVkQmxvY2tLZXkgPT09IGNvbHVtbi5CbG9ja0NvbnRhaW5lcj8uQmxvY2tLZXksIFxuICAgICAgICAgICAgICAgICAgICAnaXMtaGlkZGVuJzogZ2V0SXNIaWRkZW4oY29sdW1uPy5CbG9ja0NvbnRhaW5lcj8uSGlkZSwgc2NyZWVuVHlwZSksXG4gICAgICAgICAgICAgICAgICAgICdhbHJlYWR5LWNvbnRhaW5zLWJsb2NrJzogZWRpdGFibGUgJiYgY29sdW1uLkJsb2NrQ29udGFpbmVyICYmIGNvbHVtbi5CbG9ja0NvbnRhaW5lci5CbG9ja0tleSAmJiBjb2x1bW4uQmxvY2tDb250YWluZXIuQmxvY2tLZXkubGVuZ3RoID4gMCAmJiBcbiAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdnaW5nQmxvY2tLZXkgJiYgZHJhZ2dpbmdCbG9ja0tleS5sZW5ndGggPiAwICYmIGNvbHVtbi5CbG9ja0NvbnRhaW5lci5CbG9ja0tleSAhPT0gZHJhZ2dpbmdCbG9ja0tleSB9XCJcbiAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RPcmllbnRhdGlvbl09XCJzY3JlZW5TaXplIDw9IHBlcFNjcmVlblNpemVUb0ZsaXBUb1ZlcnRpY2FsID8gJ2hvcml6b250YWwnIDogJ3ZlcnRpY2FsJ1wiIFxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cInNlY3Rpb25zQ29sdW1uc0Ryb3BMaXN0XCJcbiAgICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uQmxvY2tEcm9wcGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImNhbkRyb3BQcmVkaWNhdGUoaSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzZWN0aW9uLWJsb2NrICpuZ0lmPVwiY29sdW1uLkJsb2NrQ29udGFpbmVyPy5CbG9ja0tleVwiIGNsYXNzPVwic2VjdGlvbi1ibG9ja1wiIFtzZWN0aW9uS2V5XT1cImtleVwiIFtibG9ja1RlbXBsYXRlXT1cImJsb2NrVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbYmxvY2tDb250YWluZXJdPVwiY29sdW1uLkJsb2NrQ29udGFpbmVyXCIgW2VkaXRhYmxlXT1cImVkaXRhYmxlXCIgW2lzTWFpbkVkaXRvclN0YXRlXT1cImlzTWFpbkVkaXRvclN0YXRlXCIgW3NlY3Rpb25IZWlnaHRdPVwic3R5bGVIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICBbYWN0aXZlXT1cInNlbGVjdGVkQmxvY2tLZXkgPT09IGNvbHVtbi5CbG9ja0NvbnRhaW5lcj8uQmxvY2tLZXlcIiBbc2NyZWVuVHlwZV09XCJzY3JlZW5UeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgKGRyYWdFeGl0ZWQpPVwib25TZWN0aW9uQmxvY2tEcmFnRXhpdGVkKCRldmVudClcIiAoZHJhZ0VudGVyZWQpPVwib25TZWN0aW9uQmxvY2tEcmFnRW50ZXJlZCgkZXZlbnQpXCI+PC9zZWN0aW9uLWJsb2NrPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -946,7 +946,7 @@ class SectionComponent extends BaseDestroyerDirective {
946
946
  }
947
947
  set collapseOnTablet(value) {
948
948
  this._collapseOnTablet = value;
949
- this.pepScreenSizeToFlipToVertical = value ? PepScreenSizeType.MD : PepScreenSizeType.SM;
949
+ this.pepScreenSizeToFlipToVertical = value ? PepScreenSizeType.MD : PepScreenSizeType.XS;
950
950
  this.refreshSplit();
951
951
  }
952
952
  get collapseOnTablet() {
@@ -1961,7 +1961,6 @@ class PepLayoutBuilderComponent extends BaseDestroyerDirective {
1961
1961
  this.viewportWidth = 0;
1962
1962
  this.pepAddonService.setShellRouterData({ showSidebar: false, addPadding: false });
1963
1963
  this.renderer.addClass(this.hostElement.nativeElement, 'pep-layout-builder');
1964
- this.layoutBuilderInternalService.setEditMode(true);
1965
1964
  }
1966
1965
  set availableBlocksForDrag(value) {
1967
1966
  this._availableBlocksForDrag = value;
@@ -2059,6 +2058,7 @@ class PepLayoutBuilderComponent extends BaseDestroyerDirective {
2059
2058
  });
2060
2059
  }
2061
2060
  ngOnInit() {
2061
+ this.layoutBuilderInternalService.setEditMode(true);
2062
2062
  // Get the first translation for load all translations.
2063
2063
  this.translate.get('LAYOUT_BUILDER.DESKTOP').subscribe((res) => {
2064
2064
  this.screenTypes = [
@@ -2069,6 +2069,10 @@ class PepLayoutBuilderComponent extends BaseDestroyerDirective {
2069
2069
  });
2070
2070
  this.subscribeEvents();
2071
2071
  }
2072
+ ngOnDestroy() {
2073
+ super.ngOnDestroy();
2074
+ this.layoutBuilderInternalService.setEditMode(false);
2075
+ }
2072
2076
  onResize(event) {
2073
2077
  this.updateViewportWidth();
2074
2078
  }