appproject-components 1.0.42 → 1.0.43

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.
@@ -22,6 +22,8 @@ import { BtnSalvarComponent } from './buttons/btn-salvar/btn-salvar.component';
22
22
  import { EntityEditComponent } from './entity-edit/entity-edit.component';
23
23
  import { InputCheckboxComponent } from './input-checkbox/input-checkbox.component';
24
24
  import { InputRadioComponent } from './input-radio/input-radio.component';
25
+ import { TreeViewComponent } from './tree-view/tree-view.component';
26
+ import { TreeViewNivelComponent } from './tree-view-nivel/tree-view-nivel.component';
25
27
  import * as i0 from "@angular/core";
26
28
  export const LibConfigService = new InjectionToken('LibConfig');
27
29
  export class AppprojectComponentsModule {
@@ -55,7 +57,9 @@ export class AppprojectComponentsModule {
55
57
  BtnSalvarComponent,
56
58
  EntityEditComponent,
57
59
  InputCheckboxComponent,
58
- InputRadioComponent], imports: [CommonModule,
60
+ InputRadioComponent,
61
+ TreeViewComponent,
62
+ TreeViewNivelComponent], imports: [CommonModule,
59
63
  HttpClientModule,
60
64
  IonicModule,
61
65
  ReactiveFormsModule], exports: [AppprojectComponentsComponent,
@@ -75,7 +79,9 @@ export class AppprojectComponentsModule {
75
79
  BtnSalvarComponent,
76
80
  EntityEditComponent,
77
81
  InputCheckboxComponent,
78
- InputRadioComponent] }); }
82
+ InputRadioComponent,
83
+ TreeViewComponent,
84
+ TreeViewNivelComponent] }); }
79
85
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: AppprojectComponentsModule, imports: [CommonModule,
80
86
  HttpClientModule,
81
87
  IonicModule,
@@ -102,7 +108,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
102
108
  BtnSalvarComponent,
103
109
  EntityEditComponent,
104
110
  InputCheckboxComponent,
105
- InputRadioComponent
111
+ InputRadioComponent,
112
+ TreeViewComponent,
113
+ TreeViewNivelComponent
106
114
  ],
107
115
  imports: [
108
116
  CommonModule,
@@ -128,9 +136,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
128
136
  BtnSalvarComponent,
129
137
  EntityEditComponent,
130
138
  InputCheckboxComponent,
131
- InputRadioComponent
139
+ InputRadioComponent,
140
+ TreeViewComponent,
141
+ TreeViewNivelComponent
132
142
  ],
133
143
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
134
144
  }]
135
145
  }] });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcHJvamVjdC1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcHByb2plY3QtY29tcG9uZW50cy9zcmMvbGliL2FwcHByb2plY3QtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFx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Qjt3QkFDbEIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBJbmplY3Rpb25Ub2tlbiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBwcHJvamVjdENvbXBvbmVudHNDb21wb25lbnQgfSBmcm9tICcuL2FwcHByb2plY3QtY29tcG9uZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dFRleHRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dEZvcm1hdENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtZm9ybWF0L2lucHV0LWZvcm1hdC5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFwcHByb2plY3RDb21wb25lbnRzU2VydmljZSB9IGZyb20gJy4vYXBwcHJvamVjdC1jb21wb25lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJbnB1dFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dFBlc3F1aXNhQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1wZXNxdWlzYS9pbnB1dC1wZXNxdWlzYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb2RlbFRyZWV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9tb2RlbC10cmVldmlldy9tb2RlbC10cmVldmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dFZhbG9yQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC12YWxvci9pbnB1dC12YWxvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dEFyZWFDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LWFyZWEvaW5wdXQtYXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dENlcENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtY2VwL2lucHV0LWNlcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dEFycXVpdm9Db21wb25lbnQgfSBmcm9tICcuL2lucHV0LWFycXVpdm8vaW5wdXQtYXJxdWl2by5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdG5BY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbnMvYnRuLWFjdGlvbi9idG4tYWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ0bkNhbmNlbGFyQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b25zL2J0bi1jYW5jZWxhci9idG4tY2FuY2VsYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnRuRXhjbHVpckNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9ucy9idG4tZXhjbHVpci9idG4tZXhjbHVpci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdG5Ob3ZvQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b25zL2J0bi1ub3ZvL2J0bi1ub3ZvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ0blNhbHZhckNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9ucy9idG4tc2FsdmFyL2J0bi1zYWx2YXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5RWRpdENvbXBvbmVudCB9IGZyb20gJy4vZW50aXR5LWVkaXQvZW50aXR5LWVkaXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGliQ29uZmlnIH0gZnJvbSAnLi9saWItY29uZmlnJztcclxuaW1wb3J0IHsgSW5wdXRDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtY2hlY2tib3gvaW5wdXQtY2hlY2tib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXRSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtcmFkaW8vaW5wdXQtcmFkaW8uY29tcG9uZW50JztcclxuXHJcblxyXG5leHBvcnQgY29uc3QgTGliQ29uZmlnU2VydmljZSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxMaWJDb25maWc+KCdMaWJDb25maWcnKTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBBcHBwcm9qZWN0Q29tcG9uZW50c0NvbXBvbmVudCxcclxuICAgIElucHV0VGV4dENvbXBvbmVudCxcclxuICAgIElucHV0Rm9ybWF0Q29tcG9uZW50LFxyXG4gICAgSW5wdXRTZWxlY3RDb21wb25lbnQsXHJcbiAgICBJbnB1dFBlc3F1aXNhQ29tcG9uZW50LFxyXG4gICAgTW9kZWxUcmVldmlld0NvbXBvbmVudCxcclxuICAgIElucHV0VmFsb3JDb21wb25lbnQsXHJcbiAgICBJbnB1dEFyZWFDb21wb25lbnQsXHJcbiAgICBJbnB1dENlcENvbXBvbmVudCxcclxuICAgIElucHV0QXJxdWl2b0NvbXBvbmVudCxcclxuICAgIEJ0bkFjdGlvbkNvbXBvbmVudCxcclxuICAgIEJ0bkNhbmNlbGFyQ29tcG9uZW50LFxyXG4gICAgQnRuRXhjbHVpckNvbXBvbmVudCxcclxuICAgIEJ0bk5vdm9Db21wb25lbnQsXHJcbiAgICBCdG5TYWx2YXJDb21wb25lbnQsXHJcbiAgICBFbnRpdHlFZGl0Q29tcG9uZW50LFxyXG4gICAgSW5wdXRDaGVja2JveENvbXBvbmVudCxcclxuICAgIElucHV0UmFkaW9Db21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBJb25pY01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEFwcHByb2plY3RDb21wb25lbnRzQ29tcG9uZW50LFxyXG4gICAgSW5wdXRUZXh0Q29tcG9uZW50LFxyXG4gICAgSW5wdXRGb3JtYXRDb21wb25lbnQsXHJcbiAgICBJbnB1dFNlbGVjdENvbXBvbmVudCxcclxuICAgIElucHV0UGVzcXVpc2FDb21wb25lbnQsXHJcbiAgICBNb2RlbFRyZWV2aWV3Q29tcG9uZW50LFxyXG4gICAgSW5wdXRWYWxvckNvbXBvbmVudCxcclxuICAgIElucHV0QXJlYUNvbXBvbmVudCxcclxuICAgIElucHV0Q2VwQ29tcG9uZW50LFxyXG4gICAgSW5wdXRBcnF1aXZvQ29tcG9uZW50LFxyXG4gICAgQnRuQWN0aW9uQ29tcG9uZW50LFxyXG4gICAgQnRuQ2FuY2VsYXJDb21wb25lbnQsXHJcbiAgICBCdG5FeGNsdWlyQ29tcG9uZW50LFxyXG4gICAgQnRuTm92b0NvbXBvbmVudCxcclxuICAgIEJ0blNhbHZhckNvbXBvbmVudCxcclxuICAgIEVudGl0eUVkaXRDb21wb25lbnQsXHJcbiAgICBJbnB1dENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgSW5wdXRSYWRpb0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBwcm9qZWN0Q29tcG9uZW50c01vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBMaWJDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFwcHByb2plY3RDb21wb25lbnRzTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQXBwcHJvamVjdENvbXBvbmVudHNNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIEFwcHByb2plY3RDb21wb25lbnRzU2VydmljZSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiAnTGliQ29uZmlnU2VydmljZScsXHJcbiAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcHJvamVjdC1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcHByb2plY3QtY29tcG9uZW50cy9zcmMvbGliL2FwcHByb2plY3QtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFx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cEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDZCQUE2Qjt3QkFDN0Isa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBJbmplY3Rpb25Ub2tlbiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBwcHJvamVjdENvbXBvbmVudHNDb21wb25lbnQgfSBmcm9tICcuL2FwcHByb2plY3QtY29tcG9uZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dFRleHRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dEZvcm1hdENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtZm9ybWF0L2lucHV0LWZvcm1hdC5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFwcHByb2plY3RDb21wb25lbnRzU2VydmljZSB9IGZyb20gJy4vYXBwcHJvamVjdC1jb21wb25lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJbnB1dFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dFBlc3F1aXNhQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1wZXNxdWlzYS9pbnB1dC1wZXNxdWlzYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb2RlbFRyZWV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9tb2RlbC10cmVldmlldy9tb2RlbC10cmVldmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dFZhbG9yQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC12YWxvci9pbnB1dC12YWxvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dEFyZWFDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LWFyZWEvaW5wdXQtYXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dENlcENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtY2VwL2lucHV0LWNlcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dEFycXVpdm9Db21wb25lbnQgfSBmcm9tICcuL2lucHV0LWFycXVpdm8vaW5wdXQtYXJxdWl2by5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdG5BY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbnMvYnRuLWFjdGlvbi9idG4tYWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ0bkNhbmNlbGFyQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b25zL2J0bi1jYW5jZWxhci9idG4tY2FuY2VsYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnRuRXhjbHVpckNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9ucy9idG4tZXhjbHVpci9idG4tZXhjbHVpci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdG5Ob3ZvQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b25zL2J0bi1ub3ZvL2J0bi1ub3ZvLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ0blNhbHZhckNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9ucy9idG4tc2FsdmFyL2J0bi1zYWx2YXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5RWRpdENvbXBvbmVudCB9IGZyb20gJy4vZW50aXR5LWVkaXQvZW50aXR5LWVkaXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGliQ29uZmlnIH0gZnJvbSAnLi9saWItY29uZmlnJztcclxuaW1wb3J0IHsgSW5wdXRDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtY2hlY2tib3gvaW5wdXQtY2hlY2tib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXRSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtcmFkaW8vaW5wdXQtcmFkaW8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJlZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtdmlldy90cmVlLXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJlZVZpZXdOaXZlbENvbXBvbmVudCB9IGZyb20gJy4vdHJlZS12aWV3LW5pdmVsL3RyZWUtdmlldy1uaXZlbC5jb21wb25lbnQnO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBMaWJDb25maWdTZXJ2aWNlID0gbmV3IEluamVjdGlvblRva2VuPExpYkNvbmZpZz4oJ0xpYkNvbmZpZycpO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFwcHByb2plY3RDb21wb25lbnRzQ29tcG9uZW50LFxyXG4gICAgSW5wdXRUZXh0Q29tcG9uZW50LFxyXG4gICAgSW5wdXRGb3JtYXRDb21wb25lbnQsXHJcbiAgICBJbnB1dFNlbGVjdENvbXBvbmVudCxcclxuICAgIElucHV0UGVzcXVpc2FDb21wb25lbnQsXHJcbiAgICBNb2RlbFRyZWV2aWV3Q29tcG9uZW50LFxyXG4gICAgSW5wdXRWYWxvckNvbXBvbmVudCxcclxuICAgIElucHV0QXJlYUNvbXBvbmVudCxcclxuICAgIElucHV0Q2VwQ29tcG9uZW50LFxyXG4gICAgSW5wdXRBcnF1aXZvQ29tcG9uZW50LFxyXG4gICAgQnRuQWN0aW9uQ29tcG9uZW50LFxyXG4gICAgQnRuQ2FuY2VsYXJDb21wb25lbnQsXHJcbiAgICBCdG5FeGNsdWlyQ29tcG9uZW50LFxyXG4gICAgQnRuTm92b0NvbXBvbmVudCxcclxuICAgIEJ0blNhbHZhckNvbXBvbmVudCxcclxuICAgIEVudGl0eUVkaXRDb21wb25lbnQsXHJcbiAgICBJbnB1dENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgSW5wdXRSYWRpb0NvbXBvbmVudCxcclxuICAgIFRyZWVWaWV3Q29tcG9uZW50LFxyXG4gICAgVHJlZVZpZXdOaXZlbENvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIElvbmljTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQXBwcHJvamVjdENvbXBvbmVudHNDb21wb25lbnQsXHJcbiAgICBJbnB1dFRleHRDb21wb25lbnQsXHJcbiAgICBJbnB1dEZvcm1hdENvbXBvbmVudCxcclxuICAgIElucHV0U2VsZWN0Q29tcG9uZW50LFxyXG4gICAgSW5wdXRQZXNxdWlzYUNvbXBvbmVudCxcclxuICAgIE1vZGVsVHJlZXZpZXdDb21wb25lbnQsXHJcbiAgICBJbnB1dFZhbG9yQ29tcG9uZW50LFxyXG4gICAgSW5wdXRBcmVhQ29tcG9uZW50LFxyXG4gICAgSW5wdXRDZXBDb21wb25lbnQsXHJcbiAgICBJbnB1dEFycXVpdm9Db21wb25lbnQsXHJcbiAgICBCdG5BY3Rpb25Db21wb25lbnQsXHJcbiAgICBCdG5DYW5jZWxhckNvbXBvbmVudCxcclxuICAgIEJ0bkV4Y2x1aXJDb21wb25lbnQsXHJcbiAgICBCdG5Ob3ZvQ29tcG9uZW50LFxyXG4gICAgQnRuU2FsdmFyQ29tcG9uZW50LFxyXG4gICAgRW50aXR5RWRpdENvbXBvbmVudCxcclxuICAgIElucHV0Q2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBJbnB1dFJhZGlvQ29tcG9uZW50LFxyXG4gICAgVHJlZVZpZXdDb21wb25lbnQsXHJcbiAgICBUcmVlVmlld05pdmVsQ29tcG9uZW50XHJcbiAgXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcHByb2plY3RDb21wb25lbnRzTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IExpYkNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QXBwcHJvamVjdENvbXBvbmVudHNNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBBcHBwcm9qZWN0Q29tcG9uZW50c01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgQXBwcHJvamVjdENvbXBvbmVudHNTZXJ2aWNlLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6ICdMaWJDb25maWdTZXJ2aWNlJyxcclxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWdcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -32,7 +32,7 @@ export class EntityEditComponent {
32
32
  emptyHandler() {
33
33
  }
34
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: EntityEditComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: EntityEditComponent, selector: "kb-entity-edit", inputs: { entidade: "entidade", campos: "campos", entidadeForm: "entidadeForm", validation_messages: "validation_messages", itemClass: "itemClass", rowClass: "rowClass" }, ngImport: i0, template: "<form *ngIf=\"campos && campos.length\" [formGroup]=\"entidadeForm\" style=\"width: 100%;\">\n\n\n <ion-row *ngFor=\"let linha of campos\" [class]=\"rowClass\">\n <ng-container *ngFor=\"let campo of linha.Linha\">\n <!-- {{ campo.Nome }} {{ campo.Tipo }} -->\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-text'\">\n <kb-input-text label=\"{{campo.Label ?? campo.Nome}}\" [placeholder]=\"campo.PlaceHolderVisivel ? (campo.Label ?? campo.Nome + '...') : ''\"\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \n [type]=\"campo.TipoInput ?? 'text'\" \n [showSeePassword]=\"campo.TipoInput == 'password'\"\n [showCustomAction]=\"campo.InputAction\"\n [customActionIcon]=\"campo.InputActionIcon ?? 'search-outline'\"\n (customActionClick)=\"campo.click ? campo.click($event) : emptyHandler()\"\n\n [itemClass]=\"itemClass\">\n </kb-input-text>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-area'\">\n <kb-input-area label=\"{{campo.Label ?? campo.Nome}}\" [placeholder]=\"campo.PlaceHolderVisivel ? (campo.Label ?? campo.Nome + '...') : ''\"\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [linhas]=\"campo.Linhas ?? 5\"\n [itemClass]=\"itemClass\">\n </kb-input-area>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-cep'\">\n <kb-input-cep label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\"\n (getResultados)=\"campo.change ? campo.change($event) : emptyHandler()\"\n >\n </kb-input-cep>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-valor'\">\n <kb-input-valor label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\">\n </kb-input-valor>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-format'\">\n <kb-input-format label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [formato]=\"campo.Formato ?? ''\"\n [itemClass]=\"itemClass\">\n </kb-input-format>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-checkbox'\">\n <kb-input-checkbox label=\"{{ campo.Label }}\" [form]=\"entidadeForm\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \n [itemClass]=\"itemClass\"\n [labelColor]=\"campo.BtnColor\">\n\n </kb-input-checkbox>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-select'\">\n <kb-input-select [label]=\"campo.Label ?? campo.Nome\" [placeholder]=\"'Selecionar...'\"\n [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\" [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId ?? 'Id'\"\n [itemNome]=\"campo.ItemNome ?? 'Nome'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n (selectChangeEntity)=\"campo.change ? campo.change($event) : emptyHandler()\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\">\n </kb-input-select>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-radio'\">\n <kb-input-radio [label]=\"campo.Label ?? campo.Nome\" [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\"\n [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId\" [itemNome]=\"campo.ItemNome\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\">\n </kb-input-radio>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-pesquisa'\">\n <kb-input-pesquisa #pesquisaCentroCustoPai \n [label]=\"campo.Label ?? campo.Nome\" \n [campoId]=\"campo.ItemId\"\n [focusField]=\"campo.focusField\"\n [formControlName]=\"campo.Nome\" \n placeholder=\"Pesquisar...\" \n [campoDisplay]=\"campo.ItemNome ?? 'Nome'\" \n [form]=\"entidadeForm\"\n [tipo]=\"campo.TipoPesquisa\" \n [urlItem]=\"campo.UrlItem\" \n [max]=\"campo.Tamanho ?? '50'\" \n [url]=\"campo.UrlPesquisa\" \n [readonly]=\"campo.ReadOnly\"\n (pesquisaChange)=\"campo.change ? campo.change($event) : emptyHandler()\"\n [itemClass]=\"itemClass\">\n </kb-input-pesquisa>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-button'\">\n <!-- \n <kb-btn-action [title]=\"campo.Label\" [icon]=\"campo.Icon\" [iconSrc]=\"campo.IconSrc\" [color]=\"campo.BtnColor ?? 'light'\" \n [expand]=\"campo.BtnExpand ?? 'block'\" style=\"margin-top: var(--btn-action-margin-top, auto);\">\n </kb-btn-action>\n -->\n <ion-button [expand]=\"campo.BtnExpand ?? 'block'\" [color]=\"campo.BtnColor ?? 'light'\"\n (click)=\"campo.click ? campo.click($event) : emptyHandler()\" [size]=\"campo.BtnSize ?? 'default'\"\n [disabled]=\"campo.ReadOnly\">\n <ion-icon *ngIf=\"campo.Icon || campo.IconSrc\" [name]=\"campo.Icon\" [src]=\"campo.IconSrc\"></ion-icon>\n {{ campo.Label }}\n </ion-button>\n </ion-col>\n\n <ion-col *ngIf=\"campo.Tipo == 'col'\" size-md=\"1\" size-xs=\"0\">\n\n </ion-col>\n\n <ion-col *ngIf=\"campo.Tipo == 'sub-titulo'\" size=\"12\">\n <ion-list lines=\"none\" class=\"ion-no-padding\">\n <ion-list-header color=\"primary\" [style]=\"campo.CampoStyle ?? ''\"> \n <ion-label [style]=\"campo.LabelStyle ?? ''\">{{ campo.Label }}</ion-label>\n </ion-list-header>\n </ion-list>\n </ion-col>\n </ng-container>\n </ion-row>\n\n <!--\n <ion-col class=\"select ion-no-margin ion-no-padding\">\n <ion-item lines=\"none\">\n <ion-label>Totalizador</ion-label>\n <ion-checkbox slot=\"start\" formControlName=\"Totalizador\"></ion-checkbox>\n </ion-item>\n </ion-col>\n <ion-col class=\"select ion-no-margin ion-no-padding\">\n <ion-item lines=\"none\">\n <ion-label>Inativo</ion-label>\n <ion-checkbox slot=\"start\" formControlName=\"Inativo\"></ion-checkbox>\n </ion-item>\n </ion-col>\n -->\n</form>", styles: ["ion-list-header{text-align:center;font-size:large}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2.IonListHeader, selector: "ion-list-header", inputs: ["color", "lines", "mode"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.InputTextComponent, selector: "kb-input-text", inputs: ["iconInput", "inputSpanAfter", "campoFoco", "showCustomAction", "customActionIcon"], outputs: ["customActionClick"] }, { kind: "component", type: i5.InputFormatComponent, selector: "kb-input-format", inputs: ["formato", "keyEnter"] }, { kind: "component", type: i6.InputSelectComponent, selector: "kb-input-select", inputs: ["itens", "itemId", "itemNome", "showNovo", "itemNull", "opcaoDefault"], outputs: ["selectChange", "selectChangeEntity"] }, { kind: "component", type: i7.InputPesquisaComponent, selector: "kb-input-pesquisa", inputs: ["textoPesquisa", "max", "filterFunction", "selectId", "campoId", "campoPaiId", "campoDisplay", "tipo", "pesquisaChange", "pesquisaAction", "limpar", "url", "urlItem", "urlTree", "empresa", "loadInit"] }, { kind: "component", type: i8.InputValorComponent, selector: "kb-input-valor", inputs: ["maxValor"] }, { kind: "component", type: i9.InputAreaComponent, selector: "kb-input-area", inputs: ["linhas"] }, { kind: "component", type: i10.InputCepComponent, selector: "kb-input-cep", inputs: ["formato", "keyEnter"], outputs: ["getResultados"] }, { kind: "component", type: i11.InputCheckboxComponent, selector: "kb-input-checkbox", inputs: ["justify", "labelPlacement"] }, { kind: "component", type: i12.InputRadioComponent, selector: "kb-input-radio", inputs: ["itens", "itemId", "itemNome", "color"] }] }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: EntityEditComponent, selector: "kb-entity-edit", inputs: { entidade: "entidade", campos: "campos", entidadeForm: "entidadeForm", validation_messages: "validation_messages", itemClass: "itemClass", rowClass: "rowClass" }, ngImport: i0, template: "<form *ngIf=\"campos && campos.length\" [formGroup]=\"entidadeForm\" style=\"width: 100%;\">\n\n\n <ion-row *ngFor=\"let linha of campos\" [class]=\"rowClass\">\n <ng-container *ngFor=\"let campo of linha.Linha\">\n <!-- {{ campo.Nome }} {{ campo.Tipo }} -->\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-text'\">\n <kb-input-text label=\"{{campo.Label ?? campo.Nome}}\" [placeholder]=\"campo.PlaceHolderVisivel ? (campo.Label ?? campo.Nome + '...') : ''\"\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \n [type]=\"campo.TipoInput ?? 'text'\" \n [showSeePassword]=\"campo.TipoInput == 'password'\"\n [showCustomAction]=\"campo.InputAction\"\n [customActionIcon]=\"campo.InputActionIcon ?? 'search-outline'\"\n (customActionClick)=\"campo.click ? campo.click($event) : emptyHandler()\"\n\n [itemClass]=\"itemClass\">\n </kb-input-text>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-area'\">\n <kb-input-area label=\"{{campo.Label ?? campo.Nome}}\" [placeholder]=\"campo.PlaceHolderVisivel ? (campo.Label ?? campo.Nome + '...') : ''\"\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [linhas]=\"campo.Linhas ?? 5\"\n [itemClass]=\"itemClass\">\n </kb-input-area>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-cep'\">\n <kb-input-cep label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\"\n (getResultados)=\"campo.change ? campo.change($event) : emptyHandler()\"\n >\n </kb-input-cep>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-valor'\">\n <kb-input-valor label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\">\n </kb-input-valor>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-format'\">\n <kb-input-format label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [formato]=\"campo.Formato ?? ''\"\n [itemClass]=\"itemClass\">\n </kb-input-format>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-checkbox'\">\n <kb-input-checkbox label=\"{{ campo.Label }}\" [form]=\"entidadeForm\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \n [itemClass]=\"itemClass\"\n [labelColor]=\"campo.BtnColor\">\n\n </kb-input-checkbox>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-select'\">\n <kb-input-select [label]=\"campo.Label ?? campo.Nome\" [placeholder]=\"'Selecionar...'\"\n [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\" [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId ?? 'Id'\"\n [itemNome]=\"campo.ItemNome ?? 'Nome'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n (selectChangeEntity)=\"campo.change ? campo.change($event) : emptyHandler()\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\">\n </kb-input-select>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-radio'\">\n <kb-input-radio [label]=\"campo.Label ?? campo.Nome\" [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\"\n [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId\" [itemNome]=\"campo.ItemNome\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\">\n </kb-input-radio>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-pesquisa'\">\n <kb-input-pesquisa #pesquisaCentroCustoPai \n [label]=\"campo.Label ?? campo.Nome\" \n [campoId]=\"campo.ItemId\"\n [focusField]=\"campo.focusField\"\n [formControlName]=\"campo.Nome\" \n placeholder=\"Pesquisar...\" \n [campoDisplay]=\"campo.ItemNome ?? 'Nome'\" \n [form]=\"entidadeForm\"\n [tipo]=\"campo.TipoPesquisa\" \n [urlItem]=\"campo.UrlItem\" \n [max]=\"campo.Tamanho ?? '50'\" \n [url]=\"campo.UrlPesquisa\" \n [readonly]=\"campo.ReadOnly\"\n (pesquisaChange)=\"campo.change ? campo.change($event) : emptyHandler()\"\n [itemClass]=\"itemClass\">\n </kb-input-pesquisa>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-button'\">\n <!-- \n <kb-btn-action [title]=\"campo.Label\" [icon]=\"campo.Icon\" [iconSrc]=\"campo.IconSrc\" [color]=\"campo.BtnColor ?? 'light'\" \n [expand]=\"campo.BtnExpand ?? 'block'\" style=\"margin-top: var(--btn-action-margin-top, auto);\">\n </kb-btn-action>\n -->\n <ion-button [expand]=\"campo.BtnExpand ?? 'block'\" [color]=\"campo.BtnColor ?? 'light'\"\n (click)=\"campo.click ? campo.click($event) : emptyHandler()\" [size]=\"campo.BtnSize ?? 'default'\"\n [disabled]=\"campo.ReadOnly\">\n <ion-icon *ngIf=\"campo.Icon || campo.IconSrc\" [name]=\"campo.Icon\" [src]=\"campo.IconSrc\"></ion-icon>\n {{ campo.Label }}\n </ion-button>\n </ion-col>\n\n <ion-col *ngIf=\"campo.Tipo == 'col'\" size-md=\"1\" size-xs=\"0\">\n\n </ion-col>\n\n <ion-col *ngIf=\"campo.Tipo == 'sub-titulo'\" size=\"12\">\n <ion-list lines=\"none\" class=\"ion-no-padding\">\n <ion-list-header color=\"primary\" [style]=\"campo.CampoStyle ?? ''\"> \n <ion-label [style]=\"campo.LabelStyle ?? ''\">{{ campo.Label }}</ion-label>\n </ion-list-header>\n </ion-list>\n </ion-col>\n </ng-container>\n </ion-row>\n\n <!--\n <ion-col class=\"select ion-no-margin ion-no-padding\">\n <ion-item lines=\"none\">\n <ion-label>Totalizador</ion-label>\n <ion-checkbox slot=\"start\" formControlName=\"Totalizador\"></ion-checkbox>\n </ion-item>\n </ion-col>\n <ion-col class=\"select ion-no-margin ion-no-padding\">\n <ion-item lines=\"none\">\n <ion-label>Inativo</ion-label>\n <ion-checkbox slot=\"start\" formControlName=\"Inativo\"></ion-checkbox>\n </ion-item>\n </ion-col>\n -->\n</form>", styles: ["ion-list-header{text-align:center;font-size:large}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2.IonListHeader, selector: "ion-list-header", inputs: ["color", "lines", "mode"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.InputTextComponent, selector: "kb-input-text", inputs: ["iconInput", "inputSpanAfter", "campoFoco", "showCustomAction", "customActionIcon"], outputs: ["customActionClick"] }, { kind: "component", type: i5.InputFormatComponent, selector: "kb-input-format", inputs: ["formato", "keyEnter"] }, { kind: "component", type: i6.InputSelectComponent, selector: "kb-input-select", inputs: ["itens", "itemId", "itemNome", "showNovo", "itemNull", "opcaoDefault"], outputs: ["selectChange", "selectChangeEntity"] }, { kind: "component", type: i7.InputPesquisaComponent, selector: "kb-input-pesquisa", inputs: ["textoPesquisa", "max", "filterFunction", "selectId", "campoId", "campoPaiId", "campoDisplay", "tipo", "pesquisaChange", "pesquisaAction", "limpar", "url", "urlItem", "urlTree", "empresa", "loadInit", "treeTitulo"] }, { kind: "component", type: i8.InputValorComponent, selector: "kb-input-valor", inputs: ["maxValor"] }, { kind: "component", type: i9.InputAreaComponent, selector: "kb-input-area", inputs: ["linhas"] }, { kind: "component", type: i10.InputCepComponent, selector: "kb-input-cep", inputs: ["formato", "keyEnter"], outputs: ["getResultados"] }, { kind: "component", type: i11.InputCheckboxComponent, selector: "kb-input-checkbox", inputs: ["justify", "labelPlacement"] }, { kind: "component", type: i12.InputRadioComponent, selector: "kb-input-radio", inputs: ["itens", "itemId", "itemNome", "color"] }] }); }
36
36
  }
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: EntityEditComponent, decorators: [{
38
38
  type: Component,
@@ -473,12 +473,14 @@ export class InputPesquisaComponent extends BaseInputComponent {
473
473
  //campoId: this.campoId,
474
474
  //campoPai: this.campoPaiId,
475
475
  //campoLabel: this.campoDisplay,
476
+ textoPesquisa: this.textoPesquisa,
476
477
  filterFunction: this.filterFunction,
477
478
  empresaSelecionadaId: this.empresa,
478
479
  tipo: this.tipo,
479
480
  //especifico
480
481
  //planoContas: this.planoContas,
481
482
  url: this.isEmpty(this.urlTree) ? this.url : this.urlTree,
483
+ titulo: this.treeTitulo,
482
484
  campoLabel: this.campoDisplay,
483
485
  campoId: this.campoId,
484
486
  campoPai: this.campoPaiId
@@ -498,7 +500,7 @@ export class InputPesquisaComponent extends BaseInputComponent {
498
500
  return valor == null || valor == undefined || valor == '';
499
501
  }
500
502
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: InputPesquisaComponent, deps: [{ token: 'LibConfigService' }, { token: i1.HttpClient }, { token: i2.ModalController }], target: i0.ɵɵFactoryTarget.Component }); }
501
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: InputPesquisaComponent, selector: "kb-input-pesquisa", inputs: { textoPesquisa: "textoPesquisa", max: "max", filterFunction: "filterFunction", selectId: "selectId", campoId: "campoId", campoPaiId: "campoPaiId", campoDisplay: "campoDisplay", tipo: "tipo", pesquisaChange: "pesquisaChange", pesquisaAction: "pesquisaAction", limpar: "limpar", url: "url", urlItem: "urlItem", urlTree: "urlTree", empresa: "empresa", loadInit: "loadInit" }, providers: [{
503
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: InputPesquisaComponent, selector: "kb-input-pesquisa", inputs: { textoPesquisa: "textoPesquisa", max: "max", filterFunction: "filterFunction", selectId: "selectId", campoId: "campoId", campoPaiId: "campoPaiId", campoDisplay: "campoDisplay", tipo: "tipo", pesquisaChange: "pesquisaChange", pesquisaAction: "pesquisaAction", limpar: "limpar", url: "url", urlItem: "urlItem", urlTree: "urlTree", empresa: "empresa", loadInit: "loadInit", treeTitulo: "treeTitulo" }, providers: [{
502
504
  provide: NG_VALUE_ACCESSOR,
503
505
  useExisting: InputPesquisaComponent,
504
506
  multi: true
@@ -549,5 +551,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
549
551
  type: Input
550
552
  }], loadInit: [{
551
553
  type: Input
554
+ }], treeTitulo: [{
555
+ type: Input
552
556
  }] } });
553
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGVzcXVpc2EuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvaW5wdXQtcGVzcXVpc2EvaW5wdXQtcGVzcXVpc2EuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvaW5wdXQtcGVzcXVpc2EvaW5wdXQtcGVzcXVpc2EuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsT0FBTyxFQUFnQixFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7QUFFcEYsZ0ZBQWdGO0FBWWhGLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxrQkFBa0I7SUEyQzVELFVBQVUsQ0FBQyxLQUFtQjtRQUM1QixvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQzFCO2FBQU07WUFDTCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO2dCQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzlCLHFDQUFxQzthQUN0QztpQkFBTTtnQkFDTCxpQ0FBaUM7Z0JBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtvQkFDekYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzlCLHFDQUFxQztpQkFDdEM7YUFDRjtTQUNGO0lBRUgsQ0FBQztJQUNELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELGdCQUFnQixDQUFFLFVBQW1CO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lBSUQsWUFBZ0QsTUFBaUIsRUFDdkQsVUFBc0IsRUFDdEIsU0FBMEI7UUFDbEMsS0FBSyxFQUFFLENBQUM7UUFIc0MsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUN2RCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBOUVwQyxrQkFBYSxHQUFZLElBQUksQ0FBQztRQUNyQixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUNwQyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFFUixRQUFHLEdBQVcsSUFBSSxDQUFDO1FBQzdCLG9CQUFlLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFFaEQsbUJBQWMsR0FBMEIsSUFBSSxDQUFDO1FBQzdDLGFBQVEsR0FBVyxlQUFlLENBQUM7UUFDbkMsWUFBTyxHQUFXLElBQUksQ0FBQztRQUN2QixlQUFVLEdBQVcsT0FBTyxDQUFDO1FBQzdCLGlCQUFZLEdBQVcsV0FBVyxDQUFDO1FBQ25DLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDM0IsZ0ZBQWdGO1FBQ2pDLGtCQUFhLEdBQXFCLElBQUksQ0FBQztRQUU3RSxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHN0MsNkJBQTZCO1FBQzdCLHNDQUFzQztRQUM3QixRQUFHLEdBQVcsRUFBRSxDQUFDO1FBQ2pCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDOUIsMEVBQTBFO1FBQ2pFLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsWUFBTyxHQUFXLENBQUMsQ0FBQztRQUNwQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBTTNCLGFBQVEsR0FBYSxDQUFDLElBQVksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLFlBQU8sR0FBYSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDOUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMzQixZQUFPLEdBQUcsT0FBTyxDQUFDO1FBRXpCLGlCQUFZLEdBQWlCLElBQUksT0FBTyxFQUFPLENBQUM7UUFvQ2hELGFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQU81QixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFlBQVk7YUFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FDdEI7YUFDQSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFVO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0IsMENBQTBDO1FBQzFDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNoSCxxREFBcUQ7WUFDckQseUJBQXlCO1lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO1lBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDYixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUM7YUFDdEQ7U0FDRjtJQUNILENBQUM7SUFFUSxRQUFRO1FBQ2YsYUFBYTtRQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbkYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVuRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMxQyw4Q0FBOEM7WUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hDLGlCQUFpQjthQUNsQjs7Z0JBRUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7YUFDQSxTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRTtnQkFDcEIsOEJBQThCO2dCQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7Z0JBRXhCLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUMvQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7d0JBQ3ZCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztxQkFDN0M7b0JBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxLQUFVLEVBQUUsRUFBRTt3QkFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO29CQUNyRSxDQUFDLENBQUMsQ0FBQztpQkFDSjtnQkFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDMUIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNsRDtZQUNILENBQUM7WUFDQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQW1CO1FBQy9CLHVDQUF1QztRQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsWUFBWSxDQUFDLENBQU07UUFDakIsMENBQTBDO1FBQzFDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRSxrR0FBa0c7UUFDbEcsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DOzs7Ozs7Y0FNTTtRQUNOLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3ZCLE9BQU87YUFDUjtZQUNELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDaEMsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxFQUFFLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUVoQztpQkFDSTtnQkFDSCxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUM3QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7aUJBQ3BCO2FBQ0Y7U0FDRjthQUVJO1lBQ0gsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2pELElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksRUFBRTtvQkFDckMsdUZBQXVGO29CQUV2RixVQUFVO29CQUNWLGFBQWE7b0JBQ2Isa0NBQWtDO29CQUNsQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDbkMsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7b0JBQ3BFLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztvQkFDWixJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUU7d0JBQ3BCLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQ3hCLG1CQUFtQjt3QkFDbkIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQzt3QkFDN0IsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7cUJBQ2pCO3lCQUFNO3dCQUNMLEdBQUcsR0FBRyxDQUFDLENBQUM7cUJBQ1Q7b0JBRUQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFO3dCQUNYLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7cUJBQ3JDO3lCQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO3dCQUMzQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO3FCQUNUO29CQUVELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO29CQUNwRSxJQUFJLFlBQVksSUFBSSxJQUFJLEVBQUU7d0JBQ3hCLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUM7d0JBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO3dCQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7cUJBQ3REO29CQUNEOzs7Ozs7Ozs7Ozs7Ozs7c0JBZUU7aUJBQ0g7YUFFRjtpQkFDQyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFO2dCQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQTtnQkFDM0IsK0JBQStCO2dCQUMvQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLGVBQWU7YUFDaEI7aUJBQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRTtnQkFDMUIsS0FBSztnQkFDTCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUI7U0FDSjtJQUVILENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUMxRSxxQkFBcUI7UUFDckIsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ2QsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxVQUFVLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBRSw4RUFBOEU7U0FDOVA7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBUztRQUM1QixxQkFBcUI7UUFDckIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLG9DQUFvQztRQUVwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7VUFvQkU7UUFDRix3QkFBd0I7UUFDeEIsbUNBQW1DO1FBQ25DLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBRXBFLG1CQUFtQjtRQUNuQixxQ0FBcUM7UUFDckMsdUZBQXVGO1FBQ3ZGLElBQUk7UUFFSiwyREFBMkQ7UUFDM0QsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO1lBQ2hCLElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtnQkFDcEIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQzthQUM5QjtZQUNELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDeEIsUUFBUSxHQUFHLElBQUksQ0FBQztTQUNqQjtRQUNELElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztZQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztZQUNsQyxxQ0FBcUM7WUFDckMsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQzdDO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7U0FDbkM7UUFDRCw0Q0FBNEM7UUFDNUMsc0NBQXNDO1FBQ3RDLE9BQU87UUFDUCxtQ0FBbUM7SUFDckMsQ0FBQztJQUVELHFCQUFxQixDQUFDLENBQU07UUFDMUIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDYixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO2dCQUNsQyxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxFQUFFO29CQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQzdDO2FBQ0Y7U0FDRjthQUNJO1lBQ0gsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztTQUNuQztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFjO1FBQzdCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvRCxJQUFJLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFBRTtnQkFDaEIsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO2FBQ3BDO1lBQ0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBRXZELGtDQUFrQztZQUNsQyw0QkFBNEI7WUFFNUI7Ozs7Ozs7Ozs7Y0FVRTtTQUNIO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQWM7UUFDOUIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2pHLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQWM7UUFDakMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2pHLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQU0sR0FBRyxDQUFDO2FBQzFCLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFO2dCQUNqQyw4QkFBOEI7Z0JBQzlCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtvQkFDdkIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2lCQUM3QztnQkFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxLQUFhLEVBQUUsRUFBRTtvQkFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRSxDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDMUIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNsRDtZQUNILENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUM1QixDQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFVLEVBQUUsY0FBdUIsS0FBSztRQUNwRCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNsRSxJQUFJLE1BQU0sRUFBRTtnQkFDVixJQUFJLFdBQVcsRUFBRTtvQkFDZixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztvQkFDM0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDOUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYSxFQUFFLGNBQXVCLEtBQUs7UUFDNUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNFLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkQsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ3RHLElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksV0FBVyxFQUFFO29CQUNmLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO29CQUMzQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUM5QztnQkFDRCxPQUFPLElBQUksQ0FBQzthQUNiO2lCQUFNO2dCQUNMLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxnQkFBeUIsS0FBSztRQUNuRCxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDbkMsOEJBQThCO1FBQzlCLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUN2QixJQUFJLE1BQU0sR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNwRSxJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3ZDLE1BQU0sR0FBRyxJQUFJLENBQUM7aUJBQ2Y7YUFDRjtpQkFBTTtnQkFDTCxNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ2Y7WUFDRCxJQUFJLE1BQU0sSUFBSSxhQUFhLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDOUM7WUFFRCxPQUFPLE1BQU0sQ0FBQztTQUNmO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELHNCQUFzQixDQUFDLEVBQVU7UUFDL0IsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQU0sR0FBRyxDQUFDO2FBQzFCLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDMUIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDMUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDOUM7WUFDSCxDQUFDLEVBQUUsS0FBSyxFQUFHLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDNUIsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6Qiw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2Y7SUFDSCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsNkRBQTZEO1FBQzdELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEI7Ozs7VUFJRTtRQUNGLG1CQUFtQjtRQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekQsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN4QyxTQUFTLEVBQUUsc0JBQXNCO1lBQ2pDLGNBQWMsRUFBRTtnQkFDZCx3QkFBd0I7Z0JBQ3hCLDRCQUE0QjtnQkFDNUIsZ0NBQWdDO2dCQUNoQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQ25DLG9CQUFvQixFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNsQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsWUFBWTtnQkFDWixnQ0FBZ0M7Z0JBQ2hDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQ3pELFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNyQixRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDMUI7WUFDRCxRQUFRLEVBQUUsMEJBQTBCO1NBQ3JDLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEIsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3hDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFbEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFtQjtRQUN6QixPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLFNBQVMsSUFBSSxLQUFLLElBQUksRUFBRSxDQUFBO0lBQzNELENBQUM7OEdBcGhCVSxzQkFBc0Isa0JBOEViLGtCQUFrQjtrR0E5RTNCLHNCQUFzQiwwYUFOdEIsQ0FBQztnQkFDVixPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsc0JBQXNCO2dCQUNuQyxLQUFLLEVBQUUsSUFBSTthQUNaLENBQUMsaUtDbkJKLGlrSEE0RVE7OzJGRHZESyxzQkFBc0I7a0JBVmxDLFNBQVM7K0JBQ0UsbUJBQW1CLGFBR2xCLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyx3QkFBd0I7NEJBQ25DLEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUM7OzBCQWdGVyxNQUFNOzJCQUFDLGtCQUFrQjtnR0EzRTdCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBSVksR0FBRztzQkFBcEIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRXlDLGFBQWE7c0JBQTNELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFcEMsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFHRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIFByZWRpY2F0ZSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSW9uU2VsZWN0LCBNb2RhbENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZUlucHV0Q29tcG9uZW50JztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgTW9kZWxUcmVldmlld0NvbXBvbmVudCB9IGZyb20gJy4uL21vZGVsLXRyZWV2aWV3L21vZGVsLXRyZWV2aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpYkNvbmZpZyB9IGZyb20gJy4uL2xpYi1jb25maWcnO1xyXG4vL2ltcG9ydCB7IExpYkNvbmZpZywgTGliQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2FwcHByb2plY3QtY29tcG9uZW50cy5tb2R1bGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrYi1pbnB1dC1wZXNxdWlzYScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXBlc3F1aXNhLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC1wZXNxdWlzYS5jb21wb25lbnQuc2NzcycsICcuLy4uL2Jhc2VDb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgdXNlRXhpc3Rpbmc6IElucHV0UGVzcXVpc2FDb21wb25lbnQsXHJcbiAgICBtdWx0aTogdHJ1ZVxyXG4gIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dFBlc3F1aXNhQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIHBvZGVQZXNxdWlzYXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHRleHRvUGVzcXVpc2E6IHN0cmluZyA9ICcnO1xyXG4gIHNlbGVjdEVsZW1lbnRWaXNpdmVsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbGlzdGFQZXNxdWlzYTogYW55W10gPSBbXTtcclxuICBzZWxlY3RlZEl0ZW06IGFueTtcclxuICBASW5wdXQoKSBvdmVycmlkZSBtYXg6IHN0cmluZyA9ICczMCc7XHJcbiAgcHJpdmF0ZSBwZXNxdWlzYVN1YmplY3Q6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIEBJbnB1dCgpIGZpbHRlckZ1bmN0aW9uOiBQcmVkaWNhdGU8YW55PiB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHNlbGVjdElkOiBzdHJpbmcgPSAnc2VsZWN0RWxlbWVudCc7XHJcbiAgQElucHV0KCkgY2FtcG9JZDogc3RyaW5nID0gJ0lkJztcclxuICBASW5wdXQoKSBjYW1wb1BhaUlkOiBzdHJpbmcgPSAnUGFpSWQnO1xyXG4gIEBJbnB1dCgpIGNhbXBvRGlzcGxheTogc3RyaW5nID0gJ0Rlc2NyaWNhbyc7XHJcbiAgQElucHV0KCkgdGlwbzogc3RyaW5nID0gJyc7XHJcbiAgLy9AVmlld0NoaWxkKCdzZWxlY3RFbGVtZW50JywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSkgc2VsZWN0RWxlbWVudDtcclxuICBAVmlld0NoaWxkKCdzZWxlY3RFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHNlbGVjdEVsZW1lbnQ6IElvblNlbGVjdCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKSBwZXNxdWlzYUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBwZXNxdWlzYUFjdGlvbj86IEZ1bmN0aW9uO1xyXG4gIEBJbnB1dCgpIGxpbXBhcj86IEZ1bmN0aW9uO1xyXG4gIC8vcGFyYW1ldHJvcyBwYXJhIGNoYW1hZGEgQVBJXHJcbiAgLy9lbmRwb2ludCBwYXJhIHBlc3F1aXNhIHBvciBkaWdpdGHDp8Ojb1xyXG4gIEBJbnB1dCgpIHVybDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdXJsSXRlbTogc3RyaW5nID0gJyc7XHJcbiAgLy9lbmRwb2ludCBwYXJhIG1vbnRhciBhIGFydm9yZSwgc2UgZXN0aXZlciB2YXppYSBzZXLDoSB1c2FkbyBvIGNhbXBvICd1cmwnXHJcbiAgQElucHV0KCkgdXJsVHJlZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgZW1wcmVzYTogbnVtYmVyID0gMDtcclxuICBASW5wdXQoKSBsb2FkSW5pdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvL3BsYW5vQ29udGFzOiBudW1iZXI7XHJcblxyXG4gIC8vY29udHJvbCB2YWx1ZSBhY2Vzc29yXHJcbiAgcHVibGljIGRhdGE6IG51bWJlciB8IGFueTtcclxuICBwcml2YXRlIG9uQ2hhbmdlOiBGdW5jdGlvbiA9IChkYXRhOiBudW1iZXIpID0+IHsgfTtcclxuICBwcml2YXRlIG9uVG91Y2g6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xyXG4gIHByaXZhdGUgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgY29uc29sZSA9IGNvbnNvbGU7XHJcblxyXG4gIG1vZGVsQ2hhbmdlZDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIG1vZGVsQ2hhbmdlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBhbnkpOiB2b2lkIHtcclxuICAgIC8vY29uc29sZS5sb2coJ3dyaXRlIHZhbHVlJywgdmFsdWUpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICB0aGlzLmRhdGEgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09IDApIHtcclxuICAgICAgdGhpcy53cml0ZVBlc3F1aXNhKCcnKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMubG9hZEluaXQgPT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMubG9hZEluaXQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlZC5uZXh0KHZhbHVlKTtcclxuICAgICAgICAvL3RoaXMuY2FycmVnYUl0ZW1JZFBhcmFMaXN0YSh2YWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkSXRlbSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbSB8fCAodGhpcy5zZWxlY3RlZEl0ZW0gJiYgdGhpcy5zZWxlY3RlZEl0ZW1bdGhpcy5jYW1wb0lkXSAhPSB2YWx1ZSkpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdJZCBkaWZlcmVudGUnKTtcclxuICAgICAgICAgIHRoaXMubW9kZWxDaGFuZ2VkLm5leHQodmFsdWUpO1xyXG4gICAgICAgICAgLy90aGlzLmNhcnJlZ2FJdGVtSWRQYXJhTGlzdGEodmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIEJBU0VfQVBJID0gdGhpcy5jb25maWcuYXBpVXJsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdMaWJDb25maWdTZXJ2aWNlJykgcHJpdmF0ZSBjb25maWc6IExpYkNvbmZpZyxcclxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgbW9kYWxDdHJsOiBNb2RhbENvbnRyb2xsZXIpIHtcclxuICAgIHN1cGVyKCk7XHJcblxyXG4gICAgdGhpcy5tb2RlbENoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMubW9kZWxDaGFuZ2VkXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MDApXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICB0aGlzLmNhcnJlZ2FJdGVtSWRQYXJhTGlzdGEoZGF0YSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdibHVyJywgZXZlbnQpO1xyXG4gICAgLy9jb25zb2xlLmxvZyhldmVudC5kZXRhaWwucmVsYXRlZFRhcmdldCk7XHJcbiAgICBpZiAoZXZlbnQuZGV0YWlsLnJlbGF0ZWRUYXJnZXQgPT0gbnVsbCB8fCBldmVudC5kZXRhaWwucmVsYXRlZFRhcmdldC5pZC5pbmRleE9mKHRoaXMuc2VsZWN0SWQgKyAnSW9uSXRlbScpID09IC0xKSB7XHJcbiAgICAgIC8vY29uc29sZS5sb2coXCJ0cnVlXCIsIGV2ZW50LmRldGFpbC5yZWxhdGVkVGFyZ2V0LmlkKTtcclxuICAgICAgLy9wZXNxdWlzYXIgaXRlbSBuYSBsaXN0YVxyXG4gICAgICBpZiAoIXRoaXMuZXhpc3RlTmFMaXN0YVRleHRvKHRoaXMudGV4dG9QZXNxdWlzYSwgdHJ1ZSkpIHtcclxuICAgICAgICB0aGlzLmxpbXBhckNsaWNrKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZHJvcERvd25QZXNxdWlzYSgwKTtcclxuICAgICAgaWYgKHRoaXMuZm9ybSkge1xyXG4gICAgICAgIHRoaXMuZm9ybS5nZXQodGhpcy5mb3JtQ29udHJvbE5hbWUpPy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xyXG4gICAgLy90cmF0YXIgdXJsc1xyXG4gICAgdGhpcy51cmwgPSB0aGlzLnVybC5zdGFydHNXaXRoKCdodHRwJykgPyB0aGlzLnVybCA6IGAke3RoaXMuQkFTRV9BUEl9LyR7dGhpcy51cmx9YDtcclxuICAgIHRoaXMudXJsSXRlbSA9IHRoaXMudXJsSXRlbS5zdGFydHNXaXRoKCdodHRwJykgPyB0aGlzLnVybEl0ZW0gOiBgJHt0aGlzLkJBU0VfQVBJfS8ke3RoaXMudXJsSXRlbX1gO1xyXG5cclxuICAgIHRoaXMucGVzcXVpc2FTdWJqZWN0LnBpcGUoc3dpdGNoTWFwKCh1cmwpID0+IHtcclxuICAgICAgLy90aGlzLmNvbnNvbGUubG9nKCdzdWJqZWN0IHVybDonLCB1cmwpOyAgICAgIFxyXG4gICAgICBpZiAoIXRoaXMuaXNFbXB0eSh1cmwpKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodXJsKTtcclxuICAgICAgICAvL3JldHVybiBvZih1cmwpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgICByZXR1cm4gb2YoW10pO1xyXG4gICAgfSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy90aGlzLmxpc3RhUGVzcXVpc2EgPSByZXN1bHQ7XHJcbiAgICAgICAgICB0aGlzLmNvbnNvbGUubG9nKCdzdWJqZWN0IHN1YnNjcmliZSByZXN1bHQ6JywgcmVzdWx0KTtcclxuICAgICAgICAgIHRoaXMubGlzdGFQZXNxdWlzYSA9IFtdO1xyXG5cclxuICAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZmlsdGVyRnVuY3Rpb24pIHtcclxuICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuZmlsdGVyKHRoaXMuZmlsdGVyRnVuY3Rpb24pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXN1bHQuZm9yRWFjaCgoZW50OiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmxpc3RhUGVzcXVpc2EucHVzaCh7IC4uLmVudCwgSW5kZXg6IGluZGV4LCBTZWxlY3RlZDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMucG9kZVBlc3F1aXNhciA9IHRydWU7XHJcbiAgICAgICAgICBpZiAodGhpcy5saXN0YVBlc3F1aXNhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5kcm9wRG93blBlc3F1aXNhKHRoaXMubGlzdGFQZXNxdWlzYS5sZW5ndGgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAsIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMucG9kZVBlc3F1aXNhciA9IHRydWU7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnZXJybyBwZXNxdWlzYScsIGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVQZXNxdWlzYSh2YWx1ZTogc3RyaW5nIHwgYW55KTogdm9pZCB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCd3cml0ZSBwZXNxdWlzYScsIHZhbHVlKTtcclxuICAgIHRoaXMudGV4dG9QZXNxdWlzYSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2hvd1Blc3F1aXNhKGU6IGFueSk6IHZvaWQge1xyXG4gICAgLy9jb25zb2xlLmxvZygnc2hvdyBwZXNxdWlzYScsIGUua2V5Q29kZSk7XHJcbiAgICB2YXIgc2VsZiA9IHRoaXM7XHJcbiAgICBjb25zdCBpbmRleCA9IGUudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID49IDEgPyAoZS50YXJnZXQuc2VsZWN0aW9uU3RhcnQgLSAxKSA6IDA7XHJcbiAgICAvL2NvbnNvbGUubG9nKGluZGV4LCAndmFsb3IgJywgZXZlbnQudGFyZ2V0LnZhbHVlLCAnY2hhciAnLCBldmVudC50YXJnZXQudmFsdWUuY2hhckNvZGVBdChpbmRleCkpO1xyXG4gICAgY29uc3Qga2V5QXQgPSBlLnRhcmdldC52YWx1ZS5jaGFyQ29kZUF0KGluZGV4KTtcclxuICAgIC8qXHJcbiAgICBpZiAoKGUua2V5Q29kZSA+PSA0OCAmJiBlLmtleUNvZGUgPD0gNTcpIHx8XHJcbiAgICAgIChrZXlBdCA+PSA0OCAmJiBrZXlBdCA8PSA1NykgfHxcclxuICAgICAgKGUua2V5Q29kZSA+PSA2NSAmJiBlLmtleUNvZGUgPD0gOTApIHx8XHJcbiAgICAgIChlLmtleUNvZGUgPj0gOTYgJiYgZS5rZXlDb2RlIDw9IDEwNSkgfHxcclxuICAgICAgKGUua2V5Q29kZSA9PSA4KSkge1xyXG4gICAgICAgICovXHJcbiAgICBpZiAoZS5rZXlDb2RlICE9IDQwICYmIGUua2V5Q29kZSAhPSAzOCkge1xyXG4gICAgICBpZiAoIXNlbGYucG9kZVBlc3F1aXNhcikge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBsZXQgZmlsdHJvID0gc2VsZi50ZXh0b1Blc3F1aXNhO1xyXG4gICAgICBpZiAoZmlsdHJvICE9IG51bGwgJiYgZmlsdHJvICE9ICcnICYmIGZpbHRyby5sZW5ndGggPj0gMikge1xyXG4gICAgICAgIHNlbGYucGVzcXVpc2FyRW50aWRhZGUoZmlsdHJvKTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKGUua2V5Q29kZSA9PSA4ICYmICFmaWx0cm8pIHtcclxuICAgICAgICAgIHRoaXMubGltcGFyQ2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKGUua2V5Q29kZSA9PSA0MCB8fCBlLmtleUNvZGUgPT0gMzgpIHtcclxuICAgICAgICBzZWxmLmRyb3BEb3duUGVzcXVpc2Eoc2VsZi5saXN0YVBlc3F1aXNhLmxlbmd0aCk7XHJcbiAgICAgICAgaWYgKHNlbGYuc2VsZWN0RWxlbWVudFZpc2l2ZWwgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgLy9sZXQgc2VsZWN0ID0gc2VsZi5zZWxlY3RFbGVtZW50OyAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlbGYuVGVtcGxhdGVTZWxlY3QxSWQoKSk7XHJcblxyXG4gICAgICAgICAgLy9pb24tbGlzdFxyXG4gICAgICAgICAgLy9zZWxlY2lvbmFkb1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhzZWxmLmxpc3RhUGVzcXVpc2EpO1xyXG4gICAgICAgICAgbGV0IGluYyA9IGUua2V5Q29kZSA9PSA0MCA/IDEgOiAtMTtcclxuICAgICAgICAgIGxldCBzZWxlY3RlZCA9IHNlbGYubGlzdGFQZXNxdWlzYS5maW5kKHMgPT4gc1snU2VsZWN0ZWQnXSA9PT0gdHJ1ZSk7XHJcbiAgICAgICAgICBsZXQgY3VyID0gMDtcclxuICAgICAgICAgIGlmIChzZWxlY3RlZCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGN1ciA9IHNlbGVjdGVkWydJbmRleCddO1xyXG4gICAgICAgICAgICAvL2Rlc21hcmNhciBvIGF0dWFsXHJcbiAgICAgICAgICAgIHNlbGVjdGVkWydTZWxlY3RlZCddID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGN1ciA9IGN1ciArIGluYztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGN1ciA9IDA7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKGN1ciA8IDApIHtcclxuICAgICAgICAgICAgY3VyID0gc2VsZi5saXN0YVBlc3F1aXNhLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGN1ciA+PSBzZWxmLmxpc3RhUGVzcXVpc2EubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGN1ciA9IDA7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgbGV0IG5vdm9TZWxlY3RlZCA9IHNlbGYubGlzdGFQZXNxdWlzYS5maW5kKG4gPT4gblsnSW5kZXgnXSA9PT0gY3VyKTtcclxuICAgICAgICAgIGlmIChub3ZvU2VsZWN0ZWQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBub3ZvU2VsZWN0ZWRbJ1NlbGVjdGVkJ10gPSB0cnVlO1xyXG4gICAgICAgICAgICBzZWxmLnNlbGVjdGVkSXRlbSA9IG5vdm9TZWxlY3RlZDtcclxuICAgICAgICAgICAgc2VsZi50ZXh0b1Blc3F1aXNhID0gbm92b1NlbGVjdGVkW3NlbGYuY2FtcG9EaXNwbGF5XTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8qXHJcbiAgICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5zZWxlY3RJZCkgYXMgYW55O1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ3NlbGVjdCBFbGVtZW50Jywgc2VsZWN0KVxyXG4gICAgICAgICAgaWYgKHNlbGVjdCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGxldCBpbmMgPSBlLmtleUNvZGUgPT0gNDAgPyAxIDogLTE7XHJcbiAgICAgICAgICAgIGxldCBjdXIgPSBzZWxlY3Quc2VsZWN0ZWRJbmRleDtcclxuICAgICAgICAgICAgaWYgKGN1ciA9PSBOYU4pIGN1ciA9IC0xO1xyXG4gICAgICAgICAgICBzZWxlY3Quc2VsZWN0ZWRJbmRleCA9IGN1ciArIGluYztcclxuICAgICAgICAgICAgaWYgKHNlbGVjdC5zZWxlY3RlZEluZGV4ID49IDAgJiYgc2VsZWN0LnNlbGVjdGVkSW5kZXggPCBzZWxmLmxpc3RhUGVzcXVpc2EubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgc2VsZi5zZWxlY3RlZEl0ZW0gPSBzZWxmLmxpc3RhUGVzcXVpc2Fbc2VsZWN0LnNlbGVjdGVkSW5kZXhdO1xyXG4gICAgICAgICAgICAgIGlmIChzZWxmLnNlbGVjdGVkSXRlbSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBzZWxmLnRleHRvUGVzcXVpc2EgPSBzZWxmLnNlbGVjdGVkSXRlbVtzZWxmLmNhbXBvRGlzcGxheV07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAqL1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0gZWxzZVxyXG4gICAgICAgIGlmIChlLmtleUNvZGUgPT0gMTMpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdlbnRlciBrZXknLCBlKVxyXG4gICAgICAgICAgLy9zZWxmLnNlbGVjaW9uYXJDb21ib0NsaWNrKGUpO1xyXG4gICAgICAgICAgc2VsZi5zZWxlY2lvbmFyQ29tYm9DbGljayhudWxsKTtcclxuICAgICAgICAgIC8vcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXlDb2RlID09IDI3KSB7XHJcbiAgICAgICAgICAvL0VTQ1xyXG4gICAgICAgICAgc2VsZi5kcm9wRG93blBlc3F1aXNhKDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBoaWdobGlnaHQodGV4dG86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgaW5kZXggPSB0ZXh0by50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGhpcy50ZXh0b1Blc3F1aXNhLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgLy9jb25zb2xlLmxvZyhpbmRleCk7XHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICByZXR1cm4gdGV4dG8uc3Vic3RyaW5nKDAsIGluZGV4KSArICc8c3Ryb25nPicgKyB0ZXh0by5zdWJzdHJpbmcoaW5kZXgsIGluZGV4ICsgdGhpcy50ZXh0b1Blc3F1aXNhLmxlbmd0aCkgKyAnPC9zdHJvbmc+JyArIHRleHRvLnN1YnN0cmluZyhpbmRleCArIHRoaXMudGV4dG9QZXNxdWlzYS5sZW5ndGgpOyAgLy90ZXh0by5yZXBsYWNlKHRoaXMudGV4dG9QZXNxdWlzYSwgYDxzdHJvbmc+JHt0aGlzLnRleHRvUGVzcXVpc2F9PC9zdHJvbmc+YCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGV4dG87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY2lvbmFyQ29tYm9DbGljayhpdGVtOiBhbnkpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKGl0ZW0pO1xyXG4gICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgLy8gY29uc29sZS5sb2coJ2NvbWJvIGNsaWNrJywgc2VsZik7XHJcblxyXG4gICAgLypcclxuICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnNlbGVjdElkKSBhcyBhbnk7XHJcbiAgICBpZiAoc2VsZWN0LnNlbGVjdGVkSW5kZXggPj0gMCkge1xyXG4gICAgICBzZWxmLnNlbGVjdGVkSXRlbSA9IHNlbGYubGlzdGFQZXNxdWlzYVtzZWxlY3Quc2VsZWN0ZWRJbmRleF07XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZygnc2VsZWN0ZWQnLCB0aGlzLnNlbGVjdGVkSXRlbSk7XHJcbiAgICAvL3NlbGYuc2VsZWN0ZWRJdGVtID0gdGhpcy5saXN0YVBlc3F1aXNhLmZpbmQoaSA9PiBpW3RoaXMuY2FtcG9JZF0gPT0gZSk7XHJcbiAgICBpZiAoc2VsZi5zZWxlY3RlZEl0ZW0gIT0gbnVsbCkge1xyXG4gICAgICBzZWxmLnRleHRvUGVzcXVpc2EgPSBzZWxmLnNlbGVjdGVkSXRlbVtzZWxmLmNhbXBvRGlzcGxheV07XHJcbiAgICAgIHNlbGYud3JpdGVWYWx1ZShzZWxmLnNlbGVjdGVkSXRlbVtzZWxmLmNhbXBvSWRdKTtcclxuICAgICAgaWYgKGUgIT0gbnVsbCkge1xyXG4gICAgICAgIHNlbGYuc2VsZWN0RWxlbWVudFZpc2l2ZWwgPSBmYWxzZTtcclxuICAgICAgICBpZiAoc2VsZi5hY3Rpb24gIT0gbnVsbCkge1xyXG4gICAgICAgICAgc2VsZi5hY3Rpb24oc2VsZi5zZWxlY3RlZEl0ZW0oKSwgZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgc2VsZi5zZWxlY3RFbGVtZW50VmlzaXZlbCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgKi9cclxuICAgIC8vIHBlc3F1aXNhciBzZWxlY2lvbmFkb1xyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5saXN0YVBlc3F1aXNhKTtcclxuICAgIGxldCBzZWxlY3RlZCA9IHRoaXMubGlzdGFQZXNxdWlzYS5maW5kKHMgPT4gc1snU2VsZWN0ZWQnXSA9PT0gdHJ1ZSk7XHJcblxyXG4gICAgLy8gaWYgKCFzZWxlY3RlZCkge1xyXG4gICAgLy8gICBjb25zb2xlLmxvZyh0aGlzLmNhbXBvSWQsIGl0ZW0pO1xyXG4gICAgLy8gICBzZWxlY3RlZCA9IHRoaXMubGlzdGFQZXNxdWlzYS5maWx0ZXIoIHMgPT4gc1t0aGlzLmNhbXBvSWRdID09IGl0ZW1bdGhpcy5jYW1wb0lkXSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy9zZSBvIGl0ZW0gZm9ybSBwYXNzYWRvIGNvbW8gcGFyYW1ldHJvIChjbGljayBubyBpb24taXRlbSlcclxuICAgIGlmIChpdGVtICE9IG51bGwpIHtcclxuICAgICAgaWYgKHNlbGVjdGVkICE9IG51bGwpIHtcclxuICAgICAgICBzZWxlY3RlZFsnU2VsZWN0ZWQnXSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGl0ZW1bJ1NlbGVjdGVkJ10gPSB0cnVlO1xyXG4gICAgICBzZWxlY3RlZCA9IGl0ZW07XHJcbiAgICB9XHJcbiAgICBpZiAoc2VsZWN0ZWQgIT0gbnVsbCkge1xyXG4gICAgICBzZWxmLnNlbGVjdGVkSXRlbSA9IHNlbGVjdGVkO1xyXG4gICAgICBzZWxmLnRleHRvUGVzcXVpc2EgPSBzZWxlY3RlZFtzZWxmLmNhbXBvRGlzcGxheV07XHJcbiAgICAgIHNlbGYud3JpdGVWYWx1ZShzZWxlY3RlZFtzZWxmLmNhbXBvSWRdKTtcclxuICAgICAgc2VsZi5zZWxlY3RFbGVtZW50VmlzaXZlbCA9IGZhbHNlO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKCdhY3Rpb24nLCBzZWxmLmNoYW5nZSk7XHJcbiAgICAgIGlmIChzZWxmLnBlc3F1aXNhQ2hhbmdlICE9IG51bGwpIHtcclxuICAgICAgICBzZWxmLnBlc3F1aXNhQ2hhbmdlLmVtaXQoc2VsZi5zZWxlY3RlZEl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZWxmLnNlbGVjdEVsZW1lbnRWaXNpdmVsID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLmxpc3RhUGVzcXVpc2EuZm9yRWFjaCggcGVzcXVpc2EgPT4ge1xyXG4gICAgLy8gICBjb25zb2xlLmxvZyhwZXNxdWlzYSwgc2VsZi5kYXRhKTtcclxuICAgIC8vIH0gKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMudGV4dG9QZXNxdWlzYSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY2lvbmFyQ29tYm9DaGFuZ2UoZTogYW55KSB7XHJcbiAgICB2YXIgc2VsZiA9IHRoaXM7XHJcbiAgICBjb25zb2xlLmxvZygnY29tYm8gY2hhbmdlJywgZSk7XHJcbiAgICBzZWxmLnNlbGVjdGVkSXRlbSA9IHRoaXMubGlzdGFQZXNxdWlzYS5maW5kKGkgPT4gaVt0aGlzLmNhbXBvSWRdID09IGUpO1xyXG4gICAgaWYgKHNlbGYuc2VsZWN0ZWRJdGVtICE9IG51bGwpIHtcclxuICAgICAgc2VsZi53cml0ZVZhbHVlKGUpO1xyXG4gICAgICBzZWxmLnRleHRvUGVzcXVpc2EgPSBzZWxmLnNlbGVjdGVkSXRlbVtzZWxmLmNhbXBvRGlzcGxheV07XHJcbiAgICAgIGlmIChlICE9IG51bGwpIHtcclxuICAgICAgICBzZWxmLnNlbGVjdEVsZW1lbnRWaXNpdmVsID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHNlbGYucGVzcXVpc2FDaGFuZ2UgIT0gbnVsbCkge1xyXG4gICAgICAgICAgc2VsZi5wZXNxdWlzYUNoYW5nZS5lbWl0KHNlbGYuc2VsZWN0ZWRJdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBzZWxmLnNlbGVjdEVsZW1lbnRWaXNpdmVsID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkcm9wRG93blBlc3F1aXNhKGxlbmd0aDogbnVtYmVyKSB7XHJcbiAgICB2YXIgc2VsZiA9IHRoaXM7XHJcbiAgICBpZiAoc2VsZi5saXN0YVBlc3F1aXNhICE9IG51bGwgJiYgc2VsZi5saXN0YVBlc3F1aXNhLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKGxlbmd0aCA9PSAtMSkge1xyXG4gICAgICAgIGxlbmd0aCA9IHNlbGYubGlzdGFQZXNxdWlzYS5sZW5ndGg7XHJcbiAgICAgIH1cclxuICAgICAgc2VsZi5zZWxlY3RFbGVtZW50VmlzaXZlbCA9IGxlbmd0aCA9PSAwID8gZmFsc2UgOiB0cnVlO1xyXG5cclxuICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLnNlbGVjdEVsZW1lbnQpO1xyXG4gICAgICAvL3RoaXMuc2VsZWN0RWxlbWVudC5vcGVuKCk7XHJcblxyXG4gICAgICAvKlxyXG4gICAgICAvL2xldCBlbGVtZW50ID0gdGhpcy5zZWxlY3RFbGVtZW50O1xyXG4gICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuc2VsZWN0SWQpO1xyXG4gICAgICBjb25zb2xlLmxvZygnZHJvcERvd24nLCBlbGVtZW50KTtcclxuICAgICAgKGVsZW1lbnQgYXMgYW55KS5zaXplID0gbGVuZ3RoICsgMTtcclxuICAgICAgaWYgKGxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgc2VsZi5zZWxlY3RFbGVtZW50VmlzaXZlbCA9IGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNlbGYuc2VsZWN0RWxlbWVudFZpc2l2ZWwgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgICovXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwZXNxdWlzYXJFbnRpZGFkZShmaWx0cm86IHN0cmluZykge1xyXG4gICAgbGV0IHVybCA9IHRoaXMudXJsLnJlcGxhY2UoJzw8RklMVFJPPj4nLCBmaWx0cm8pLnJlcGxhY2UoJzw8RU1QUkVTQT4+JywgdGhpcy5lbXByZXNhLnRvU3RyaW5nKCkpO1xyXG4gICAgY29uc29sZS5sb2coJ3Blc3F1aXNhckVudGlkYWRlIHVybCcsIHVybCk7XHJcbiAgICB0aGlzLnBvZGVQZXNxdWlzYXIgPSBmYWxzZTtcclxuICAgIHRoaXMucGVzcXVpc2FTdWJqZWN0Lm5leHQodXJsKTtcclxuICB9XHJcblxyXG4gIHBlc3F1aXNhckVudGlkYWRlT2xkKGZpbHRybzogc3RyaW5nKSB7XHJcbiAgICBsZXQgdXJsID0gdGhpcy51cmwucmVwbGFjZSgnPDxGSUxUUk8+PicsIGZpbHRybykucmVwbGFjZSgnPDxFTVBSRVNBPj4nLCB0aGlzLmVtcHJlc2EudG9TdHJpbmcoKSk7XHJcbiAgICBjb25zb2xlLmxvZygncGVzcXVpc2FyRW50aWRhZGUgdXJsJywgdXJsKTtcclxuICAgIHRoaXMucG9kZVBlc3F1aXNhciA9IGZhbHNlO1xyXG4gICAgdGhpcy5odHRwQ2xpZW50LmdldDxhbnk+KHVybClcclxuICAgICAgLnN1YnNjcmliZSh7IG5leHQ6IChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vdGhpcy5saXN0YVBlc3F1aXNhID0gcmVzdWx0O1xyXG4gICAgICAgIGlmICh0aGlzLmZpbHRlckZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQuZmlsdGVyKHRoaXMuZmlsdGVyRnVuY3Rpb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxpc3RhUGVzcXVpc2EgPSBbXTtcclxuICAgICAgICByZXN1bHQuZm9yRWFjaCgoZW50OiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdGFQZXNxdWlzYS5wdXNoKHsgLi4uZW50LCBJbmRleDogaW5kZXgsIFNlbGVjdGVkOiBmYWxzZSB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5wb2RlUGVzcXVpc2FyID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5saXN0YVBlc3F1aXNhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuZHJvcERvd25QZXNxdWlzYSh0aGlzLmxpc3RhUGVzcXVpc2EubGVuZ3RoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGVycm9yOiBlcnJvciA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2Vycm8gcGVzcXVpc2EnLCBlcnJvcik7XHJcbiAgICAgICAgdGhpcy5wb2RlUGVzcXVpc2FyID0gdHJ1ZTtcclxuICAgICAgfX0pO1xyXG4gIH1cclxuXHJcbiAgZXhpc3RlTmFMaXN0YShpZDogbnVtYmVyLCBzZXRSZWdpc3RybzogYm9vbGVhbiA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5saXN0YVBlc3F1aXNhICYmIHRoaXMubGlzdGFQZXNxdWlzYS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBleGlzdGUgPSB0aGlzLmxpc3RhUGVzcXVpc2EuZmluZChsID0+IGxbdGhpcy5jYW1wb0lkXSA9PT0gaWQpO1xyXG4gICAgICBpZiAoZXhpc3RlKSB7XHJcbiAgICAgICAgaWYgKHNldFJlZ2lzdHJvKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGV4aXN0ZTtcclxuICAgICAgICAgIHRoaXMuc2VsZWNpb25hckNvbWJvQ2xpY2sodGhpcy5zZWxlY3RlZEl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4aXN0ZU5hTGlzdGFUZXh0byh0ZXh0bzogc3RyaW5nLCBzZXRSZWdpc3RybzogYm9vbGVhbiA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICBjb25zb2xlLmxvZyhcImV4aXN0ZSB0ZXh0bzpcIiwgdGV4dG8sIHRoaXMuY2FtcG9EaXNwbGF5LCB0aGlzLmxpc3RhUGVzcXVpc2EpO1xyXG4gICAgaWYgKHRoaXMubGlzdGFQZXNxdWlzYSAmJiB0aGlzLmxpc3RhUGVzcXVpc2EubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZXhpc3RlID0gdGhpcy5saXN0YVBlc3F1aXNhLmZpbmQobCA9PiBsW3RoaXMuY2FtcG9EaXNwbGF5XS50b1VwcGVyQ2FzZSgpID09PSB0ZXh0by50b1VwcGVyQ2FzZSgpKTtcclxuICAgICAgaWYgKGV4aXN0ZSkge1xyXG4gICAgICAgIGlmIChzZXRSZWdpc3Rybykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBleGlzdGU7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjaW9uYXJDb21ib0NsaWNrKHRoaXMuc2VsZWN0ZWRJdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGFySXRlbVNlbGVjaW9uYWRvKHNldGFyUmVnaXN0cm86IGJvb2xlYW4gPSBmYWxzZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc29sZS5sb2coJ3ZhbGlkYXIgc2VsZWNpb25hZG8nKTtcclxuICAgIC8vcGFzc2FyIHBlbGEgZnVuw6fDo28gZGUgZmlsdHJvXHJcbiAgICBsZXQgdmFsaWRvID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW0pIHtcclxuICAgICAgaWYgKHRoaXMuZmlsdGVyRnVuY3Rpb24pIHtcclxuICAgICAgICBsZXQgZXhpc3RlID0gW3sgLi4udGhpcy5zZWxlY3RlZEl0ZW0gfV0uZmlsdGVyKHRoaXMuZmlsdGVyRnVuY3Rpb24pO1xyXG4gICAgICAgIGlmIChleGlzdGUgIT0gbnVsbCAmJiBleGlzdGUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdmFsaWRvID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmFsaWRvID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodmFsaWRvICYmIHNldGFyUmVnaXN0cm8pIHtcclxuICAgICAgICB0aGlzLnNlbGVjaW9uYXJDb21ib0NsaWNrKHRoaXMuc2VsZWN0ZWRJdGVtKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHZhbGlkbztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhcnJlZ2FJdGVtSWRQYXJhTGlzdGEoaWQ6IG51bWJlcikge1xyXG4gICAgbGV0IHVybCA9IHRoaXMudXJsSXRlbS5yZXBsYWNlKCc8PElEPj4nLCBpZC50b1N0cmluZygpKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMudXJsSXRlbSk7XHJcbiAgICBjb25zb2xlLmxvZygncGVzcXVpc2FyIElEIHVybCcsIHVybCk7XHJcbiAgICB0aGlzLnBvZGVQZXNxdWlzYXIgPSBmYWxzZTtcclxuICAgIHRoaXMuaHR0cENsaWVudC5nZXQ8YW55Pih1cmwpXHJcbiAgICAgIC5zdWJzY3JpYmUoeyBuZXh0OiAocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RhUGVzcXVpc2EgPSBbXTtcclxuICAgICAgICB0aGlzLmxpc3RhUGVzcXVpc2EucHVzaCh7IC4uLnJlc3VsdCwgSW5kZXg6IDAsIFNlbGVjdGVkOiB0cnVlIH0pO1xyXG4gICAgICAgIHRoaXMucG9kZVBlc3F1aXNhciA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMubGlzdGFQZXNxdWlzYS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMubGlzdGFQZXNxdWlzYVswXTtcclxuICAgICAgICAgIHRoaXMuc2VsZWNpb25hckNvbWJvQ2xpY2sodGhpcy5zZWxlY3RlZEl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgZXJyb3I6ICBlcnJvciA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2Vycm8gcGVzcXVpc2EnLCBlcnJvcik7XHJcbiAgICAgICAgdGhpcy5wb2RlUGVzcXVpc2FyID0gdHJ1ZTtcclxuICAgICAgfX0pO1xyXG4gIH1cclxuXHJcbiAgbGltcGFyQ2xpY2soKSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICB0aGlzLndyaXRlUGVzcXVpc2EobnVsbCk7XHJcbiAgICB0aGlzLmxpc3RhUGVzcXVpc2EgPSBbXTtcclxuICAgIHRoaXMuZHJvcERvd25QZXNxdWlzYSgwKTtcclxuICAgIC8vdGhpcy5wb2RlUGVzcXVpc2FyID0gdHJ1ZTtcclxuICAgIHRoaXMucGVzcXVpc2FTdWJqZWN0Lm5leHQoJycpO1xyXG4gICAgaWYgKHRoaXMubGltcGFyKSB7XHJcbiAgICAgIHRoaXMubGltcGFyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2ZXJpZmljYXJQZXNxdWlzYSgpIHtcclxuICAgIC8vVE9ETzogdmVyaWZpY2FyIHNlIG8gdGV4dG8gY29ycmVzcG9uZGUgY29tIHVtIGl0ZW0gZGEgbGlzdGFcclxuICAgIHRoaXMuc2VsZWNpb25hckNvbWJvQ2xpY2sobnVsbCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBwZXNxdWlzYXJDbGljaygpIHtcclxuICAgIC8qXHJcbiAgICBpZiAodGhpcy5wZXNxdWlzYUFjdGlvbiAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMucGVzcXVpc2FBY3Rpb24oKTtcclxuICAgIH1cclxuICAgICovXHJcbiAgICAvL3Blc3F1aXNhQ2F0ZWdvcmlhXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmZpbHRlckZ1bmN0aW9uLCB0aGlzLnVybCwgdGhpcy51cmxUcmVlKTtcclxuXHJcbiAgICBjb25zdCBtb2RhbCA9IGF3YWl0IHRoaXMubW9kYWxDdHJsLmNyZWF0ZSh7XHJcbiAgICAgIGNvbXBvbmVudDogTW9kZWxUcmVldmlld0NvbXBvbmVudCxcclxuICAgICAgY29tcG9uZW50UHJvcHM6IHtcclxuICAgICAgICAvL2NhbXBvSWQ6IHRoaXMuY2FtcG9JZCxcclxuICAgICAgICAvL2NhbXBvUGFpOiB0aGlzLmNhbXBvUGFpSWQsXHJcbiAgICAgICAgLy9jYW1wb0xhYmVsOiB0aGlzLmNhbXBvRGlzcGxheSxcclxuICAgICAgICBmaWx0ZXJGdW5jdGlvbjogdGhpcy5maWx0ZXJGdW5jdGlvbixcclxuICAgICAgICBlbXByZXNhU2VsZWNpb25hZGFJZDogdGhpcy5lbXByZXNhLFxyXG4gICAgICAgIHRpcG86IHRoaXMudGlwbyxcclxuICAgICAgICAvL2VzcGVjaWZpY29cclxuICAgICAgICAvL3BsYW5vQ29udGFzOiB0aGlzLnBsYW5vQ29udGFzLFxyXG4gICAgICAgIHVybDogdGhpcy5pc0VtcHR5KHRoaXMudXJsVHJlZSkgPyB0aGlzLnVybCA6IHRoaXMudXJsVHJlZSxcclxuICAgICAgICBjYW1wb0xhYmVsOiB0aGlzLmNhbXBvRGlzcGxheSxcclxuICAgICAgICBjYW1wb0lkOiB0aGlzLmNhbXBvSWQsXHJcbiAgICAgICAgY2FtcG9QYWk6IHRoaXMuY2FtcG9QYWlJZFxyXG4gICAgICB9LFxyXG4gICAgICBjc3NDbGFzczogJ215LWN1c3RvbS1tb2RhbC1wZXNxdWlzYSdcclxuICAgIH0pO1xyXG5cclxuICAgIG1vZGFsLm9uRGlkRGlzbWlzcygpLnRoZW4oZGF0YSA9PiB7XHJcbiAgICAgIGxldCByZXN1bHQgPSBkYXRhWydkYXRhJ107XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcbiAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCAmJiByZXN1bHQuSWQgPiAwKSB7XHJcbiAgICAgICAgdGhpcy5jYXJyZWdhSXRlbUlkUGFyYUxpc3RhKHJlc3VsdC5JZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgbW9kYWwucHJlc2VudCgpO1xyXG5cclxuICB9XHJcblxyXG4gIGlzRW1wdHkodmFsb3I6IHN0cmluZyB8IGFueSkge1xyXG4gICAgcmV0dXJuIHZhbG9yID09IG51bGwgfHwgdmFsb3IgPT0gdW5kZWZpbmVkIHx8IHZhbG9yID09ICcnXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgc3R5bGU9XCJwYWRkaW5nLWlubGluZS1lbmQ6IDBweDtcIj5cclxuICAgIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIiBzdHlsZT1cIi0tYmFja2dyb3VuZDogaW5oZXJpdGVkOyAtLWJhY2tncm91bmQtZm9jdXNlZDogdHJhbnNwYXJlbnQ7IG1hcmdpbi10b3A6IDJweDtcIiBbY2xhc3NdPVwiaXRlbUNsYXNzXCI+XHJcbiAgICAgIDxpb24tbGFiZWwgcG9zaXRpb249XCJ7eyBsYWJlbFBvc2l0aW9uIH19XCI+e3sgbGFiZWwgfX08L2lvbi1sYWJlbD5cclxuICAgICAgPCEtLSBmb3JtQ29udHJvbE5hbWU9XCJ7eyBjYW1wbyB9fVwiICAtLT5cclxuICAgICAgPGlvbi1zcGlubmVyICpuZ0lmPVwiIXBvZGVQZXNxdWlzYXJcIlxyXG4gICAgICAgIHN0eWxlPVwiLS1taW4taGVpZ2h0OiAwcHggIWltcG9ydGFudDsgbWFyZ2luLWlubGluZS1lbmQ6IDVweCAhaW1wb3J0YW50OyBtYXJnaW4tdG9wOiAxNnB4O1wiIFxyXG4gICAgICAgIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJsaW5lc1wiPjwvaW9uLXNwaW5uZXI+XHJcbiAgICAgIDwhLS0gKGlvbkJsdXIpPVwidmVyaWZpY2FyUGVzcXVpc2EoKVwiIC0tPlxyXG4gICAgICA8IS0tIGNvbmZsaXRvIGNvbSBjbGljayBkYSBsaXN0YSAtLT5cclxuICAgICAgPGlvbi1pbnB1dCAjaW5wdXRQZXNxdWlzYVxyXG4gICAgICAgIFtsZWdhY3ldPVwidHJ1ZVwiXHJcbiAgICAgICAgdHlwZT1cInt7dHlwZX19XCIgXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgXHJcbiAgICAgICAgbWF4bGVuZ3RoPVwie3sgbWF4IH19XCIgXHJcbiAgICAgICAgKGlvbkJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJ0ZXh0b1Blc3F1aXNhXCIgKGlucHV0KT1cIndyaXRlUGVzcXVpc2EoaW5wdXRQZXNxdWlzYS52YWx1ZSlcIiBcclxuICAgICAgICAoa2V5dXApPVwic2hvd1Blc3F1aXNhKCRldmVudClcIlxyXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtzdHlsZS4tLWJhY2tncm91bmRdPVwiaW5wdXRCYWNrZ3JvdW5nQ29sb3JcIlxyXG4gICAgICAgIChjbGljayk9XCJkcm9wRG93blBlc3F1aXNhKC0xKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgZGVib3VuY2U9XCI1MDBcIj48L2lvbi1pbnB1dD5cclxuICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgc2xvdD1cImVuZFwiIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgICAgIGNsYXNzPVwiYm90YW8tbGltcGFyXCIgZmlsbD1cImNsZWFyXCIgY29sb3I9XCJtZWRpdW1cIlxyXG4gICAgICAgIChjbGljayk9XCJsaW1wYXJDbGljaygpXCI+XHJcbiAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gIFxyXG4gICAgICBcclxuICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgc2xvdD1cImVuZFwiIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgICAgIGNsYXNzPVwiYm90YW8tbGltcGFyXCIgZmlsbD1cImNsZWFyXCIgY29sb3I9XCJtZWRpdW1cIlxyXG4gICAgICAgIChjbGljayk9XCJwZXNxdWlzYXJDbGljaygpXCI+XHJcbiAgICAgICAgPGlvbi1pY29uIGNvbG9yPVwicHJpbWFyeVwiIG5hbWU9XCJzZWFyY2hcIj48L2lvbi1pY29uPlxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgIDwvaW9uLWl0ZW0+XHJcbiAgXHJcbiAgICA8aW9uLWxpc3QgdGFiaW5kZXg9XCItMVwiIFtoaWRkZW5dPVwiIXNlbGVjdEVsZW1lbnRWaXNpdmVsIHx8ICFsaXN0YVBlc3F1aXNhIHx8IGxpc3RhUGVzcXVpc2EubGVuZ3RoID09IDBcIiBjbGFzcz1cInBlc3F1aXNhLWxpc3RcIiBzdHlsZT1cIm1heC1oZWlnaHQ6IDI1MHB4OyBvdmVyZmxvdy15OiBhdXRvO1wiPlxyXG4gICAgICBcclxuICAgICAgPGlvbi1pdGVtIHRhYmluZGV4PVwiLTFcIiBidXR0b24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGlzdGFQZXNxdWlzYVwiIFxyXG4gICAgICAoY2xpY2spPVwic2VsZWNpb25hckNvbWJvQ2xpY2soaXRlbSlcIiBbaWRdPVwic2VsZWN0SWQgKyAnSW9uSXRlbScgKyBpdGVtWydJbmRleCddXCJcclxuICAgICAgICBjbGFzcz1cInBlc3F1aXNhLWl0ZW1cIj5cclxuICAgICAgICA8IS0tIHt7IGl0ZW0gfCBqc29ufX0gLS0+XHJcbiAgICAgICAgPHNwYW4gW2NsYXNzXT1cInsnc2VsZWN0ZWQtaXRlbSc6IGl0ZW1bJ1NlbGVjdGVkJ10gPT09IHRydWV9XCIgW2lubmVySFRNTF09XCJoaWdobGlnaHQoaXRlbVtjYW1wb0Rpc3BsYXldKVwiPjwvc3Bhbj5cclxuICAgICAgPC9pb24taXRlbT5cclxuICBcclxuICAgIDwvaW9uLWxpc3Q+XHJcbiAgXHJcbiAgICA8IS0tXHJcbiAgICA8aW9uLXNlbGVjdCBpbnRlcmZhY2U9XCJwb3BvdmVyXCIgI3NlbGVjdEVsZW1lbnQgdGFiaW5kZXg9XCItMVwiIFtoaWRkZW5dPVwiIXNlbGVjdEVsZW1lbnRWaXNpdmVsXCJcclxuICAgICAgKGlvbkNoYW5nZSk9XCJzZWxlY2lvbmFyQ29tYm9DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSlcIj5cclxuICAgICAgPGlvbi1zZWxlY3Qtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpc3RhUGVzcXVpc2FcIiBbdmFsdWVdPVwiaXRlbVtjYW1wb0lkXVwiIChjbGljayk9XCJzZWxlY2lvbmFyQ29tYm9DbGljayhpdGVtW2NhbXBvSWRdKVwiPlxyXG4gICAgICAgIHt7IGl0ZW1bY2FtcG9EaXNwbGF5XSB9fVxyXG4gICAgICA8L2lvbi1zZWxlY3Qtb3B0aW9uPlxyXG4gICAgPC9pb24tc2VsZWN0PlxyXG4gICAgLS0+XHJcbiAgXHJcbiAgICA8IS0tXHJcbiAgICA8c2VsZWN0IFtpZF09XCJzZWxlY3RJZFwiICNzZWxlY3RFbGVtZW50IHRhYmluZGV4PVwiLTFcIiBbaGlkZGVuXT1cIiFzZWxlY3RFbGVtZW50VmlzaXZlbFwiXHJcbiAgICAgIChjaGFuZ2UpPVwic2VsZWNpb25hckNvbWJvQ2hhbmdlKCRldmVudC50YXJnZXQudmFsdWUpXCIgY2xhc3M9XCJwZXNxdWlzYS1zZWxlY3RcIj5cclxuICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0YVBlc3F1aXNhXCIgW3ZhbHVlXT1cIml0ZW1bY2FtcG9JZF1cIiAoY2xpY2spPVwic2VsZWNpb25hckNvbWJvQ2xpY2soaXRlbVtjYW1wb0lkXSlcIj5cclxuICAgICAgICB7eyBpdGVtW2NhbXBvRGlzcGxheV0gfX1cclxuICAgICAgPC9vcHRpb24+XHJcbiAgXHJcbiAgICA8L3NlbGVjdD5cclxuICAgIC0tPlxyXG4gIFxyXG4gICAgPGRpdiBjbGFzcz1cInZhbGlkYXRpb24tZXJyb3JzXCIgKm5nSWY9XCJmb3JtXCI+XHJcbiAgXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvbl9tZXNzYWdlc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcclxuICAgICAgICAgICpuZ0lmPVwiZm9ybS5nZXQoZm9ybUNvbnRyb2xOYW1lKT8uaGFzRXJyb3IodmFsaWRhdGlvbi50eXBlKSAmJiAoZm9ybS5nZXQoZm9ybUNvbnRyb2xOYW1lKT8uZGlydHkgfHwgZm9ybS5nZXQoZm9ybUNvbnRyb2xOYW1lKT8udG91Y2hlZClcIj5cclxuICAgICAgICAgICYjODIyNjsge3sgdmFsaWRhdGlvbi5tZXNzYWdlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gIFxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+Il19
557
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGVzcXVpc2EuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvaW5wdXQtcGVzcXVpc2EvaW5wdXQtcGVzcXVpc2EuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvaW5wdXQtcGVzcXVpc2EvaW5wdXQtcGVzcXVpc2EuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsT0FBTyxFQUFnQixFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7QUFFcEYsZ0ZBQWdGO0FBWWhGLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxrQkFBa0I7SUE0QzVELFVBQVUsQ0FBQyxLQUFtQjtRQUM1QixvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZ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S0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIFByZWRpY2F0ZSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSW9uU2VsZWN0LCBNb2RhbENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZUlucHV0Q29tcG9uZW50JztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgTW9kZWxUcmVldmlld0NvbXBvbmVudCB9IGZyb20gJy4uL21vZGVsLXRyZWV2aWV3L21vZGVsLXRyZWV2aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpYkNvbmZpZyB9IGZyb20gJy4uL2xpYi1jb25maWcnO1xyXG4vL2ltcG9ydCB7IExpYkNvbmZpZywgTGliQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2FwcHByb2plY3QtY29tcG9uZW50cy5tb2R1bGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrYi1pbnB1dC1wZXNxdWlzYScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXBlc3F1aXNhLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC1wZXNxdWlzYS5jb21wb25lbnQuc2NzcycsICcuLy4uL2Jhc2VDb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgdXNlRXhpc3Rpbmc6IElucHV0UGVzcXVpc2FDb21wb25lbnQsXHJcbiAgICBtdWx0aTogdHJ1ZVxyXG4gIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dFBlc3F1aXNhQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIHBvZGVQZXNxdWlzYXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHRleHRvUGVzcXVpc2E6IHN0cmluZyA9ICcnO1xyXG4gIHNlbGVjdEVsZW1lbnRWaXNpdmVsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbGlzdGFQZXNxdWlzYTogYW55W10gPSBbXTtcclxuICBzZWxlY3RlZEl0ZW06IGFueTtcclxuICBASW5wdXQoKSBvdmVycmlkZSBtYXg6IHN0cmluZyA9ICczMCc7XHJcbiAgcHJpdmF0ZSBwZXNxdWlzYVN1YmplY3Q6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIEBJbnB1dCgpIGZpbHRlckZ1bmN0aW9uOiBQcmVkaWNhdGU8YW55PiB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHNlbGVjdElkOiBzdHJpbmcgPSAnc2VsZWN0RWxlbWVudCc7XHJcbiAgQElucHV0KCkgY2FtcG9JZDogc3RyaW5nID0gJ0lkJztcclxuICBASW5wdXQoKSBjYW1wb1BhaUlkOiBzdHJpbmcgPSAnUGFpSWQnO1xyXG4gIEBJbnB1dCgpIGNhbXBvRGlzcGxheTogc3RyaW5nID0gJ0Rlc2NyaWNhbyc7XHJcbiAgQElucHV0KCkgdGlwbzogc3RyaW5nID0gJyc7XHJcbiAgLy9AVmlld0NoaWxkKCdzZWxlY3RFbGVtZW50JywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSkgc2VsZWN0RWxlbWVudDtcclxuICBAVmlld0NoaWxkKCdzZWxlY3RFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHNlbGVjdEVsZW1lbnQ6IElvblNlbGVjdCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKSBwZXNxdWlzYUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBwZXNxdWlzYUFjdGlvbj86IEZ1bmN0aW9uO1xyXG4gIEBJbnB1dCgpIGxpbXBhcj86IEZ1bmN0aW9uO1xyXG4gIC8vcGFyYW1ldHJvcyBwYXJhIGNoYW1hZGEgQVBJXHJcbiAgLy9lbmRwb2ludCBwYXJhIHBlc3F1aXNhIHBvciBkaWdpdGHDp8Ojb1xyXG4gIEBJbnB1dCgpIHVybDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdXJsSXRlbTogc3RyaW5nID0gJyc7XHJcbiAgLy9lbmRwb2ludCBwYXJhIG1vbnRhciBhIGFydm9yZSwgc2UgZXN0aXZlciB2YXppYSBzZXLDoSB1c2FkbyBvIGNhbXBvICd1cmwnXHJcbiAgQElucHV0KCkgdXJsVHJlZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgZW1wcmVzYTogbnVtYmVyID0gMDtcclxuICBASW5wdXQoKSBsb2FkSW5pdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRyZWVUaXR1bG86IHN0cmluZztcclxuXHJcbiAgLy9wbGFub0NvbnRhczogbnVtYmVyO1xyXG5cclxuICAvL2NvbnRyb2wgdmFsdWUgYWNlc3NvclxyXG4gIHB1YmxpYyBkYXRhOiBudW1iZXIgfCBhbnk7XHJcbiAgcHJpdmF0ZSBvbkNoYW5nZTogRnVuY3Rpb24gPSAoZGF0YTogbnVtYmVyKSA9PiB7IH07XHJcbiAgcHJpdmF0ZSBvblRvdWNoOiBGdW5jdGlvbiA9ICgpID0+IHsgfTtcclxuICBwcml2YXRlIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGNvbnNvbGUgPSBjb25zb2xlO1xyXG5cclxuICBtb2RlbENoYW5nZWQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBtb2RlbENoYW5nZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgYW55KTogdm9pZCB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCd3cml0ZSB2YWx1ZScsIHZhbHVlKTtcclxuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG4gICAgdGhpcy5kYXRhID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PSAwKSB7XHJcbiAgICAgIHRoaXMud3JpdGVQZXNxdWlzYSgnJyk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmxvYWRJbml0ID09IHRydWUpIHtcclxuICAgICAgICB0aGlzLmxvYWRJbml0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tb2RlbENoYW5nZWQubmV4dCh2YWx1ZSk7XHJcbiAgICAgICAgLy90aGlzLmNhcnJlZ2FJdGVtSWRQYXJhTGlzdGEodmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vY29uc29sZS5sb2codGhpcy5zZWxlY3RlZEl0ZW0pO1xyXG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZEl0ZW0gfHwgKHRoaXMuc2VsZWN0ZWRJdGVtICYmIHRoaXMuc2VsZWN0ZWRJdGVtW3RoaXMuY2FtcG9JZF0gIT0gdmFsdWUpKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnSWQgZGlmZXJlbnRlJyk7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlZC5uZXh0KHZhbHVlKTtcclxuICAgICAgICAgIC8vdGhpcy5jYXJyZWdhSXRlbUlkUGFyYUxpc3RhKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBCQVNFX0FQSSA9IHRoaXMuY29uZmlnLmFwaVVybDtcclxuXHJcbiAgY29uc3RydWN0b3IoQEluamVjdCgnTGliQ29uZmlnU2VydmljZScpIHByaXZhdGUgY29uZmlnOiBMaWJDb25maWcsXHJcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIG1vZGFsQ3RybDogTW9kYWxDb250cm9sbGVyKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIHRoaXMubW9kZWxDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLm1vZGVsQ2hhbmdlZFxyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTAwKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgdGhpcy5jYXJyZWdhSXRlbUlkUGFyYUxpc3RhKGRhdGEpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQmx1cihldmVudDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygnYmx1cicsIGV2ZW50KTtcclxuICAgIC8vY29uc29sZS5sb2coZXZlbnQuZGV0YWlsLnJlbGF0ZWRUYXJnZXQpO1xyXG4gICAgaWYgKGV2ZW50LmRldGFpbC5yZWxhdGVkVGFyZ2V0ID09IG51bGwgfHwgZXZlbnQuZGV0YWlsLnJlbGF0ZWRUYXJnZXQuaWQuaW5kZXhPZih0aGlzLnNlbGVjdElkICsgJ0lvbkl0ZW0nKSA9PSAtMSkge1xyXG4gICAgICAvL2NvbnNvbGUubG9nKFwidHJ1ZVwiLCBldmVudC5kZXRhaWwucmVsYXRlZFRhcmdldC5pZCk7XHJcbiAgICAgIC8vcGVzcXVpc2FyIGl0ZW0gbmEgbGlzdGFcclxuICAgICAgaWYgKCF0aGlzLmV4aXN0ZU5hTGlzdGFUZXh0byh0aGlzLnRleHRvUGVzcXVpc2EsIHRydWUpKSB7XHJcbiAgICAgICAgdGhpcy5saW1wYXJDbGljaygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmRyb3BEb3duUGVzcXVpc2EoMCk7XHJcbiAgICAgIGlmICh0aGlzLmZvcm0pIHtcclxuICAgICAgICB0aGlzLmZvcm0uZ2V0KHRoaXMuZm9ybUNvbnRyb2xOYW1lKT8ubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcclxuICAgIC8vdHJhdGFyIHVybHNcclxuICAgIHRoaXMudXJsID0gdGhpcy51cmwuc3RhcnRzV2l0aCgnaHR0cCcpID8gdGhpcy51cmwgOiBgJHt0aGlzLkJBU0VfQVBJfS8ke3RoaXMudXJsfWA7XHJcbiAgICB0aGlzLnVybEl0ZW0gPSB0aGlzLnVybEl0ZW0uc3RhcnRzV2l0aCgnaHR0cCcpID8gdGhpcy51cmxJdGVtIDogYCR7dGhpcy5CQVNFX0FQSX0vJHt0aGlzLnVybEl0ZW19YDtcclxuXHJcbiAgICB0aGlzLnBlc3F1aXNhU3ViamVjdC5waXBlKHN3aXRjaE1hcCgodXJsKSA9PiB7XHJcbiAgICAgIC8vdGhpcy5jb25zb2xlLmxvZygnc3ViamVjdCB1cmw6JywgdXJsKTsgICAgICBcclxuICAgICAgaWYgKCF0aGlzLmlzRW1wdHkodXJsKSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybCk7XHJcbiAgICAgICAgLy9yZXR1cm4gb2YodXJsKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIG9mKFtdKTtcclxuICAgIH0pKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgIC8vdGhpcy5saXN0YVBlc3F1aXNhID0gcmVzdWx0O1xyXG4gICAgICAgICAgdGhpcy5jb25zb2xlLmxvZygnc3ViamVjdCBzdWJzY3JpYmUgcmVzdWx0OicsIHJlc3VsdCk7XHJcbiAgICAgICAgICB0aGlzLmxpc3RhUGVzcXVpc2EgPSBbXTtcclxuXHJcbiAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlckZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmZpbHRlcih0aGlzLmZpbHRlckZ1bmN0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVzdWx0LmZvckVhY2goKGVudDogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5saXN0YVBlc3F1aXNhLnB1c2goeyAuLi5lbnQsIEluZGV4OiBpbmRleCwgU2VsZWN0ZWQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLnBvZGVQZXNxdWlzYXIgPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKHRoaXMubGlzdGFQZXNxdWlzYS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZHJvcERvd25QZXNxdWlzYSh0aGlzLmxpc3RhUGVzcXVpc2EubGVuZ3RoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLCBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBvZGVQZXNxdWlzYXIgPSB0cnVlO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ2Vycm8gcGVzcXVpc2EnLCBlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHdyaXRlUGVzcXVpc2EodmFsdWU6IHN0cmluZyB8IGFueSk6IHZvaWQge1xyXG4gICAgLy9jb25zb2xlLmxvZygnd3JpdGUgcGVzcXVpc2EnLCB2YWx1ZSk7XHJcbiAgICB0aGlzLnRleHRvUGVzcXVpc2EgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHNob3dQZXNxdWlzYShlOiBhbnkpOiB2b2lkIHtcclxuICAgIC8vY29uc29sZS5sb2coJ3Nob3cgcGVzcXVpc2EnLCBlLmtleUNvZGUpO1xyXG4gICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgY29uc3QgaW5kZXggPSBlLnRhcmdldC5zZWxlY3Rpb25TdGFydCA+PSAxID8gKGUudGFyZ2V0LnNlbGVjdGlvblN0YXJ0IC0gMSkgOiAwO1xyXG4gICAgLy9jb25zb2xlLmxvZyhpbmRleCwgJ3ZhbG9yICcsIGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NoYXIgJywgZXZlbnQudGFyZ2V0LnZhbHVlLmNoYXJDb2RlQXQoaW5kZXgpKTtcclxuICAgIGNvbnN0IGtleUF0ID0gZS50YXJnZXQudmFsdWUuY2hhckNvZGVBdChpbmRleCk7XHJcbiAgICAvKlxyXG4gICAgaWYgKChlLmtleUNvZGUgPj0gNDggJiYgZS5rZXlDb2RlIDw9IDU3KSB8fFxyXG4gICAgICAoa2V5QXQgPj0gNDggJiYga2V5QXQgPD0gNTcpIHx8XHJcbiAgICAgIChlLmtleUNvZGUgPj0gNjUgJiYgZS5rZXlDb2RlIDw9IDkwKSB8fFxyXG4gICAgICAoZS5rZXlDb2RlID49IDk2ICYmIGUua2V5Q29kZSA8PSAxMDUpIHx8XHJcbiAgICAgIChlLmtleUNvZGUgPT0gOCkpIHtcclxuICAgICAgICAqL1xyXG4gICAgaWYgKGUua2V5Q29kZSAhPSA0MCAmJiBlLmtleUNvZGUgIT0gMzgpIHtcclxuICAgICAgaWYgKCFzZWxmLnBvZGVQZXNxdWlzYXIpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGZpbHRybyA9IHNlbGYudGV4dG9QZXNxdWlzYTtcclxuICAgICAgaWYgKGZpbHRybyAhPSBudWxsICYmIGZpbHRybyAhPSAnJyAmJiBmaWx0cm8ubGVuZ3RoID49IDIpIHtcclxuICAgICAgICBzZWxmLnBlc3F1aXNhckVudGlkYWRlKGZpbHRybyk7XHJcblxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChlLmtleUNvZGUgPT0gOCAmJiAhZmlsdHJvKSB7XHJcbiAgICAgICAgICB0aGlzLmxpbXBhckNsaWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmIChlLmtleUNvZGUgPT0gNDAgfHwgZS5rZXlDb2RlID09IDM4KSB7XHJcbiAgICAgICAgc2VsZi5kcm9wRG93blBlc3F1aXNhKHNlbGYubGlzdGFQZXNxdWlzYS5sZW5ndGgpO1xyXG4gICAgICAgIGlmIChzZWxmLnNlbGVjdEVsZW1lbnRWaXNpdmVsID09IHRydWUpIHtcclxuICAgICAgICAgIC8vbGV0IHNlbGVjdCA9IHNlbGYuc2VsZWN0RWxlbWVudDsgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWxmLlRlbXBsYXRlU2VsZWN0MUlkKCkpO1xyXG5cclxuICAgICAgICAgIC8vaW9uLWxpc3RcclxuICAgICAgICAgIC8vc2VsZWNpb25hZG9cclxuICAgICAgICAgIC8vY29uc29sZS5sb2coc2VsZi5saXN0YVBlc3F1aXNhKTtcclxuICAgICAgICAgIGxldCBpbmMgPSBlLmtleUNvZGUgPT0gNDAgPyAxIDogLTE7XHJcbiAgICAgICAgICBsZXQgc2VsZWN0ZWQgPSBzZWxmLmxpc3RhUGVzcXVpc2EuZmluZChzID0+IHNbJ1NlbGVjdGVkJ10gPT09IHRydWUpO1xyXG4gICAgICAgICAgbGV0IGN1ciA9IDA7XHJcbiAgICAgICAgICBpZiAoc2VsZWN0ZWQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjdXIgPSBzZWxlY3RlZFsnSW5kZXgnXTtcclxuICAgICAgICAgICAgLy9kZXNtYXJjYXIgbyBhdHVhbFxyXG4gICAgICAgICAgICBzZWxlY3RlZFsnU2VsZWN0ZWQnXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjdXIgPSBjdXIgKyBpbmM7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjdXIgPSAwO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChjdXIgPCAwKSB7XHJcbiAgICAgICAgICAgIGN1ciA9IHNlbGYubGlzdGFQZXNxdWlzYS5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChjdXIgPj0gc2VsZi5saXN0YVBlc3F1aXNhLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBjdXIgPSAwO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGxldCBub3ZvU2VsZWN0ZWQgPSBzZWxmLmxpc3RhUGVzcXVpc2EuZmluZChuID0+IG5bJ0luZGV4J10gPT09IGN1cik7XHJcbiAgICAgICAgICBpZiAobm92b1NlbGVjdGVkICE9IG51bGwpIHtcclxuICAgICAgICAgICAgbm92b1NlbGVjdGVkWydTZWxlY3RlZCddID0gdHJ1ZTtcclxuICAgICAgICAgICAgc2VsZi5zZWxlY3RlZEl0ZW0gPSBub3ZvU2VsZWN0ZWQ7XHJcbiAgICAgICAgICAgIHNlbGYudGV4dG9QZXNxdWlzYSA9IG5vdm9TZWxlY3RlZFtzZWxmLmNhbXBvRGlzcGxheV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvKlxyXG4gICAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuc2VsZWN0SWQpIGFzIGFueTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdzZWxlY3QgRWxlbWVudCcsIHNlbGVjdClcclxuICAgICAgICAgIGlmIChzZWxlY3QgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBsZXQgaW5jID0gZS5rZXlDb2RlID09IDQwID8gMSA6IC0xO1xyXG4gICAgICAgICAgICBsZXQgY3VyID0gc2VsZWN0LnNlbGVjdGVkSW5kZXg7XHJcbiAgICAgICAgICAgIGlmIChjdXIgPT0gTmFOKSBjdXIgPSAtMTtcclxuICAgICAgICAgICAgc2VsZWN0LnNlbGVjdGVkSW5kZXggPSBjdXIgKyBpbmM7XHJcbiAgICAgICAgICAgIGlmIChzZWxlY3Quc2VsZWN0ZWRJbmRleCA+PSAwICYmIHNlbGVjdC5zZWxlY3RlZEluZGV4IDwgc2VsZi5saXN0YVBlc3F1aXNhLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIHNlbGYuc2VsZWN0ZWRJdGVtID0gc2VsZi5saXN0YVBlc3F1aXNhW3NlbGVjdC5zZWxlY3RlZEluZGV4XTtcclxuICAgICAgICAgICAgICBpZiAoc2VsZi5zZWxlY3RlZEl0ZW0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgc2VsZi50ZXh0b1Blc3F1aXNhID0gc2VsZi5zZWxlY3RlZEl0ZW1bc2VsZi5jYW1wb0Rpc3BsYXldO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgKi9cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9IGVsc2VcclxuICAgICAgICBpZiAoZS5rZXlDb2RlID09IDEzKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnZW50ZXIga2V5JywgZSlcclxuICAgICAgICAgIC8vc2VsZi5zZWxlY2lvbmFyQ29tYm9DbGljayhlKTtcclxuICAgICAgICAgIHNlbGYuc2VsZWNpb25hckNvbWJvQ2xpY2sobnVsbCk7XHJcbiAgICAgICAgICAvL3JldHVybiBmYWxzZTtcclxuICAgICAgICB9IGVsc2UgaWYgKGUua2V5Q29kZSA9PSAyNykge1xyXG4gICAgICAgICAgLy9FU0NcclxuICAgICAgICAgIHNlbGYuZHJvcERvd25QZXNxdWlzYSgwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgaGlnaGxpZ2h0KHRleHRvOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IGluZGV4ID0gdGV4dG8udG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMudGV4dG9QZXNxdWlzYS50b0xvd2VyQ2FzZSgpKTtcclxuICAgIC8vY29uc29sZS5sb2coaW5kZXgpO1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgcmV0dXJuIHRleHRvLnN1YnN0cmluZygwLCBpbmRleCkgKyAnPHN0cm9uZz4nICsgdGV4dG8uc3Vic3RyaW5nKGluZGV4LCBpbmRleCArIHRoaXMudGV4dG9QZXNxdWlzYS5sZW5ndGgpICsgJzwvc3Ryb25nPicgKyB0ZXh0by5zdWJzdHJpbmcoaW5kZXggKyB0aGlzLnRleHRvUGVzcXVpc2EubGVuZ3RoKTsgIC8vdGV4dG8ucmVwbGFjZSh0aGlzLnRleHRvUGVzcXVpc2EsIGA8c3Ryb25nPiR7dGhpcy50ZXh0b1Blc3F1aXNhfTwvc3Ryb25nPmApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRleHRvO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWNpb25hckNvbWJvQ2xpY2soaXRlbTogYW55KSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhpdGVtKTtcclxuICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgIC8vIGNvbnNvbGUubG9nKCdjb21ibyBjbGljaycsIHNlbGYpO1xyXG5cclxuICAgIC8qXHJcbiAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5zZWxlY3RJZCkgYXMgYW55O1xyXG4gICAgaWYgKHNlbGVjdC5zZWxlY3RlZEluZGV4ID49IDApIHtcclxuICAgICAgc2VsZi5zZWxlY3RlZEl0ZW0gPSBzZWxmLmxpc3RhUGVzcXVpc2Fbc2VsZWN0LnNlbGVjdGVkSW5kZXhdO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coJ3NlbGVjdGVkJywgdGhpcy5zZWxlY3RlZEl0ZW0pO1xyXG4gICAgLy9zZWxmLnNlbGVjdGVkSXRlbSA9IHRoaXMubGlzdGFQZXNxdWlzYS5maW5kKGkgPT4gaVt0aGlzLmNhbXBvSWRdID09IGUpO1xyXG4gICAgaWYgKHNlbGYuc2VsZWN0ZWRJdGVtICE9IG51bGwpIHtcclxuICAgICAgc2VsZi50ZXh0b1Blc3F1aXNhID0gc2VsZi5zZWxlY3RlZEl0ZW1bc2VsZi5jYW1wb0Rpc3BsYXldO1xyXG4gICAgICBzZWxmLndyaXRlVmFsdWUoc2VsZi5zZWxlY3RlZEl0ZW1bc2VsZi5jYW1wb0lkXSk7XHJcbiAgICAgIGlmIChlICE9IG51bGwpIHtcclxuICAgICAgICBzZWxmLnNlbGVjdEVsZW1lbnRWaXNpdmVsID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHNlbGYuYWN0aW9uICE9IG51bGwpIHtcclxuICAgICAgICAgIHNlbGYuYWN0aW9uKHNlbGYuc2VsZWN0ZWRJdGVtKCksIGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHNlbGYuc2VsZWN0RWxlbWVudFZpc2l2ZWwgPSBmYWxzZTtcclxuICAgIH1cclxuICAgICovXHJcbiAgICAvLyBwZXNxdWlzYXIgc2VsZWNpb25hZG9cclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMubGlzdGFQZXNxdWlzYSk7XHJcbiAgICBsZXQgc2VsZWN0ZWQgPSB0aGlzLmxpc3RhUGVzcXVpc2EuZmluZChzID0+IHNbJ1NlbGVjdGVkJ10gPT09IHRydWUpO1xyXG5cclxuICAgIC8vIGlmICghc2VsZWN0ZWQpIHtcclxuICAgIC8vICAgY29uc29sZS5sb2codGhpcy5jYW1wb0lkLCBpdGVtKTtcclxuICAgIC8vICAgc2VsZWN0ZWQgPSB0aGlzLmxpc3RhUGVzcXVpc2EuZmlsdGVyKCBzID0+IHNbdGhpcy5jYW1wb0lkXSA9PSBpdGVtW3RoaXMuY2FtcG9JZF0pO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vc2UgbyBpdGVtIGZvcm0gcGFzc2FkbyBjb21vIHBhcmFtZXRybyAoY2xpY2sgbm8gaW9uLWl0ZW0pXHJcbiAgICBpZiAoaXRlbSAhPSBudWxsKSB7XHJcbiAgICAgIGlmIChzZWxlY3RlZCAhPSBudWxsKSB7XHJcbiAgICAgICAgc2VsZWN0ZWRbJ1NlbGVjdGVkJ10gPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpdGVtWydTZWxlY3RlZCddID0gdHJ1ZTtcclxuICAgICAgc2VsZWN0ZWQgPSBpdGVtO1xyXG4gICAgfVxyXG4gICAgaWYgKHNlbGVjdGVkICE9IG51bGwpIHtcclxuICAgICAgc2VsZi5zZWxlY3RlZEl0ZW0gPSBzZWxlY3RlZDtcclxuICAgICAgc2VsZi50ZXh0b1Blc3F1aXNhID0gc2VsZWN0ZWRbc2VsZi5jYW1wb0Rpc3BsYXldO1xyXG4gICAgICBzZWxmLndyaXRlVmFsdWUoc2VsZWN0ZWRbc2VsZi5jYW1wb0lkXSk7XHJcbiAgICAgIHNlbGYuc2VsZWN0RWxlbWVudFZpc2l2ZWwgPSBmYWxzZTtcclxuICAgICAgLy9jb25zb2xlLmxvZygnYWN0aW9uJywgc2VsZi5jaGFuZ2UpO1xyXG4gICAgICBpZiAoc2VsZi5wZXNxdWlzYUNoYW5nZSAhPSBudWxsKSB7XHJcbiAgICAgICAgc2VsZi5wZXNxdWlzYUNoYW5nZS5lbWl0KHNlbGYuc2VsZWN0ZWRJdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2VsZi5zZWxlY3RFbGVtZW50VmlzaXZlbCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5saXN0YVBlc3F1aXNhLmZvckVhY2goIHBlc3F1aXNhID0+IHtcclxuICAgIC8vICAgY29uc29sZS5sb2cocGVzcXVpc2EsIHNlbGYuZGF0YSk7XHJcbiAgICAvLyB9ICk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnRleHRvUGVzcXVpc2EpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWNpb25hckNvbWJvQ2hhbmdlKGU6IGFueSkge1xyXG4gICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgY29uc29sZS5sb2coJ2NvbWJvIGNoYW5nZScsIGUpO1xyXG4gICAgc2VsZi5zZWxlY3RlZEl0ZW0gPSB0aGlzLmxpc3RhUGVzcXVpc2EuZmluZChpID0+IGlbdGhpcy5jYW1wb0lkXSA9PSBlKTtcclxuICAgIGlmIChzZWxmLnNlbGVjdGVkSXRlbSAhPSBudWxsKSB7XHJcbiAgICAgIHNlbGYud3JpdGVWYWx1ZShlKTtcclxuICAgICAgc2VsZi50ZXh0b1Blc3F1aXNhID0gc2VsZi5zZWxlY3RlZEl0ZW1bc2VsZi5jYW1wb0Rpc3BsYXldO1xyXG4gICAgICBpZiAoZSAhPSBudWxsKSB7XHJcbiAgICAgICAgc2VsZi5zZWxlY3RFbGVtZW50VmlzaXZlbCA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChzZWxmLnBlc3F1aXNhQ2hhbmdlICE9IG51bGwpIHtcclxuICAgICAgICAgIHNlbGYucGVzcXVpc2FDaGFuZ2UuZW1pdChzZWxmLnNlbGVjdGVkSXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgc2VsZi5zZWxlY3RFbGVtZW50VmlzaXZlbCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZHJvcERvd25QZXNxdWlzYShsZW5ndGg6IG51bWJlcikge1xyXG4gICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgaWYgKHNlbGYubGlzdGFQZXNxdWlzYSAhPSBudWxsICYmIHNlbGYubGlzdGFQZXNxdWlzYS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmIChsZW5ndGggPT0gLTEpIHtcclxuICAgICAgICBsZW5ndGggPSBzZWxmLmxpc3RhUGVzcXVpc2EubGVuZ3RoO1xyXG4gICAgICB9XHJcbiAgICAgIHNlbGYuc2VsZWN0RWxlbWVudFZpc2l2ZWwgPSBsZW5ndGggPT0gMCA/IGZhbHNlIDogdHJ1ZTtcclxuXHJcbiAgICAgIC8vY29uc29sZS5sb2codGhpcy5zZWxlY3RFbGVtZW50KTtcclxuICAgICAgLy90aGlzLnNlbGVjdEVsZW1lbnQub3BlbigpO1xyXG5cclxuICAgICAgLypcclxuICAgICAgLy9sZXQgZWxlbWVudCA9IHRoaXMuc2VsZWN0RWxlbWVudDtcclxuICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnNlbGVjdElkKTtcclxuICAgICAgY29uc29sZS5sb2coJ2Ryb3BEb3duJywgZWxlbWVudCk7XHJcbiAgICAgIChlbGVtZW50IGFzIGFueSkuc2l6ZSA9IGxlbmd0aCArIDE7XHJcbiAgICAgIGlmIChsZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHNlbGYuc2VsZWN0RWxlbWVudFZpc2l2ZWwgPSBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzZWxmLnNlbGVjdEVsZW1lbnRWaXNpdmVsID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICAqL1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcGVzcXVpc2FyRW50aWRhZGUoZmlsdHJvOiBzdHJpbmcpIHtcclxuICAgIGxldCB1cmwgPSB0aGlzLnVybC5yZXBsYWNlKCc8PEZJTFRSTz4+JywgZmlsdHJvKS5yZXBsYWNlKCc8PEVNUFJFU0E+PicsIHRoaXMuZW1wcmVzYS50b1N0cmluZygpKTtcclxuICAgIGNvbnNvbGUubG9nKCdwZXNxdWlzYXJFbnRpZGFkZSB1cmwnLCB1cmwpO1xyXG4gICAgdGhpcy5wb2RlUGVzcXVpc2FyID0gZmFsc2U7XHJcbiAgICB0aGlzLnBlc3F1aXNhU3ViamVjdC5uZXh0KHVybCk7XHJcbiAgfVxyXG5cclxuICBwZXNxdWlzYXJFbnRpZGFkZU9sZChmaWx0cm86IHN0cmluZykge1xyXG4gICAgbGV0IHVybCA9IHRoaXMudXJsLnJlcGxhY2UoJzw8RklMVFJPPj4nLCBmaWx0cm8pLnJlcGxhY2UoJzw8RU1QUkVTQT4+JywgdGhpcy5lbXByZXNhLnRvU3RyaW5nKCkpO1xyXG4gICAgY29uc29sZS5sb2coJ3Blc3F1aXNhckVudGlkYWRlIHVybCcsIHVybCk7XHJcbiAgICB0aGlzLnBvZGVQZXNxdWlzYXIgPSBmYWxzZTtcclxuICAgIHRoaXMuaHR0cENsaWVudC5nZXQ8YW55Pih1cmwpXHJcbiAgICAgIC5zdWJzY3JpYmUoeyBuZXh0OiAocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAvL3RoaXMubGlzdGFQZXNxdWlzYSA9IHJlc3VsdDtcclxuICAgICAgICBpZiAodGhpcy5maWx0ZXJGdW5jdGlvbikge1xyXG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmZpbHRlcih0aGlzLmZpbHRlckZ1bmN0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5saXN0YVBlc3F1aXNhID0gW107XHJcbiAgICAgICAgcmVzdWx0LmZvckVhY2goKGVudDogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxpc3RhUGVzcXVpc2EucHVzaCh7IC4uLmVudCwgSW5kZXg6IGluZGV4LCBTZWxlY3RlZDogZmFsc2UgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMucG9kZVBlc3F1aXNhciA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMubGlzdGFQZXNxdWlzYS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLmRyb3BEb3duUGVzcXVpc2EodGhpcy5saXN0YVBlc3F1aXNhLmxlbmd0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCBlcnJvcjogZXJyb3IgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdlcnJvIHBlc3F1aXNhJywgZXJyb3IpO1xyXG4gICAgICAgIHRoaXMucG9kZVBlc3F1aXNhciA9IHRydWU7XHJcbiAgICAgIH19KTtcclxuICB9XHJcblxyXG4gIGV4aXN0ZU5hTGlzdGEoaWQ6IG51bWJlciwgc2V0UmVnaXN0cm86IGJvb2xlYW4gPSBmYWxzZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMubGlzdGFQZXNxdWlzYSAmJiB0aGlzLmxpc3RhUGVzcXVpc2EubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZXhpc3RlID0gdGhpcy5saXN0YVBlc3F1aXNhLmZpbmQobCA9PiBsW3RoaXMuY2FtcG9JZF0gPT09IGlkKTtcclxuICAgICAgaWYgKGV4aXN0ZSkge1xyXG4gICAgICAgIGlmIChzZXRSZWdpc3Rybykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBleGlzdGU7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjaW9uYXJDb21ib0NsaWNrKHRoaXMuc2VsZWN0ZWRJdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBleGlzdGVOYUxpc3RhVGV4dG8odGV4dG86IHN0cmluZywgc2V0UmVnaXN0cm86IGJvb2xlYW4gPSBmYWxzZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc29sZS5sb2coXCJleGlzdGUgdGV4dG86XCIsIHRleHRvLCB0aGlzLmNhbXBvRGlzcGxheSwgdGhpcy5saXN0YVBlc3F1aXNhKTtcclxuICAgIGlmICh0aGlzLmxpc3RhUGVzcXVpc2EgJiYgdGhpcy5saXN0YVBlc3F1aXNhLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGV4aXN0ZSA9IHRoaXMubGlzdGFQZXNxdWlzYS5maW5kKGwgPT4gbFt0aGlzLmNhbXBvRGlzcGxheV0udG9VcHBlckNhc2UoKSA9PT0gdGV4dG8udG9VcHBlckNhc2UoKSk7XHJcbiAgICAgIGlmIChleGlzdGUpIHtcclxuICAgICAgICBpZiAoc2V0UmVnaXN0cm8pIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gZXhpc3RlO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY2lvbmFyQ29tYm9DbGljayh0aGlzLnNlbGVjdGVkSXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhckl0ZW1TZWxlY2lvbmFkbyhzZXRhclJlZ2lzdHJvOiBib29sZWFuID0gZmFsc2UpOiBib29sZWFuIHtcclxuICAgIGNvbnNvbGUubG9nKCd2YWxpZGFyIHNlbGVjaW9uYWRvJyk7XHJcbiAgICAvL3Bhc3NhciBwZWxhIGZ1bsOnw6NvIGRlIGZpbHRyb1xyXG4gICAgbGV0IHZhbGlkbyA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtKSB7XHJcbiAgICAgIGlmICh0aGlzLmZpbHRlckZ1bmN0aW9uKSB7XHJcbiAgICAgICAgbGV0IGV4aXN0ZSA9IFt7IC4uLnRoaXMuc2VsZWN0ZWRJdGVtIH1dLmZpbHRlcih0aGlzLmZpbHRlckZ1bmN0aW9uKTtcclxuICAgICAgICBpZiAoZXhpc3RlICE9IG51bGwgJiYgZXhpc3RlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHZhbGlkbyA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHZhbGlkbyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHZhbGlkbyAmJiBzZXRhclJlZ2lzdHJvKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY2lvbmFyQ29tYm9DbGljayh0aGlzLnNlbGVjdGVkSXRlbSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB2YWxpZG87XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYXJyZWdhSXRlbUlkUGFyYUxpc3RhKGlkOiBudW1iZXIpIHtcclxuICAgIGxldCB1cmwgPSB0aGlzLnVybEl0ZW0ucmVwbGFjZSgnPDxJRD4+JywgaWQudG9TdHJpbmcoKSk7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnVybEl0ZW0pO1xyXG4gICAgY29uc29sZS5sb2coJ3Blc3F1aXNhciBJRCB1cmwnLCB1cmwpO1xyXG4gICAgdGhpcy5wb2RlUGVzcXVpc2FyID0gZmFsc2U7XHJcbiAgICB0aGlzLmh0dHBDbGllbnQuZ2V0PGFueT4odXJsKVxyXG4gICAgICAuc3Vic2NyaWJlKHsgbmV4dDogKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0YVBlc3F1aXNhID0gW107XHJcbiAgICAgICAgdGhpcy5saXN0YVBlc3F1aXNhLnB1c2goeyAuLi5yZXN1bHQsIEluZGV4OiAwLCBTZWxlY3RlZDogdHJ1ZSB9KTtcclxuICAgICAgICB0aGlzLnBvZGVQZXNxdWlzYXIgPSB0cnVlO1xyXG4gICAgICAgIGlmICh0aGlzLmxpc3RhUGVzcXVpc2EubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLmxpc3RhUGVzcXVpc2FbMF07XHJcbiAgICAgICAgICB0aGlzLnNlbGVjaW9uYXJDb21ib0NsaWNrKHRoaXMuc2VsZWN0ZWRJdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGVycm9yOiAgZXJyb3IgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdlcnJvIHBlc3F1aXNhJywgZXJyb3IpO1xyXG4gICAgICAgIHRoaXMucG9kZVBlc3F1aXNhciA9IHRydWU7XHJcbiAgICAgIH19KTtcclxuICB9XHJcblxyXG4gIGxpbXBhckNsaWNrKCkge1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy53cml0ZVBlc3F1aXNhKG51bGwpO1xyXG4gICAgdGhpcy5saXN0YVBlc3F1aXNhID0gW107XHJcbiAgICB0aGlzLmRyb3BEb3duUGVzcXVpc2EoMCk7XHJcbiAgICAvL3RoaXMucG9kZVBlc3F1aXNhciA9IHRydWU7XHJcbiAgICB0aGlzLnBlc3F1aXNhU3ViamVjdC5uZXh0KCcnKTtcclxuICAgIGlmICh0aGlzLmxpbXBhcikge1xyXG4gICAgICB0aGlzLmxpbXBhcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmVyaWZpY2FyUGVzcXVpc2EoKSB7XHJcbiAgICAvL1RPRE86IHZlcmlmaWNhciBzZSBvIHRleHRvIGNvcnJlc3BvbmRlIGNvbSB1bSBpdGVtIGRhIGxpc3RhXHJcbiAgICB0aGlzLnNlbGVjaW9uYXJDb21ib0NsaWNrKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcGVzcXVpc2FyQ2xpY2soKSB7XHJcbiAgICAvKlxyXG4gICAgaWYgKHRoaXMucGVzcXVpc2FBY3Rpb24gIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnBlc3F1aXNhQWN0aW9uKCk7XHJcbiAgICB9XHJcbiAgICAqL1xyXG4gICAgLy9wZXNxdWlzYUNhdGVnb3JpYVxyXG4gICAgY29uc29sZS5sb2codGhpcy5maWx0ZXJGdW5jdGlvbiwgdGhpcy51cmwsIHRoaXMudXJsVHJlZSk7XHJcblxyXG4gICAgY29uc3QgbW9kYWwgPSBhd2FpdCB0aGlzLm1vZGFsQ3RybC5jcmVhdGUoe1xyXG4gICAgICBjb21wb25lbnQ6IE1vZGVsVHJlZXZpZXdDb21wb25lbnQsXHJcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7XHJcbiAgICAgICAgLy9jYW1wb0lkOiB0aGlzLmNhbXBvSWQsXHJcbiAgICAgICAgLy9jYW1wb1BhaTogdGhpcy5jYW1wb1BhaUlkLFxyXG4gICAgICAgIC8vY2FtcG9MYWJlbDogdGhpcy5jYW1wb0Rpc3BsYXksXHJcbiAgICAgICAgdGV4dG9QZXNxdWlzYTogdGhpcy50ZXh0b1Blc3F1aXNhLFxyXG4gICAgICAgIGZpbHRlckZ1bmN0aW9uOiB0aGlzLmZpbHRlckZ1bmN0aW9uLFxyXG4gICAgICAgIGVtcHJlc2FTZWxlY2lvbmFkYUlkOiB0aGlzLmVtcHJlc2EsXHJcbiAgICAgICAgdGlwbzogdGhpcy50aXBvLFxyXG4gICAgICAgIC8vZXNwZWNpZmljb1xyXG4gICAgICAgIC8vcGxhbm9Db250YXM6IHRoaXMucGxhbm9Db250YXMsXHJcbiAgICAgICAgdXJsOiB0aGlzLmlzRW1wdHkodGhpcy51cmxUcmVlKSA/IHRoaXMudXJsIDogdGhpcy51cmxUcmVlLFxyXG4gICAgICAgIHRpdHVsbzogdGhpcy50cmVlVGl0dWxvLFxyXG4gICAgICAgIGNhbXBvTGFiZWw6IHRoaXMuY2FtcG9EaXNwbGF5LFxyXG4gICAgICAgIGNhbXBvSWQ6IHRoaXMuY2FtcG9JZCxcclxuICAgICAgICBjYW1wb1BhaTogdGhpcy5jYW1wb1BhaUlkXHJcbiAgICAgIH0sXHJcbiAgICAgIGNzc0NsYXNzOiAnbXktY3VzdG9tLW1vZGFsLXBlc3F1aXNhJ1xyXG4gICAgfSk7XHJcblxyXG4gICAgbW9kYWwub25EaWREaXNtaXNzKCkudGhlbihkYXRhID0+IHtcclxuICAgICAgbGV0IHJlc3VsdCA9IGRhdGFbJ2RhdGEnXTtcclxuICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcclxuICAgICAgaWYgKHJlc3VsdCAhPSBudWxsICYmIHJlc3VsdC5JZCA+IDApIHtcclxuICAgICAgICB0aGlzLmNhcnJlZ2FJdGVtSWRQYXJhTGlzdGEocmVzdWx0LklkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBtb2RhbC5wcmVzZW50KCk7XHJcblxyXG4gIH1cclxuXHJcbiAgaXNFbXB0eSh2YWxvcjogc3RyaW5nIHwgYW55KSB7XHJcbiAgICByZXR1cm4gdmFsb3IgPT0gbnVsbCB8fCB2YWxvciA9PSB1bmRlZmluZWQgfHwgdmFsb3IgPT0gJydcclxuICB9XHJcbn1cclxuIiwiPGRpdiBzdHlsZT1cInBhZGRpbmctaW5saW5lLWVuZDogMHB4O1wiPlxyXG4gICAgPGlvbi1pdGVtIGxpbmVzPVwibm9uZVwiIHN0eWxlPVwiLS1iYWNrZ3JvdW5kOiBpbmhlcml0ZWQ7IC0tYmFja2dyb3VuZC1mb2N1c2VkOiB0cmFuc3BhcmVudDsgbWFyZ2luLXRvcDogMnB4O1wiIFtjbGFzc109XCJpdGVtQ2xhc3NcIj5cclxuICAgICAgPGlvbi1sYWJlbCBwb3NpdGlvbj1cInt7IGxhYmVsUG9zaXRpb24gfX1cIj57eyBsYWJlbCB9fTwvaW9uLWxhYmVsPlxyXG4gICAgICA8IS0tIGZvcm1Db250cm9sTmFtZT1cInt7IGNhbXBvIH19XCIgIC0tPlxyXG4gICAgICA8aW9uLXNwaW5uZXIgKm5nSWY9XCIhcG9kZVBlc3F1aXNhclwiXHJcbiAgICAgICAgc3R5bGU9XCItLW1pbi1oZWlnaHQ6IDBweCAhaW1wb3J0YW50OyBtYXJnaW4taW5saW5lLWVuZDogNXB4ICFpbXBvcnRhbnQ7IG1hcmdpbi10b3A6IDE2cHg7XCIgXHJcbiAgICAgICAgc2xvdD1cInN0YXJ0XCIgbmFtZT1cImxpbmVzXCI+PC9pb24tc3Bpbm5lcj5cclxuICAgICAgPCEtLSAoaW9uQmx1cik9XCJ2ZXJpZmljYXJQZXNxdWlzYSgpXCIgLS0+XHJcbiAgICAgIDwhLS0gY29uZmxpdG8gY29tIGNsaWNrIGRhIGxpc3RhIC0tPlxyXG4gICAgICA8aW9uLWlucHV0ICNpbnB1dFBlc3F1aXNhXHJcbiAgICAgICAgW2xlZ2FjeV09XCJ0cnVlXCJcclxuICAgICAgICB0eXBlPVwie3t0eXBlfX1cIiBcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBcclxuICAgICAgICBtYXhsZW5ndGg9XCJ7eyBtYXggfX1cIiBcclxuICAgICAgICAoaW9uQmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICAgW3ZhbHVlXT1cInRleHRvUGVzcXVpc2FcIiAoaW5wdXQpPVwid3JpdGVQZXNxdWlzYShpbnB1dFBlc3F1aXNhLnZhbHVlKVwiIFxyXG4gICAgICAgIChrZXl1cCk9XCJzaG93UGVzcXVpc2EoJGV2ZW50KVwiXHJcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgW3N0eWxlLi0tYmFja2dyb3VuZF09XCJpbnB1dEJhY2tncm91bmdDb2xvclwiXHJcbiAgICAgICAgKGNsaWNrKT1cImRyb3BEb3duUGVzcXVpc2EoLTEpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiBkZWJvdW5jZT1cIjUwMFwiPjwvaW9uLWlucHV0PlxyXG4gICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiBzbG90PVwiZW5kXCIgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAgICAgY2xhc3M9XCJib3Rhby1saW1wYXJcIiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cIm1lZGl1bVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImxpbXBhckNsaWNrKClcIj5cclxuICAgICAgICA8aW9uLWljb24gbmFtZT1cImNsb3NlLW91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgXHJcbiAgICAgIFxyXG4gICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiBzbG90PVwiZW5kXCIgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAgICAgY2xhc3M9XCJib3Rhby1saW1wYXJcIiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cIm1lZGl1bVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInBlc3F1aXNhckNsaWNrKClcIj5cclxuICAgICAgICA8aW9uLWljb24gY29sb3I9XCJwcmltYXJ5XCIgbmFtZT1cInNlYXJjaFwiPjwvaW9uLWljb24+XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgXHJcbiAgICAgIFxyXG4gICAgPC9pb24taXRlbT5cclxuICBcclxuICAgIDxpb24tbGlzdCB0YWJpbmRleD1cIi0xXCIgW2hpZGRlbl09XCIhc2VsZWN0RWxlbWVudFZpc2l2ZWwgfHwgIWxpc3RhUGVzcXVpc2EgfHwgbGlzdGFQZXNxdWlzYS5sZW5ndGggPT0gMFwiIGNsYXNzPVwicGVzcXVpc2EtbGlzdFwiIHN0eWxlPVwibWF4LWhlaWdodDogMjUwcHg7IG92ZXJmbG93LXk6IGF1dG87XCI+XHJcbiAgICAgIFxyXG4gICAgICA8aW9uLWl0ZW0gdGFiaW5kZXg9XCItMVwiIGJ1dHRvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0YVBlc3F1aXNhXCIgXHJcbiAgICAgIChjbGljayk9XCJzZWxlY2lvbmFyQ29tYm9DbGljayhpdGVtKVwiIFtpZF09XCJzZWxlY3RJZCArICdJb25JdGVtJyArIGl0ZW1bJ0luZGV4J11cIlxyXG4gICAgICAgIGNsYXNzPVwicGVzcXVpc2EtaXRlbVwiPlxyXG4gICAgICAgIDwhLS0ge3sgaXRlbSB8IGpzb259fSAtLT5cclxuICAgICAgICA8c3BhbiBbY2xhc3NdPVwieydzZWxlY3RlZC1pdGVtJzogaXRlbVsnU2VsZWN0ZWQnXSA9PT0gdHJ1ZX1cIiBbaW5uZXJIVE1MXT1cImhpZ2hsaWdodChpdGVtW2NhbXBvRGlzcGxheV0pXCI+PC9zcGFuPlxyXG4gICAgICA8L2lvbi1pdGVtPlxyXG4gIFxyXG4gICAgPC9pb24tbGlzdD5cclxuICBcclxuICAgIDwhLS1cclxuICAgIDxpb24tc2VsZWN0IGludGVyZmFjZT1cInBvcG92ZXJcIiAjc2VsZWN0RWxlbWVudCB0YWJpbmRleD1cIi0xXCIgW2hpZGRlbl09XCIhc2VsZWN0RWxlbWVudFZpc2l2ZWxcIlxyXG4gICAgICAoaW9uQ2hhbmdlKT1cInNlbGVjaW9uYXJDb21ib0NoYW5nZSgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiPlxyXG4gICAgICA8aW9uLXNlbGVjdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGlzdGFQZXNxdWlzYVwiIFt2YWx1ZV09XCJpdGVtW2NhbXBvSWRdXCIgKGNsaWNrKT1cInNlbGVjaW9uYXJDb21ib0NsaWNrKGl0ZW1bY2FtcG9JZF0pXCI+XHJcbiAgICAgICAge3sgaXRlbVtjYW1wb0Rpc3BsYXldIH19XHJcbiAgICAgIDwvaW9uLXNlbGVjdC1vcHRpb24+XHJcbiAgICA8L2lvbi1zZWxlY3Q+XHJcbiAgICAtLT5cclxuICBcclxuICAgIDwhLS1cclxuICAgIDxzZWxlY3QgW2lkXT1cInNlbGVjdElkXCIgI3NlbGVjdEVsZW1lbnQgdGFiaW5kZXg9XCItMVwiIFtoaWRkZW5dPVwiIXNlbGVjdEVsZW1lbnRWaXNpdmVsXCJcclxuICAgICAgKGNoYW5nZSk9XCJzZWxlY2lvbmFyQ29tYm9DaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSlcIiBjbGFzcz1cInBlc3F1aXNhLXNlbGVjdFwiPlxyXG4gICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpc3RhUGVzcXVpc2FcIiBbdmFsdWVdPVwiaXRlbVtjYW1wb0lkXVwiIChjbGljayk9XCJzZWxlY2lvbmFyQ29tYm9DbGljayhpdGVtW2NhbXBvSWRdKVwiPlxyXG4gICAgICAgIHt7IGl0ZW1bY2FtcG9EaXNwbGF5XSB9fVxyXG4gICAgICA8L29wdGlvbj5cclxuICBcclxuICAgIDwvc2VsZWN0PlxyXG4gICAgLS0+XHJcbiAgXHJcbiAgICA8ZGl2IGNsYXNzPVwidmFsaWRhdGlvbi1lcnJvcnNcIiAqbmdJZj1cImZvcm1cIj5cclxuICBcclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdmFsaWRhdGlvbiBvZiB2YWxpZGF0aW9uX21lc3NhZ2VzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxyXG4gICAgICAgICAgKm5nSWY9XCJmb3JtLmdldChmb3JtQ29udHJvbE5hbWUpPy5oYXNFcnJvcih2YWxpZGF0aW9uLnR5cGUpICYmIChmb3JtLmdldChmb3JtQ29udHJvbE5hbWUpPy5kaXJ0eSB8fCBmb3JtLmdldChmb3JtQ29udHJvbE5hbWUpPy50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgJiM4MjI2OyB7eyB2YWxpZGF0aW9uLm1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj4iXX0=