@sumaris-net/ngx-components 18.2.17 → 18.2.19

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.
@@ -5,7 +5,7 @@ import { CommonModule } from '@angular/common';
5
5
  import { IonicModule } from '@ionic/angular';
6
6
  import { SharedPipesModule } from '../../pipes/pipes.module';
7
7
  import { ReactiveFormsModule } from '@angular/forms';
8
- import { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';
8
+ import { NgxMatTimepickerModule } from 'ngx-mat-timepicker';
9
9
  import { MatDuration } from './material.duration';
10
10
  import { MatMomentDateModule } from '@angular/material-moment-adapter';
11
11
  import { MatFormFieldModule } from '@angular/material/form-field';
@@ -23,7 +23,7 @@ export class SharedMatDurationModule {
23
23
  MatCommonModule,
24
24
  MatFormFieldModule,
25
25
  MatInputModule,
26
- NgxMaterialTimepickerModule,
26
+ NgxMatTimepickerModule,
27
27
  MatRippleModule,
28
28
  MatMomentDateModule, i1.TranslateModule, MaskitoDirective,
29
29
  SharedDirectivesModule], exports: [MatDuration] });
@@ -34,7 +34,7 @@ export class SharedMatDurationModule {
34
34
  MatCommonModule,
35
35
  MatFormFieldModule,
36
36
  MatInputModule,
37
- NgxMaterialTimepickerModule,
37
+ NgxMatTimepickerModule,
38
38
  MatRippleModule,
39
39
  MatMomentDateModule,
40
40
  TranslateModule.forChild(),
@@ -51,7 +51,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
51
51
  MatCommonModule,
52
52
  MatFormFieldModule,
53
53
  MatInputModule,
54
- NgxMaterialTimepickerModule,
54
+ NgxMatTimepickerModule,
55
55
  MatRippleModule,
56
56
  MatMomentDateModule,
57
57
  TranslateModule.forChild(),
@@ -62,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
62
62
  declarations: [MatDuration],
63
63
  }]
64
64
  }] });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvZHVyYXRpb24vZHVyYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFxQjVFLE1BQU0sT0FBTyx1QkFBdUI7d0dBQXZCLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLGlCQUZuQixXQUFXLGFBZnhCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCwyQkFBMkI7WUFDM0IsZUFBZTtZQUNmLG1CQUFtQixzQkFFbkIsZ0JBQWdCO1lBQ2hCLHNCQUFzQixhQUVkLFdBQVc7eUdBR1YsdUJBQXVCLFlBakJoQyxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsMkJBQTJCO1lBQzNCLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsZUFBZSxDQUFDLFFBQVEsRUFBRTtZQUUxQixzQkFBc0I7OzRGQUtiLHVCQUF1QjtrQkFuQm5DLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsMkJBQTJCO3dCQUMzQixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsZUFBZSxDQUFDLFFBQVEsRUFBRTt3QkFDMUIsZ0JBQWdCO3dCQUNoQixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztvQkFDdEIsWUFBWSxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRDb21tb25Nb2R1bGUsIE1hdFJpcHBsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBTaGFyZWRQaXBlc01vZHVsZSB9IGZyb20gJy4uLy4uL3BpcGVzL3BpcGVzLm1vZHVsZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmd4TWF0ZXJpYWxUaW1lcGlja2VyTW9kdWxlIH0gZnJvbSAnbmd4LW1hdGVyaWFsLXRpbWVwaWNrZXInO1xuaW1wb3J0IHsgTWF0RHVyYXRpb24gfSBmcm9tICcuL21hdGVyaWFsLmR1cmF0aW9uJztcbmltcG9ydCB7IE1hdE1vbWVudERhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWFza2l0b0RpcmVjdGl2ZSB9IGZyb20gJ0BtYXNraXRvL2FuZ3VsYXInO1xuaW1wb3J0IHsgU2hhcmVkRGlyZWN0aXZlc01vZHVsZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZGlyZWN0aXZlcy5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbmljTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU2hhcmVkUGlwZXNNb2R1bGUsXG4gICAgTWF0Q29tbW9uTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBOZ3hNYXRlcmlhbFRpbWVwaWNrZXJNb2R1bGUsXG4gICAgTWF0UmlwcGxlTW9kdWxlLFxuICAgIE1hdE1vbWVudERhdGVNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksXG4gICAgTWFza2l0b0RpcmVjdGl2ZSxcbiAgICBTaGFyZWREaXJlY3RpdmVzTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbTWF0RHVyYXRpb25dLFxuICBkZWNsYXJhdGlvbnM6IFtNYXREdXJhdGlvbl0sXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZE1hdER1cmF0aW9uTW9kdWxlIHt9XG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvbWF0ZXJpYWwvZHVyYXRpb24vZHVyYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFxQjVFLE1BQU0sT0FBTyx1QkFBdUI7d0dBQXZCLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLGlCQUZuQixXQUFXLGFBZnhCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxzQkFBc0I7WUFDdEIsZUFBZTtZQUNmLG1CQUFtQixzQkFFbkIsZ0JBQWdCO1lBQ2hCLHNCQUFzQixhQUVkLFdBQVc7eUdBR1YsdUJBQXVCLFlBakJoQyxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2Qsc0JBQXNCO1lBQ3RCLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsZUFBZSxDQUFDLFFBQVEsRUFBRTtZQUUxQixzQkFBc0I7OzRGQUtiLHVCQUF1QjtrQkFuQm5DLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2Qsc0JBQXNCO3dCQUN0QixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsZUFBZSxDQUFDLFFBQVEsRUFBRTt3QkFDMUIsZ0JBQWdCO3dCQUNoQixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztvQkFDdEIsWUFBWSxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRDb21tb25Nb2R1bGUsIE1hdFJpcHBsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBTaGFyZWRQaXBlc01vZHVsZSB9IGZyb20gJy4uLy4uL3BpcGVzL3BpcGVzLm1vZHVsZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmd4TWF0VGltZXBpY2tlck1vZHVsZSB9IGZyb20gJ25neC1tYXQtdGltZXBpY2tlcic7XG5pbXBvcnQgeyBNYXREdXJhdGlvbiB9IGZyb20gJy4vbWF0ZXJpYWwuZHVyYXRpb24nO1xuaW1wb3J0IHsgTWF0TW9tZW50RGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXNraXRvRGlyZWN0aXZlIH0gZnJvbSAnQG1hc2tpdG8vYW5ndWxhcic7XG5pbXBvcnQgeyBTaGFyZWREaXJlY3RpdmVzTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9kaXJlY3RpdmVzLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uaWNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTaGFyZWRQaXBlc01vZHVsZSxcbiAgICBNYXRDb21tb25Nb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE5neE1hdFRpbWVwaWNrZXJNb2R1bGUsXG4gICAgTWF0UmlwcGxlTW9kdWxlLFxuICAgIE1hdE1vbWVudERhdGVNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksXG4gICAgTWFza2l0b0RpcmVjdGl2ZSxcbiAgICBTaGFyZWREaXJlY3RpdmVzTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbTWF0RHVyYXRpb25dLFxuICBkZWNsYXJhdGlvbnM6IFtNYXREdXJhdGlvbl0sXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZE1hdER1cmF0aW9uTW9kdWxlIHt9XG4iXX0=
@@ -2,22 +2,43 @@
2
2
  * Source: https://github.com/ionic-team/ionic-framework/blob/b0d53ca73619585671d8cf4dc24e47f826495a0a/core/src/utils/platform.ts
3
3
  * --- */
4
4
  const _cache = {
5
+ userAgent: null,
5
6
  mobile: null,
6
7
  cordova: null,
7
8
  capacitor: null,
8
9
  };
9
- export const matchMedia = (win, query) => win.matchMedia(query).matches;
10
- export const testUserAgent = (win, expr) => {
11
- const userAgent = win.navigator.userAgent || win.navigator.vendor || window.opera;
10
+ export function matchMedia(win, query) {
11
+ return win.matchMedia(query).matches;
12
+ }
13
+ export function getUserAgent(win) {
14
+ if (!_cache.userAgent) {
15
+ _cache.userAgent = win.navigator.userAgent || win.navigator.vendor || window.opera;
16
+ }
17
+ return _cache.userAgent;
18
+ }
19
+ export function testUserAgent(win, expr) {
20
+ const userAgent = getUserAgent(win);
12
21
  return expr.test(userAgent);
13
- };
14
- export const isWindows = (win) => testUserAgent(win, /windows/i);
15
- export const isFirefox = (win) => testUserAgent(win, / Firefox\//);
16
- export const isSafari = (win) => !isChrome(win) /*Exclude chromium*/ && testUserAgent(win, / safari\//);
17
- export const isChrome = (win) => testUserAgent(win, / Chrome\//);
18
- export const isEdge = (win) => testUserAgent(win, /edge/i);
19
- export const isTouchUi = (win) => matchMedia(win, '(any-pointer:coarse)');
20
- export const isIpad = (win) => {
22
+ }
23
+ export function isWindows(win) {
24
+ return testUserAgent(win, /windows/i);
25
+ }
26
+ export function isFirefox(win) {
27
+ return testUserAgent(win, / firefox\//i);
28
+ }
29
+ export function isSafari(win) {
30
+ return !isChrome(win) /*Exclude chromium*/ && testUserAgent(win, / safari\//i);
31
+ }
32
+ export function isChrome(win) {
33
+ return testUserAgent(win, / chrome\//i);
34
+ }
35
+ export function isEdge(win) {
36
+ return testUserAgent(win, /edge/i);
37
+ }
38
+ export function isTouchUi(win) {
39
+ return matchMedia(win, '(any-pointer:coarse)');
40
+ }
41
+ export function isIpad(win) {
21
42
  // iOS 12 and below
22
43
  if (testUserAgent(win, /iPad/i)) {
23
44
  return true;
@@ -27,23 +48,24 @@ export const isIpad = (win) => {
27
48
  return true;
28
49
  }
29
50
  return false;
30
- };
31
- export const isMacOS = (win) => {
51
+ }
52
+ export function isMacOS(win) {
32
53
  // iOS (but not iPad)
33
- if (testUserAgent(win, /Macintosh/i) && !isTouchUi(win)) {
34
- return true;
35
- }
36
- return false;
37
- };
38
- export const isIOS = (win) => testUserAgent(win, /iPhone|iPod/i) || isIpad(win);
39
- export const isAndroid = (win) => testUserAgent(win, /android|sink/i);
40
- export const isCapacitor = (win) => {
54
+ return testUserAgent(win, /Macintosh/i) && !isTouchUi(win);
55
+ }
56
+ export function isIOS(win) {
57
+ return testUserAgent(win, /iPhone|iPod/i) || isIpad(win);
58
+ }
59
+ export function isAndroid(win) {
60
+ return testUserAgent(win, /android|sink/i);
61
+ }
62
+ export function isCapacitor(win) {
41
63
  if (_cache.capacitor === null || _cache.capacitor === undefined) {
42
64
  _cache.capacitor = !!(win['Capacitor'] || win['capacitor']);
43
65
  }
44
66
  return _cache.capacitor;
45
- };
46
- export const isMobile = (win) => {
67
+ }
68
+ export function isMobile(win) {
47
69
  if (_cache.mobile === null || _cache.mobile === undefined) {
48
70
  _cache.mobile =
49
71
  isAndroid(win) ||
@@ -52,5 +74,5 @@ export const isMobile = (win) => {
52
74
  (isTouchUi(win) && !isWindows(win));
53
75
  }
54
76
  return _cache.mobile;
55
- };
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGxhdGZvcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztTQUVTO0FBRVQsTUFBTSxNQUFNLEdBQUc7SUFDYixNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxJQUFJO0lBQ2IsU0FBUyxFQUFFLElBQUk7Q0FDaEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFhLEVBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBRWpHLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQVcsRUFBRSxJQUFZLEVBQUUsRUFBRTtJQUN6RCxNQUFNLFNBQVMsR0FBVyxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSyxNQUFjLENBQUMsS0FBSyxDQUFDO0lBQ25HLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFZLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFFMUUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBWSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBRTVFLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsb0JBQW9CLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUVqSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFZLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFMUUsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBWSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQVksRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBRW5GLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO0lBQ3BDLG1CQUFtQjtJQUNuQixJQUFJLGFBQWEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVO0lBQ1YsSUFBSSxhQUFhLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7SUFDckMscUJBQXFCO0lBQ3JCLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUV4RixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFFOUUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBUSxFQUFXLEVBQUU7SUFDL0MsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDMUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7SUFDdEMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzFELE1BQU0sQ0FBQyxNQUFNO1lBQ1gsU0FBUyxDQUFDLEdBQUcsQ0FBQztnQkFDZCxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2pDLHNGQUFzRjtnQkFDdEYsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIC0tLVxuICogU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1mcmFtZXdvcmsvYmxvYi9iMGQ1M2NhNzM2MTk1ODU2NzFkOGNmNGRjMjRlNDdmODI2NDk1YTBhL2NvcmUvc3JjL3V0aWxzL3BsYXRmb3JtLnRzXG4gKiAtLS0gKi9cblxuY29uc3QgX2NhY2hlID0ge1xuICBtb2JpbGU6IG51bGwsXG4gIGNvcmRvdmE6IG51bGwsXG4gIGNhcGFjaXRvcjogbnVsbCxcbn07XG5cbmV4cG9ydCBjb25zdCBtYXRjaE1lZGlhID0gKHdpbjogV2luZG93LCBxdWVyeTogc3RyaW5nKTogYm9vbGVhbiA9PiB3aW4ubWF0Y2hNZWRpYShxdWVyeSkubWF0Y2hlcztcblxuZXhwb3J0IGNvbnN0IHRlc3RVc2VyQWdlbnQgPSAod2luOiBXaW5kb3csIGV4cHI6IFJlZ0V4cCkgPT4ge1xuICBjb25zdCB1c2VyQWdlbnQ6IHN0cmluZyA9IHdpbi5uYXZpZ2F0b3IudXNlckFnZW50IHx8IHdpbi5uYXZpZ2F0b3IudmVuZG9yIHx8ICh3aW5kb3cgYXMgYW55KS5vcGVyYTtcbiAgcmV0dXJuIGV4cHIudGVzdCh1c2VyQWdlbnQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzV2luZG93cyA9ICh3aW4/OiBXaW5kb3cpID0+IHRlc3RVc2VyQWdlbnQod2luLCAvd2luZG93cy9pKTtcblxuZXhwb3J0IGNvbnN0IGlzRmlyZWZveCA9ICh3aW4/OiBXaW5kb3cpID0+IHRlc3RVc2VyQWdlbnQod2luLCAvIEZpcmVmb3hcXC8vKTtcblxuZXhwb3J0IGNvbnN0IGlzU2FmYXJpID0gKHdpbj86IFdpbmRvdykgPT4gIWlzQ2hyb21lKHdpbikgLypFeGNsdWRlIGNocm9taXVtKi8gJiYgdGVzdFVzZXJBZ2VudCh3aW4sIC8gc2FmYXJpXFwvLyk7XG5cbmV4cG9ydCBjb25zdCBpc0Nocm9tZSA9ICh3aW4/OiBXaW5kb3cpID0+IHRlc3RVc2VyQWdlbnQod2luLCAvIENocm9tZVxcLy8pO1xuXG5leHBvcnQgY29uc3QgaXNFZGdlID0gKHdpbj86IFdpbmRvdykgPT4gdGVzdFVzZXJBZ2VudCh3aW4sIC9lZGdlL2kpO1xuXG5leHBvcnQgY29uc3QgaXNUb3VjaFVpID0gKHdpbj86IFdpbmRvdykgPT4gbWF0Y2hNZWRpYSh3aW4sICcoYW55LXBvaW50ZXI6Y29hcnNlKScpO1xuXG5leHBvcnQgY29uc3QgaXNJcGFkID0gKHdpbjogV2luZG93KSA9PiB7XG4gIC8vIGlPUyAxMiBhbmQgYmVsb3dcbiAgaWYgKHRlc3RVc2VyQWdlbnQod2luLCAvaVBhZC9pKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gaU9TIDEzK1xuICBpZiAodGVzdFVzZXJBZ2VudCh3aW4sIC9NYWNpbnRvc2gvaSkgJiYgaXNUb3VjaFVpKHdpbikpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc01hY09TID0gKHdpbjogV2luZG93KSA9PiB7XG4gIC8vIGlPUyAoYnV0IG5vdCBpUGFkKVxuICBpZiAodGVzdFVzZXJBZ2VudCh3aW4sIC9NYWNpbnRvc2gvaSkgJiYgIWlzVG91Y2hVaSh3aW4pKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgY29uc3QgaXNJT1MgPSAod2luOiBXaW5kb3cpID0+IHRlc3RVc2VyQWdlbnQod2luLCAvaVBob25lfGlQb2QvaSkgfHwgaXNJcGFkKHdpbik7XG5cbmV4cG9ydCBjb25zdCBpc0FuZHJvaWQgPSAod2luOiBXaW5kb3cpID0+IHRlc3RVc2VyQWdlbnQod2luLCAvYW5kcm9pZHxzaW5rL2kpO1xuXG5leHBvcnQgY29uc3QgaXNDYXBhY2l0b3IgPSAod2luOiBhbnkpOiBib29sZWFuID0+IHtcbiAgaWYgKF9jYWNoZS5jYXBhY2l0b3IgPT09IG51bGwgfHwgX2NhY2hlLmNhcGFjaXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgX2NhY2hlLmNhcGFjaXRvciA9ICEhKHdpblsnQ2FwYWNpdG9yJ10gfHwgd2luWydjYXBhY2l0b3InXSk7XG4gIH1cbiAgcmV0dXJuIF9jYWNoZS5jYXBhY2l0b3I7XG59O1xuXG5leHBvcnQgY29uc3QgaXNNb2JpbGUgPSAod2luOiBXaW5kb3cpID0+IHtcbiAgaWYgKF9jYWNoZS5tb2JpbGUgPT09IG51bGwgfHwgX2NhY2hlLm1vYmlsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgX2NhY2hlLm1vYmlsZSA9XG4gICAgICBpc0FuZHJvaWQod2luKSB8fFxuICAgICAgKGlzSU9TKHdpbmRvdykgJiYgaXNUb3VjaFVpKHdpbikpIHx8XG4gICAgICAvLyBXb3JrYXJvdW5kLCBmb3IgTVMgV2luZG93cyB0b3VjaCBzY3JlZW4gKGRldGVjdGVkIGFzIG1vYmlsZSwgYnV0IGZvcmNlZCBhcyBkZXNrdG9wKVxuICAgICAgKGlzVG91Y2hVaSh3aW4pICYmICFpc1dpbmRvd3Mod2luKSk7XG4gIH1cbiAgcmV0dXJuIF9jYWNoZS5tb2JpbGU7XG59O1xuIl19
77
+ }
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGxhdGZvcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztTQUVTO0FBRVQsTUFBTSxNQUFNLEdBQUc7SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLE1BQU0sRUFBRSxJQUFJO0lBQ1osT0FBTyxFQUFFLElBQUk7SUFDYixTQUFTLEVBQUUsSUFBSTtDQUNoQixDQUFDO0FBRUYsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUFXLEVBQUUsS0FBYTtJQUNuRCxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3ZDLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQVc7SUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0QixNQUFNLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFLLE1BQWMsQ0FBQyxLQUFLLENBQUM7SUFDOUYsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQztBQUMxQixDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFXLEVBQUUsSUFBWTtJQUNyRCxNQUFNLFNBQVMsR0FBVyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVk7SUFDcEMsT0FBTyxhQUFhLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVk7SUFDcEMsT0FBTyxhQUFhLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQVk7SUFDbkMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxvQkFBb0IsSUFBSSxhQUFhLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQ2pGLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQVk7SUFDbkMsT0FBTyxhQUFhLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEdBQVk7SUFDakMsT0FBTyxhQUFhLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVk7SUFDcEMsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsR0FBVztJQUNoQyxtQkFBbUI7SUFDbkIsSUFBSSxhQUFhLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsVUFBVTtJQUNWLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFDLEdBQVc7SUFDakMscUJBQXFCO0lBQ3JCLE9BQU8sYUFBYSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQsTUFBTSxVQUFVLEtBQUssQ0FBQyxHQUFXO0lBQy9CLE9BQU8sYUFBYSxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBVztJQUNuQyxPQUFPLGFBQWEsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBUTtJQUNsQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDaEUsTUFBTSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQztBQUMxQixDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFXO0lBQ2xDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMxRCxNQUFNLENBQUMsTUFBTTtZQUNYLFNBQVMsQ0FBQyxHQUFHLENBQUM7Z0JBQ2QsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQyxzRkFBc0Y7Z0JBQ3RGLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogLS0tXG4gKiBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9pb25pYy10ZWFtL2lvbmljLWZyYW1ld29yay9ibG9iL2IwZDUzY2E3MzYxOTU4NTY3MWQ4Y2Y0ZGMyNGU0N2Y4MjY0OTVhMGEvY29yZS9zcmMvdXRpbHMvcGxhdGZvcm0udHNcbiAqIC0tLSAqL1xuXG5jb25zdCBfY2FjaGUgPSB7XG4gIHVzZXJBZ2VudDogbnVsbCxcbiAgbW9iaWxlOiBudWxsLFxuICBjb3Jkb3ZhOiBudWxsLFxuICBjYXBhY2l0b3I6IG51bGwsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hNZWRpYSh3aW46IFdpbmRvdywgcXVlcnk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gd2luLm1hdGNoTWVkaWEocXVlcnkpLm1hdGNoZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VyQWdlbnQod2luOiBXaW5kb3cpOiBzdHJpbmcge1xuICBpZiAoIV9jYWNoZS51c2VyQWdlbnQpIHtcbiAgICBfY2FjaGUudXNlckFnZW50ID0gd2luLm5hdmlnYXRvci51c2VyQWdlbnQgfHwgd2luLm5hdmlnYXRvci52ZW5kb3IgfHwgKHdpbmRvdyBhcyBhbnkpLm9wZXJhO1xuICB9XG4gIHJldHVybiBfY2FjaGUudXNlckFnZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVzdFVzZXJBZ2VudCh3aW46IFdpbmRvdywgZXhwcjogUmVnRXhwKSB7XG4gIGNvbnN0IHVzZXJBZ2VudDogc3RyaW5nID0gZ2V0VXNlckFnZW50KHdpbik7XG4gIHJldHVybiBleHByLnRlc3QodXNlckFnZW50KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzV2luZG93cyh3aW4/OiBXaW5kb3cpIHtcbiAgcmV0dXJuIHRlc3RVc2VyQWdlbnQod2luLCAvd2luZG93cy9pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRmlyZWZveCh3aW4/OiBXaW5kb3cpIHtcbiAgcmV0dXJuIHRlc3RVc2VyQWdlbnQod2luLCAvIGZpcmVmb3hcXC8vaSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NhZmFyaSh3aW4/OiBXaW5kb3cpIHtcbiAgcmV0dXJuICFpc0Nocm9tZSh3aW4pIC8qRXhjbHVkZSBjaHJvbWl1bSovICYmIHRlc3RVc2VyQWdlbnQod2luLCAvIHNhZmFyaVxcLy9pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2hyb21lKHdpbj86IFdpbmRvdykge1xuICByZXR1cm4gdGVzdFVzZXJBZ2VudCh3aW4sIC8gY2hyb21lXFwvL2kpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFZGdlKHdpbj86IFdpbmRvdykge1xuICByZXR1cm4gdGVzdFVzZXJBZ2VudCh3aW4sIC9lZGdlL2kpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUb3VjaFVpKHdpbj86IFdpbmRvdykge1xuICByZXR1cm4gbWF0Y2hNZWRpYSh3aW4sICcoYW55LXBvaW50ZXI6Y29hcnNlKScpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNJcGFkKHdpbjogV2luZG93KSB7XG4gIC8vIGlPUyAxMiBhbmQgYmVsb3dcbiAgaWYgKHRlc3RVc2VyQWdlbnQod2luLCAvaVBhZC9pKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gaU9TIDEzK1xuICBpZiAodGVzdFVzZXJBZ2VudCh3aW4sIC9NYWNpbnRvc2gvaSkgJiYgaXNUb3VjaFVpKHdpbikpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTWFjT1Mod2luOiBXaW5kb3cpIHtcbiAgLy8gaU9TIChidXQgbm90IGlQYWQpXG4gIHJldHVybiB0ZXN0VXNlckFnZW50KHdpbiwgL01hY2ludG9zaC9pKSAmJiAhaXNUb3VjaFVpKHdpbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0lPUyh3aW46IFdpbmRvdykge1xuICByZXR1cm4gdGVzdFVzZXJBZ2VudCh3aW4sIC9pUGhvbmV8aVBvZC9pKSB8fCBpc0lwYWQod2luKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQW5kcm9pZCh3aW46IFdpbmRvdykge1xuICByZXR1cm4gdGVzdFVzZXJBZ2VudCh3aW4sIC9hbmRyb2lkfHNpbmsvaSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NhcGFjaXRvcih3aW46IGFueSk6IGJvb2xlYW4ge1xuICBpZiAoX2NhY2hlLmNhcGFjaXRvciA9PT0gbnVsbCB8fCBfY2FjaGUuY2FwYWNpdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICBfY2FjaGUuY2FwYWNpdG9yID0gISEod2luWydDYXBhY2l0b3InXSB8fCB3aW5bJ2NhcGFjaXRvciddKTtcbiAgfVxuICByZXR1cm4gX2NhY2hlLmNhcGFjaXRvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTW9iaWxlKHdpbjogV2luZG93KSB7XG4gIGlmIChfY2FjaGUubW9iaWxlID09PSBudWxsIHx8IF9jYWNoZS5tb2JpbGUgPT09IHVuZGVmaW5lZCkge1xuICAgIF9jYWNoZS5tb2JpbGUgPVxuICAgICAgaXNBbmRyb2lkKHdpbikgfHxcbiAgICAgIChpc0lPUyh3aW5kb3cpICYmIGlzVG91Y2hVaSh3aW4pKSB8fFxuICAgICAgLy8gV29ya2Fyb3VuZCwgZm9yIE1TIFdpbmRvd3MgdG91Y2ggc2NyZWVuIChkZXRlY3RlZCBhcyBtb2JpbGUsIGJ1dCBmb3JjZWQgYXMgZGVza3RvcClcbiAgICAgIChpc1RvdWNoVWkod2luKSAmJiAhaXNXaW5kb3dzKHdpbikpO1xuICB9XG4gIHJldHVybiBfY2FjaGUubW9iaWxlO1xufVxuIl19