ngx-sp-infra 4.0.16 → 4.0.18

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.
@@ -2,6 +2,7 @@ import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
3
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
4
  import { RouterModule } from '@angular/router';
5
+ import { LoadingScreenComponent } from './widgets/loading-screen/loading-screen.component';
5
6
  import { AccordionModule } from 'ngx-bootstrap/accordion';
6
7
  import { ModalModule } from 'ngx-bootstrap/modal';
7
8
  import { TooltipModule } from 'ngx-bootstrap/tooltip';
@@ -145,7 +146,8 @@ export class InfraModule {
145
146
  LibConfigSenhaComponent,
146
147
  PasswordPolicyComponent,
147
148
  TextTruncateDirective,
148
- SearchInputComponent], exports: [PageNotAuthorizedComponent,
149
+ SearchInputComponent,
150
+ LoadingScreenComponent], exports: [PageNotAuthorizedComponent,
149
151
  LoadingComponent,
150
152
  FieldControlErrorComponent,
151
153
  FieldErrorMessageComponent,
@@ -203,7 +205,8 @@ export class InfraModule {
203
205
  LibConfigSenhaComponent,
204
206
  PasswordPolicyComponent,
205
207
  TextTruncateDirective,
206
- SearchInputComponent] }); }
208
+ SearchInputComponent,
209
+ LoadingScreenComponent] }); }
207
210
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InfraModule, imports: [CommonModule,
208
211
  ModalModule.forRoot(),
209
212
  AccordionModule.forRoot(),
@@ -313,7 +316,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
313
316
  LibConfigSenhaComponent,
314
317
  PasswordPolicyComponent,
315
318
  TextTruncateDirective,
316
- SearchInputComponent
319
+ SearchInputComponent,
320
+ LoadingScreenComponent,
317
321
  ],
318
322
  exports: [
319
323
  PageNotAuthorizedComponent,
@@ -375,8 +379,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
375
379
  PasswordPolicyComponent,
376
380
  TextTruncateDirective,
377
381
  SearchInputComponent,
382
+ LoadingScreenComponent,
378
383
  ],
379
384
  providers: [],
380
385
  }]
381
386
  }] });
382
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvaW5mcmEubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQzFILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDekcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDekcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDM0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDcEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDOUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWpFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXJGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNuRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDOUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7QUErSXJGLE1BQU0sT0FBTyxXQUFXOytHQUFYLFdBQVc7Z0hBQVgsV0FBVyxZQTNJaEIsWUFBWSxzQ0FHWixhQUFhO1lBQ2IsV0FBVztZQUNYLG9CQUFvQjtZQUNwQixnQkFBZ0I7WUFDaEIsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsWUFBWTtZQUVaLDBCQUEwQjtZQUMxQixnQkFBZ0I7WUFDaEIsMEJBQTBCO1lBQzFCLDBCQUEwQjtZQUMxQiw2QkFBNkI7WUFDN0Isa0JBQWtCO1lBQ2xCLHNCQUFzQjtZQUN0QixjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLHFCQUFxQjtZQUNyQixhQUFhO1lBQ2Isd0JBQXdCO1lBQ3hCLDRCQUE0QjtZQUM1QixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQixhQUFhO1lBQ2IsU0FBUztZQUNULFdBQVc7WUFDWCxZQUFZO1lBQ1osV0FBVztZQUNYLGNBQWM7WUFDZCxxQkFBcUI7WUFDckIsaUJBQWlCO1lBQ2pCLHVCQUF1QjtZQUN2QixvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixpQkFBaUI7WUFDakIsY0FBYztZQUNkLHlCQUF5QjtZQUN6QixzQkFBc0I7WUFDdEIsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4QixrQkFBa0I7WUFDbEIsK0JBQStCO1lBQy9CLHVCQUF1QjtZQUN2Qix3QkFBd0I7WUFDeEIscUJBQXFCO1lBQ3JCLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsc0JBQXNCO1lBQ3RCLHdCQUF3QjtZQUN4QixxQkFBcUI7WUFDckIsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsd0JBQXdCO1lBQ3hCLGFBQWE7WUFDYixZQUFZO1lBQ1osZUFBZTtZQUNmLGFBQWE7WUFDYixlQUFlO1lBQ2YsdUJBQXVCO1lBQ3ZCLGdCQUFnQjtZQUNoQix1QkFBdUI7WUFDdkIsdUJBQXVCO1lBQ3ZCLHVCQUF1QjtZQUN2QixxQkFBcUI7WUFDckIsb0JBQW9CLGFBR3BCLDBCQUEwQjtZQUMxQixnQkFBZ0I7WUFDaEIsMEJBQTBCO1lBQzFCLDBCQUEwQjtZQUMxQiw2QkFBNkI7WUFDN0Isa0JBQWtCO1lBQ2xCLHNCQUFzQjtZQUN0QixjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLHFCQUFxQjtZQUNyQixhQUFhO1lBQ2Isd0JBQXdCO1lBQ3hCLDRCQUE0QjtZQUM1QixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2IsU0FBUztZQUNULFdBQVc7WUFDWCxxQkFBcUI7WUFDckIsaUJBQWlCO1lBQ2pCLHVCQUF1QjtZQUN2QixvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixpQkFBaUI7WUFDakIsY0FBYztZQUNkLHlCQUF5QjtZQUN6QixzQkFBc0I7WUFDdEIsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsd0JBQXdCO1lBQ3hCLGtCQUFrQjtZQUNsQiwrQkFBK0I7WUFDL0IsdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4QixxQkFBcUI7WUFDckIscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixzQkFBc0I7WUFDdEIsd0JBQXdCO1lBQ3hCLHFCQUFxQjtZQUNyQix1QkFBdUI7WUFDdkIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQix3QkFBd0I7WUFDeEIsYUFBYTtZQUNiLFlBQVk7WUFDWixlQUFlO1lBQ2YsYUFBYTtZQUNiLGVBQWU7WUFDZix1QkFBdUI7WUFDdkIsZ0JBQWdCO1lBQ2hCLHVCQUF1QjtZQUN2Qix1QkFBdUI7WUFDdkIsdUJBQXVCO1lBQ3ZCLHFCQUFxQjtZQUNyQixvQkFBb0I7Z0hBSWYsV0FBVyxZQTNJaEIsWUFBWTtZQUNaLFdBQVcsQ0FBQyxPQUFPLEVBQUU7WUFDckIsZUFBZSxDQUFDLE9BQU8sRUFBRTtZQUN6QixhQUFhO1lBQ2IsV0FBVztZQUlYLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsWUFBWTtZQU9aLGtCQUFrQjtZQUtsQixhQUFhO1lBSWIsaUJBQWlCO1lBRWpCLGFBQWE7WUFPYixpQkFBaUI7WUFDakIsdUJBQXVCO1lBQ3ZCLG9CQUFvQjtZQUVwQixrQkFBa0I7WUFHbEIseUJBQXlCO1lBRXpCLGNBQWM7WUFHZCxrQkFBa0I7WUFDbEIsd0JBQXdCO1lBQ3hCLGtCQUFrQjtZQUNsQiwrQkFBK0I7WUFDL0IsdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4QixxQkFBcUI7WUFFckIsbUJBQW1CO1lBQ25CLHNCQUFzQjtZQUN0Qix3QkFBd0I7WUFXeEIsdUJBQXVCO1lBR3ZCLHVCQUF1QjtZQUd2QixvQkFBb0I7OzRGQWlFZixXQUFXO2tCQTdJdkIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixXQUFXLENBQUMsT0FBTyxFQUFFO3dCQUNyQixlQUFlLENBQUMsT0FBTyxFQUFFO3dCQUN6QixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsb0JBQW9CO3dCQUNwQixnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLFlBQVk7d0JBRVosMEJBQTBCO3dCQUMxQixnQkFBZ0I7d0JBQ2hCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQiw2QkFBNkI7d0JBQzdCLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixhQUFhO3dCQUNiLHdCQUF3Qjt3QkFDeEIsNEJBQTRCO3dCQUM1QixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLFNBQVM7d0JBQ1QsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QseUJBQXlCO3dCQUN6QixzQkFBc0I7d0JBQ3RCLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixrQkFBa0I7d0JBQ2xCLCtCQUErQjt3QkFDL0IsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLHdCQUF3Qjt3QkFDeEIsYUFBYTt3QkFDYixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2QixxQkFBcUI7d0JBQ3JCLG9CQUFvQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLDBCQUEwQjt3QkFDMUIsZ0JBQWdCO3dCQUNoQiwwQkFBMEI7d0JBQzFCLDBCQUEwQjt3QkFDMUIsNkJBQTZCO3dCQUM3QixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLDRCQUE0Qjt3QkFDNUIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYixTQUFTO3dCQUNULFdBQVc7d0JBQ1gscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQix3QkFBd0I7d0JBQ3hCLGtCQUFrQjt3QkFDbEIsK0JBQStCO3dCQUMvQix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0Qix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsd0JBQXdCO3dCQUN4QixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsdUJBQXVCO3dCQUN2QixnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3FCQUN2QjtvQkFDRCxTQUFTLEVBQUUsRUFBRTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQWNjb3JkaW9uTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9hY2NvcmRpb24nO1xuaW1wb3J0IHsgTW9kYWxNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcblxuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvdG9vbHRpcCc7XG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQWxlcnRDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UvYWxlcnQvYWxlcnQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4vbWVzc2FnZS9jb25maXJtLW1vZGFsL2NvbmZpcm0tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UvY29uZmlybS9jb25maXJtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTYXZlQ29tcG9uZW50IH0gZnJvbSAnLi9tZXNzYWdlL3NhdmUvc2F2ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BmQ25walBpcGUgfSBmcm9tICcuL3BpcGVzL2NwZi1jbnBqLnBpcGUnO1xuaW1wb3J0IHsgVG9VcmxQaXBlIH0gZnJvbSAnLi9waXBlcy90by11cmwucGlwZSc7XG5pbXBvcnQgeyBJbmZyYUJyZWFkY3J1bWJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2JyZWFkY3J1bWIvaW5mcmEtYnJlYWRjcnVtYi1pdGVtL2luZnJhLWJyZWFkY3J1bWItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5mcmFCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2JyZWFkY3J1bWIvaW5mcmEtYnJlYWRjcnVtYi9pbmZyYS1icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2JyZWFkY3J1bWIvcG9ydGFscmgtYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9jb21ib2JveC9jb21ib2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsdGVyQnlQaXBlIH0gZnJvbSAnLi93aWRnZXRzL2NvbWJvYm94L3BpcGVzL2ZpbHRlci1ieS5waXBlJztcbmltcG9ydCB7IExpbWl0VG9QaXBlIH0gZnJvbSAnLi93aWRnZXRzL2NvbWJvYm94L3BpcGVzL2xpbWl0LXRvLnBpcGUnO1xuaW1wb3J0IHsgRmllbGRDb250cm9sRXJyb3JDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvZmllbGQtY29udHJvbC1lcnJvci9maWVsZC1jb250cm9sLWVycm9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZEVycm9yTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9maWVsZC1lcnJvci1tZXNzYWdlL2ZpZWxkLWVycm9yLW1lc3NhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IExvYWRpbmdCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvbG9hZGluZy1idXR0b24vbG9hZGluZy1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcmRlcmluZ0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9vcmRlcmluZy9vcmRlcmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoVHJlZVBpcGUgfSBmcm9tICcuL3dpZGdldHMvdHJlZS9waXBlcy9zZWFyY2gtdHJlZS5waXBlJztcbmltcG9ydCB7IFRyZWVDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvdHJlZS90cmVlLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IENvcHlDbGlwYm9hcmREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY29weS1jbGlwYm9hcmQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJlcXVpcmVkRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3JlcXVpcmVkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUZXh0RmlsdGVyUGlwZSB9IGZyb20gJy4vcGlwZXMvdGV4dC1maWx0ZXIucGlwZSc7XG5pbXBvcnQgeyBDb250ZW50Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2NvbnRlbnQtY29udGFpbmVyL2NvbnRlbnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJJY29uc0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9saWItaWNvbnMvbGliLWljb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9zZWFyY2gtY29tYm9ib3gvc2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy90YWJsZS90YWJsZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBOZ3hQYWdpbmF0aW9uTW9kdWxlIH0gZnJvbSAnbmd4LXBhZ2luYXRpb24nO1xuaW1wb3J0IHsgRmllbGRDb250YWRvck1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvZmllbGQtY29udGFkb3ItbWVzc2FnZS9maWVsZC1jb250YWRvci1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9saWItY29tYm9ib3gvbGliLWNvbWJvYm94LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IE5neEN1cnJlbmN5RGlyZWN0aXZlIH0gZnJvbSAnbmd4LWN1cnJlbmN5JztcbmltcG9ydCB7IE5neE1hc2tEaXJlY3RpdmUsIE5neE1hc2tQaXBlIH0gZnJvbSAnbmd4LW1hc2snO1xuaW1wb3J0IHsgRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VOb3RBdXRob3JpemVkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhZ2Utbm90LWF1dGhvcml6ZWQvcGFnZS1ub3QtYXV0aG9yaXplZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzYWJsZUNvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGlzYWJsZS1jb250cm9sLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIaWdobGlnaHREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvaGlnaGxpZ2h0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMb2FkaW5nQnRuRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2xvYWRpbmctYnRuLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEZWNpbWFsQ29tbWFQaXBlIH0gZnJvbSAnLi9waXBlcy9kZWNpbWFsLWNvbW1hLnBpcGUnO1xuaW1wb3J0IHsgRmlsdGVyTXVsdGlwbGVDaG9pY2VQaXBlIH0gZnJvbSAnLi9waXBlcy9maWx0ZXItbXVsdGlwbGUtY2hvaWNlLnBpcGUnO1xuaW1wb3J0IHsgRm9ybWF0QnlUeXBlUGlwZSB9IGZyb20gJy4vcGlwZXMvZm9ybWF0LWJ5LXR5cGUucGlwZSc7XG5pbXBvcnQgeyBPcmRlclNvcnRQaXBlIH0gZnJvbSAnLi9waXBlcy9vcmRlci1zb3J0LnBpcGUnO1xuaW1wb3J0IHsgUGhvbmVGb3JtYXRQaXBlIH0gZnJvbSAnLi9waXBlcy9waG9uZS1mb3JtYXQucGlwZSc7XG5pbXBvcnQgeyBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnLi9waXBlcy90aXRsZS1jYXNlLXBpcGUucGlwZSc7XG5pbXBvcnQgeyBBcHBsaWVkRmlsdGVyc0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9hcHBsaWVkLWZpbHRlcnMvYXBwbGllZC1maWx0ZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21ib2JveE11bHRpcGxlQ2hvaWNlQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2NvbWJvYm94LW11bHRpcGxlLWNob2ljZS9jb21ib2JveC1tdWx0aXBsZS1jaG9pY2UuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbUFjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2N1c3RvbS1hY29yZGlvbi9jdXN0b20tYWNvcmRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERyb3Bkb3duT3B0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9kcm9wZG93bi1vcHRpb25zL2Ryb3Bkb3duLW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9keW5hbWljLWlucHV0L2R5bmFtaWMtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEdlbmVyaWNNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9nZW5lcmljLW1vZGFsL2dlbmVyaWMtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0VHJpbUNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9pbnB1dC10cmltL2lucHV0LXRyaW0uY29tcG9uZW50JztcbmltcG9ydCB7IExpYkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9saWItaGVhZGVyL2xpYi1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IExpYk5hdlByb2R1dG9zQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2xpYi1uYXYtcHJvZHV0b3MvbGliLW5hdi1wcm9kdXRvcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5uZXJMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2xpYi10cmFuc2Zlci1saXN0L2lubmVyLWxpc3QvaW5uZXItbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGliVHJhbnNmZXJMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2xpYi10cmFuc2Zlci1saXN0L2xpYi10cmFuc2Zlci1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZQcm9kdXRvc0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9uYXYtcHJvZHV0b3MvbmF2LXByb2R1dG9zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoRmlsdGVyc0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9zZWFyY2gtZmlsdGVycy9zZWFyY2gtZmlsdGVycy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2lkZVRhYnNHZW5lcmljQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL3NpZGUtdGFicy1nZW5lcmljL3NpZGUtdGFicy1nZW5lcmljLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvc2ltcGxlLXNlYXJjaC9zaW1wbGUtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBMaWJDb25maWdTZW5oYUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9saWItY29uZmlnLXNlbmhhL2xpYi1jb25maWctc2VuaGEuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRUcnVuY2F0ZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy90ZXh0LXRydW5jYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDdXJyZW5jeVBpcGUgfSBmcm9tICcuL3BpcGVzL2N1cnJlbmN5LnBpcGUnO1xuaW1wb3J0IHsgUGFzc3dvcmRQb2xpY3lDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvcGFzc3dvcmQtcG9saWN5L3Bhc3N3b3JkLXBvbGljeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvc2VhcmNoLWlucHV0L3NlYXJjaC1pbnB1dC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNb2RhbE1vZHVsZS5mb3JSb290KCksXG4gICAgICAgIEFjY29yZGlvbk1vZHVsZS5mb3JSb290KCksXG4gICAgICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBOZ3hDdXJyZW5jeURpcmVjdGl2ZSxcbiAgICAgICAgTmd4TWFza0RpcmVjdGl2ZSxcbiAgICAgICAgTmd4TWFza1BpcGUsXG4gICAgICAgIE5neFBhZ2luYXRpb25Nb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZSxcblxuICAgICAgICBQYWdlTm90QXV0aG9yaXplZENvbXBvbmVudCxcbiAgICAgICAgTG9hZGluZ0NvbXBvbmVudCxcbiAgICAgICAgRmllbGRDb250cm9sRXJyb3JDb21wb25lbnQsXG4gICAgICAgIEZpZWxkRXJyb3JNZXNzYWdlQ29tcG9uZW50LFxuICAgICAgICBGaWVsZENvbnRhZG9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICAgICAgSW5wdXRUcmltQ29tcG9uZW50LFxuICAgICAgICBMb2FkaW5nQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBBbGVydENvbXBvbmVudCxcbiAgICAgICAgQ29uZmlybUNvbXBvbmVudCxcbiAgICAgICAgQ29uZmlybU1vZGFsQ29tcG9uZW50LFxuICAgICAgICBTYXZlQ29tcG9uZW50LFxuICAgICAgICBJbmZyYUJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgICAgIEluZnJhQnJlYWRjcnVtYkl0ZW1Db21wb25lbnQsXG4gICAgICAgIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgICAgIENvbWJvYm94Q29tcG9uZW50LFxuICAgICAgICBOYXZQcm9kdXRvc0NvbXBvbmVudCxcbiAgICAgICAgVHJlZUNvbXBvbmVudCxcbiAgICAgICAgVG9VcmxQaXBlLFxuICAgICAgICBDcGZDbnBqUGlwZSxcbiAgICAgICAgRmlsdGVyQnlQaXBlLFxuICAgICAgICBMaW1pdFRvUGlwZSxcbiAgICAgICAgU2VhcmNoVHJlZVBpcGUsXG4gICAgICAgIENsaWNrT3V0c2lkZURpcmVjdGl2ZSxcbiAgICAgICAgT3JkZXJpbmdDb21wb25lbnQsXG4gICAgICAgIFNlYXJjaENvbWJvYm94Q29tcG9uZW50LFxuICAgICAgICBMaWJDb21ib2JveENvbXBvbmVudCxcbiAgICAgICAgUmVxdWlyZWREaXJlY3RpdmUsXG4gICAgICAgIExpYkhlYWRlckNvbXBvbmVudCxcbiAgICAgICAgTGliSWNvbnNDb21wb25lbnQsXG4gICAgICAgIFRleHRGaWx0ZXJQaXBlLFxuICAgICAgICBDb250ZW50Q29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgICBDb3B5Q2xpcGJvYXJkRGlyZWN0aXZlLFxuICAgICAgICBUYWJsZUNvbXBvbmVudCxcbiAgICAgICAgTGliU3Bpbm5lckNvbXBvbmVudCxcbiAgICAgICAgTG9hZGluZ0J0bkRpcmVjdGl2ZSxcbiAgICAgICAgSW5wdXRUcmltQ29tcG9uZW50LFxuICAgICAgICBMaWJUcmFuc2Zlckxpc3RDb21wb25lbnQsXG4gICAgICAgIElubmVyTGlzdENvbXBvbmVudCxcbiAgICAgICAgQ29tYm9ib3hNdWx0aXBsZUNob2ljZUNvbXBvbmVudCxcbiAgICAgICAgQ3VzdG9tQWNvcmRpb25Db21wb25lbnQsXG4gICAgICAgIERyb3Bkb3duT3B0aW9uc0NvbXBvbmVudCxcbiAgICAgICAgRHluYW1pY0lucHV0Q29tcG9uZW50LFxuICAgICAgICBHZW5lcmljTW9kYWxDb21wb25lbnQsXG4gICAgICAgIFBhZ2luYXRpb25Db21wb25lbnQsXG4gICAgICAgIFNlYXJjaEZpbHRlcnNDb21wb25lbnQsXG4gICAgICAgIFNpZGVUYWJzR2VuZXJpY0NvbXBvbmVudCxcbiAgICAgICAgU2ltcGxlU2VhcmNoQ29tcG9uZW50LFxuICAgICAgICBEaXNhYmxlQ29udHJvbERpcmVjdGl2ZSxcbiAgICAgICAgSGlnaGxpZ2h0RGlyZWN0aXZlLFxuICAgICAgICBEZWNpbWFsQ29tbWFQaXBlLFxuICAgICAgICBGaWx0ZXJNdWx0aXBsZUNob2ljZVBpcGUsXG4gICAgICAgIE9yZGVyU29ydFBpcGUsXG4gICAgICAgIEN1cnJlbmN5UGlwZSxcbiAgICAgICAgUGhvbmVGb3JtYXRQaXBlLFxuICAgICAgICBUaXRsZUNhc2VQaXBlLFxuICAgICAgICBGb290ZXJDb21wb25lbnQsXG4gICAgICAgIEFwcGxpZWRGaWx0ZXJzQ29tcG9uZW50LFxuICAgICAgICBGb3JtYXRCeVR5cGVQaXBlLFxuICAgICAgICBMaWJOYXZQcm9kdXRvc0NvbXBvbmVudCxcbiAgICAgICAgTGliQ29uZmlnU2VuaGFDb21wb25lbnQsXG4gICAgICAgIFBhc3N3b3JkUG9saWN5Q29tcG9uZW50LFxuICAgICAgICBUZXh0VHJ1bmNhdGVEaXJlY3RpdmUsXG4gICAgICAgIFNlYXJjaElucHV0Q29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFBhZ2VOb3RBdXRob3JpemVkQ29tcG9uZW50LFxuICAgICAgICBMb2FkaW5nQ29tcG9uZW50LFxuICAgICAgICBGaWVsZENvbnRyb2xFcnJvckNvbXBvbmVudCxcbiAgICAgICAgRmllbGRFcnJvck1lc3NhZ2VDb21wb25lbnQsXG4gICAgICAgIEZpZWxkQ29udGFkb3JNZXNzYWdlQ29tcG9uZW50LFxuICAgICAgICBJbnB1dFRyaW1Db21wb25lbnQsXG4gICAgICAgIExvYWRpbmdCdXR0b25Db21wb25lbnQsXG4gICAgICAgIEFsZXJ0Q29tcG9uZW50LFxuICAgICAgICBDb25maXJtQ29tcG9uZW50LFxuICAgICAgICBDb25maXJtTW9kYWxDb21wb25lbnQsXG4gICAgICAgIFNhdmVDb21wb25lbnQsXG4gICAgICAgIEluZnJhQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICAgICAgSW5mcmFCcmVhZGNydW1iSXRlbUNvbXBvbmVudCxcbiAgICAgICAgTmF2UHJvZHV0b3NDb21wb25lbnQsXG4gICAgICAgIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgICAgIENvbWJvYm94Q29tcG9uZW50LFxuICAgICAgICBUcmVlQ29tcG9uZW50LFxuICAgICAgICBUb1VybFBpcGUsXG4gICAgICAgIENwZkNucGpQaXBlLFxuICAgICAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXG4gICAgICAgIE9yZGVyaW5nQ29tcG9uZW50LFxuICAgICAgICBTZWFyY2hDb21ib2JveENvbXBvbmVudCxcbiAgICAgICAgTGliQ29tYm9ib3hDb21wb25lbnQsXG4gICAgICAgIFJlcXVpcmVkRGlyZWN0aXZlLFxuICAgICAgICBMaWJIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIExpYkljb25zQ29tcG9uZW50LFxuICAgICAgICBUZXh0RmlsdGVyUGlwZSxcbiAgICAgICAgQ29udGVudENvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgICAgQ29weUNsaXBib2FyZERpcmVjdGl2ZSxcbiAgICAgICAgVGFibGVDb21wb25lbnQsXG4gICAgICAgIExpYlNwaW5uZXJDb21wb25lbnQsXG4gICAgICAgIExvYWRpbmdCdG5EaXJlY3RpdmUsXG4gICAgICAgIExpYlRyYW5zZmVyTGlzdENvbXBvbmVudCxcbiAgICAgICAgSW5uZXJMaXN0Q29tcG9uZW50LFxuICAgICAgICBDb21ib2JveE11bHRpcGxlQ2hvaWNlQ29tcG9uZW50LFxuICAgICAgICBDdXN0b21BY29yZGlvbkNvbXBvbmVudCxcbiAgICAgICAgRHJvcGRvd25PcHRpb25zQ29tcG9uZW50LFxuICAgICAgICBEeW5hbWljSW5wdXRDb21wb25lbnQsXG4gICAgICAgIEdlbmVyaWNNb2RhbENvbXBvbmVudCxcbiAgICAgICAgUGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgICAgICAgU2VhcmNoRmlsdGVyc0NvbXBvbmVudCxcbiAgICAgICAgU2lkZVRhYnNHZW5lcmljQ29tcG9uZW50LFxuICAgICAgICBTaW1wbGVTZWFyY2hDb21wb25lbnQsXG4gICAgICAgIERpc2FibGVDb250cm9sRGlyZWN0aXZlLFxuICAgICAgICBIaWdobGlnaHREaXJlY3RpdmUsXG4gICAgICAgIERlY2ltYWxDb21tYVBpcGUsXG4gICAgICAgIEZpbHRlck11bHRpcGxlQ2hvaWNlUGlwZSxcbiAgICAgICAgT3JkZXJTb3J0UGlwZSxcbiAgICAgICAgQ3VycmVuY3lQaXBlLFxuICAgICAgICBQaG9uZUZvcm1hdFBpcGUsXG4gICAgICAgIFRpdGxlQ2FzZVBpcGUsXG4gICAgICAgIEZvb3RlckNvbXBvbmVudCxcbiAgICAgICAgQXBwbGllZEZpbHRlcnNDb21wb25lbnQsXG4gICAgICAgIEZvcm1hdEJ5VHlwZVBpcGUsXG4gICAgICAgIExpYk5hdlByb2R1dG9zQ29tcG9uZW50LFxuICAgICAgICBMaWJDb25maWdTZW5oYUNvbXBvbmVudCxcbiAgICAgICAgUGFzc3dvcmRQb2xpY3lDb21wb25lbnQsXG4gICAgICAgIFRleHRUcnVuY2F0ZURpcmVjdGl2ZSxcbiAgICAgICAgU2VhcmNoSW5wdXRDb21wb25lbnQsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBJbmZyYU1vZHVsZSB7IH1cbiJdfQ==
387
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvaW5mcmEubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQzFILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFD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Qjt3QkFDbEIsZ0JBQWdCO3dCQUNoQix3QkFBd0I7d0JBQ3hCLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLHNCQUFzQjtxQkFDekI7b0JBQ0QsU0FBUyxFQUFFLEVBQUU7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMb2FkaW5nU2NyZWVuQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2xvYWRpbmctc2NyZWVuL2xvYWRpbmctc2NyZWVuLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IEFjY29yZGlvbk1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvYWNjb3JkaW9uJztcbmltcG9ydCB7IE1vZGFsTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5cbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9tZXNzYWdlL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UvY29uZmlybS1tb2RhbC9jb25maXJtLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi9tZXNzYWdlL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2F2ZUNvbXBvbmVudCB9IGZyb20gJy4vbWVzc2FnZS9zYXZlL3NhdmUuY29tcG9uZW50JztcbmltcG9ydCB7IENwZkNucGpQaXBlIH0gZnJvbSAnLi9waXBlcy9jcGYtY25wai5waXBlJztcbmltcG9ydCB7IFRvVXJsUGlwZSB9IGZyb20gJy4vcGlwZXMvdG8tdXJsLnBpcGUnO1xuaW1wb3J0IHsgSW5mcmFCcmVhZGNydW1iSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9icmVhZGNydW1iL2luZnJhLWJyZWFkY3J1bWItaXRlbS9pbmZyYS1icmVhZGNydW1iLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEluZnJhQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9icmVhZGNydW1iL2luZnJhLWJyZWFkY3J1bWIvaW5mcmEtYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9icmVhZGNydW1iL3BvcnRhbHJoLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tYm9ib3hDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcbmltcG9ydCB7IEZpbHRlckJ5UGlwZSB9IGZyb20gJy4vd2lkZ2V0cy9jb21ib2JveC9waXBlcy9maWx0ZXItYnkucGlwZSc7XG5pbXBvcnQgeyBMaW1pdFRvUGlwZSB9IGZyb20gJy4vd2lkZ2V0cy9jb21ib2JveC9waXBlcy9saW1pdC10by5waXBlJztcbmltcG9ydCB7IEZpZWxkQ29udHJvbEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2ZpZWxkLWNvbnRyb2wtZXJyb3IvZmllbGQtY29udHJvbC1lcnJvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmllbGRFcnJvck1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvZmllbGQtZXJyb3ItbWVzc2FnZS9maWVsZC1lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2xvYWRpbmctYnV0dG9uL2xvYWRpbmctYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3JkZXJpbmdDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvb3JkZXJpbmcvb3JkZXJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaFRyZWVQaXBlIH0gZnJvbSAnLi93aWRnZXRzL3RyZWUvcGlwZXMvc2VhcmNoLXRyZWUucGlwZSc7XG5pbXBvcnQgeyBUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL3RyZWUvdHJlZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBDb3B5Q2xpcGJvYXJkRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2NvcHktY2xpcGJvYXJkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZXF1aXJlZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZXF1aXJlZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGV4dEZpbHRlclBpcGUgfSBmcm9tICcuL3BpcGVzL3RleHQtZmlsdGVyLnBpcGUnO1xuaW1wb3J0IHsgQ29udGVudENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9jb250ZW50LWNvbnRhaW5lci9jb250ZW50LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGliSWNvbnNDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvbGliLWljb25zL2xpYi1pY29ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoQ29tYm9ib3hDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvc2VhcmNoLWNvbWJvYm94L3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvdGFibGUvdGFibGUuY29tcG9uZW50JztcblxuaW1wb3J0IHsgTmd4UGFnaW5hdGlvbk1vZHVsZSB9IGZyb20gJ25neC1wYWdpbmF0aW9uJztcbmltcG9ydCB7IEZpZWxkQ29udGFkb3JNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL2ZpZWxkLWNvbnRhZG9yLW1lc3NhZ2UvZmllbGQtY29udGFkb3ItbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGliQ29tYm9ib3hDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvbGliLWNvbWJvYm94L2xpYi1jb21ib2JveC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBOZ3hDdXJyZW5jeURpcmVjdGl2ZSB9IGZyb20gJ25neC1jdXJyZW5jeSc7XG5pbXBvcnQgeyBOZ3hNYXNrRGlyZWN0aXZlLCBOZ3hNYXNrUGlwZSB9IGZyb20gJ25neC1tYXNrJztcbmltcG9ydCB7IEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdlTm90QXV0aG9yaXplZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlLW5vdC1hdXRob3JpemVkL3BhZ2Utbm90LWF1dGhvcml6ZWQuY29tcG9uZW50JztcbmltcG9ydCB7IERpc2FibGVDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Rpc2FibGUtY29udHJvbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2hpZ2hsaWdodC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTG9hZGluZ0J0bkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9sb2FkaW5nLWJ0bi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGVjaW1hbENvbW1hUGlwZSB9IGZyb20gJy4vcGlwZXMvZGVjaW1hbC1jb21tYS5waXBlJztcbmltcG9ydCB7IEZpbHRlck11bHRpcGxlQ2hvaWNlUGlwZSB9IGZyb20gJy4vcGlwZXMvZmlsdGVyLW11bHRpcGxlLWNob2ljZS5waXBlJztcbmltcG9ydCB7IEZvcm1hdEJ5VHlwZVBpcGUgfSBmcm9tICcuL3BpcGVzL2Zvcm1hdC1ieS10eXBlLnBpcGUnO1xuaW1wb3J0IHsgT3JkZXJTb3J0UGlwZSB9IGZyb20gJy4vcGlwZXMvb3JkZXItc29ydC5waXBlJztcbmltcG9ydCB7IFBob25lRm9ybWF0UGlwZSB9IGZyb20gJy4vcGlwZXMvcGhvbmUtZm9ybWF0LnBpcGUnO1xuaW1wb3J0IHsgVGl0bGVDYXNlUGlwZSB9IGZyb20gJy4vcGlwZXMvdGl0bGUtY2FzZS1waXBlLnBpcGUnO1xuaW1wb3J0IHsgQXBwbGllZEZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvYXBwbGllZC1maWx0ZXJzL2FwcGxpZWQtZmlsdGVycy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tYm9ib3hNdWx0aXBsZUNob2ljZUNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9jb21ib2JveC1tdWx0aXBsZS1jaG9pY2UvY29tYm9ib3gtbXVsdGlwbGUtY2hvaWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21BY29yZGlvbkNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9jdXN0b20tYWNvcmRpb24vY3VzdG9tLWFjb3JkaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcm9wZG93bk9wdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvZHJvcGRvd24tb3B0aW9ucy9kcm9wZG93bi1vcHRpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvZHluYW1pYy1pbnB1dC9keW5hbWljLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHZW5lcmljTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvZ2VuZXJpYy1tb2RhbC9nZW5lcmljLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dFRyaW1Db21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvaW5wdXQtdHJpbS9pbnB1dC10cmltLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvbGliLWhlYWRlci9saWItaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJOYXZQcm9kdXRvc0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9saWItbmF2LXByb2R1dG9zL2xpYi1uYXYtcHJvZHV0b3MuY29tcG9uZW50JztcbmltcG9ydCB7IElubmVyTGlzdENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9saWItdHJhbnNmZXItbGlzdC9pbm5lci1saXN0L2lubmVyLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IExpYlRyYW5zZmVyTGlzdENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9saWItdHJhbnNmZXItbGlzdC9saWItdHJhbnNmZXItbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2UHJvZHV0b3NDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvbmF2LXByb2R1dG9zL25hdi1wcm9kdXRvcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaEZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvc2VhcmNoLWZpbHRlcnMvc2VhcmNoLWZpbHRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IFNpZGVUYWJzR2VuZXJpY0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9zaWRlLXRhYnMtZ2VuZXJpYy9zaWRlLXRhYnMtZ2VuZXJpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2ltcGxlU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL3NpbXBsZS1zZWFyY2gvc2ltcGxlLXNlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGliU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcblxuaW1wb3J0IHsgTGliQ29uZmlnU2VuaGFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGliLWNvbmZpZy1zZW5oYS9saWItY29uZmlnLXNlbmhhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0VHJ1bmNhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdGV4dC10cnVuY2F0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ3VycmVuY3lQaXBlIH0gZnJvbSAnLi9waXBlcy9jdXJyZW5jeS5waXBlJztcbmltcG9ydCB7IFBhc3N3b3JkUG9saWN5Q29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL3Bhc3N3b3JkLXBvbGljeS9wYXNzd29yZC1wb2xpY3kuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL3NlYXJjaC1pbnB1dC9zZWFyY2gtaW5wdXQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTW9kYWxNb2R1bGUuZm9yUm9vdCgpLFxuICAgICAgICBBY2NvcmRpb25Nb2R1bGUuZm9yUm9vdCgpLFxuICAgICAgICBUb29sdGlwTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTmd4Q3VycmVuY3lEaXJlY3RpdmUsXG4gICAgICAgIE5neE1hc2tEaXJlY3RpdmUsXG4gICAgICAgIE5neE1hc2tQaXBlLFxuICAgICAgICBOZ3hQYWdpbmF0aW9uTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG5cbiAgICAgICAgUGFnZU5vdEF1dGhvcml6ZWRDb21wb25lbnQsXG4gICAgICAgIExvYWRpbmdDb21wb25lbnQsXG4gICAgICAgIEZpZWxkQ29udHJvbEVycm9yQ29tcG9uZW50LFxuICAgICAgICBGaWVsZEVycm9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICAgICAgRmllbGRDb250YWRvck1lc3NhZ2VDb21wb25lbnQsXG4gICAgICAgIElucHV0VHJpbUNvbXBvbmVudCxcbiAgICAgICAgTG9hZGluZ0J1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgQWxlcnRDb21wb25lbnQsXG4gICAgICAgIENvbmZpcm1Db21wb25lbnQsXG4gICAgICAgIENvbmZpcm1Nb2RhbENvbXBvbmVudCxcbiAgICAgICAgU2F2ZUNvbXBvbmVudCxcbiAgICAgICAgSW5mcmFCcmVhZGNydW1iQ29tcG9uZW50LFxuICAgICAgICBJbmZyYUJyZWFkY3J1bWJJdGVtQ29tcG9uZW50LFxuICAgICAgICBCcmVhZGNydW1iQ29tcG9uZW50LFxuICAgICAgICBDb21ib2JveENvbXBvbmVudCxcbiAgICAgICAgTmF2UHJvZHV0b3NDb21wb25lbnQsXG4gICAgICAgIFRyZWVDb21wb25lbnQsXG4gICAgICAgIFRvVXJsUGlwZSxcbiAgICAgICAgQ3BmQ25walBpcGUsXG4gICAgICAgIEZpbHRlckJ5UGlwZSxcbiAgICAgICAgTGltaXRUb1BpcGUsXG4gICAgICAgIFNlYXJjaFRyZWVQaXBlLFxuICAgICAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXG4gICAgICAgIE9yZGVyaW5nQ29tcG9uZW50LFxuICAgICAgICBTZWFyY2hDb21ib2JveENvbXBvbmVudCxcbiAgICAgICAgTGliQ29tYm9ib3hDb21wb25lbnQsXG4gICAgICAgIFJlcXVpcmVkRGlyZWN0aXZlLFxuICAgICAgICBMaWJIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIExpYkljb25zQ29tcG9uZW50LFxuICAgICAgICBUZXh0RmlsdGVyUGlwZSxcbiAgICAgICAgQ29udGVudENvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgICAgQ29weUNsaXBib2FyZERpcmVjdGl2ZSxcbiAgICAgICAgVGFibGVDb21wb25lbnQsXG4gICAgICAgIExpYlNwaW5uZXJDb21wb25lbnQsXG4gICAgICAgIExvYWRpbmdCdG5EaXJlY3RpdmUsXG4gICAgICAgIElucHV0VHJpbUNvbXBvbmVudCxcbiAgICAgICAgTGliVHJhbnNmZXJMaXN0Q29tcG9uZW50LFxuICAgICAgICBJbm5lckxpc3RDb21wb25lbnQsXG4gICAgICAgIENvbWJvYm94TXVsdGlwbGVDaG9pY2VDb21wb25lbnQsXG4gICAgICAgIEN1c3RvbUFjb3JkaW9uQ29tcG9uZW50LFxuICAgICAgICBEcm9wZG93bk9wdGlvbnNDb21wb25lbnQsXG4gICAgICAgIER5bmFtaWNJbnB1dENvbXBvbmVudCxcbiAgICAgICAgR2VuZXJpY01vZGFsQ29tcG9uZW50LFxuICAgICAgICBQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgICAgICBTZWFyY2hGaWx0ZXJzQ29tcG9uZW50LFxuICAgICAgICBTaWRlVGFic0dlbmVyaWNDb21wb25lbnQsXG4gICAgICAgIFNpbXBsZVNlYXJjaENvbXBvbmVudCxcbiAgICAgICAgRGlzYWJsZUNvbnRyb2xEaXJlY3RpdmUsXG4gICAgICAgIEhpZ2hsaWdodERpcmVjdGl2ZSxcbiAgICAgICAgRGVjaW1hbENvbW1hUGlwZSxcbiAgICAgICAgRmlsdGVyTXVsdGlwbGVDaG9pY2VQaXBlLFxuICAgICAgICBPcmRlclNvcnRQaXBlLFxuICAgICAgICBDdXJyZW5jeVBpcGUsXG4gICAgICAgIFBob25lRm9ybWF0UGlwZSxcbiAgICAgICAgVGl0bGVDYXNlUGlwZSxcbiAgICAgICAgRm9vdGVyQ29tcG9uZW50LFxuICAgICAgICBBcHBsaWVkRmlsdGVyc0NvbXBvbmVudCxcbiAgICAgICAgRm9ybWF0QnlUeXBlUGlwZSxcbiAgICAgICAgTGliTmF2UHJvZHV0b3NDb21wb25lbnQsXG4gICAgICAgIExpYkNvbmZpZ1NlbmhhQ29tcG9uZW50LFxuICAgICAgICBQYXNzd29yZFBvbGljeUNvbXBvbmVudCxcbiAgICAgICAgVGV4dFRydW5jYXRlRGlyZWN0aXZlLFxuICAgICAgICBTZWFyY2hJbnB1dENvbXBvbmVudCxcbiAgICAgICAgTG9hZGluZ1NjcmVlbkNvbXBvbmVudCxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgUGFnZU5vdEF1dGhvcml6ZWRDb21wb25lbnQsXG4gICAgICAgIExvYWRpbmdDb21wb25lbnQsXG4gICAgICAgIEZpZWxkQ29udHJvbEVycm9yQ29tcG9uZW50LFxuICAgICAgICBGaWVsZEVycm9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICAgICAgRmllbGRDb250YWRvck1lc3NhZ2VDb21wb25lbnQsXG4gICAgICAgIElucHV0VHJpbUNvbXBvbmVudCxcbiAgICAgICAgTG9hZGluZ0J1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgQWxlcnRDb21wb25lbnQsXG4gICAgICAgIENvbmZpcm1Db21wb25lbnQsXG4gICAgICAgIENvbmZpcm1Nb2RhbENvbXBvbmVudCxcbiAgICAgICAgU2F2ZUNvbXBvbmVudCxcbiAgICAgICAgSW5mcmFCcmVhZGNydW1iQ29tcG9uZW50LFxuICAgICAgICBJbmZyYUJyZWFkY3J1bWJJdGVtQ29tcG9uZW50LFxuICAgICAgICBOYXZQcm9kdXRvc0NvbXBvbmVudCxcbiAgICAgICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICAgICAgQ29tYm9ib3hDb21wb25lbnQsXG4gICAgICAgIFRyZWVDb21wb25lbnQsXG4gICAgICAgIFRvVXJsUGlwZSxcbiAgICAgICAgQ3BmQ25walBpcGUsXG4gICAgICAgIENsaWNrT3V0c2lkZURpcmVjdGl2ZSxcbiAgICAgICAgT3JkZXJpbmdDb21wb25lbnQsXG4gICAgICAgIFNlYXJjaENvbWJvYm94Q29tcG9uZW50LFxuICAgICAgICBMaWJDb21ib2JveENvbXBvbmVudCxcbiAgICAgICAgUmVxdWlyZWREaXJlY3RpdmUsXG4gICAgICAgIExpYkhlYWRlckNvbXBvbmVudCxcbiAgICAgICAgTGliSWNvbnNDb21wb25lbnQsXG4gICAgICAgIFRleHRGaWx0ZXJQaXBlLFxuICAgICAgICBDb250ZW50Q29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgICBDb3B5Q2xpcGJvYXJkRGlyZWN0aXZlLFxuICAgICAgICBUYWJsZUNvbXBvbmVudCxcbiAgICAgICAgTGliU3Bpbm5lckNvbXBvbmVudCxcbiAgICAgICAgTG9hZGluZ0J0bkRpcmVjdGl2ZSxcbiAgICAgICAgTGliVHJhbnNmZXJMaXN0Q29tcG9uZW50LFxuICAgICAgICBJbm5lckxpc3RDb21wb25lbnQsXG4gICAgICAgIENvbWJvYm94TXVsdGlwbGVDaG9pY2VDb21wb25lbnQsXG4gICAgICAgIEN1c3RvbUFjb3JkaW9uQ29tcG9uZW50LFxuICAgICAgICBEcm9wZG93bk9wdGlvbnNDb21wb25lbnQsXG4gICAgICAgIER5bmFtaWNJbnB1dENvbXBvbmVudCxcbiAgICAgICAgR2VuZXJpY01vZGFsQ29tcG9uZW50LFxuICAgICAgICBQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgICAgICBTZWFyY2hGaWx0ZXJzQ29tcG9uZW50LFxuICAgICAgICBTaWRlVGFic0dlbmVyaWNDb21wb25lbnQsXG4gICAgICAgIFNpbXBsZVNlYXJjaENvbXBvbmVudCxcbiAgICAgICAgRGlzYWJsZUNvbnRyb2xEaXJlY3RpdmUsXG4gICAgICAgIEhpZ2hsaWdodERpcmVjdGl2ZSxcbiAgICAgICAgRGVjaW1hbENvbW1hUGlwZSxcbiAgICAgICAgRmlsdGVyTXVsdGlwbGVDaG9pY2VQaXBlLFxuICAgICAgICBPcmRlclNvcnRQaXBlLFxuICAgICAgICBDdXJyZW5jeVBpcGUsXG4gICAgICAgIFBob25lRm9ybWF0UGlwZSxcbiAgICAgICAgVGl0bGVDYXNlUGlwZSxcbiAgICAgICAgRm9vdGVyQ29tcG9uZW50LFxuICAgICAgICBBcHBsaWVkRmlsdGVyc0NvbXBvbmVudCxcbiAgICAgICAgRm9ybWF0QnlUeXBlUGlwZSxcbiAgICAgICAgTGliTmF2UHJvZHV0b3NDb21wb25lbnQsXG4gICAgICAgIExpYkNvbmZpZ1NlbmhhQ29tcG9uZW50LFxuICAgICAgICBQYXNzd29yZFBvbGljeUNvbXBvbmVudCxcbiAgICAgICAgVGV4dFRydW5jYXRlRGlyZWN0aXZlLFxuICAgICAgICBTZWFyY2hJbnB1dENvbXBvbmVudCxcbiAgICAgICAgTG9hZGluZ1NjcmVlbkNvbXBvbmVudCxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEluZnJhTW9kdWxlIHsgfVxuIl19
@@ -34,6 +34,7 @@ import { LibNavProdutosComponent } from '../widgets/lib-nav-produtos/lib-nav-pro
34
34
  import { InnerListComponent } from '../widgets/lib-transfer-list/inner-list/inner-list.component';
35
35
  import { LibTransferListComponent } from '../widgets/lib-transfer-list/lib-transfer-list.component';
36
36
  import { LoadingButtonComponent } from '../widgets/loading-button/loading-button.component';
37
+ import { LoadingScreenComponent } from '../widgets/loading-screen/loading-screen.component';
37
38
  import { LoadingComponent } from '../widgets/loading/loading.component';
38
39
  import { NavProdutosComponent } from '../widgets/nav-produtos/nav-produtos.component';
39
40
  import { OrderingComponent } from '../widgets/ordering/ordering.component';
@@ -98,7 +99,8 @@ export class LibWidgetsModule {
98
99
  SimpleSearchComponent,
99
100
  LibSpinnerComponent,
100
101
  TableComponent,
101
- TreeComponent], exports: [AlertComponent,
102
+ TreeComponent,
103
+ LoadingScreenComponent], exports: [AlertComponent,
102
104
  ConfirmModalComponent,
103
105
  ConfirmComponent,
104
106
  SaveComponent,
@@ -136,7 +138,8 @@ export class LibWidgetsModule {
136
138
  SimpleSearchComponent,
137
139
  LibSpinnerComponent,
138
140
  TableComponent,
139
- TreeComponent] }); }
141
+ TreeComponent,
142
+ LoadingScreenComponent] }); }
140
143
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibWidgetsModule, imports: [CommonModule,
141
144
  ModalModule.forRoot(),
142
145
  AccordionModule.forRoot(),
@@ -221,6 +224,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
221
224
  LibSpinnerComponent,
222
225
  TableComponent,
223
226
  TreeComponent,
227
+ LoadingScreenComponent,
224
228
  ],
225
229
  exports: [
226
230
  AlertComponent,
@@ -262,7 +266,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
262
266
  LibSpinnerComponent,
263
267
  TableComponent,
264
268
  TreeComponent,
269
+ LoadingScreenComponent,
265
270
  ]
266
271
  }]
267
272
  }] });
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXdpZGdldHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvbW9kdWxlcy9saWItd2lkZ2V0cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZFQUE2RSxDQUFDO0FBQzNILE9BQU8s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Z0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxhQUFhO3FCQUNkO29CQUNELE9BQU8sRUFBRTt3QkFDUCxjQUFjO3dCQUNkLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUViLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3dCQUM1Qix3QkFBd0I7d0JBQ3hCLG1CQUFtQjt3QkFDbkIsK0JBQStCO3dCQUMvQixpQkFBaUI7d0JBQ2pCLHlCQUF5Qjt3QkFDekIsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIsNkJBQTZCO3dCQUM3QiwwQkFBMEI7d0JBQzFCLDBCQUEwQjt3QkFDMUIscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsYUFBYTtxQkFDZDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBBY2NvcmRpb25Nb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2FjY29yZGlvbic7XG5pbXBvcnQgeyBNb2RhbE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvdG9vbHRpcCc7XG5pbXBvcnQgeyBOZ3hDdXJyZW5jeURpcmVjdGl2ZSB9IGZyb20gJ25neC1jdXJyZW5jeSc7XG5pbXBvcnQgeyBOZ3hNYXNrRGlyZWN0aXZlLCBOZ3hNYXNrUGlwZSB9IGZyb20gJ25neC1tYXNrJztcbmltcG9ydCB7IE5neFBhZ2luYXRpb25Nb2R1bGUgfSBmcm9tICduZ3gtcGFnaW5hdGlvbic7XG5cbmltcG9ydCB7IEFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vbWVzc2FnZS9hbGVydC9hbGVydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlybU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vbWVzc2FnZS9jb25maXJtLW1vZGFsL2NvbmZpcm0tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuLi9tZXNzYWdlL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2F2ZUNvbXBvbmVudCB9IGZyb20gJy4uL21lc3NhZ2Uvc2F2ZS9zYXZlLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IEFwcGxpZWRGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9hcHBsaWVkLWZpbHRlcnMvYXBwbGllZC1maWx0ZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbmZyYUJyZWFkY3J1bWJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9icmVhZGNydW1iL2luZnJhLWJyZWFkY3J1bWItaXRlbS9pbmZyYS1icmVhZGNydW1iLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEluZnJhQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvYnJlYWRjcnVtYi9pbmZyYS1icmVhZGNydW1iL2luZnJhLWJyZWFkY3J1bWIuY29tcG9uZW50JztcbmltcG9ydCB7IEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL2JyZWFkY3J1bWIvcG9ydGFscmgtYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21ib2JveE11bHRpcGxlQ2hvaWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9jb21ib2JveC1tdWx0aXBsZS1jaG9pY2UvY29tYm9ib3gtbXVsdGlwbGUtY2hvaWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRlbnRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL2NvbnRlbnQtY29udGFpbmVyL2NvbnRlbnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21BY29yZGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvY3VzdG9tLWFjb3JkaW9uL2N1c3RvbS1hY29yZGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJvcGRvd25PcHRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9kcm9wZG93bi1vcHRpb25zL2Ryb3Bkb3duLW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvZHluYW1pYy1pbnB1dC9keW5hbWljLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZENvbnRhZG9yTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvZmllbGQtY29udGFkb3ItbWVzc2FnZS9maWVsZC1jb250YWRvci1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZENvbnRyb2xFcnJvckNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvZmllbGQtY29udHJvbC1lcnJvci9maWVsZC1jb250cm9sLWVycm9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZEVycm9yTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvZmllbGQtZXJyb3ItbWVzc2FnZS9maWVsZC1lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHZW5lcmljTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL2dlbmVyaWMtbW9kYWwvZ2VuZXJpYy1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRUcmltQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9pbnB1dC10cmltL2lucHV0LXRyaW0uY29tcG9uZW50JztcbmltcG9ydCB7IExpYkNvbWJvYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9saWItY29tYm9ib3gvbGliLWNvbWJvYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL2xpYi1oZWFkZXIvbGliLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGliSWNvbnNDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL2xpYi1pY29ucy9saWItaWNvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IExpYk5hdlByb2R1dG9zQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9saWItbmF2LXByb2R1dG9zL2xpYi1uYXYtcHJvZHV0b3MuY29tcG9uZW50JztcbmltcG9ydCB7IElubmVyTGlzdENvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvbGliLXRyYW5zZmVyLWxpc3QvaW5uZXItbGlzdC9pbm5lci1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJUcmFuc2Zlckxpc3RDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL2xpYi10cmFuc2Zlci1saXN0L2xpYi10cmFuc2Zlci1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9sb2FkaW5nLWJ1dHRvbi9sb2FkaW5nLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZQcm9kdXRvc0NvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvbmF2LXByb2R1dG9zL25hdi1wcm9kdXRvcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3JkZXJpbmdDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL29yZGVyaW5nL29yZGVyaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFBhc3N3b3JkUG9saWN5Q29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9wYXNzd29yZC1wb2xpY3kvcGFzc3dvcmQtcG9saWN5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvc2VhcmNoLWNvbWJvYm94L3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoRmlsdGVyc0NvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvc2VhcmNoLWZpbHRlcnMvc2VhcmNoLWZpbHRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9zZWFyY2gtaW5wdXQvc2VhcmNoLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWRlVGFic0dlbmVyaWNDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL3NpZGUtdGFicy1nZW5lcmljL3NpZGUtdGFicy1nZW5lcmljLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL3NpbXBsZS1zZWFyY2gvc2ltcGxlLXNlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGliU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvdGFibGUvdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL3RyZWUvdHJlZS5jb21wb25lbnQnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTW9kYWxNb2R1bGUuZm9yUm9vdCgpLFxuICAgIEFjY29yZGlvbk1vZHVsZS5mb3JSb290KCksXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBOZ3hDdXJyZW5jeURpcmVjdGl2ZSxcbiAgICBOZ3hNYXNrRGlyZWN0aXZlLFxuICAgIE5neE1hc2tQaXBlLFxuICAgIE5neFBhZ2luYXRpb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG5cbiAgICBBbGVydENvbXBvbmVudCxcbiAgICBDb25maXJtTW9kYWxDb21wb25lbnQsXG4gICAgQ29uZmlybUNvbXBvbmVudCxcbiAgICBTYXZlQ29tcG9uZW50LFxuXG4gICAgQXBwbGllZEZpbHRlcnNDb21wb25lbnQsXG4gICAgSW5mcmFCcmVhZGNydW1iSXRlbUNvbXBvbmVudCxcbiAgICBJbmZyYUJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBDb21ib2JveE11bHRpcGxlQ2hvaWNlQ29tcG9uZW50LFxuICAgIENvbWJvYm94Q29tcG9uZW50LFxuICAgIENvbnRlbnRDb250YWluZXJDb21wb25lbnQsXG4gICAgQ3VzdG9tQWNvcmRpb25Db21wb25lbnQsXG4gICAgRHJvcGRvd25PcHRpb25zQ29tcG9uZW50LFxuICAgIER5bmFtaWNJbnB1dENvbXBvbmVudCxcbiAgICBGaWVsZENvbnRhZG9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICBGaWVsZENvbnRyb2xFcnJvckNvbXBvbmVudCxcbiAgICBGaWVsZEVycm9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICBHZW5lcmljTW9kYWxDb21wb25lbnQsXG4gICAgSW5wdXRUcmltQ29tcG9uZW50LFxuICAgIExpYkNvbWJvYm94Q29tcG9uZW50LFxuICAgIExpYkhlYWRlckNvbXBvbmVudCxcbiAgICBMaWJJY29uc0NvbXBvbmVudCxcbiAgICBMaWJOYXZQcm9kdXRvc0NvbXBvbmVudCxcbiAgICBJbm5lckxpc3RDb21wb25lbnQsXG4gICAgTGliVHJhbnNmZXJMaXN0Q29tcG9uZW50LFxuICAgIExvYWRpbmdCdXR0b25Db21wb25lbnQsXG4gICAgTG9hZGluZ0NvbXBvbmVudCxcbiAgICBOYXZQcm9kdXRvc0NvbXBvbmVudCxcbiAgICBPcmRlcmluZ0NvbXBvbmVudCxcbiAgICBQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIFBhc3N3b3JkUG9saWN5Q29tcG9uZW50LFxuICAgIFNlYXJjaENvbWJvYm94Q29tcG9uZW50LFxuICAgIFNlYXJjaEZpbHRlcnNDb21wb25lbnQsXG4gICAgU2VhcmNoSW5wdXRDb21wb25lbnQsXG4gICAgU2lkZVRhYnNHZW5lcmljQ29tcG9uZW50LFxuICAgIFNpbXBsZVNlYXJjaENvbXBvbmVudCxcbiAgICBMaWJTcGlubmVyQ29tcG9uZW50LFxuICAgIFRhYmxlQ29tcG9uZW50LFxuICAgIFRyZWVDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBBbGVydENvbXBvbmVudCxcbiAgICBDb25maXJtTW9kYWxDb21wb25lbnQsXG4gICAgQ29uZmlybUNvbXBvbmVudCxcbiAgICBTYXZlQ29tcG9uZW50LFxuICAgIFxuICAgIEFwcGxpZWRGaWx0ZXJzQ29tcG9uZW50LFxuICAgIEluZnJhQnJlYWRjcnVtYkl0ZW1Db21wb25lbnQsXG4gICAgSW5mcmFCcmVhZGNydW1iQ29tcG9uZW50LFxuICAgIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgQ29tYm9ib3hNdWx0aXBsZUNob2ljZUNvbXBvbmVudCxcbiAgICBDb21ib2JveENvbXBvbmVudCxcbiAgICBDb250ZW50Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIEN1c3RvbUFjb3JkaW9uQ29tcG9uZW50LFxuICAgIERyb3Bkb3duT3B0aW9uc0NvbXBvbmVudCxcbiAgICBEeW5hbWljSW5wdXRDb21wb25lbnQsXG4gICAgRmllbGRDb250YWRvck1lc3NhZ2VDb21wb25lbnQsXG4gICAgRmllbGRDb250cm9sRXJyb3JDb21wb25lbnQsXG4gICAgRmllbGRFcnJvck1lc3NhZ2VDb21wb25lbnQsXG4gICAgR2VuZXJpY01vZGFsQ29tcG9uZW50LFxuICAgIElucHV0VHJpbUNvbXBvbmVudCxcbiAgICBMaWJDb21ib2JveENvbXBvbmVudCxcbiAgICBMaWJIZWFkZXJDb21wb25lbnQsXG4gICAgTGliSWNvbnNDb21wb25lbnQsXG4gICAgTGliTmF2UHJvZHV0b3NDb21wb25lbnQsXG4gICAgSW5uZXJMaXN0Q29tcG9uZW50LFxuICAgIExpYlRyYW5zZmVyTGlzdENvbXBvbmVudCxcbiAgICBMb2FkaW5nQnV0dG9uQ29tcG9uZW50LFxuICAgIExvYWRpbmdDb21wb25lbnQsXG4gICAgTmF2UHJvZHV0b3NDb21wb25lbnQsXG4gICAgT3JkZXJpbmdDb21wb25lbnQsXG4gICAgUGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgICBQYXNzd29yZFBvbGljeUNvbXBvbmVudCxcbiAgICBTZWFyY2hDb21ib2JveENvbXBvbmVudCxcbiAgICBTZWFyY2hGaWx0ZXJzQ29tcG9uZW50LFxuICAgIFNlYXJjaElucHV0Q29tcG9uZW50LFxuICAgIFNpZGVUYWJzR2VuZXJpY0NvbXBvbmVudCxcbiAgICBTaW1wbGVTZWFyY2hDb21wb25lbnQsXG4gICAgTGliU3Bpbm5lckNvbXBvbmVudCxcbiAgICBUYWJsZUNvbXBvbmVudCxcbiAgICBUcmVlQ29tcG9uZW50LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIExpYldpZGdldHNNb2R1bGUgeyB9XG4iXX0=
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXdpZGdldHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvbW9kdWxlcy9saWItd2lkZ2V0cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZFQUE2RSxDQUFDO0FBQzNILE9BQU8s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bmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEFjY29yZGlvbk1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvYWNjb3JkaW9uJztcbmltcG9ydCB7IE1vZGFsTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90b29sdGlwJztcbmltcG9ydCB7IE5neEN1cnJlbmN5RGlyZWN0aXZlIH0gZnJvbSAnbmd4LWN1cnJlbmN5JztcbmltcG9ydCB7IE5neE1hc2tEaXJlY3RpdmUsIE5neE1hc2tQaXBlIH0gZnJvbSAnbmd4LW1hc2snO1xuaW1wb3J0IHsgTmd4UGFnaW5hdGlvbk1vZHVsZSB9IGZyb20gJ25neC1wYWdpbmF0aW9uJztcblxuaW1wb3J0IHsgQWxlcnRDb21wb25lbnQgfSBmcm9tICcuLi9tZXNzYWdlL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9tZXNzYWdlL2NvbmZpcm0tbW9kYWwvY29uZmlybS1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4uL21lc3NhZ2UvY29uZmlybS9jb25maXJtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTYXZlQ29tcG9uZW50IH0gZnJvbSAnLi4vbWVzc2FnZS9zYXZlL3NhdmUuY29tcG9uZW50JztcblxuaW1wb3J0IHsgQXBwbGllZEZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL2FwcGxpZWQtZmlsdGVycy9hcHBsaWVkLWZpbHRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IEluZnJhQnJlYWRjcnVtYkl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL2JyZWFkY3J1bWIvaW5mcmEtYnJlYWRjcnVtYi1pdGVtL2luZnJhLWJyZWFkY3J1bWItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5mcmFCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9icmVhZGNydW1iL2luZnJhLWJyZWFkY3J1bWIvaW5mcmEtYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvYnJlYWRjcnVtYi9wb3J0YWxyaC1icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbWJvYm94TXVsdGlwbGVDaG9pY2VDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL2NvbWJvYm94LW11bHRpcGxlLWNob2ljZS9jb21ib2JveC1tdWx0aXBsZS1jaG9pY2UuY29tcG9uZW50JztcbmltcG9ydCB7IENvbWJvYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9jb21ib2JveC9jb21ib2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGVudENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvY29udGVudC1jb250YWluZXIvY29udGVudC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbUFjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9jdXN0b20tYWNvcmRpb24vY3VzdG9tLWFjb3JkaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcm9wZG93bk9wdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL2Ryb3Bkb3duLW9wdGlvbnMvZHJvcGRvd24tb3B0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9keW5hbWljLWlucHV0L2R5bmFtaWMtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZpZWxkQ29udGFkb3JNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9maWVsZC1jb250YWRvci1tZXNzYWdlL2ZpZWxkLWNvbnRhZG9yLW1lc3NhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEZpZWxkQ29udHJvbEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9maWVsZC1jb250cm9sLWVycm9yL2ZpZWxkLWNvbnRyb2wtZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7IEZpZWxkRXJyb3JNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9maWVsZC1lcnJvci1tZXNzYWdlL2ZpZWxkLWVycm9yLW1lc3NhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEdlbmVyaWNNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvZ2VuZXJpYy1tb2RhbC9nZW5lcmljLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dFRyaW1Db21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL2lucHV0LXRyaW0vaW5wdXQtdHJpbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGliQ29tYm9ib3hDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL2xpYi1jb21ib2JveC9saWItY29tYm9ib3guY29tcG9uZW50JztcbmltcG9ydCB7IExpYkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvbGliLWhlYWRlci9saWItaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaWJJY29uc0NvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvbGliLWljb25zL2xpYi1pY29ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGliTmF2UHJvZHV0b3NDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL2xpYi1uYXYtcHJvZHV0b3MvbGliLW5hdi1wcm9kdXRvcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5uZXJMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9saWItdHJhbnNmZXItbGlzdC9pbm5lci1saXN0L2lubmVyLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IExpYlRyYW5zZmVyTGlzdENvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvbGliLXRyYW5zZmVyLWxpc3QvbGliLXRyYW5zZmVyLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IExvYWRpbmdCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL2xvYWRpbmctYnV0dG9uL2xvYWRpbmctYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nU2NyZWVuQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9sb2FkaW5nLXNjcmVlbi9sb2FkaW5nLXNjcmVlbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZQcm9kdXRvc0NvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvbmF2LXByb2R1dG9zL25hdi1wcm9kdXRvcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3JkZXJpbmdDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL29yZGVyaW5nL29yZGVyaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFBhc3N3b3JkUG9saWN5Q29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9wYXNzd29yZC1wb2xpY3kvcGFzc3dvcmQtcG9saWN5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvc2VhcmNoLWNvbWJvYm94L3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoRmlsdGVyc0NvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvc2VhcmNoLWZpbHRlcnMvc2VhcmNoLWZpbHRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0cy9zZWFyY2gtaW5wdXQvc2VhcmNoLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWRlVGFic0dlbmVyaWNDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL3NpZGUtdGFicy1nZW5lcmljL3NpZGUtdGFicy1nZW5lcmljLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL3NpbXBsZS1zZWFyY2gvc2ltcGxlLXNlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGliU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvdGFibGUvdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXRzL3RyZWUvdHJlZS5jb21wb25lbnQnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTW9kYWxNb2R1bGUuZm9yUm9vdCgpLFxuICAgIEFjY29yZGlvbk1vZHVsZS5mb3JSb290KCksXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBOZ3hDdXJyZW5jeURpcmVjdGl2ZSxcbiAgICBOZ3hNYXNrRGlyZWN0aXZlLFxuICAgIE5neE1hc2tQaXBlLFxuICAgIE5neFBhZ2luYXRpb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG5cbiAgICBBbGVydENvbXBvbmVudCxcbiAgICBDb25maXJtTW9kYWxDb21wb25lbnQsXG4gICAgQ29uZmlybUNvbXBvbmVudCxcbiAgICBTYXZlQ29tcG9uZW50LFxuXG4gICAgQXBwbGllZEZpbHRlcnNDb21wb25lbnQsXG4gICAgSW5mcmFCcmVhZGNydW1iSXRlbUNvbXBvbmVudCxcbiAgICBJbmZyYUJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBDb21ib2JveE11bHRpcGxlQ2hvaWNlQ29tcG9uZW50LFxuICAgIENvbWJvYm94Q29tcG9uZW50LFxuICAgIENvbnRlbnRDb250YWluZXJDb21wb25lbnQsXG4gICAgQ3VzdG9tQWNvcmRpb25Db21wb25lbnQsXG4gICAgRHJvcGRvd25PcHRpb25zQ29tcG9uZW50LFxuICAgIER5bmFtaWNJbnB1dENvbXBvbmVudCxcbiAgICBGaWVsZENvbnRhZG9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICBGaWVsZENvbnRyb2xFcnJvckNvbXBvbmVudCxcbiAgICBGaWVsZEVycm9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICBHZW5lcmljTW9kYWxDb21wb25lbnQsXG4gICAgSW5wdXRUcmltQ29tcG9uZW50LFxuICAgIExpYkNvbWJvYm94Q29tcG9uZW50LFxuICAgIExpYkhlYWRlckNvbXBvbmVudCxcbiAgICBMaWJJY29uc0NvbXBvbmVudCxcbiAgICBMaWJOYXZQcm9kdXRvc0NvbXBvbmVudCxcbiAgICBJbm5lckxpc3RDb21wb25lbnQsXG4gICAgTGliVHJhbnNmZXJMaXN0Q29tcG9uZW50LFxuICAgIExvYWRpbmdCdXR0b25Db21wb25lbnQsXG4gICAgTG9hZGluZ0NvbXBvbmVudCxcbiAgICBOYXZQcm9kdXRvc0NvbXBvbmVudCxcbiAgICBPcmRlcmluZ0NvbXBvbmVudCxcbiAgICBQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIFBhc3N3b3JkUG9saWN5Q29tcG9uZW50LFxuICAgIFNlYXJjaENvbWJvYm94Q29tcG9uZW50LFxuICAgIFNlYXJjaEZpbHRlcnNDb21wb25lbnQsXG4gICAgU2VhcmNoSW5wdXRDb21wb25lbnQsXG4gICAgU2lkZVRhYnNHZW5lcmljQ29tcG9uZW50LFxuICAgIFNpbXBsZVNlYXJjaENvbXBvbmVudCxcbiAgICBMaWJTcGlubmVyQ29tcG9uZW50LFxuICAgIFRhYmxlQ29tcG9uZW50LFxuICAgIFRyZWVDb21wb25lbnQsXG4gICAgTG9hZGluZ1NjcmVlbkNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFsZXJ0Q29tcG9uZW50LFxuICAgIENvbmZpcm1Nb2RhbENvbXBvbmVudCxcbiAgICBDb25maXJtQ29tcG9uZW50LFxuICAgIFNhdmVDb21wb25lbnQsXG4gICAgXG4gICAgQXBwbGllZEZpbHRlcnNDb21wb25lbnQsXG4gICAgSW5mcmFCcmVhZGNydW1iSXRlbUNvbXBvbmVudCxcbiAgICBJbmZyYUJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBDb21ib2JveE11bHRpcGxlQ2hvaWNlQ29tcG9uZW50LFxuICAgIENvbWJvYm94Q29tcG9uZW50LFxuICAgIENvbnRlbnRDb250YWluZXJDb21wb25lbnQsXG4gICAgQ3VzdG9tQWNvcmRpb25Db21wb25lbnQsXG4gICAgRHJvcGRvd25PcHRpb25zQ29tcG9uZW50LFxuICAgIER5bmFtaWNJbnB1dENvbXBvbmVudCxcbiAgICBGaWVsZENvbnRhZG9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICBGaWVsZENvbnRyb2xFcnJvckNvbXBvbmVudCxcbiAgICBGaWVsZEVycm9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICBHZW5lcmljTW9kYWxDb21wb25lbnQsXG4gICAgSW5wdXRUcmltQ29tcG9uZW50LFxuICAgIExpYkNvbWJvYm94Q29tcG9uZW50LFxuICAgIExpYkhlYWRlckNvbXBvbmVudCxcbiAgICBMaWJJY29uc0NvbXBvbmVudCxcbiAgICBMaWJOYXZQcm9kdXRvc0NvbXBvbmVudCxcbiAgICBJbm5lckxpc3RDb21wb25lbnQsXG4gICAgTGliVHJhbnNmZXJMaXN0Q29tcG9uZW50LFxuICAgIExvYWRpbmdCdXR0b25Db21wb25lbnQsXG4gICAgTG9hZGluZ0NvbXBvbmVudCxcbiAgICBOYXZQcm9kdXRvc0NvbXBvbmVudCxcbiAgICBPcmRlcmluZ0NvbXBvbmVudCxcbiAgICBQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIFBhc3N3b3JkUG9saWN5Q29tcG9uZW50LFxuICAgIFNlYXJjaENvbWJvYm94Q29tcG9uZW50LFxuICAgIFNlYXJjaEZpbHRlcnNDb21wb25lbnQsXG4gICAgU2VhcmNoSW5wdXRDb21wb25lbnQsXG4gICAgU2lkZVRhYnNHZW5lcmljQ29tcG9uZW50LFxuICAgIFNpbXBsZVNlYXJjaENvbXBvbmVudCxcbiAgICBMaWJTcGlubmVyQ29tcG9uZW50LFxuICAgIFRhYmxlQ29tcG9uZW50LFxuICAgIFRyZWVDb21wb25lbnQsXG4gICAgTG9hZGluZ1NjcmVlbkNvbXBvbmVudCxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBMaWJXaWRnZXRzTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,54 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { Injectable } from '@angular/core';
3
+ import { LoadingScreenComponent } from '../widgets/loading-screen/loading-screen.component';
4
+ import * as i0 from "@angular/core";
5
+ export class GlobalLoadingService {
6
+ // #endregion PRIVATE
7
+ // #endregion ==========> PROPERTIES <==========
8
+ constructor(componentFactoryResolver, appRef, injector) {
9
+ this.componentFactoryResolver = componentFactoryResolver;
10
+ this.appRef = appRef;
11
+ this.injector = injector;
12
+ // #region ==========> PROPERTIES <==========
13
+ // #region PRIVATE
14
+ this._componentRef = null;
15
+ }
16
+ // #region ==========> UTILS <==========
17
+ /**
18
+ * Exibe o loading na tela.
19
+ * @param blockUnload Indica se deve bloquear o unload do navegador enquanto o loading estiver sendo exibido. Recomenda-se usar true em casos de ações de Salvar/Atualizar.
20
+ */
21
+ show(blockUnload = false) {
22
+ // Já existe o componente anexado
23
+ if (this._componentRef) {
24
+ return;
25
+ }
26
+ // 1. Resolve a fábrica do componente
27
+ const componentFactory = this.componentFactoryResolver.resolveComponentFactory(LoadingScreenComponent);
28
+ // 2. Cria a instância no contexto do injector raiz
29
+ this._componentRef = componentFactory.create(this.injector);
30
+ // 2.1. Passa o parâmetro blockUnload para o componente
31
+ this._componentRef.instance.blockUnload = blockUnload;
32
+ // 3. Anexa a view à ApplicationRef para que faça parte do ciclo de detecção de mudanças
33
+ this.appRef.attachView(this._componentRef.hostView);
34
+ // 4. Converte a view em nó DOM e adiciona ao body
35
+ const domElem = this._componentRef.hostView.rootNodes[0];
36
+ document.body.appendChild(domElem);
37
+ }
38
+ hide() {
39
+ if (!this._componentRef) {
40
+ return;
41
+ }
42
+ // Remove do ciclo de detecção de mudanças e do DOM
43
+ this.appRef.detachView(this._componentRef.hostView);
44
+ this._componentRef.destroy();
45
+ this._componentRef = null;
46
+ }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GlobalLoadingService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
48
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GlobalLoadingService, providedIn: 'root' }); }
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GlobalLoadingService, decorators: [{
51
+ type: Injectable,
52
+ args: [{ providedIn: 'root' }]
53
+ }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i0.Injector }] });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWxvYWRpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3NlcnZpY2UvZ2xvYmFsLWxvYWRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUEyRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7O0FBRzVGLE1BQU0sT0FBTyxvQkFBb0I7SUFNL0IscUJBQXFCO0lBRXJCLGdEQUFnRDtJQUdoRCxZQUNVLHdCQUFrRCxFQUNsRCxNQUFzQixFQUN0QixRQUFrQjtRQUZsQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFaNUIsNkNBQTZDO1FBRTdDLGtCQUFrQjtRQUNWLGtCQUFhLEdBQWdELElBQUksQ0FBQztJQVV0RSxDQUFDO0lBR0wsd0NBQXdDO0lBRXhDOzs7T0FHRztJQUNJLElBQUksQ0FBQyxjQUF1QixLQUFLO1FBQ3RDLGlDQUFpQztRQUNqQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBRW5DLHFDQUFxQztRQUNyQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRXZHLG1EQUFtRDtRQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUQsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFFdEQsd0ZBQXdGO1FBQ3hGLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFcEQsa0RBQWtEO1FBQ2xELE1BQU0sT0FBTyxHQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBaUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBQ2xHLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBRXBDLG1EQUFtRDtRQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQzsrR0FwRFUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FEUCxNQUFNOzs0RkFDbkIsb0JBQW9CO2tCQURoQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9hZGluZ1NjcmVlbkNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldHMvbG9hZGluZy1zY3JlZW4vbG9hZGluZy1zY3JlZW4uY29tcG9uZW50JztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBHbG9iYWxMb2FkaW5nU2VydmljZSB7XG5cbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBQUk9QRVJUSUVTIDw9PT09PT09PT09XG5cbiAgLy8gI3JlZ2lvbiBQUklWQVRFXG4gIHByaXZhdGUgX2NvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPExvYWRpbmdTY3JlZW5Db21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG4gIC8vICNlbmRyZWdpb24gUFJJVkFURVxuXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gUFJPUEVSVElFUyA8PT09PT09PT09PVxuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7IH1cblxuXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gVVRJTFMgPD09PT09PT09PT1cblxuICAvKipcbiAgICogRXhpYmUgbyBsb2FkaW5nIG5hIHRlbGEuXG4gICAqIEBwYXJhbSBibG9ja1VubG9hZCBJbmRpY2Egc2UgZGV2ZSBibG9xdWVhciBvIHVubG9hZCBkbyBuYXZlZ2Fkb3IgZW5xdWFudG8gbyBsb2FkaW5nIGVzdGl2ZXIgc2VuZG8gZXhpYmlkby4gUmVjb21lbmRhLXNlIHVzYXIgdHJ1ZSBlbSBjYXNvcyBkZSBhw6fDtWVzIGRlIFNhbHZhci9BdHVhbGl6YXIuXG4gICAqL1xuICBwdWJsaWMgc2hvdyhibG9ja1VubG9hZDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgLy8gSsOhIGV4aXN0ZSBvIGNvbXBvbmVudGUgYW5leGFkb1xuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYpIHsgcmV0dXJuOyB9XG5cbiAgICAvLyAxLiBSZXNvbHZlIGEgZsOhYnJpY2EgZG8gY29tcG9uZW50ZVxuICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShMb2FkaW5nU2NyZWVuQ29tcG9uZW50KTtcbiAgICBcbiAgICAvLyAyLiBDcmlhIGEgaW5zdMOibmNpYSBubyBjb250ZXh0byBkbyBpbmplY3RvciByYWl6XG4gICAgdGhpcy5fY29tcG9uZW50UmVmID0gY29tcG9uZW50RmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG5cbiAgICAvLyAyLjEuIFBhc3NhIG8gcGFyw6JtZXRybyBibG9ja1VubG9hZCBwYXJhIG8gY29tcG9uZW50ZVxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5ibG9ja1VubG9hZCA9IGJsb2NrVW5sb2FkO1xuICAgIFxuICAgIC8vIDMuIEFuZXhhIGEgdmlldyDDoCBBcHBsaWNhdGlvblJlZiBwYXJhIHF1ZSBmYcOnYSBwYXJ0ZSBkbyBjaWNsbyBkZSBkZXRlY8Onw6NvIGRlIG11ZGFuw6dhc1xuICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICBcbiAgICAvLyA0LiBDb252ZXJ0ZSBhIHZpZXcgZW0gbsOzIERPTSBlIGFkaWNpb25hIGFvIGJvZHlcbiAgICBjb25zdCBkb21FbGVtID0gKHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XG4gIH1cblxuICBwdWJsaWMgaGlkZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2NvbXBvbmVudFJlZikgeyByZXR1cm47IH1cblxuICAgIC8vIFJlbW92ZSBkbyBjaWNsbyBkZSBkZXRlY8Onw6NvIGRlIG11ZGFuw6dhcyBlIGRvIERPTVxuICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICB0aGlzLl9jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IG51bGw7XG4gIH1cbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBVVElMUyA8PT09PT09PT09PVxuXG59XG4iXX0=
@@ -280,7 +280,13 @@ export class Utils {
280
280
  const formattedDate = `${year}-${(month + 1).toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}T${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
281
281
  return formattedDate;
282
282
  }
283
- //Transforma a string Base64 num array de bytes e faz o download do arquivo.
283
+ // #region DOWNLOAD DE ARQUIVOS
284
+ /** [SERÁ DEPRECIADO EM BREVE] Transforma a string Base64 num array de bytes e faz o download do arquivo.
285
+ * @param fleName Nome do arquivo a ser baixado.
286
+ * @param file String base64 do arquivo.
287
+ *
288
+ * @deprecated [será depreciado em breve] Use downloadFileBlob() ou downloadFile()
289
+ */
284
290
  static downloadFileBase64(fleName, file) {
285
291
  const byteString = window.atob(file);
286
292
  const arrayBuffer = new ArrayBuffer(byteString.length);
@@ -290,10 +296,10 @@ export class Utils {
290
296
  }
291
297
  const blob = new Blob([int8Array]);
292
298
  const url = window.URL.createObjectURL(blob);
293
- //Abio
294
- //O window.open foi comentado porque no download dos arquivos digitais abria uma janela com o blob do arquivo.
295
- //Comentar não afetou o download do contra-cheque.
296
- //window.open(url);
299
+ // Abio
300
+ // O window.open foi comentado porque no download dos arquivos digitais abria uma janela com o blob do arquivo.
301
+ // Comentar não afetou o download do contra-cheque.
302
+ // window.open(url);
297
303
  const a = document.createElement('a');
298
304
  a.href = url;
299
305
  a.target = '_blank';
@@ -301,13 +307,12 @@ export class Utils {
301
307
  document.body.appendChild(a);
302
308
  a.click();
303
309
  }
304
- /**
305
- * Abre o popup do navegador para baixar um arquivo que veio de um blob.
310
+ /** Abre o popup do navegador para baixar um arquivo que veio de um blob.
306
311
  *
307
312
  * @param blob Conteúdo do arquivo binário a ser baixado.
308
313
  * @param fileName Nome do arquivo a ser salvo.
309
314
  */
310
- static downloadFile(blob, fileName) {
315
+ static downloadFileBlob(blob, fileName) {
311
316
  const anchor = window.document.createElement('a');
312
317
  anchor.href = window.URL.createObjectURL(blob);
313
318
  anchor.download = fileName;
@@ -316,6 +321,20 @@ export class Utils {
316
321
  document.body.removeChild(anchor);
317
322
  window.URL.revokeObjectURL(anchor.href);
318
323
  }
324
+ /** Faz o download de um arquivo.
325
+ * O arquivo é baixado com o nome e extensão informados.
326
+ *
327
+ * @param mimeType String mimeType do arquivo.
328
+ * @param base64 String base64 do arquivo.
329
+ * @param filename Nome do arquivo a ser salvo (precisa ter a extensão do arquivo).
330
+ */
331
+ static downloadFile(mimeType, base64, filename) {
332
+ const link = document.createElement('a');
333
+ link.href = `data:${mimeType};base64,${base64}`;
334
+ link.download = filename;
335
+ link.click();
336
+ }
337
+ // #endregion DOWNLOAD DE ARQUIVOS
319
338
  static b64DecodeUnicode(str) {
320
339
  // Going backwards: from bytestream, to percent-encoding, to original string.
321
340
  return decodeURIComponent(atob(str).split('').map(c => {
@@ -394,4 +413,4 @@ export class Utils {
394
413
  return false;
395
414
  }
396
415
  }
397
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi91dGlscy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sS0FBSztJQUVoQixrREFBa0Q7SUFDM0MsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQVU7UUFFMUMsSUFBSSxZQUFZLEdBQVcsRUFBRSxDQUFDO1FBRTlCLElBQUksS0FBSyxDQUFDLEtBQUssWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUN0QyxpQ0FBaUM7WUFDakMsWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBRU4sbUNBQW1DO1lBQ25DLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUVqQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7b0JBRXhCLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUVoQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7NEJBQzdCLFlBQVksR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7d0JBQy9DLENBQUM7NkJBQ0ksQ0FBQzs0QkFDSixZQUFZLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUMxQyxDQUFDO29CQUVILENBQUM7eUJBQU0sQ0FBQzt3QkFDTixZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztvQkFDL0IsQ0FBQztnQkFFSCxDQUFDO3FCQUNJLENBQUM7b0JBRUosSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBRWhCLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQzs0QkFDN0IsWUFBWSxHQUFHLEdBQUcsS0FBSyxDQUFD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LEtBQUssRUFBRSxDQUFDO1lBQ2Isc0RBQXNEO1lBQ3RELE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sSUFBSSxHQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxRyxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFXLEVBQUUsS0FBVztRQUN0RCxNQUFNLFFBQVEsR0FBVyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELE1BQU0sUUFBUSxHQUFXLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFD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QyxDQUFDLENBQUMsVUFBVSxDQUFDO1lBQzlFLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsdUJBQXVCO0lBSXZCLHNEQUFzRDtJQUV0RCxtRkFBbUY7SUFDNUUsTUFBTSxDQUFDLDhCQUE4QixDQUFDLEtBQVU7UUFDckQsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN2RSxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxzRUFBc0U7SUFDL0QsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQVU7UUFDNUMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDaEQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsc0dBQXNHO0lBQy9GLE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFVO1FBQzFELElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxHQUFHO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDeEUsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQseUZBQXlGO0lBQ2xGLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxLQUFVO1FBQ2pELElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2pELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUlGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFV0aWxzIHtcblxuICAvLyBPYnTDqW0gYSBtZW5zYWdlbSBkZSBlcnJvIGRlIHVtYSByZXF1aXNpw6fDo28gaHR0cFxuICBwdWJsaWMgc3RhdGljIGdldEh0dHBFcnJvck1lc3NhZ2UoZXJyb3I6IGFueSk6IHN0cmluZyB7XG5cbiAgICBsZXQgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcblxuICAgIGlmIChlcnJvci5lcnJvciBpbnN0YW5jZW9mIEVycm9yRXZlbnQpIHtcbiAgICAgIC8vIEVycm8gb2NvcnJldSBubyBsYWRvIGRvIGNsaWVudFxuICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3IuZXJyb3IubWVzc2FnZTtcbiAgICB9IGVsc2Uge1xuXG4gICAgICAvLyBFcnJvIG9jb3JyZXUgbm8gbGFkbyBkbyBzZXJ2aWRvclxuICAgICAgaWYgKGVycm9yLnN0YXR1cykge1xuXG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gMjAwKSB7XG5cbiAgICAgICAgICBpZiAoZXJyb3IuZXJyb3IpIHtcblxuICAgICAgICAgICAgaWYgKGVycm9yLmVycm9yLkVycm9yTWVzc2FnZSkge1xuICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtlcnJvci5lcnJvci5FcnJvck1lc3NhZ2V9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtlcnJvci5lcnJvci5NZXNzYWdlfWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcblxuICAgICAgICAgIGlmIChlcnJvci5lcnJvcikge1xuXG4gICAgICAgICAgICBpZiAoZXJyb3IuZXJyb3IuRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2Vycm9yLmVycm9yLkVycm9yTWVzc2FnZX08YnI+PGJyPiR7ZXJyb3Iuc3RhdHVzfSAtICR7ZXJyb3Iuc3RhdHVzVGV4dH1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2Vycm9yLmVycm9yLk1lc3NhZ2V9PGJyPjxicj4ke2Vycm9yLnN0YXR1c30gLSAke2Vycm9yLnN0YXR1c1RleHR9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGVycm9yLm1lc3NhZ2U7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JNZXNzYWdlO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RGF0ZVRpbWVUb0RhdGVTdHJpbmcoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0ZVN0cmluZzogc3RyaW5nW10gPSBkYXRlLnRvU3RyaW5nKCkuc3BsaXQoJ1QnKVswXS5zcGxpdCgnLScpO1xuXG4gICAgcmV0dXJuIGAke2RhdGVTdHJpbmdbMF19LSR7ZGF0ZVN0cmluZ1sxXX0tJHtkYXRlU3RyaW5nWzJdfWA7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRTdHJpbmdUb0RhdGUodGV4dDogc3RyaW5nKTogRGF0ZSB7XG4gICAgY29uc3QgZGF0ZVN0cmluZzogc3RyaW5nW10gPSB0ZXh0LnNwbGl0KCctJyk7XG5cbiAgICByZXR1cm4gbmV3IERhdGUoK2RhdGVTdHJpbmdbMF0sICgrZGF0ZVN0cmluZ1sxXSkgLSAxLCArZGF0ZVN0cmluZ1syXSk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2UgdW0gZGV0ZXJtaW5hZG8gYW5vIMOpIGJpc3NleHRvLlxuICAgKiBAcGFyYW0geWVhciBBbm8gYSBzZXIgdmVyaWZpY2Fkby5cbiAgICogQHJldHVybnMgUmV0b3JuYSB0cnVlIHNlIG8gYW5vIGZvciBiaXNzZXh0byBlIGZhbHNlIHNlIGVsZSBuw6NvIGZvciwgb3Ugc2UgbyBhbm8gaW5mb3JtYWRvIGZvciBpbnbDoWxpZG8uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzTGVhcFllYXIoeWVhcjogbnVtYmVyIHwgc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgWUVBUl9OVU1CRVI6IG51bWJlciA9IHR5cGVvZiB5ZWFyID09PSAnc3RyaW5nJyA/IHBhcnNlSW50KHllYXIpIDogeWVhcjtcblxuICAgIGlmICghaXNOYU4oWUVBUl9OVU1CRVIpKSB7XG4gICAgICBpZiAoKFlFQVJfTlVNQkVSICUgNCA9PT0gMCAmJiBZRUFSX05VTUJFUiAlIDEwMCAhPT0gMCkgfHwgWUVBUl9OVU1CRVIgJSA0MDAgPT09IDApIHJldHVybiB0cnVlO1xuICAgICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGVsc2UgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNlIHVtYSBkZXRlcm1pbmFkYSBkYXRhIMOpIGluZGV0ZXJtaW5hZGEuXG4gICAqIEBwYXJhbSBkYXRlVGltZSBEYXRhIGEgc2VyIHZlcmlmaWNhZGEuXG4gICAqIEByZXR1cm5zIFJldG9ybmEgdHJ1ZSBzZSBmb3IgaW5kZXRlcm1pbmFkYSBlIGZhbHNlIHNlIG7Do28gZm9yLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2ZXJpZnlEYXRlSXNJbmRldGVybWluYXRlKGRhdGVUaW1lOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRhdGVUaW1lLnRvU3RyaW5nKCkuc3BsaXQoJ1QnKVswXSA9PT0gJzIwOTktMTItMzEnO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNlIHVtYSBkZXRlcm1pbmFkYSBkYXRhIMOpIG51bGEgKGlndWFsIGEgJzE5MDAtMDEtMDFUMDA6MDA6MDAnKS5cbiAgICogQHBhcmFtIGRhdGVUaW1lIERhdGEgYSBzZXIgdmVyaWZpY2FkYS5cbiAgICogQHJldHVybnMgUmV0b3JuYSB0cnVlIHNlIGZvciBudWxhIGUgZmFsc2Ugc2UgbsOjbyBmb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZlcmlmeURhdGVJc051bGwoZGF0ZVRpbWU6IERhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGF0ZVRpbWUudG9TdHJpbmcoKS5zcGxpdCgnVCcpWzBdID09PSAnMTkwMC0wMS0wMSc7XG4gIH1cblxuICAvKipcbiAgICogVGVudGEgcmVhbGl6YXIgdW0gcGFyc2UgZGUgdW1hIGRhdGEgY29tIG9zIHNlZ3VpbnRlcyB2YWxvcmVzOiBkZC9NTS95eXl5IEhIOm1tXG4gICAqIFxuICAgKiBAcGFyYW0gdmFsdWUgU3RyaW5nIHF1ZSBjb250w6ltIGEgZGF0YSBmb3JtYXRhZGEgZW0gcHQtYnJcbiAgICogQHBhcmFtIGRhdGVTZXBhcmF0b3IgU2VwYXJhZG9yIGRhIGRhdGEuXG4gICAqIEByZXR1cm5zIFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXJzZURhdGVUaW1lKHZhbHVlOiBzdHJpbmcsIGRhdGVTZXBhcmF0b3I6IHN0cmluZyA9IFwiL1wiKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IHVzRGF0ZSA9IFwiXCI7XG5cbiAgICB2YWx1ZSA9IHZhbHVlLnRyaW0oKTtcblxuICAgIGNvbnN0IGRhdGVBbmRUaW1lOiBzdHJpbmdbXSA9IHZhbHVlLnNwbGl0KFwiIFwiKTtcblxuICAgIC8vIFBvc3N1aSBwZWxvIG1lbm9zIDUgY2FyYWN0ZXJlczogMS8xLzFcbiAgICBpZiAodmFsdWUubGVuZ3RoID49IDUpIHtcbiAgICAgIGNvbnN0IGRhdGVTZXBhcmF0ZWQ6IHN0cmluZ1tdID0gZGF0ZUFuZFRpbWVbMF0uc3BsaXQoZGF0ZVNlcGFyYXRvcik7XG5cbiAgICAgIGlmIChkYXRlU2VwYXJhdGVkLmxlbmd0aCAhPT0gMykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChkYXRlU2VwYXJhdGVkWzJdLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgZGF0ZVNlcGFyYXRlZFsyXSA9IGAke2RhdGVTZXBhcmF0ZWRbMl0uY2hhckF0KDApfSR7ZGF0ZVNlcGFyYXRlZFsyXS5jaGFyQXQoMSl9YC50cmltKCk7XG4gICAgICB9XG5cbiAgICAgIHVzRGF0ZSA9IGAke2RhdGVTZXBhcmF0ZWRbMV19LyR7ZGF0ZVNlcGFyYXRlZFswXX0vJHtkYXRlU2VwYXJhdGVkWzJdfWBcbiAgICB9XG5cbiAgICBpZiAoZGF0ZUFuZFRpbWUubGVuZ3RoID09PSAyKSB7XG5cbiAgICAgIHVzRGF0ZSArPSBgICR7ZGF0ZUFuZFRpbWVbMV19YDtcbiAgICB9XG5cbiAgICBjb25zdCBleHBlY3RlZERhdGU6IG51bWJlciA9IERhdGUucGFyc2UodXNEYXRlKTtcblxuICAgIGlmIChleHBlY3RlZERhdGUgIT09IG51bGwgfHwgZXhwZWN0ZWREYXRlIDwgMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRGF0ZShleHBlY3RlZERhdGUpO1xuICB9XG5cbiAgLy8gT2J0w6ltIGEgRGF0YSBsb2NhbFxuICBwdWJsaWMgc3RhdGljIGdldERhdGVMb2NhbFRpbWUoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIHJldHVybiAobmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCkpO1xuICB9XG5cbiAgLy8gT2J0w6ltIGEgRGF0YSBsb2NhbCBubyBQYWRyw6NvIElzb1xuICBwdWJsaWMgc3RhdGljIGdldERhdGVMb2NhbFRpbWVJU08oZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLmdldERhdGVMb2NhbFRpbWUoZGF0ZSkudG9JU09TdHJpbmcoKS5yZXBsYWNlKCcuMDAwWicsICcnKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldERhdGVQaWNrZXJEYXRlKHN0cjogc3RyaW5nKTogRGF0ZSB7XG4gICAgY29uc3QgW2RhdGVDb21wb25lbnRzLCB0aW1lQ29tcG9uZW50c10gPSBzdHIuc3BsaXQoJ1QnKVxuICAgIGNvbnN0IFthbm8sIG1lcywgZGlhXSA9IGRhdGVDb21wb25lbnRzLnNwbGl0KCctJyk7XG4gICAgY29uc3QgW2hvcmEsIG1pbnV0bywgc2VndW5kb10gPSB0aW1lQ29tcG9uZW50cy5zcGxpdCgnOicpO1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShOdW1iZXIoYW5vKSwgTnVtYmVyKG1lcyksIE51bWJlcihkaWEpKVxuXG4gICAgcmV0dXJuIGRhdGVcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgQWRpY2lvbmFEaWFzKGRhdGE6IERhdGUsIGRheXM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IGZpbmQgPSBuZXcgRGF0ZShOdW1iZXIoZGF0YSkpXG5cbiAgICBmaW5kLnNldERhdGUoZGF0YS5nZXREYXRlKCkgKyBkYXlzKVxuXG4gICAgcmV0dXJuIGZpbmRcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgRGlmZXJlbmNhRGlhcyhkYXRhSW5pY2lhbDogRGF0ZSwgZGF0YUZpbmFsOiBEYXRlKTogbnVtYmVyIHtcbiAgICBjb25zdCBUaW1lID0gZGF0YUZpbmFsLmdldFRpbWUoKSAtIGRhdGFJbmljaWFsLmdldFRpbWUoKTtcblxuICAgIHJldHVybiBUaW1lIC8gKDEwMDAgKiAzNjAwICogMjQpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBEaWZlcmVuY2FNZXNlcyhkYXRhSW5pY2lhbDogRGF0ZSwgZGF0YUZpbmFsOiBEYXRlKTogbnVtYmVyIHtcbiAgICBsZXQgbWVzZXMgPSAoZGF0YUZpbmFsLmdldEZ1bGxZZWFyKCkgLSBkYXRhSW5pY2lhbC5nZXRGdWxsWWVhcigpKSAqIDEyO1xuICAgIG1lc2VzIC09IGRhdGFJbmljaWFsLmdldE1vbnRoKCk7XG4gICAgbWVzZXMgKz0gZGF0YUZpbmFsLmdldE1vbnRoKCk7XG5cbiAgICByZXR1cm4gbWVzZXMgPD0gMCA/IDAgOiBtZXNlcztcbiAgfVxuXG5cbiAgLy9PYnTDqW0gYSBEYXRhIFVUQyBjb20gaG9yYSB6ZXJhZGFcbiAgcHVibGljIHN0YXRpYyBnZXREYXRlVVRDKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICAvL2NvZGlnbyBvcmlnaW5hbFxuICAgIC8vcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpICsgKGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKSk7XG4gICAgbGV0IGRhdGFTYWlkYTogRGF0ZTtcblxuICAgIHRyeSB7XG4gICAgICBkYXRhU2FpZGEgPSBuZXcgRGF0ZShkYXRlLmdldFVUQ0Z1bGxZZWFyKCksIGRhdGUuZ2V0VVRDTW9udGgoKSwgZGF0ZS5nZXRVVENEYXRlKCksIDAsIDAsIDApO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vUXVhbmRvIGRhdGUgY2hlZ2EgbmVzdGUgZm9ybWF0bzogMjAyMi0wNi0yMFQwMDowMDowMFxuICAgICAgLy90ZW50byBwZWdhciBhbm8vbWVzL2RpYSBkaXJldG8gXG4gICAgICAvL0RhdGUoRHRJbmlGZXIuZ2V0VVRDRnVsbFllYXIoKSwgRHRJbmlGZXIuZ2V0VVRDTW9udGgoKSwgRHRJbmlGZXIuZ2V0VVRDRGF0ZSgpLCAwICwgMCAsIDApO1xuICAgICAgLy9lIG7Do28gZnVuY2lvbmFcbiAgICAgIGNvbnN0IGRpYTogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZyg4LCAxMCk7XG4gICAgICBjb25zdCBtZXM6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoNSwgNyk7XG4gICAgICBjb25zdCBhbm86IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgNCk7XG4gICAgICBkYXRhU2FpZGEgPSBuZXcgRGF0ZShOdW1iZXIoYW5vKSwgTnVtYmVyKG1lcykgLSAxLCBOdW1iZXIoZGlhKSwgMCwgMCwgMCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGFTYWlkYTtcbiAgfVxuXG4gIC8vT2J0w6ltIGEgRGF0YSBVVEMgY29tIGhvcmEgemVyYWRhXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RGF0ZWRkTU15eXkoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgLy9jb2RpZ28gb3JpZ2luYWxcbiAgICAvL3JldHVybiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSArIChkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCkpO1xuICAgIGxldCBkYXRhU2FpZGE6IERhdGU7XG5cbiAgICB0cnkge1xuICAgICAgZGF0YVNhaWRhID0gbmV3IERhdGUoZGF0ZS5nZXRVVENGdWxsWWVhcigpLCBkYXRlLmdldFVUQ01vbnRoKCksIGRhdGUuZ2V0VVRDRGF0ZSgpLCAwLCAwLCAwKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvL1F1YW5kbyBkYXRlIGNoZWdhIG5lc3RlIGZvcm1hdG86IDIwMjItMDYtMjBUMDA6MDA6MDBcbiAgICAgIC8vdGVudG8gcGVnYXIgYW5vL21lcy9kaWEgZGlyZXRvIFxuICAgICAgLy9EYXRlKER0SW5pRmVyLmdldFVUQ0Z1bGxZZWFyKCksIER0SW5pRmVyLmdldFVUQ01vbnRoKCksIER0SW5pRmVyLmdldFVUQ0RhdGUoKSwgMCAsIDAgLCAwKTtcbiAgICAgIC8vZSBuw6NvIGZ1bmNpb25hXG4gICAgICBjb25zdCBkaWE6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoOCwgMTApO1xuICAgICAgY29uc3QgbWVzOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDUsIDcpO1xuICAgICAgY29uc3QgYW5vOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDQpO1xuXG4gICAgICBkYXRhU2FpZGEgPSBuZXcgRGF0ZShOdW1iZXIoYW5vKSwgTnVtYmVyKG1lcykgLSAxLCBOdW1iZXIoZGlhKSwgMCwgMCwgMCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFkKHM6IGFueSkgeyByZXR1cm4gKHMgPCAxMCkgPyAnMCcgKyBzIDogczsgfVxuXG4gICAgcmV0dXJuIFtwYWQoZGF0YVNhaWRhLmdldFVUQ0RhdGUoKSksIHBhZChkYXRhU2FpZGEuZ2V0VVRDTW9udGgoKSArIDEpLCBwYWQoZGF0YVNhaWRhLmdldFVUQ0Z1bGxZZWFyKCkpXS5qb2luKCcvJyk7XG4gIH1cblxuICAvL09idMOpbSBhIERhdGEgVVRDIGNvbSBhIGhvcmFcbiAgcHVibGljIHN0YXRpYyBnZXREYXRlZGRNTXl5eXlIaG1tc3MoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgbGV0IGRhdGFTYWlkYTogRGF0ZTtcblxuICAgIHRyeSB7XG4gICAgICBkYXRhU2FpZGEgPSBuZXcgRGF0ZShkYXRlLmdldFVUQ0Z1bGxZZWFyKCksIGRhdGUuZ2V0VVRDTW9udGgoKSwgZGF0ZS5nZXRVVENEYXRlKCksIGRhdGUuZ2V0SG91cnMoKSwgZGF0ZS5nZXRNaW51dGVzKCksIGRhdGUuZ2V0U2Vjb25kcygpKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvL1F1YW5kbyBkYXRlIGNoZWdhIG5lc3RlIGZvcm1hdG86IDIwMjItMDYtMjBUMDA6MDA6MDBcbiAgICAgIC8vdGVudG8gcGVnYXIgYW5vL21lcy9kaWEgZGlyZXRvIFxuICAgICAgLy9EYXRlKER0SW5pRmVyLmdldFVUQ0Z1bGxZZWFyKCksIER0SW5pRmVyLmdldFVUQ01vbnRoKCksIER0SW5pRmVyLmdldFVUQ0RhdGUoKSwgMCAsIDAgLCAwKTtcbiAgICAgIC8vZSBuw6NvIGZ1bmNpb25hXG4gICAgICBjb25zdCBkaWE6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoOCwgMTApO1xuICAgICAgY29uc3QgbWVzOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDUsIDcpO1xuICAgICAgY29uc3QgYW5vOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDQpO1xuICAgICAgY29uc3QgaG9yYTogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZygxMSwgMTMpO1xuICAgICAgY29uc3QgbWludXRvczogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZygxNCwgMTYpO1xuICAgICAgY29uc3Qgc2VndW5kb3M6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMTcsIDE5KTtcblxuICAgICAgZGF0YVNhaWRhID0gbmV3IERhdGUoTnVtYmVyKGFubyksIE51bWJlcihtZXMpIC0gMSwgTnVtYmVyKGRpYSksIE51bWJlcihob3JhKSwgTnVtYmVyKG1pbnV0b3MpLCBOdW1iZXIoc2VndW5kb3MpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYWQoczogYW55KSB7IHJldHVybiAocyA8IDEwKSA/ICcwJyArIHMgOiBzOyB9XG5cbiAgICBsZXQgZGF0YUZvcm1hdGFkYTogc3RyaW5nID0gW3BhZChkYXRhU2FpZGEuZ2V0RGF0ZSgpKSwgcGFkKGRhdGFTYWlkYS5nZXRVVENNb250aCgpICsgMSksIHBhZChkYXRhU2FpZGEuZ2V0VVRDRnVsbFllYXIoKSldLmpvaW4oJy8nKTtcblxuICAgIGRhdGFGb3JtYXRhZGEgKz0gXCIgXCI7XG4gICAgZGF0YUZvcm1hdGFkYSArPSBbcGFkKGRhdGFTYWlkYS5nZXRIb3VycygpKSwgcGFkKGRhdGFTYWlkYS5nZXRNaW51dGVzKCkpLCBwYWQoZGF0YVNhaWRhLmdldFNlY29uZHMoKSldLmpvaW4oJzonKTtcblxuICAgIHJldHVybiBkYXRhRm9ybWF0YWRhO1xuICB9XG5cbiAgc3RhdGljIFVsdGltb0RpYU1lcyhkYXRhOiBEYXRlKTogRGF0ZSB7XG4gICAgbGV0IGRhdGFTYWlkYTogRGF0ZSA9IHRoaXMuZ2V0RGF0ZVRpbWVVVEMoZGF0YSk7XG4gICAgLy8gYWRpY2lvbmEgMSBtZXNcbiAgICBkYXRhU2FpZGEuc2V0TW9udGgoZGF0YVNhaWRhLmdldFVUQ01vbnRoKCkgKyAxKTtcbiAgICAvL1Bvc2ljaW9uYSBubyBkaWEgMDEgZG8gbWVzIGFkaWNpb25hZG9cbiAgICBkYXRhU2FpZGEgPSBuZXcgRGF0ZShkYXRhU2FpZGEuZ2V0VVRDRnVsbFllYXIoKSwgZGF0YVNhaWRhLmdldFVUQ01vbnRoKCksIDEsIDAsIDAsIDApO1xuICAgIC8vIHN1YnRyYWkgMSBkaWEgcGFyYSBpciBwYXJhIG8gdWx0aW1vIGRpYSBkbyBtZXNcbiAgICBkYXRhU2FpZGEuc2V0RGF0ZShkYXRhU2FpZGEuZ2V0RGF0ZSgpIC0gMSk7XG5cbiAgICByZXR1cm4gZGF0YVNhaWRhO1xuICB9XG5cbiAgLy9PYnTDqW0gYSBEYXRhL2hvcmEgVVRDXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RGF0ZVRpbWVVVEMoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGxldCBkYXRhU2FpZGE6IERhdGU7XG5cbiAgICB0cnkge1xuICAgICAgZGF0YVNhaWRhID0gbmV3IERhdGUoZGF0ZS5nZXRVVENGdWxsWWVhcigpLCBkYXRlLmdldFVUQ01vbnRoKCksIGRhdGUuZ2V0VVRDRGF0ZSgpLCBkYXRlLmdldEhvdXJzKCksIGRhdGUuZ2V0TWludXRlcygpLCBkYXRlLmdldFNlY29uZHMoKSk7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgLy9RdWFuZG8gZGF0ZSBjaGVnYSBuZXN0ZSBmb3JtYXRvOiAyMDIyLTA2LTIwVDExOjEyOjEzXG4gICAgICBjb25zdCBkaWE6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoOCwgMTApO1xuICAgICAgY29uc3QgbWVzOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDUsIDcpO1xuICAgICAgY29uc3QgYW5vOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDQpO1xuICAgICAgY29uc3QgaG9yYTogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZygxMSwgMTMpO1xuICAgICAgY29uc3QgbWluOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDE0LCAxNik7XG4gICAgICBjb25zdCBzZWc6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMTcsIDE5KTtcbiAgICAgIGRhdGFTYWlkYSA9IG5ldyBEYXRlKE51bWJlcihhbm8pLCBOdW1iZXIobWVzKSAtIDEsIE51bWJlcihkaWEpLCBOdW1iZXIoaG9yYSksIE51bWJlcihtaW4pLCBOdW1iZXIoc2VnKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGFTYWlkYTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY29tcGFyZUVxdWFsRGF0ZXMoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3RyRGF0ZTE6IHN0cmluZyA9IFV0aWxzLmdldERhdGVkZE1NeXl5KGRhdGUxKTtcbiAgICBjb25zdCBzdHJEYXRlMjogc3RyaW5nID0gVXRpbHMuZ2V0RGF0ZWRkTU15eXkoZGF0ZTIpO1xuXG4gICAgaWYgKHN0ckRhdGUxID09PSBzdHJEYXRlMikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRNTVlZWVlUb0RhdGUodmFsdWU6IHN0cmluZyk6IERhdGUge1xuICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgnLycsICcnKTtcblxuICAgIGxldCBtb250aDogbnVtYmVyID0gTnVtYmVyKHZhbHVlLnN1YnN0cmluZygwLCAyKSk7XG4gICAgY29uc3QgeWVhcjogbnVtYmVyID0gTnVtYmVyKHZhbHVlLnN1YnN0cmluZygyLCA2KSk7XG5cbiAgICAvL0RpbWludWkgMSBwb2lzIG5vIGFuZ3VsYXIgZXhpc3RlIHVtIMOtbmRpY2UgZG8gbcOqcyBxdWUgbsOjbyDDqSBpZ3VhbCBhbyBtw6pzLlxuICAgIG1vbnRoID0gbW9udGggLSAxO1xuXG4gICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TnVsbERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKDE5MDAsIDAsIDEsIDAsIDAsIDApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXREYXRlV2ViU2VydmljZUZvcm1hdCh2YWx1ZTogRGF0ZSk6IHN0cmluZyB7XG5cbiAgICBpZiAodmFsdWUudG9TdHJpbmcoKSA9PSAnJykge1xuICAgICAgcmV0dXJuICcxOTAwLTAxLTAxJztcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gVXRpbHMuZ2V0RGF0ZWRkTU15eXkodmFsdWUpO1xuXG4gICAgcmV0dXJuIGRhdGEuc3Vic3RyaW5nKDYsIDEwKSArICctJyArIGRhdGEuc3Vic3RyaW5nKDMsIDUpICsgJy0nICsgZGF0YS5zdWJzdHJpbmcoMCwgMik7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldERhdGVUaW1lV2ViU2VydmljZUZvcm1hdCh2YWx1ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlLnRvU3RyaW5nKCkgPT0gJycgfHwgVXRpbHMuZ2V0RGF0ZWRkTU15eXkodmFsdWUpID09IFV0aWxzLmdldERhdGVkZE1NeXl5KHRoaXMuZ2V0TnVsbERhdGUoKSkpIHtcbiAgICAgICAgcmV0dXJuICcxOTAwLTAxLTAxVDAwOjAwOjAwJztcbiAgICB9XG4gIFxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gIFxuICAgIC8vIE9idGVuZG8gb3MgY29tcG9uZW50ZXMgaW5kaXZpZHVhaXMgZGEgZGF0YVxuICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgY29uc3QgbW9udGggPSBkYXRlLmdldE1vbnRoKCk7XG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXRlKCk7XG4gICAgY29uc3QgaG91cnMgPSBkYXRlLmdldEhvdXJzKCk7XG4gICAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0TWludXRlcygpO1xuICAgIGNvbnN0IHNlY29uZHMgPSBkYXRlLmdldFNlY29uZHMoKTsgXG4gIFxuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBgJHt5ZWFyfS0keyhtb250aCArIDEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0tJHtkYXkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfVQke2hvdXJzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06JHttaW51dGVzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06JHtzZWNvbmRzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gO1xuICAgIFxuICAgIHJldHVybiBmb3JtYXR0ZWREYXRlO1xuICB9XG5cbiAgLy9UcmFuc2Zvcm1hIGEgc3RyaW5nIEJhc2U2NCBudW0gYXJyYXkgZGUgYnl0ZXMgZSBmYXogbyBkb3dubG9hZCBkbyBhcnF1aXZvLlxuICBwdWJsaWMgc3RhdGljIGRvd25sb2FkRmlsZUJhc2U2NChmbGVOYW1lOiBzdHJpbmcsIGZpbGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGJ5dGVTdHJpbmcgPSB3aW5kb3cuYXRvYihmaWxlKTtcbiAgICBjb25zdCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihieXRlU3RyaW5nLmxlbmd0aCk7XG4gICAgY29uc3QgaW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlU3RyaW5nLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpbnQ4QXJyYXlbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtpbnQ4QXJyYXldKTtcblxuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuXG4gICAgLy9BYmlvXG4gICAgLy9PIHdpbmRvdy5vcGVuIGZvaSBjb21lbnRhZG8gcG9ycXVlIG5vIGRvd25sb2FkIGRvcyBhcnF1aXZvcyBkaWdpdGFpcyBhYnJpYSB1bWEgamFuZWxhIGNvbSBvIGJsb2IgZG8gYXJxdWl2by4gXG4gICAgLy9Db21lbnRhciBuw6NvIGFmZXRvdSBvIGRvd25sb2FkIGRvIGNvbnRyYS1jaGVxdWUuICBcbiAgICAvL3dpbmRvdy5vcGVuKHVybCk7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcblxuICAgIGEuaHJlZiA9IHVybDtcbiAgICBhLnRhcmdldCA9ICdfYmxhbmsnO1xuICAgIGEuZG93bmxvYWQgPSBmbGVOYW1lO1xuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcblxuICAgIGEuY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAqIEFicmUgbyBwb3B1cCBkbyBuYXZlZ2Fkb3IgcGFyYSBiYWl4YXIgdW0gYXJxdWl2byBxdWUgdmVpbyBkZSB1bSBibG9iLlxuICAqIFxuICAqIEBwYXJhbSBibG9iIENvbnRlw7pkbyBkbyBhcnF1aXZvIGJpbsOhcmlvIGEgc2VyIGJhaXhhZG8uXG4gICogQHBhcmFtIGZpbGVOYW1lIE5vbWUgZG8gYXJxdWl2byBhIHNlciBzYWx2by5cbiAgKi9cbiAgcHVibGljIHN0YXRpYyBkb3dubG9hZEZpbGUoYmxvYjogQmxvYiwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGFuY2hvciA9IHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG5cbiAgICBhbmNob3IuaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGFuY2hvci5kb3dubG9hZCA9IGZpbGVOYW1lO1xuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhbmNob3IpO1xuXG4gICAgYW5jaG9yLmNsaWNrKCk7XG5cbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGFuY2hvcik7XG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoYW5jaG9yLmhyZWYpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBiNjREZWNvZGVVbmljb2RlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBHb2luZyBiYWNrd2FyZHM6IGZyb20gYnl0ZXN0cmVhbSwgdG8gcGVyY2VudC1lbmNvZGluZywgdG8gb3JpZ2luYWwgc3RyaW5nLlxuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoYXRvYihzdHIpLnNwbGl0KCcnKS5tYXAoYyA9PiB7XG4gICAgICByZXR1cm4gJyUnICsgKCcwMCcgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMik7XG4gICAgfSkuam9pbignJykpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBiNjRFbmNvZGVVbmljb2RlKHN0cjogc3RyaW5nKSB7XG4gICAgLy8gZmlyc3Qgd2UgdXNlIGVuY29kZVVSSUNvbXBvbmVudCB0byBnZXQgcGVyY2VudC1lbmNvZGVkIFVURi04LFxuICAgIC8vIHRoZW4gd2UgY29udmVydCB0aGUgcGVyY2VudCBlbmNvZGluZ3MgaW50byByYXcgYnl0ZXMgd2hpY2hcbiAgICAvLyBjYW4gYmUgZmVkIGludG8gYnRvYS5cbiAgICByZXR1cm4gYnRvYShlbmNvZGVVUklDb21wb25lbnQoc3RyKS5yZXBsYWNlKC8lKFswLTlBLUZdezJ9KS9nLFxuICAgICAgKG1hdGNoLCBwMSkgPT4ge1xuICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgoXCIweFwiICsgcDEpIGFzIGFueSk7XG4gICAgICB9KSk7XG4gIH1cblxuICAvL0xhcmd1cmEgYSBwYXJ0aXIgZGUgb25kZSByZW1vbnRhIG8gbmd4X2RhdGF0YWJsZSBwYXJhIG1vYmlsZVxuICBwdWJsaWMgc3RhdGljIGdldElzTW9iaWxlKCkge1xuICAgIGNvbnN0IHdpZHRoID0gd2luZG93LmlubmVyV2lkdGggfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIHx8IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGg7XG4gICAgcmV0dXJuIHdpZHRoIDwgNzY4O1xuICB9XG5cblxuICAvLyAjcmVnaW9uIE9SREVOQcOHw4NPXG4gIHB1YmxpYyBzdGF0aWMgYWxwaGFudW1lcmljU29ydChhOiBzdHJpbmcgfCBudW1iZXIsIGI6IHN0cmluZyB8IG51bWJlcik6IG51bWJlcjtcbiAgcHVibGljIHN0YXRpYyBhbHBoYW51bWVyaWNTb3J0KGE6IHN0cmluZyB8IG51bWJlciwgYjogc3RyaW5nIHwgbnVtYmVyLCBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnKTogbnVtYmVyO1xuXG4gIC8qKiBNw6l0b2RvIGRlIG9yZGVuYcOnw6NvIGFsZmFudW3DqXJpY28gY29tIHBvc3NpYmlsaWRhZGUgZGUgZGlyZcOnw6NvICovXG4gIHB1YmxpYyBzdGF0aWMgYWxwaGFudW1lcmljU29ydChhOiBzdHJpbmcgfCBudW1iZXIsIGI6IHN0cmluZyB8IG51bWJlciwgZGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyA9ICdhc2MnKTogbnVtYmVyIHtcbiAgICBjb25zdCByZWdleCA9IC8oXFxkK3xcXEQrKS9nO1xuXG4gICAgY29uc3Qgc3RyaW5nQSA9IHRoaXMucHJvcGVydHlJc051bGxVbmRlZmluZWRPckVtcHR5KGEpID8gXCJcIiA6IGE7XG4gICAgY29uc3Qgc3RyaW5nQiA9IHRoaXMucHJvcGVydHlJc051bGxVbmRlZmluZWRPckVtcHR5KGIpID8gXCJcIiA6IGI7XG5cbiAgICBjb25zdCBhUGFydHMgPSBzdHJpbmdBLnRvU3RyaW5nKCkubWF0Y2gocmVnZXgpIHx8IFtdO1xuICAgIGNvbnN0IGJQYXJ0cyA9IHN0cmluZ0IudG9TdHJpbmcoKS5tYXRjaChyZWdleCkgfHwgW107XG5cbiAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1heChhUGFydHMubGVuZ3RoLCBiUGFydHMubGVuZ3RoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGFQYXJ0ID0gYVBhcnRzW2ldIHx8IFwiXCI7XG4gICAgICBjb25zdCBiUGFydCA9IGJQYXJ0c1tpXSB8fCBcIlwiO1xuXG4gICAgICBjb25zdCBhSXNOdW1iZXIgPSAhaXNOYU4oTnVtYmVyKGFQYXJ0KSk7XG4gICAgICBjb25zdCBiSXNOdW1iZXIgPSAhaXNOYU4oTnVtYmVyKGJQYXJ0KSk7XG5cbiAgICAgIGlmIChhSXNOdW1iZXIgJiYgYklzTnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IG51bUNvbXBhcmUgPSBOdW1iZXIoYVBhcnQpIC0gTnVtYmVyKGJQYXJ0KTtcbiAgICAgICAgaWYgKG51bUNvbXBhcmUgIT09IDApIHJldHVybiBkaXJlY3Rpb24gPT09ICdhc2MnID8gbnVtQ29tcGFyZSA6IC1udW1Db21wYXJlO1xuICAgICAgfSBlbHNlIGlmIChhSXNOdW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gJ2FzYycgPyAtMSA6IDE7XG4gICAgICB9IGVsc2UgaWYgKGJJc051bWJlcikge1xuICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09PSAnYXNjJyA/IDEgOiAtMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHN0ckNvbXBhcmUgPSBhUGFydC5sb2NhbGVDb21wYXJlKGJQYXJ0KTtcbiAgICAgICAgaWYgKHN0ckNvbXBhcmUgIT09IDApIHJldHVybiBkaXJlY3Rpb24gPT09ICdhc2MnID8gc3RyQ29tcGFyZSA6IC1zdHJDb21wYXJlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG4gIC8vICNlbmRyZWdpb24gT1JERU5Bw4fDg09cblxuXG5cbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBWQUxJREHDh8OVRVMgREUgVkFaSU8gPD09PT09PT09PT1cblxuICAvKiogUmV0b3JuYSBzZSBhIHZhcmnDoXZlbCBpbmZvcm1hZGEgw6kgPT09IG51bGwgfHwgdW5kZWZpbmVkIHx8IFwiXCIgKHN0cmluZyB2YXppYSkgKi9cbiAgcHVibGljIHN0YXRpYyBwcm9wZXJ0eUlzTnVsbFVuZGVmaW5lZE9yRW1wdHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBcIlwiKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogUmV0b3JuYSBzZSBhIHZhcmnDoXZlbCBpbmZvcm1hZGEgw6kgPT09IG51bGwgfHwgXCJcIiAoc3RyaW5nIHZhemlhKSAqL1xuICBwdWJsaWMgc3RhdGljIHByb3BlcnR5SXNOdWxsT3JFbXB0eSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSBcIlwiKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogUmV0b3JuYSBzZSBhIHZhcmnDoXZlbCBpbmZvcm1hZGEgw6kgPT09IG51bGwgfHwgdW5kZWZpbmVkIHx8IFwiIFwiIChzdHJpbmcgY29tIHVtIGVzcGHDp28gZW0gYnJhbmNvKSAqL1xuICBwdWJsaWMgc3RhdGljIHByb3BlcnR5SXNOdWxsVW5kZWZpbmVkT3JXaGl0ZXNwYWNlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gXCIgXCIpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBSZXRvcm5hIHNlIGEgdmFyacOhdmVsIGluZm9ybWFkYSDDqSA9PT0gbnVsbCB8fCBcIiBcIiAoc3RyaW5nIGNvbSB1bSBlc3Bhw6dvIGVtIGJyYW5jbykgKi9cbiAgcHVibGljIHN0YXRpYyBwcm9wZXJ0eUlzTnVsbE9yV2hpdGVzcGFjZSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSBcIiBcIikgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBWQUxJREHDh8OVRVMgREUgVkFaSU8gPD09PT09PT09PT1cblxufVxuIl19
416
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi91dGlscy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sS0FBSztJQUVoQixrREFBa0Q7SUFDM0MsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQVU7UUFFMUMsSUFBSSxZQUFZLEdBQVcsRUFBRSxDQUFDO1FBRTlCLElBQUksS0FBSyxDQUFDLEtBQUssWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUN0QyxpQ0FBaUM7WUFDakMsWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBRU4sbUNBQW1DO1lBQ25DLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUVqQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7b0JBRXhCLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUVoQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7NEJBQzdCLFlBQVksR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7d0JBQy9DLENBQUM7NkJBQ0ksQ0FBQzs0QkFDSixZQUFZLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUMxQyxDQUFDO29CQUVILENBQUM7eUJBQU0sQ0FBQzt3QkFDTixZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztvQkFDL0IsQ0FBQztnQkFFSCxDQUFDO3FCQUNJLENBQUM7b0JBRUosSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBRWhCLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQzs0QkFDN0IsWUFBWSxHQUFHLEdBQUcsS0FBSyxDQUFD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LEtBQUssRUFBRSxDQUFDO1lBQ2Isc0RBQXNEO1lBQ3RELE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sSUFBSSxHQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxRyxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFXLEVBQUUsS0FBVztRQUN0RCxNQUFNLFFBQVEsR0FBVyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELE1BQU0sUUFBUSxHQUFXLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFD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SUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxHQUFHO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDakQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBSUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVXRpbHMge1xuXG4gIC8vIE9idMOpbSBhIG1lbnNhZ2VtIGRlIGVycm8gZGUgdW1hIHJlcXVpc2nDp8OjbyBodHRwXG4gIHB1YmxpYyBzdGF0aWMgZ2V0SHR0cEVycm9yTWVzc2FnZShlcnJvcjogYW55KTogc3RyaW5nIHtcblxuICAgIGxldCBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuXG4gICAgaWYgKGVycm9yLmVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkge1xuICAgICAgLy8gRXJybyBvY29ycmV1IG5vIGxhZG8gZG8gY2xpZW50XG4gICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci5lcnJvci5tZXNzYWdlO1xuICAgIH0gZWxzZSB7XG5cbiAgICAgIC8vIEVycm8gb2NvcnJldSBubyBsYWRvIGRvIHNlcnZpZG9yXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzKSB7XG5cbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSAyMDApIHtcblxuICAgICAgICAgIGlmIChlcnJvci5lcnJvcikge1xuXG4gICAgICAgICAgICBpZiAoZXJyb3IuZXJyb3IuRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2Vycm9yLmVycm9yLkVycm9yTWVzc2FnZX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2Vycm9yLmVycm9yLk1lc3NhZ2V9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuXG4gICAgICAgICAgaWYgKGVycm9yLmVycm9yKSB7XG5cbiAgICAgICAgICAgIGlmIChlcnJvci5lcnJvci5FcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZXJyb3IuZXJyb3IuRXJyb3JNZXNzYWdlfTxicj48YnI+JHtlcnJvci5zdGF0dXN9IC0gJHtlcnJvci5zdGF0dXNUZXh0fWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZXJyb3IuZXJyb3IuTWVzc2FnZX08YnI+PGJyPiR7ZXJyb3Iuc3RhdHVzfSAtICR7ZXJyb3Iuc3RhdHVzVGV4dH1gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGVycm9yLm1lc3NhZ2U7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiBlcnJvck1lc3NhZ2U7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnREYXRlVGltZVRvRGF0ZVN0cmluZyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXRlU3RyaW5nOiBzdHJpbmdbXSA9IGRhdGUudG9TdHJpbmcoKS5zcGxpdCgnVCcpWzBdLnNwbGl0KCctJyk7XG5cbiAgICByZXR1cm4gYCR7ZGF0ZVN0cmluZ1swXX0tJHtkYXRlU3RyaW5nWzFdfS0ke2RhdGVTdHJpbmdbMl19YDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydFN0cmluZ1RvRGF0ZSh0ZXh0OiBzdHJpbmcpOiBEYXRlIHtcbiAgICBjb25zdCBkYXRlU3RyaW5nOiBzdHJpbmdbXSA9IHRleHQuc3BsaXQoJy0nKTtcblxuICAgIHJldHVybiBuZXcgRGF0ZSgrZGF0ZVN0cmluZ1swXSwgKCtkYXRlU3RyaW5nWzFdKSAtIDEsICtkYXRlU3RyaW5nWzJdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzZSB1bSBkZXRlcm1pbmFkbyBhbm8gw6kgYmlzc2V4dG8uXG4gICAqIEBwYXJhbSB5ZWFyIEFubyBhIHNlciB2ZXJpZmljYWRvLlxuICAgKiBAcmV0dXJucyBSZXRvcm5hIHRydWUgc2UgbyBhbm8gZm9yIGJpc3NleHRvIGUgZmFsc2Ugc2UgZWxlIG7Do28gZm9yLCBvdSBzZSBvIGFubyBpbmZvcm1hZG8gZm9yIGludsOhbGlkby5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNMZWFwWWVhcih5ZWFyOiBudW1iZXIgfCBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBZRUFSX05VTUJFUjogbnVtYmVyID0gdHlwZW9mIHllYXIgPT09ICdzdHJpbmcnID8gcGFyc2VJbnQoeWVhcikgOiB5ZWFyO1xuXG4gICAgaWYgKCFpc05hTihZRUFSX05VTUJFUikpIHtcbiAgICAgIGlmICgoWUVBUl9OVU1CRVIgJSA0ID09PSAwICYmIFlFQVJfTlVNQkVSICUgMTAwICE9PSAwKSB8fCBZRUFSX05VTUJFUiAlIDQwMCA9PT0gMCkgcmV0dXJuIHRydWU7XG4gICAgICBlbHNlIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2UgdW1hIGRldGVybWluYWRhIGRhdGEgw6kgaW5kZXRlcm1pbmFkYS5cbiAgICogQHBhcmFtIGRhdGVUaW1lIERhdGEgYSBzZXIgdmVyaWZpY2FkYS5cbiAgICogQHJldHVybnMgUmV0b3JuYSB0cnVlIHNlIGZvciBpbmRldGVybWluYWRhIGUgZmFsc2Ugc2UgbsOjbyBmb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZlcmlmeURhdGVJc0luZGV0ZXJtaW5hdGUoZGF0ZVRpbWU6IERhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGF0ZVRpbWUudG9TdHJpbmcoKS5zcGxpdCgnVCcpWzBdID09PSAnMjA5OS0xMi0zMSc7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2UgdW1hIGRldGVybWluYWRhIGRhdGEgw6kgbnVsYSAoaWd1YWwgYSAnMTkwMC0wMS0wMVQwMDowMDowMCcpLlxuICAgKiBAcGFyYW0gZGF0ZVRpbWUgRGF0YSBhIHNlciB2ZXJpZmljYWRhLlxuICAgKiBAcmV0dXJucyBSZXRvcm5hIHRydWUgc2UgZm9yIG51bGEgZSBmYWxzZSBzZSBuw6NvIGZvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmVyaWZ5RGF0ZUlzTnVsbChkYXRlVGltZTogRGF0ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkYXRlVGltZS50b1N0cmluZygpLnNwbGl0KCdUJylbMF0gPT09ICcxOTAwLTAxLTAxJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW50YSByZWFsaXphciB1bSBwYXJzZSBkZSB1bWEgZGF0YSBjb20gb3Mgc2VndWludGVzIHZhbG9yZXM6IGRkL01NL3l5eXkgSEg6bW1cbiAgICogXG4gICAqIEBwYXJhbSB2YWx1ZSBTdHJpbmcgcXVlIGNvbnTDqW0gYSBkYXRhIGZvcm1hdGFkYSBlbSBwdC1iclxuICAgKiBAcGFyYW0gZGF0ZVNlcGFyYXRvciBTZXBhcmFkb3IgZGEgZGF0YS5cbiAgICogQHJldHVybnMgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhcnNlRGF0ZVRpbWUodmFsdWU6IHN0cmluZywgZGF0ZVNlcGFyYXRvcjogc3RyaW5nID0gXCIvXCIpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgdXNEYXRlID0gXCJcIjtcblxuICAgIHZhbHVlID0gdmFsdWUudHJpbSgpO1xuXG4gICAgY29uc3QgZGF0ZUFuZFRpbWU6IHN0cmluZ1tdID0gdmFsdWUuc3BsaXQoXCIgXCIpO1xuXG4gICAgLy8gUG9zc3VpIHBlbG8gbWVub3MgNSBjYXJhY3RlcmVzOiAxLzEvMVxuICAgIGlmICh2YWx1ZS5sZW5ndGggPj0gNSkge1xuICAgICAgY29uc3QgZGF0ZVNlcGFyYXRlZDogc3RyaW5nW10gPSBkYXRlQW5kVGltZVswXS5zcGxpdChkYXRlU2VwYXJhdG9yKTtcblxuICAgICAgaWYgKGRhdGVTZXBhcmF0ZWQubGVuZ3RoICE9PSAzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGVTZXBhcmF0ZWRbMl0ubGVuZ3RoID4gMikge1xuICAgICAgICBkYXRlU2VwYXJhdGVkWzJdID0gYCR7ZGF0ZVNlcGFyYXRlZFsyXS5jaGFyQXQoMCl9JHtkYXRlU2VwYXJhdGVkWzJdLmNoYXJBdCgxKX1gLnRyaW0oKTtcbiAgICAgIH1cblxuICAgICAgdXNEYXRlID0gYCR7ZGF0ZVNlcGFyYXRlZFsxXX0vJHtkYXRlU2VwYXJhdGVkWzBdfS8ke2RhdGVTZXBhcmF0ZWRbMl19YFxuICAgIH1cblxuICAgIGlmIChkYXRlQW5kVGltZS5sZW5ndGggPT09IDIpIHtcblxuICAgICAgdXNEYXRlICs9IGAgJHtkYXRlQW5kVGltZVsxXX1gO1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGVjdGVkRGF0ZTogbnVtYmVyID0gRGF0ZS5wYXJzZSh1c0RhdGUpO1xuXG4gICAgaWYgKGV4cGVjdGVkRGF0ZSAhPT0gbnVsbCB8fCBleHBlY3RlZERhdGUgPCAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEYXRlKGV4cGVjdGVkRGF0ZSk7XG4gIH1cblxuICAvLyBPYnTDqW0gYSBEYXRhIGxvY2FsXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RGF0ZUxvY2FsVGltZShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgcmV0dXJuIChuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSAtIGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKSk7XG4gIH1cblxuICAvLyBPYnTDqW0gYSBEYXRhIGxvY2FsIG5vIFBhZHLDo28gSXNvXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RGF0ZUxvY2FsVGltZUlTTyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuZ2V0RGF0ZUxvY2FsVGltZShkYXRlKS50b0lTT1N0cmluZygpLnJlcGxhY2UoJy4wMDBaJywgJycpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RGF0ZVBpY2tlckRhdGUoc3RyOiBzdHJpbmcpOiBEYXRlIHtcbiAgICBjb25zdCBbZGF0ZUNvbXBvbmVudHMsIHRpbWVDb21wb25lbnRzXSA9IHN0ci5zcGxpdCgnVCcpXG4gICAgY29uc3QgW2FubywgbWVzLCBkaWFdID0gZGF0ZUNvbXBvbmVudHMuc3BsaXQoJy0nKTtcbiAgICBjb25zdCBbaG9yYSwgbWludXRvLCBzZWd1bmRvXSA9IHRpbWVDb21wb25lbnRzLnNwbGl0KCc6Jyk7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKE51bWJlcihhbm8pLCBOdW1iZXIobWVzKSwgTnVtYmVyKGRpYSkpXG5cbiAgICByZXR1cm4gZGF0ZVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBBZGljaW9uYURpYXMoZGF0YTogRGF0ZSwgZGF5czogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgZmluZCA9IG5ldyBEYXRlKE51bWJlcihkYXRhKSlcblxuICAgIGZpbmQuc2V0RGF0ZShkYXRhLmdldERhdGUoKSArIGRheXMpXG5cbiAgICByZXR1cm4gZmluZFxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBEaWZlcmVuY2FEaWFzKGRhdGFJbmljaWFsOiBEYXRlLCBkYXRhRmluYWw6IERhdGUpOiBudW1iZXIge1xuICAgIGNvbnN0IFRpbWUgPSBkYXRhRmluYWwuZ2V0VGltZSgpIC0gZGF0YUluaWNpYWwuZ2V0VGltZSgpO1xuXG4gICAgcmV0dXJuIFRpbWUgLyAoMTAwMCAqIDM2MDAgKiAyNCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIERpZmVyZW5jYU1lc2VzKGRhdGFJbmljaWFsOiBEYXRlLCBkYXRhRmluYWw6IERhdGUpOiBudW1iZXIge1xuICAgIGxldCBtZXNlcyA9IChkYXRhRmluYWwuZ2V0RnVsbFllYXIoKSAtIGRhdGFJbmljaWFsLmdldEZ1bGxZZWFyKCkpICogMTI7XG4gICAgbWVzZXMgLT0gZGF0YUluaWNpYWwuZ2V0TW9udGgoKTtcbiAgICBtZXNlcyArPSBkYXRhRmluYWwuZ2V0TW9udGgoKTtcblxuICAgIHJldHVybiBtZXNlcyA8PSAwID8gMCA6IG1lc2VzO1xuICB9XG5cblxuICAvL09idMOpbSBhIERhdGEgVVRDIGNvbSBob3JhIHplcmFkYVxuICBwdWJsaWMgc3RhdGljIGdldERhdGVVVEMoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIC8vY29kaWdvIG9yaWdpbmFsXG4gICAgLy9yZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgKyAoZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApKTtcbiAgICBsZXQgZGF0YVNhaWRhOiBEYXRlO1xuXG4gICAgdHJ5IHtcbiAgICAgIGRhdGFTYWlkYSA9IG5ldyBEYXRlKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSwgZGF0ZS5nZXRVVENNb250aCgpLCBkYXRlLmdldFVUQ0RhdGUoKSwgMCwgMCwgMCk7XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgLy9RdWFuZG8gZGF0ZSBjaGVnYSBuZXN0ZSBmb3JtYXRvOiAyMDIyLTA2LTIwVDAwOjAwOjAwXG4gICAgICAvL3RlbnRvIHBlZ2FyIGFuby9tZXMvZGlhIGRpcmV0byBcbiAgICAgIC8vRGF0ZShEdEluaUZlci5nZXRVVENGdWxsWWVhcigpLCBEdEluaUZlci5nZXRVVENNb250aCgpLCBEdEluaUZlci5nZXRVVENEYXRlKCksIDAgLCAwICwgMCk7XG4gICAgICAvL2UgbsOjbyBmdW5jaW9uYVxuICAgICAgY29uc3QgZGlhOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDgsIDEwKTtcbiAgICAgIGNvbnN0IG1lczogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZyg1LCA3KTtcbiAgICAgIGNvbnN0IGFubzogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZygwLCA0KTtcbiAgICAgIGRhdGFTYWlkYSA9IG5ldyBEYXRlKE51bWJlcihhbm8pLCBOdW1iZXIobWVzKSAtIDEsIE51bWJlcihkaWEpLCAwLCAwLCAwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YVNhaWRhO1xuICB9XG5cbiAgLy9PYnTDqW0gYSBEYXRhIFVUQyBjb20gaG9yYSB6ZXJhZGFcbiAgcHVibGljIHN0YXRpYyBnZXREYXRlZGRNTXl5eShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAvL2NvZGlnbyBvcmlnaW5hbFxuICAgIC8vcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpICsgKGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKSk7XG4gICAgbGV0IGRhdGFTYWlkYTogRGF0ZTtcblxuICAgIHRyeSB7XG4gICAgICBkYXRhU2FpZGEgPSBuZXcgRGF0ZShkYXRlLmdldFVUQ0Z1bGxZZWFyKCksIGRhdGUuZ2V0VVRDTW9udGgoKSwgZGF0ZS5nZXRVVENEYXRlKCksIDAsIDAsIDApO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vUXVhbmRvIGRhdGUgY2hlZ2EgbmVzdGUgZm9ybWF0bzogMjAyMi0wNi0yMFQwMDowMDowMFxuICAgICAgLy90ZW50byBwZWdhciBhbm8vbWVzL2RpYSBkaXJldG8gXG4gICAgICAvL0RhdGUoRHRJbmlGZXIuZ2V0VVRDRnVsbFllYXIoKSwgRHRJbmlGZXIuZ2V0VVRDTW9udGgoKSwgRHRJbmlGZXIuZ2V0VVRDRGF0ZSgpLCAwICwgMCAsIDApO1xuICAgICAgLy9lIG7Do28gZnVuY2lvbmFcbiAgICAgIGNvbnN0IGRpYTogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZyg4LCAxMCk7XG4gICAgICBjb25zdCBtZXM6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoNSwgNyk7XG4gICAgICBjb25zdCBhbm86IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgNCk7XG5cbiAgICAgIGRhdGFTYWlkYSA9IG5ldyBEYXRlKE51bWJlcihhbm8pLCBOdW1iZXIobWVzKSAtIDEsIE51bWJlcihkaWEpLCAwLCAwLCAwKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYWQoczogYW55KSB7IHJldHVybiAocyA8IDEwKSA/ICcwJyArIHMgOiBzOyB9XG5cbiAgICByZXR1cm4gW3BhZChkYXRhU2FpZGEuZ2V0VVRDRGF0ZSgpKSwgcGFkKGRhdGFTYWlkYS5nZXRVVENNb250aCgpICsgMSksIHBhZChkYXRhU2FpZGEuZ2V0VVRDRnVsbFllYXIoKSldLmpvaW4oJy8nKTtcbiAgfVxuXG4gIC8vT2J0w6ltIGEgRGF0YSBVVEMgY29tIGEgaG9yYVxuICBwdWJsaWMgc3RhdGljIGdldERhdGVkZE1NeXl5eUhobW1zcyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICBsZXQgZGF0YVNhaWRhOiBEYXRlO1xuXG4gICAgdHJ5IHtcbiAgICAgIGRhdGFTYWlkYSA9IG5ldyBEYXRlKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSwgZGF0ZS5nZXRVVENNb250aCgpLCBkYXRlLmdldFVUQ0RhdGUoKSwgZGF0ZS5nZXRIb3VycygpLCBkYXRlLmdldE1pbnV0ZXMoKSwgZGF0ZS5nZXRTZWNvbmRzKCkpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vUXVhbmRvIGRhdGUgY2hlZ2EgbmVzdGUgZm9ybWF0bzogMjAyMi0wNi0yMFQwMDowMDowMFxuICAgICAgLy90ZW50byBwZWdhciBhbm8vbWVzL2RpYSBkaXJldG8gXG4gICAgICAvL0RhdGUoRHRJbmlGZXIuZ2V0VVRDRnVsbFllYXIoKSwgRHRJbmlGZXIuZ2V0VVRDTW9udGgoKSwgRHRJbmlGZXIuZ2V0VVRDRGF0ZSgpLCAwICwgMCAsIDApO1xuICAgICAgLy9lIG7Do28gZnVuY2lvbmFcbiAgICAgIGNvbnN0IGRpYTogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZyg4LCAxMCk7XG4gICAgICBjb25zdCBtZXM6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoNSwgNyk7XG4gICAgICBjb25zdCBhbm86IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgNCk7XG4gICAgICBjb25zdCBob3JhOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDExLCAxMyk7XG4gICAgICBjb25zdCBtaW51dG9zOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDE0LCAxNik7XG4gICAgICBjb25zdCBzZWd1bmRvczogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZygxNywgMTkpO1xuXG4gICAgICBkYXRhU2FpZGEgPSBuZXcgRGF0ZShOdW1iZXIoYW5vKSwgTnVtYmVyKG1lcykgLSAxLCBOdW1iZXIoZGlhKSwgTnVtYmVyKGhvcmEpLCBOdW1iZXIobWludXRvcyksIE51bWJlcihzZWd1bmRvcykpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhZChzOiBhbnkpIHsgcmV0dXJuIChzIDwgMTApID8gJzAnICsgcyA6IHM7IH1cblxuICAgIGxldCBkYXRhRm9ybWF0YWRhOiBzdHJpbmcgPSBbcGFkKGRhdGFTYWlkYS5nZXREYXRlKCkpLCBwYWQoZGF0YVNhaWRhLmdldFVUQ01vbnRoKCkgKyAxKSwgcGFkKGRhdGFTYWlkYS5nZXRVVENGdWxsWWVhcigpKV0uam9pbignLycpO1xuXG4gICAgZGF0YUZvcm1hdGFkYSArPSBcIiBcIjtcbiAgICBkYXRhRm9ybWF0YWRhICs9IFtwYWQoZGF0YVNhaWRhLmdldEhvdXJzKCkpLCBwYWQoZGF0YVNhaWRhLmdldE1pbnV0ZXMoKSksIHBhZChkYXRhU2FpZGEuZ2V0U2Vjb25kcygpKV0uam9pbignOicpO1xuXG4gICAgcmV0dXJuIGRhdGFGb3JtYXRhZGE7XG4gIH1cblxuICBzdGF0aWMgVWx0aW1vRGlhTWVzKGRhdGE6IERhdGUpOiBEYXRlIHtcbiAgICBsZXQgZGF0YVNhaWRhOiBEYXRlID0gdGhpcy5nZXREYXRlVGltZVVUQyhkYXRhKTtcbiAgICAvLyBhZGljaW9uYSAxIG1lc1xuICAgIGRhdGFTYWlkYS5zZXRNb250aChkYXRhU2FpZGEuZ2V0VVRDTW9udGgoKSArIDEpO1xuICAgIC8vUG9zaWNpb25hIG5vIGRpYSAwMSBkbyBtZXMgYWRpY2lvbmFkb1xuICAgIGRhdGFTYWlkYSA9IG5ldyBEYXRlKGRhdGFTYWlkYS5nZXRVVENGdWxsWWVhcigpLCBkYXRhU2FpZGEuZ2V0VVRDTW9udGgoKSwgMSwgMCwgMCwgMCk7XG4gICAgLy8gc3VidHJhaSAxIGRpYSBwYXJhIGlyIHBhcmEgbyB1bHRpbW8gZGlhIGRvIG1lc1xuICAgIGRhdGFTYWlkYS5zZXREYXRlKGRhdGFTYWlkYS5nZXREYXRlKCkgLSAxKTtcblxuICAgIHJldHVybiBkYXRhU2FpZGE7XG4gIH1cblxuICAvL09idMOpbSBhIERhdGEvaG9yYSBVVENcbiAgcHVibGljIHN0YXRpYyBnZXREYXRlVGltZVVUQyhkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgbGV0IGRhdGFTYWlkYTogRGF0ZTtcblxuICAgIHRyeSB7XG4gICAgICBkYXRhU2FpZGEgPSBuZXcgRGF0ZShkYXRlLmdldFVUQ0Z1bGxZZWFyKCksIGRhdGUuZ2V0VVRDTW9udGgoKSwgZGF0ZS5nZXRVVENEYXRlKCksIGRhdGUuZ2V0SG91cnMoKSwgZGF0ZS5nZXRNaW51dGVzKCksIGRhdGUuZ2V0U2Vjb25kcygpKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvL1F1YW5kbyBkYXRlIGNoZWdhIG5lc3RlIGZvcm1hdG86IDIwMjItMDYtMjBUMTE6MTI6MTNcbiAgICAgIGNvbnN0IGRpYTogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZyg4LCAxMCk7XG4gICAgICBjb25zdCBtZXM6IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoNSwgNyk7XG4gICAgICBjb25zdCBhbm86IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgNCk7XG4gICAgICBjb25zdCBob3JhOiBzdHJpbmcgPSBkYXRlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDExLCAxMyk7XG4gICAgICBjb25zdCBtaW46IHN0cmluZyA9IGRhdGUudG9TdHJpbmcoKS5zdWJzdHJpbmcoMTQsIDE2KTtcbiAgICAgIGNvbnN0IHNlZzogc3RyaW5nID0gZGF0ZS50b1N0cmluZygpLnN1YnN0cmluZygxNywgMTkpO1xuICAgICAgZGF0YVNhaWRhID0gbmV3IERhdGUoTnVtYmVyKGFubyksIE51bWJlcihtZXMpIC0gMSwgTnVtYmVyKGRpYSksIE51bWJlcihob3JhKSwgTnVtYmVyKG1pbiksIE51bWJlcihzZWcpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YVNhaWRhO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb21wYXJlRXF1YWxEYXRlcyhkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdHJEYXRlMTogc3RyaW5nID0gVXRpbHMuZ2V0RGF0ZWRkTU15eXkoZGF0ZTEpO1xuICAgIGNvbnN0IHN0ckRhdGUyOiBzdHJpbmcgPSBVdGlscy5nZXREYXRlZGRNTXl5eShkYXRlMik7XG5cbiAgICBpZiAoc3RyRGF0ZTEgPT09IHN0ckRhdGUyKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydE1NWVlZWVRvRGF0ZSh2YWx1ZTogc3RyaW5nKTogRGF0ZSB7XG4gICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKCcvJywgJycpO1xuXG4gICAgbGV0IG1vbnRoOiBudW1iZXIgPSBOdW1iZXIodmFsdWUuc3Vic3RyaW5nKDAsIDIpKTtcbiAgICBjb25zdCB5ZWFyOiBudW1iZXIgPSBOdW1iZXIodmFsdWUuc3Vic3RyaW5nKDIsIDYpKTtcblxuICAgIC8vRGltaW51aSAxIHBvaXMgbm8gYW5ndWxhciBleGlzdGUgdW0gw61uZGljZSBkbyBtw6pzIHF1ZSBuw6NvIMOpIGlndWFsIGFvIG3DqnMuXG4gICAgbW9udGggPSBtb250aCAtIDE7XG5cbiAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXROdWxsRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoMTkwMCwgMCwgMSwgMCwgMCwgMCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldERhdGVXZWJTZXJ2aWNlRm9ybWF0KHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcblxuICAgIGlmICh2YWx1ZS50b1N0cmluZygpID09ICcnKSB7XG4gICAgICByZXR1cm4gJzE5MDAtMDEtMDEnO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSBVdGlscy5nZXREYXRlZGRNTXl5eSh2YWx1ZSk7XG5cbiAgICByZXR1cm4gZGF0YS5zdWJzdHJpbmcoNiwgMTApICsgJy0nICsgZGF0YS5zdWJzdHJpbmcoMywgNSkgKyAnLScgKyBkYXRhLnN1YnN0cmluZygwLCAyKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RGF0ZVRpbWVXZWJTZXJ2aWNlRm9ybWF0KHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUudG9TdHJpbmcoKSA9PSAnJyB8fCBVdGlscy5nZXREYXRlZGRNTXl5eSh2YWx1ZSkgPT0gVXRpbHMuZ2V0RGF0ZWRkTU15eXkodGhpcy5nZXROdWxsRGF0ZSgpKSkge1xuICAgICAgICByZXR1cm4gJzE5MDAtMDEtMDFUMDA6MDA6MDAnO1xuICAgIH1cbiAgXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgXG4gICAgLy8gT2J0ZW5kbyBvcyBjb21wb25lbnRlcyBpbmRpdmlkdWFpcyBkYSBkYXRhXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBtb250aCA9IGRhdGUuZ2V0TW9udGgoKTtcbiAgICBjb25zdCBkYXkgPSBkYXRlLmdldERhdGUoKTtcbiAgICBjb25zdCBob3VycyA9IGRhdGUuZ2V0SG91cnMoKTtcbiAgICBjb25zdCBtaW51dGVzID0gZGF0ZS5nZXRNaW51dGVzKCk7XG4gICAgY29uc3Qgc2Vjb25kcyA9IGRhdGUuZ2V0U2Vjb25kcygpOyBcbiAgXG4gICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IGAke3llYXJ9LSR7KG1vbnRoICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS0ke2RheS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9VCR7aG91cnMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfToke21pbnV0ZXMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfToke3NlY29uZHMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfWA7XG4gICAgXG4gICAgcmV0dXJuIGZvcm1hdHRlZERhdGU7XG4gIH1cblxuXG4gIC8vICNyZWdpb24gRE9XTkxPQUQgREUgQVJRVUlWT1NcblxuICAvKiogW1NFUsOBIERFUFJFQ0lBRE8gRU0gQlJFVkVdIFRyYW5zZm9ybWEgYSBzdHJpbmcgQmFzZTY0IG51bSBhcnJheSBkZSBieXRlcyBlIGZheiBvIGRvd25sb2FkIGRvIGFycXVpdm8uXG4gICAqIEBwYXJhbSBmbGVOYW1lIE5vbWUgZG8gYXJxdWl2byBhIHNlciBiYWl4YWRvLlxuICAgKiBAcGFyYW0gZmlsZSBTdHJpbmcgYmFzZTY0IGRvIGFycXVpdm8uXG4gICAqIFxuICAgKiBAZGVwcmVjYXRlZCBbc2Vyw6EgZGVwcmVjaWFkbyBlbSBicmV2ZV0gVXNlIGRvd25sb2FkRmlsZUJsb2IoKSBvdSBkb3dubG9hZEZpbGUoKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkb3dubG9hZEZpbGVCYXNlNjQoZmxlTmFtZTogc3RyaW5nLCBmaWxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBieXRlU3RyaW5nID0gd2luZG93LmF0b2IoZmlsZSk7XG4gICAgY29uc3QgYXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoYnl0ZVN0cmluZy5sZW5ndGgpO1xuICAgIGNvbnN0IGludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KGFycmF5QnVmZmVyKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZVN0cmluZy5sZW5ndGg7IGkrKykge1xuICAgICAgaW50OEFycmF5W2ldID0gYnl0ZVN0cmluZy5jaGFyQ29kZUF0KGkpO1xuICAgIH1cblxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbaW50OEFycmF5XSk7XG4gICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG5cbiAgICAvLyBBYmlvXG4gICAgLy8gTyB3aW5kb3cub3BlbiBmb2kgY29tZW50YWRvIHBvcnF1ZSBubyBkb3dubG9hZCBkb3MgYXJxdWl2b3MgZGlnaXRhaXMgYWJyaWEgdW1hIGphbmVsYSBjb20gbyBibG9iIGRvIGFycXVpdm8uXG4gICAgLy8gQ29tZW50YXIgbsOjbyBhZmV0b3UgbyBkb3dubG9hZCBkbyBjb250cmEtY2hlcXVlLlxuICAgIC8vIHdpbmRvdy5vcGVuKHVybCk7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcblxuICAgIGEuaHJlZiA9IHVybDtcbiAgICBhLnRhcmdldCA9ICdfYmxhbmsnO1xuICAgIGEuZG93bmxvYWQgPSBmbGVOYW1lO1xuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICBhLmNsaWNrKCk7XG4gIH1cblxuICAvKiogQWJyZSBvIHBvcHVwIGRvIG5hdmVnYWRvciBwYXJhIGJhaXhhciB1bSBhcnF1aXZvIHF1ZSB2ZWlvIGRlIHVtIGJsb2IuXG4gICogXG4gICogQHBhcmFtIGJsb2IgQ29udGXDumRvIGRvIGFycXVpdm8gYmluw6FyaW8gYSBzZXIgYmFpeGFkby5cbiAgKiBAcGFyYW0gZmlsZU5hbWUgTm9tZSBkbyBhcnF1aXZvIGEgc2VyIHNhbHZvLlxuICAqL1xuICBwdWJsaWMgc3RhdGljIGRvd25sb2FkRmlsZUJsb2IoYmxvYjogQmxvYiwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGFuY2hvciA9IHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG5cbiAgICBhbmNob3IuaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGFuY2hvci5kb3dubG9hZCA9IGZpbGVOYW1lO1xuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhbmNob3IpO1xuXG4gICAgYW5jaG9yLmNsaWNrKCk7XG5cbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGFuY2hvcik7XG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoYW5jaG9yLmhyZWYpO1xuICB9XG5cbiAgLyoqIEZheiBvIGRvd25sb2FkIGRlIHVtIGFycXVpdm8uXG4gICAqIE8gYXJxdWl2byDDqSBiYWl4YWRvIGNvbSBvIG5vbWUgZSBleHRlbnPDo28gaW5mb3JtYWRvcy5cbiAgICogXG4gICAqIEBwYXJhbSBtaW1lVHlwZSBTdHJpbmcgbWltZVR5cGUgZG8gYXJxdWl2by5cbiAgICogQHBhcmFtIGJhc2U2NCBTdHJpbmcgYmFzZTY0IGRvIGFycXVpdm8uXG4gICAqIEBwYXJhbSBmaWxlbmFtZSBOb21lIGRvIGFycXVpdm8gYSBzZXIgc2Fsdm8gKHByZWNpc2EgdGVyIGEgZXh0ZW5zw6NvIGRvIGFycXVpdm8pLlxuICAqL1xuICBwdWJsaWMgc3RhdGljIGRvd25sb2FkRmlsZShtaW1lVHlwZTogc3RyaW5nLCBiYXNlNjQ6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50PCdhJz4oJ2EnKTtcblxuICAgIGxpbmsuaHJlZiA9IGBkYXRhOiR7bWltZVR5cGV9O2Jhc2U2NCwke2Jhc2U2NH1gO1xuICAgIGxpbmsuZG93bmxvYWQgPSBmaWxlbmFtZTtcblxuICAgIGxpbmsuY2xpY2soKTtcbiAgfVxuXG4gIC8vICNlbmRyZWdpb24gRE9XTkxPQUQgREUgQVJRVUlWT1NcblxuICBwdWJsaWMgc3RhdGljIGI2NERlY29kZVVuaWNvZGUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIEdvaW5nIGJhY2t3YXJkczogZnJvbSBieXRlc3RyZWFtLCB0byBwZXJjZW50LWVuY29kaW5nLCB0byBvcmlnaW5hbCBzdHJpbmcuXG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChhdG9iKHN0cikuc3BsaXQoJycpLm1hcChjID0+IHtcbiAgICAgIHJldHVybiAnJScgKyAoJzAwJyArIGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC0yKTtcbiAgICB9KS5qb2luKCcnKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGI2NEVuY29kZVVuaWNvZGUoc3RyOiBzdHJpbmcpIHtcbiAgICAvLyBmaXJzdCB3ZSB1c2UgZW5jb2RlVVJJQ29tcG9uZW50IHRvIGdldCBwZXJjZW50LWVuY29kZWQgVVRGLTgsXG4gICAgLy8gdGhlbiB3ZSBjb252ZXJ0IHRoZSBwZXJjZW50IGVuY29kaW5ncyBpbnRvIHJhdyBieXRlcyB3aGljaFxuICAgIC8vIGNhbiBiZSBmZWQgaW50byBidG9hLlxuICAgIHJldHVybiBidG9hKGVuY29kZVVSSUNvbXBvbmVudChzdHIpLnJlcGxhY2UoLyUoWzAtOUEtRl17Mn0pL2csXG4gICAgICAobWF0Y2gsIHAxKSA9PiB7XG4gICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKChcIjB4XCIgKyBwMSkgYXMgYW55KTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIC8vTGFyZ3VyYSBhIHBhcnRpciBkZSBvbmRlIHJlbW9udGEgbyBuZ3hfZGF0YXRhYmxlIHBhcmEgbW9iaWxlXG4gIHB1YmxpYyBzdGF0aWMgZ2V0SXNNb2JpbGUoKSB7XG4gICAgY29uc3Qgd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggfHwgZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDtcbiAgICByZXR1cm4gd2lkdGggPCA3Njg7XG4gIH1cblxuXG4gIC8vICNyZWdpb24gT1JERU5Bw4fDg09cbiAgcHVibGljIHN0YXRpYyBhbHBoYW51bWVyaWNTb3J0KGE6IHN0cmluZyB8IG51bWJlciwgYjogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyO1xuICBwdWJsaWMgc3RhdGljIGFscGhhbnVtZXJpY1NvcnQoYTogc3RyaW5nIHwgbnVtYmVyLCBiOiBzdHJpbmcgfCBudW1iZXIsIGRpcmVjdGlvbjogJ2FzYycgfCAnZGVzYycpOiBudW1iZXI7XG5cbiAgLyoqIE3DqXRvZG8gZGUgb3JkZW5hw6fDo28gYWxmYW51bcOpcmljbyBjb20gcG9zc2liaWxpZGFkZSBkZSBkaXJlw6fDo28gKi9cbiAgcHVibGljIHN0YXRpYyBhbHBoYW51bWVyaWNTb3J0KGE6IHN0cmluZyB8IG51bWJlciwgYjogc3RyaW5nIHwgbnVtYmVyLCBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnID0gJ2FzYycpOiBudW1iZXIge1xuICAgIGNvbnN0IHJlZ2V4ID0gLyhcXGQrfFxcRCspL2c7XG5cbiAgICBjb25zdCBzdHJpbmdBID0gdGhpcy5wcm9wZXJ0eUlzTnVsbFVuZGVmaW5lZE9yRW1wdHkoYSkgPyBcIlwiIDogYTtcbiAgICBjb25zdCBzdHJpbmdCID0gdGhpcy5wcm9wZXJ0eUlzTnVsbFVuZGVmaW5lZE9yRW1wdHkoYikgPyBcIlwiIDogYjtcblxuICAgIGNvbnN0IGFQYXJ0cyA9IHN0cmluZ0EudG9TdHJpbmcoKS5tYXRjaChyZWdleCkgfHwgW107XG4gICAgY29uc3QgYlBhcnRzID0gc3RyaW5nQi50b1N0cmluZygpLm1hdGNoKHJlZ2V4KSB8fCBbXTtcblxuICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWF4KGFQYXJ0cy5sZW5ndGgsIGJQYXJ0cy5sZW5ndGgpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgYVBhcnQgPSBhUGFydHNbaV0gfHwgXCJcIjtcbiAgICAgIGNvbnN0IGJQYXJ0ID0gYlBhcnRzW2ldIHx8IFwiXCI7XG5cbiAgICAgIGNvbnN0IGFJc051bWJlciA9ICFpc05hTihOdW1iZXIoYVBhcnQpKTtcbiAgICAgIGNvbnN0IGJJc051bWJlciA9ICFpc05hTihOdW1iZXIoYlBhcnQpKTtcblxuICAgICAgaWYgKGFJc051bWJlciAmJiBiSXNOdW1iZXIpIHtcbiAgICAgICAgY29uc3QgbnVtQ29tcGFyZSA9IE51bWJlcihhUGFydCkgLSBOdW1iZXIoYlBhcnQpO1xuICAgICAgICBpZiAobnVtQ29tcGFyZSAhPT0gMCkgcmV0dXJuIGRpcmVjdGlvbiA9PT0gJ2FzYycgPyBudW1Db21wYXJlIDogLW51bUNvbXBhcmU7XG4gICAgICB9IGVsc2UgaWYgKGFJc051bWJlcikge1xuICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09PSAnYXNjJyA/IC0xIDogMTtcbiAgICAgIH0gZWxzZSBpZiAoYklzTnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBkaXJlY3Rpb24gPT09ICdhc2MnID8gMSA6IC0xO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3RyQ29tcGFyZSA9IGFQYXJ0LmxvY2FsZUNvbXBhcmUoYlBhcnQpO1xuICAgICAgICBpZiAoc3RyQ29tcGFyZSAhPT0gMCkgcmV0dXJuIGRpcmVjdGlvbiA9PT0gJ2FzYycgPyBzdHJDb21wYXJlIDogLXN0ckNvbXBhcmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgLy8gI2VuZHJlZ2lvbiBPUkRFTkHDh8ODT1xuXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gVkFMSURBw4fDlUVTIERFIFZBWklPIDw9PT09PT09PT09XG5cbiAgLyoqIFJldG9ybmEgc2UgYSB2YXJpw6F2ZWwgaW5mb3JtYWRhIMOpID09PSBudWxsIHx8IHVuZGVmaW5lZCB8fCBcIlwiIChzdHJpbmcgdmF6aWEpICovXG4gIHB1YmxpYyBzdGF0aWMgcHJvcGVydHlJc051bGxVbmRlZmluZWRPckVtcHR5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gXCJcIikgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqIFJldG9ybmEgc2UgYSB2YXJpw6F2ZWwgaW5mb3JtYWRhIMOpID09PSBudWxsIHx8IFwiXCIgKHN0cmluZyB2YXppYSkgKi9cbiAgcHVibGljIHN0YXRpYyBwcm9wZXJ0eUlzTnVsbE9yRW1wdHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gXCJcIikgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqIFJldG9ybmEgc2UgYSB2YXJpw6F2ZWwgaW5mb3JtYWRhIMOpID09PSBudWxsIHx8IHVuZGVmaW5lZCB8fCBcIiBcIiAoc3RyaW5nIGNvbSB1bSBlc3Bhw6dvIGVtIGJyYW5jbykgKi9cbiAgcHVibGljIHN0YXRpYyBwcm9wZXJ0eUlzTnVsbFVuZGVmaW5lZE9yV2hpdGVzcGFjZSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IFwiIFwiKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogUmV0b3JuYSBzZSBhIHZhcmnDoXZlbCBpbmZvcm1hZGEgw6kgPT09IG51bGwgfHwgXCIgXCIgKHN0cmluZyBjb20gdW0gZXNwYcOnbyBlbSBicmFuY28pICovXG4gIHB1YmxpYyBzdGF0aWMgcHJvcGVydHlJc051bGxPcldoaXRlc3BhY2UodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gXCIgXCIpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gVkFMSURBw4fDlUVTIERFIFZBWklPIDw9PT09PT09PT09XG5cbn1cbiJdfQ==