@sumaris-net/ngx-components 18.23.13 → 18.23.15

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.
package/doc/changelog.md CHANGED
@@ -2079,3 +2079,9 @@ enh: Environment: add useHash property to configure Angular router to use hash U
2079
2079
 
2080
2080
  # 18.23.12
2081
2081
  - enh(account) Add avatar edition (enable by a config option)
2082
+
2083
+ # 18.23.14
2084
+ - enh(account-service) Add service options (new injection token), to be able to change graphql default queries
2085
+
2086
+ # 18.23.15
2087
+ - enh(entity-metadata-component) Fix avatar background color
@@ -1,14 +1,18 @@
1
- import { Directive, inject, InjectionToken } from '@angular/core';
1
+ import { Directive, Injectable, inject, Inject, InjectionToken, Optional } from '@angular/core';
2
+ import { Person } from '../../core/services/model/person.model';
2
3
  import { StatusIds } from '../../core/services/model/model.enum';
4
+ import { PersonFilter } from './person.filter';
3
5
  import { BaseEntityService, } from '../../core/services/base-entity-service.class';
4
6
  import { isNotEmptyArray } from '../../shared/functions';
5
7
  import { NetworkService } from '../../core/services/network.service';
6
8
  import { EntitiesStorage } from '../../core/services/storage/entities-storage.service';
7
9
  import { ENVIRONMENT } from '../../../environments/environment.class';
10
+ import { gql } from 'apollo-angular';
8
11
  import * as i0 from "@angular/core";
9
12
  import * as i1 from "../../core/graphql/graphql.service";
10
13
  import * as i2 from "../../core/services/platform.service";
11
14
  export const APP_PERSON_SERVICE = new InjectionToken('PersonService');
15
+ export const APP_PERSON_SERVICE_OPTIONS = new InjectionToken('PersonServiceOptions');
12
16
  // This class is under GPLv3 license
13
17
  export class AbstractPersonService extends BaseEntityService {
14
18
  dataType;
@@ -86,4 +90,137 @@ export class AbstractPersonService extends BaseEntityService {
86
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractPersonService, decorators: [{
87
91
  type: Directive
88
92
  }], ctorParameters: () => [{ type: i1.GraphqlService }, { type: i2.PlatformService }, { type: undefined }, { type: undefined }, { type: undefined }] });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FkbWluL3VzZXJzL3BlcnNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFZakUsT0FBTyxFQUlMLGlCQUFpQixHQUVsQixNQUFNLCtDQUErQyxDQUFDO0FBRXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7OztBQUV0RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBMkIsZUFBZSxDQUFDLENBQUM7QUFvQ2hHLG9DQUFvQztBQUVwQyxNQUFNLE9BQWdCLHFCQVVwQixTQUFRLGlCQUF1QztJQVNuQztJQUNBO0lBQ0E7SUFSRixPQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pDLFFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFN0MsWUFDRSxPQUF1QixFQUN2QixRQUF5QixFQUNmLFFBQXFCLEVBQ3JCLFVBQXVCLEVBQ3ZCLE9BQVU7UUFFcEIsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUo5QyxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLGVBQVUsR0FBVixVQUFVLENBQWE7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBRztRQUlwQixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDaEQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQ1gsTUFBYyxFQUNkLElBQVksRUFDWixNQUF5QixFQUN6QixhQUE2QixFQUM3QixNQUFtQixFQUNuQixJQUF1RDtRQUV2RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssY0FBYyxDQUFDLENBQUM7UUFDdkYsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsSUFBVyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVTLEtBQUssQ0FBQyxjQUFjLENBQzVCLE1BQWMsRUFDZCxJQUFZLEVBQ1osTUFBZSxFQUNmLGFBQTZCLEVBQzdCLE1BQW1CLEVBQ25CLElBQXVEO1FBRXZELE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9CLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQztZQUNuQixJQUFJLEVBQUUsSUFBSSxJQUFJLEdBQUc7WUFDakIsTUFBTSxFQUFFLE1BQU0sSUFBSyxJQUFJLENBQUMsYUFBd0I7WUFDaEQsYUFBYSxFQUFFLGFBQWEsSUFBSSxJQUFJLENBQUMsb0JBQW9CO1lBQ3pELE1BQU0sRUFBRyxNQUFjLElBQUssTUFBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUUsTUFBYyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNO1NBQzlGLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBSSxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQztRQUNqRyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUksUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTVFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQVcsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sR0FBRyxHQUFrQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFTLENBQUM7UUFFNUQsMEJBQTBCO1FBQzFCLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDbkQsSUFBSSxVQUFVLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDdkIsR0FBRyxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkcsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQ1gsS0FBVSxFQUNWLE1BQW1CLEVBQ25CLE1BQXlCLEVBQ3pCLGFBQTZCLEVBQzdCLElBQWlDO1FBRWpDLElBQUssS0FBYSxFQUFFLEVBQUUsSUFBSSxJQUFJO1lBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFTLENBQUM7UUFDaEUsS0FBSyxHQUFHLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDO1FBQzNFLE1BQU0sQ0FBQyxHQUFJLE1BQWMsSUFBSSxFQUFFLENBQUM7UUFDaEMsTUFBTSxHQUFJLE1BQWMsSUFBSSxDQUFDLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9GLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FDakIsQ0FBQyxFQUNELENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDaEIsTUFBTSxFQUNOLGFBQWEsRUFDYjtZQUNFLEdBQUksTUFBYztZQUNsQixVQUFVLEVBQUUsS0FBZTtZQUMzQixTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDO1lBQ3hFLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVk7U0FDbEMsRUFDRDtZQUNFLFNBQVMsRUFBRSxJQUFJLENBQUMsMEJBQTBCO1lBQzFDLEdBQUksSUFBWTtTQUNWLENBQ1QsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQVUsRUFBRSxJQUErQjtRQUN4RCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBVyxFQUFFLElBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUksSUFBWSxFQUFFLENBQUMsQ0FBQztRQUMxSSxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxDQUFDLENBQVMsQ0FBQyxDQUFDLENBQUUsRUFBRSxFQUFFLEVBQVUsQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQVcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQWMsRUFBRSxJQUErQjtRQUNoRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBVyxFQUFFLElBQVcsRUFBRSxFQUFFLE1BQU0sRUFBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFJLElBQVksRUFBRSxDQUFDLENBQUM7UUFDL0gsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsQ0FBQyxDQUFTLENBQUMsQ0FBQyxDQUFFLEVBQUUsTUFBTSxFQUFVLENBQUM7UUFDOUUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRVMsUUFBUSxDQUFDLE1BQWU7UUFDaEMsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7d0dBeEhtQixxQkFBcUI7NEZBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFEMUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JhcGhxbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2dyYXBocWwvZ3JhcGhxbC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcnNvbiB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvcGVyc29uLm1vZGVsJztcbmltcG9ydCB7IFN0YXR1c0lkcyB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvbW9kZWwuZW51bSc7XG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQge1xuICBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucyxcbiAgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zLFxuICBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMsXG4gIElFbnRpdGllc1NlcnZpY2UsXG4gIExvYWRSZXN1bHQsXG4gIFN1Z2dlc3RTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9wbGF0Zm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcnNvbkZpbHRlciB9IGZyb20gJy4vcGVyc29uLmZpbHRlcic7XG5pbXBvcnQge1xuICBCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucyxcbiAgQmFzZUVudGl0eUdyYXBocWxRdWVyaWVzLFxuICBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMsXG4gIEJhc2VFbnRpdHlTZXJ2aWNlLFxuICBCYXNlRW50aXR5U2VydmljZU9wdGlvbnMsXG59IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvYmFzZS1lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBJU3RhcnRhYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9zdGFydGFibGUtc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBpc05vdEVtcHR5QXJyYXkgfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IE5ldHdvcmtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9uZXR3b3JrLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW50aXRpZXNTdG9yYWdlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9zdG9yYWdlL2VudGl0aWVzLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBFTlZJUk9OTUVOVCB9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBBUFBfUEVSU09OX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVBlcnNvblNlcnZpY2U8YW55LCBhbnk+PignUGVyc29uU2VydmljZScpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQZXJzb25TZXJ2aWNlPFxuICBFIGV4dGVuZHMgUGVyc29uPEU+ID0gUGVyc29uPGFueT4sXG4gIEYgZXh0ZW5kcyBQZXJzb25GaWx0ZXIgPSBQZXJzb25GaWx0ZXIsXG4gIElEID0gbnVtYmVyLFxuICBXTyBleHRlbmRzIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9uczxFPiA9IEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9uczxFPixcbiAgTE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9uczxFPiA9IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zPEU+LFxuPiBleHRlbmRzIElFbnRpdGllc1NlcnZpY2U8RSwgRiwgV08+LFxuICAgIFN1Z2dlc3RTZXJ2aWNlPEUsIEY+LFxuICAgIElTdGFydGFibGVTZXJ2aWNlIHtcbiAgbG9hZEFsbChcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc29ydEJ5Pzoga2V5b2YgUGVyc29uIHwgc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgIGZpbHRlcj86IFBhcnRpYWw8UGVyc29uRmlsdGVyPixcbiAgICBvcHRzPzogTE8gJiB7XG4gICAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgfVxuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8UGVyc29uPj47XG5cbiAgbG9hZEJ5SWQoaWQ6IG51bWJlciwgb3B0cz86IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucyk6IFByb21pc2U8UGVyc29uPjtcblxuICBsb2FkQnlQdWJrZXkocHVia2V5OiBzdHJpbmcsIG9wdHM/OiBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMpOiBQcm9taXNlPFBlcnNvbj47XG5cbiAgY291bnRBbGwoZmlsdGVyPzogUGFydGlhbDxGPiwgb3B0cz86IExPKTogUHJvbWlzZTxudW1iZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFic3RyYWN0UGVyc29uU2VydmljZU9wdGlvbnM8XG4gIFQgZXh0ZW5kcyBQZXJzb248YW55PixcbiAgUSBleHRlbmRzIEJhc2VFbnRpdHlHcmFwaHFsUXVlcmllcyA9IEJhc2VFbnRpdHlHcmFwaHFsUXVlcmllcyxcbiAgTSBleHRlbmRzIEJhc2VFbnRpdHlHcmFwaHFsTXV0YXRpb25zID0gQmFzZUVudGl0eUdyYXBocWxNdXRhdGlvbnMsXG4gIFMgZXh0ZW5kcyBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMgPSBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMsXG4+IGV4dGVuZHMgQmFzZUVudGl0eVNlcnZpY2VPcHRpb25zPFQsIG51bWJlciwgUSwgTSwgUz4ge31cblxuLy8gVGhpcyBjbGFzcyBpcyB1bmRlciBHUEx2MyBsaWNlbnNlXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFBlcnNvblNlcnZpY2U8XG4gICAgRSBleHRlbmRzIFBlcnNvbjxFPiA9IFBlcnNvbjxhbnk+LFxuICAgIEYgZXh0ZW5kcyBQZXJzb25GaWx0ZXI8RiwgRT4gPSBQZXJzb25GaWx0ZXI8YW55LCBFPixcbiAgICBRIGV4dGVuZHMgQmFzZUVudGl0eUdyYXBocWxRdWVyaWVzID0gQmFzZUVudGl0eUdyYXBocWxRdWVyaWVzLFxuICAgIE0gZXh0ZW5kcyBCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucyA9IEJhc2VFbnRpdHlHcmFwaHFsTXV0YXRpb25zLFxuICAgIFMgZXh0ZW5kcyBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMgPSBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMsXG4gICAgV08gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnM8RT4gPSBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnM8RT4sXG4gICAgTE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9uczxFPiA9IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zPEU+LFxuICAgIE8gZXh0ZW5kcyBBYnN0cmFjdFBlcnNvblNlcnZpY2VPcHRpb25zPEUsIFEsIE0sIFM+ID0gQWJzdHJhY3RQZXJzb25TZXJ2aWNlT3B0aW9uczxFLCBRLCBNLCBTPixcbiAgPlxuICBleHRlbmRzIEJhc2VFbnRpdHlTZXJ2aWNlPEUsIEYsIG51bWJlciwgV08sIExPPlxuICBpbXBsZW1lbnRzIElQZXJzb25TZXJ2aWNlPEUsIEY+XG57XG4gIHByb3RlY3RlZCBuZXR3b3JrID0gaW5qZWN0KE5ldHdvcmtTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGVudGl0aWVzID0gaW5qZWN0KEVudGl0aWVzU3RvcmFnZSk7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIGdyYXBocWw6IEdyYXBocWxTZXJ2aWNlLFxuICAgIHBsYXRmb3JtOiBQbGF0Zm9ybVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGRhdGFUeXBlOiBuZXcgKCkgPT4gRSxcbiAgICBwcm90ZWN0ZWQgZmlsdGVyVHlwZTogbmV3ICgpID0+IEYsXG4gICAgcHJvdGVjdGVkIG9wdGlvbnM6IE9cbiAgKSB7XG4gICAgc3VwZXIoZ3JhcGhxbCwgcGxhdGZvcm0sIGRhdGFUeXBlLCBmaWx0ZXJUeXBlLCBvcHRpb25zKTtcblxuICAgIC8vIGZvciBERVYgb25seSAtLS0tLVxuICAgIHRoaXMuX2RlYnVnID0gIWluamVjdChFTlZJUk9OTUVOVCkucHJvZHVjdGlvbjtcbiAgfVxuXG4gIGFzeW5jIGxvYWRBbGwoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IGtleW9mIEUgfCBzdHJpbmcsXG4gICAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gICAgZmlsdGVyPzogUGFydGlhbDxGPixcbiAgICBvcHRzPzogRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnMgJiB7IGRlYnVnPzogYm9vbGVhbiB9XG4gICk6IFByb21pc2U8TG9hZFJlc3VsdDxFPj4ge1xuICAgIGNvbnN0IG9mZmxpbmUgPSB0aGlzLm5ldHdvcmsub2ZmbGluZSAmJiAoIW9wdHMgfHwgb3B0cy5mZXRjaFBvbGljeSAhPT0gJ25ldHdvcmstb25seScpO1xuICAgIGlmIChvZmZsaW5lKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb2FkQWxsTG9jYWxseShvZmZzZXQsIHNpemUsIHNvcnRCeSBhcyBzdHJpbmcsIHNvcnREaXJlY3Rpb24sIGZpbHRlciwgb3B0cyk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5sb2FkQWxsKG9mZnNldCwgc2l6ZSwgc29ydEJ5IGFzIGFueSwgc29ydERpcmVjdGlvbiwgZmlsdGVyLCBvcHRzIGFzIGFueSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbG9hZEFsbExvY2FsbHkoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXI/OiBQYXJ0aWFsPEY+LFxuICAgIG9wdHM/OiBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucyAmIHsgZGVidWc/OiBib29sZWFuIH1cbiAgKTogUHJvbWlzZTxMb2FkUmVzdWx0PEU+PiB7XG4gICAgZmlsdGVyID0gdGhpcy5hc0ZpbHRlcihmaWx0ZXIpO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0ge1xuICAgICAgb2Zmc2V0OiBvZmZzZXQgfHwgMCxcbiAgICAgIHNpemU6IHNpemUgfHwgMTAwLFxuICAgICAgc29ydEJ5OiBzb3J0QnkgfHwgKHRoaXMuZGVmYXVsdFNvcnRCeSBhcyBzdHJpbmcpLFxuICAgICAgc29ydERpcmVjdGlvbjogc29ydERpcmVjdGlvbiB8fCB0aGlzLmRlZmF1bHRTb3J0RGlyZWN0aW9uLFxuICAgICAgZmlsdGVyOiAoZmlsdGVyIGFzIGFueSkgJiYgKGZpbHRlciBhcyBhbnkpLmFzRmlsdGVyRm4gPyAoZmlsdGVyIGFzIGFueSkuYXNGaWx0ZXJGbigpIDogZmlsdGVyLFxuICAgIH07XG5cbiAgICBjb25zdCB0eXBlbmFtZSA9ICh0aGlzLmRhdGFUeXBlIGFzIGFueSkuVFlQRU5BTUUgfHwgbmV3IHRoaXMuZGF0YVR5cGUoKS5fX3R5cGVuYW1lIHx8ICdQZXJzb25WTyc7XG4gICAgY29uc3QgeyBkYXRhLCB0b3RhbCB9ID0gYXdhaXQgdGhpcy5lbnRpdGllcy5sb2FkQWxsPEU+KHR5cGVuYW1lLCB2YXJpYWJsZXMpO1xuXG4gICAgY29uc3QgZW50aXRpZXMgPSB0aGlzLmZyb21PYmplY3RzKGRhdGEsIG9wdHMgYXMgYW55KTtcbiAgICBjb25zdCByZXM6IExvYWRSZXN1bHQ8RT4gPSB7IGRhdGE6IGVudGl0aWVzLCB0b3RhbCB9IGFzIGFueTtcblxuICAgIC8vIEFkZCBmZXRjaCBtb3JlIGZ1bmN0aW9uXG4gICAgY29uc3QgbmV4dE9mZnNldCA9IChvZmZzZXQgfHwgMCkgKyBlbnRpdGllcy5sZW5ndGg7XG4gICAgaWYgKG5leHRPZmZzZXQgPCB0b3RhbCkge1xuICAgICAgcmVzLmZldGNoTW9yZSA9ICgpID0+IHRoaXMubG9hZEFsbExvY2FsbHkobmV4dE9mZnNldCwgc2l6ZSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXIsIG9wdHMpO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBhc3luYyBzdWdnZXN0KFxuICAgIHZhbHVlOiBhbnksXG4gICAgZmlsdGVyPzogUGFydGlhbDxGPixcbiAgICBzb3J0Qnk/OiBrZXlvZiBFIHwgc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgIG9wdHM/OiBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9uc1xuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8RT4+IHtcbiAgICBpZiAoKHZhbHVlIGFzIGFueSk/LmlkICE9IG51bGwpIHJldHVybiB7IGRhdGE6IFt2YWx1ZV0gfSBhcyBhbnk7XG4gICAgdmFsdWUgPSAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZSAhPT0gJyonICYmIHZhbHVlKSB8fCB1bmRlZmluZWQ7XG4gICAgY29uc3QgZiA9IChmaWx0ZXIgYXMgYW55KSB8fCB7fTtcbiAgICBzb3J0QnkgPSAoc29ydEJ5IGFzIGFueSkgfHwgZi5zZWFyY2hBdHRyaWJ1dGUgfHwgKGYuc2VhcmNoQXR0cmlidXRlcyAmJiBmLnNlYXJjaEF0dHJpYnV0ZXNbMF0pO1xuICAgIHJldHVybiB0aGlzLmxvYWRBbGwoXG4gICAgICAwLFxuICAgICAgIXZhbHVlID8gMzAgOiAxMCxcbiAgICAgIHNvcnRCeSxcbiAgICAgIHNvcnREaXJlY3Rpb24sXG4gICAgICB7XG4gICAgICAgIC4uLihmaWx0ZXIgYXMgYW55KSxcbiAgICAgICAgc2VhcmNoVGV4dDogdmFsdWUgYXMgc3RyaW5nLFxuICAgICAgICBzdGF0dXNJZHM6IChmICYmIGYuc3RhdHVzSWRzKSB8fCBbU3RhdHVzSWRzLkVOQUJMRSwgU3RhdHVzSWRzLlRFTVBPUkFSWV0sXG4gICAgICAgIHVzZXJQcm9maWxlczogZiAmJiBmLnVzZXJQcm9maWxlcyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHdpdGhUb3RhbDogdHJ1ZSAvKiBuZWVkIGJ5IGF1dG9jb21wbGV0ZSAqLyxcbiAgICAgICAgLi4uKG9wdHMgYXMgYW55KSxcbiAgICAgIH0gYXMgYW55XG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRCeUlkKGlkOiBudW1iZXIsIG9wdHM/OiBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMpOiBQcm9taXNlPEU+IHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMubG9hZEFsbCgwLCAxLCBudWxsIGFzIGFueSwgbnVsbCBhcyBhbnksIHsgaW5jbHVkZWRJZHM6IFtpZF0gfSBhcyBhbnksIHsgd2l0aFRvdGFsOiBmYWxzZSwgLi4uKG9wdHMgYXMgYW55KSB9KTtcbiAgICBjb25zdCBzb3VyY2UgPSBpc05vdEVtcHR5QXJyYXkoZGF0YSkgPyAoZGF0YVswXSBhcyBhbnkpIDogKHsgaWQgfSBhcyBhbnkpO1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3Qoc291cmNlLCBvcHRzIGFzIGFueSk7XG4gIH1cblxuICBhc3luYyBsb2FkQnlQdWJrZXkocHVia2V5OiBzdHJpbmcsIG9wdHM/OiBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMpOiBQcm9taXNlPEU+IHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMubG9hZEFsbCgwLCAxLCBudWxsIGFzIGFueSwgbnVsbCBhcyBhbnksIHsgcHVia2V5IH0gYXMgYW55LCB7IHdpdGhUb3RhbDogZmFsc2UsIC4uLihvcHRzIGFzIGFueSkgfSk7XG4gICAgY29uc3Qgc291cmNlID0gaXNOb3RFbXB0eUFycmF5KGRhdGEpID8gKGRhdGFbMF0gYXMgYW55KSA6ICh7IHB1YmtleSB9IGFzIGFueSk7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdChzb3VyY2UsIG9wdHMgYXMgYW55KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc09iamVjdChzb3VyY2U6IEUgfCBhbnkpOiBhbnkge1xuICAgIHJldHVybiBzdXBlci5hc09iamVjdChzb3VyY2UpO1xuICB9XG59XG4iXX0=
93
+ /* ------------------------------------
94
+ * Default GraphQL (from former testing service)
95
+ * ------------------------------------*/
96
+ export const PersonFragments = {
97
+ lightPerson: gql `
98
+ fragment LightPersonFragment on PersonVO {
99
+ id
100
+ firstName
101
+ lastName
102
+ avatar
103
+ department {
104
+ id
105
+ label
106
+ name
107
+ __typename
108
+ }
109
+ __typename
110
+ }
111
+ `,
112
+ person: gql `
113
+ fragment PersonFragment on PersonVO {
114
+ id
115
+ firstName
116
+ lastName
117
+ email
118
+ pubkey
119
+ avatar
120
+ statusId
121
+ updateDate
122
+ creationDate
123
+ profiles
124
+ username
125
+ usernameExtranet
126
+ department {
127
+ id
128
+ label
129
+ name
130
+ logo
131
+ __typename
132
+ }
133
+ __typename
134
+ }
135
+ `,
136
+ personFilter: gql `
137
+ fragment PersonFilterFragment on PersonFilterVO {
138
+ email
139
+ pubkey
140
+ searchText
141
+ statusIds
142
+ userProfiles
143
+ includedIds
144
+ excludedIds
145
+ searchAttribute
146
+ searchAttributes
147
+ }
148
+ `,
149
+ };
150
+ const DefaultPersonQueries = {
151
+ loadAll: gql `
152
+ query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput) {
153
+ data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection) {
154
+ ...PersonFragment
155
+ }
156
+ }
157
+ ${PersonFragments.person}
158
+ `,
159
+ loadAllWithTotal: gql `
160
+ query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput) {
161
+ data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection) {
162
+ ...PersonFragment
163
+ }
164
+ total: personsCount(filter: $filter)
165
+ }
166
+ ${PersonFragments.person}
167
+ `,
168
+ };
169
+ const DefaultPersonMutations = {
170
+ saveAll: gql `
171
+ mutation savePersons($data: [PersonVOInput]) {
172
+ data: savePersons(persons: $data) {
173
+ ...PersonFragment
174
+ }
175
+ }
176
+ ${PersonFragments.person}
177
+ `,
178
+ deleteAll: gql `
179
+ mutation deletePersons($ids: [Int]) {
180
+ deletePersons(ids: $ids)
181
+ }
182
+ `,
183
+ };
184
+ export class PersonService extends AbstractPersonService {
185
+ constructor(graphql, platform, options) {
186
+ super(graphql, platform, Person, PersonFilter, {
187
+ queries: { ...DefaultPersonQueries, ...(options?.queries || {}) },
188
+ mutations: { ...DefaultPersonMutations, ...(options?.mutations || {}) },
189
+ subscriptions: options?.subscriptions,
190
+ defaultSortBy: 'lastName',
191
+ defaultSortDirection: 'asc',
192
+ watchQueriesDeletePolicy: 'refetch-queries',
193
+ });
194
+ }
195
+ /* -- protected methods -- */
196
+ asObject(source) {
197
+ if (!source)
198
+ return undefined;
199
+ if (!(source instanceof Person)) {
200
+ source = Person.fromObject(source);
201
+ }
202
+ const target = source.asObject();
203
+ // Not known in server GraphQL schema
204
+ delete target.mainProfile;
205
+ target.department = source.department?.asObject();
206
+ return target;
207
+ }
208
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonService, deps: [{ token: i1.GraphqlService }, { token: i2.PlatformService }, { token: APP_PERSON_SERVICE_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
209
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonService, providedIn: 'root' });
210
+ }
211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonService, decorators: [{
212
+ type: Injectable,
213
+ args: [{ providedIn: 'root' }]
214
+ }], ctorParameters: () => [{ type: i1.GraphqlService }, { type: i2.PlatformService }, { type: undefined, decorators: [{
215
+ type: Optional
216
+ }, {
217
+ type: Inject,
218
+ args: [APP_PERSON_SERVICE_OPTIONS]
219
+ }] }] });
220
+ export function providePersonService() {
221
+ return {
222
+ provide: APP_PERSON_SERVICE,
223
+ useExisting: PersonService,
224
+ };
225
+ }
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FkbWluL3VzZXJzL3BlcnNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUUxRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBV2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBSUwsaUJBQWlCLEdBRWxCLE1BQU0sK0NBQStDLENBQUM7QUFFdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDdkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUVyQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBMkIsZUFBZSxDQUFDLENBQUM7QUEwQ2hHLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUF1QixzQkFBc0IsQ0FBQyxDQUFDO0FBRTNHLG9DQUFvQztBQUVwQyxNQUFNLE9BQWdCLHFCQVVwQixTQUFRLGlCQUF1QztJQVNuQztJQUNBO0lBQ0E7SUFSRixPQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pDLFFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFN0MsWUFDRSxPQUF1QixFQUN2QixRQUF5QixFQUNmLFFBQXFCLEVBQ3JCLFVBQXVCLEVBQ3ZCLE9BQVU7UUFFcEIsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUo5QyxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLGVBQVUsR0FBVixVQUFVLENBQWE7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBRztRQUlwQixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDaEQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQ1gsTUFBYyxFQUNkLElBQVksRUFDWixNQUF5QixFQUN6QixhQUE2QixFQUM3QixNQUFtQixFQUNuQixJQUF1RDtRQUV2RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssY0FBYyxDQUFDLENBQUM7UUFDdkYsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsSUFBVyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVTLEtBQUssQ0FBQyxjQUFjLENBQzVCLE1BQWMsRUFDZCxJQUFZLEVBQ1osTUFBZSxFQUNmLGFBQTZCLEVBQzdCLE1BQW1CLEVBQ25CLElBQXVEO1FBRXZELE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9CLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQztZQUNuQixJQUFJLEVBQUUsSUFBSSxJQUFJLEdBQUc7WUFDakIsTUFBTSxFQUFFLE1BQU0sSUFBSyxJQUFJLENBQUMsYUFBd0I7WUFDaEQsYUFBYSxFQUFFLGFBQWEsSUFBSSxJQUFJLENBQUMsb0JBQW9CO1lBQ3pELE1BQU0sRUFBRyxNQUFjLElBQUssTUFBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUUsTUFBYyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNO1NBQzlGLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBSSxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQztRQUNqRyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUksUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTVFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQVcsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sR0FBRyxHQUFrQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFTLENBQUM7UUFFNUQsMEJBQTBCO1FBQzFCLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDbkQsSUFBSSxVQUFVLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDdkIsR0FBRyxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkcsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQ1gsS0FBVSxFQUNWLE1BQW1CLEVBQ25CLE1BQXlCLEVBQ3pCLGFBQTZCLEVBQzdCLElBQWlDO1FBRWpDLElBQUssS0FBYSxFQUFFLEVBQUUsSUFBSSxJQUFJO1lBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFTLENBQUM7UUFDaEUsS0FBSyxHQUFHLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDO1FBQzNFLE1BQU0sQ0FBQyxHQUFJLE1BQWMsSUFBSSxFQUFFLENBQUM7UUFDaEMsTUFBTSxHQUFJLE1BQWMsSUFBSSxDQUFDLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9GLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FDakIsQ0FBQyxFQUNELENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDaEIsTUFBTSxFQUNOLGFBQWEsRUFDYjtZQUNFLEdBQUksTUFBYztZQUNsQixVQUFVLEVBQUUsS0FBZTtZQUMzQixTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDO1lBQ3hFLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVk7U0FDbEMsRUFDRDtZQUNFLFNBQVMsRUFBRSxJQUFJLENBQUMsMEJBQTBCO1lBQzFDLEdBQUksSUFBWTtTQUNWLENBQ1QsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQVUsRUFBRSxJQUErQjtRQUN4RCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBVyxFQUFFLElBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUksSUFBWSxFQUFFLENBQUMsQ0FBQztRQUMxSSxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxDQUFDLENBQVMsQ0FBQyxDQUFDLENBQUUsRUFBRSxFQUFFLEVBQVUsQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQVcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQWMsRUFBRSxJQUErQjtRQUNoRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBVyxFQUFFLElBQVcsRUFBRSxFQUFFLE1BQU0sRUFBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFJLElBQVksRUFBRSxDQUFDLENBQUM7UUFDL0gsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsQ0FBQyxDQUFTLENBQUMsQ0FBQyxDQUFFLEVBQUUsTUFBTSxFQUFVLENBQUM7UUFDOUUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRVMsUUFBUSxDQUFDLE1BQWU7UUFDaEMsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7d0dBeEhtQixxQkFBcUI7NEZBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFEMUMsU0FBUzs7QUE0SFY7O3lDQUV5QztBQUN6QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDN0IsV0FBVyxFQUFFLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7R0FjZjtJQUVELE1BQU0sRUFBRSxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJWO0lBRUQsWUFBWSxFQUFFLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7O0dBWWhCO0NBQ0YsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQTZCO0lBQ3JELE9BQU8sRUFBRSxHQUFHLENBQUE7Ozs7OztNQU1SLGVBQWUsQ0FBQyxNQUFNO0dBQ3pCO0lBRUQsZ0JBQWdCLEVBQUUsR0FBRyxDQUFBOzs7Ozs7O01BT2pCLGVBQWUsQ0FBQyxNQUFNO0dBQ3pCO0NBQ0YsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQStCO0lBQ3pELE9BQU8sRUFBRSxHQUFHLENBQUE7Ozs7OztNQU1SLGVBQWUsQ0FBQyxNQUFNO0dBQ3pCO0lBQ0QsU0FBUyxFQUFFLEdBQUcsQ0FBQTs7OztHQUliO0NBQ0YsQ0FBQztBQUdGLE1BQU0sT0FBTyxhQUFjLFNBQVEscUJBQTJDO0lBQzVFLFlBQ0UsT0FBdUIsRUFDdkIsUUFBeUIsRUFDdUIsT0FBOEI7UUFFOUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRTtZQUM3QyxPQUFPLEVBQUUsRUFBRSxHQUFHLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ2pFLFNBQVMsRUFBRSxFQUFFLEdBQUcsc0JBQXNCLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDLEVBQUU7WUFDdkUsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFvQjtZQUM1QyxhQUFhLEVBQUUsVUFBVTtZQUN6QixvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLHdCQUF3QixFQUFFLGlCQUFpQjtTQUM1QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsNkJBQTZCO0lBQ25CLFFBQVEsQ0FBQyxNQUFvQjtRQUNyQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBRTlCLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakMscUNBQXFDO1FBQ3JDLE9BQVEsTUFBYyxDQUFDLFdBQVcsQ0FBQztRQUVsQyxNQUFjLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFFM0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzt3R0EvQlUsYUFBYSwrRUFJRiwwQkFBMEI7NEdBSnJDLGFBQWEsY0FEQSxNQUFNOzs0RkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUs3QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLDBCQUEwQjs7QUE4QmxELE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMsT0FBaUI7UUFDZixPQUFPLEVBQUUsa0JBQWtCO1FBQzNCLFdBQVcsRUFBRSxhQUFhO0tBQzNCLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RhYmxlLCBpbmplY3QsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JhcGhxbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2dyYXBocWwvZ3JhcGhxbC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcnNvbiB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvcGVyc29uLm1vZGVsJztcbmltcG9ydCB7IFN0YXR1c0lkcyB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvbW9kZWwuZW51bSc7XG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQge1xuICBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucyxcbiAgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zLFxuICBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMsXG4gIElFbnRpdGllc1NlcnZpY2UsXG4gIExvYWRSZXN1bHQsXG4gIFN1Z2dlc3RTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9wbGF0Zm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcnNvbkZpbHRlciB9IGZyb20gJy4vcGVyc29uLmZpbHRlcic7XG5pbXBvcnQge1xuICBCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucyxcbiAgQmFzZUVudGl0eUdyYXBocWxRdWVyaWVzLFxuICBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMsXG4gIEJhc2VFbnRpdHlTZXJ2aWNlLFxuICBCYXNlRW50aXR5U2VydmljZU9wdGlvbnMsXG59IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvYmFzZS1lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBJU3RhcnRhYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9zdGFydGFibGUtc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBpc05vdEVtcHR5QXJyYXkgfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IE5ldHdvcmtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9uZXR3b3JrLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW50aXRpZXNTdG9yYWdlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9zdG9yYWdlL2VudGl0aWVzLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBFTlZJUk9OTUVOVCB9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5pbXBvcnQgeyBncWwgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5cbmV4cG9ydCBjb25zdCBBUFBfUEVSU09OX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVBlcnNvblNlcnZpY2U8YW55LCBhbnk+PignUGVyc29uU2VydmljZScpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQZXJzb25TZXJ2aWNlPFxuICBFIGV4dGVuZHMgUGVyc29uPEU+ID0gUGVyc29uPGFueT4sXG4gIEYgZXh0ZW5kcyBQZXJzb25GaWx0ZXIgPSBQZXJzb25GaWx0ZXIsXG4gIElEID0gbnVtYmVyLFxuICBXTyBleHRlbmRzIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9uczxFPiA9IEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9uczxFPixcbiAgTE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9uczxFPiA9IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zPEU+LFxuPiBleHRlbmRzIElFbnRpdGllc1NlcnZpY2U8RSwgRiwgV08+LFxuICAgIFN1Z2dlc3RTZXJ2aWNlPEUsIEY+LFxuICAgIElTdGFydGFibGVTZXJ2aWNlIHtcbiAgbG9hZEFsbChcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc29ydEJ5Pzoga2V5b2YgUGVyc29uIHwgc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgIGZpbHRlcj86IFBhcnRpYWw8UGVyc29uRmlsdGVyPixcbiAgICBvcHRzPzogTE8gJiB7XG4gICAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgfVxuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8UGVyc29uPj47XG5cbiAgbG9hZEJ5SWQoaWQ6IG51bWJlciwgb3B0cz86IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucyk6IFByb21pc2U8UGVyc29uPjtcblxuICBsb2FkQnlQdWJrZXkocHVia2V5OiBzdHJpbmcsIG9wdHM/OiBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMpOiBQcm9taXNlPFBlcnNvbj47XG5cbiAgY291bnRBbGwoZmlsdGVyPzogUGFydGlhbDxGPiwgb3B0cz86IExPKTogUHJvbWlzZTxudW1iZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFic3RyYWN0UGVyc29uU2VydmljZU9wdGlvbnM8XG4gIFQgZXh0ZW5kcyBQZXJzb248YW55PixcbiAgUSBleHRlbmRzIEJhc2VFbnRpdHlHcmFwaHFsUXVlcmllcyA9IEJhc2VFbnRpdHlHcmFwaHFsUXVlcmllcyxcbiAgTSBleHRlbmRzIEJhc2VFbnRpdHlHcmFwaHFsTXV0YXRpb25zID0gQmFzZUVudGl0eUdyYXBocWxNdXRhdGlvbnMsXG4gIFMgZXh0ZW5kcyBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMgPSBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMsXG4+IGV4dGVuZHMgQmFzZUVudGl0eVNlcnZpY2VPcHRpb25zPFQsIG51bWJlciwgUSwgTSwgUz4ge31cblxuLy8gQWxsb3cgYXBwcyB0byBvdmVycmlkZSBHcmFwaFFMIG9wZXJhdGlvbnMgdXNlZCBieSBQZXJzb25TZXJ2aWNlXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvblNlcnZpY2VPcHRpb25zIHtcbiAgcXVlcmllcz86IFBhcnRpYWw8QmFzZUVudGl0eUdyYXBocWxRdWVyaWVzPjtcbiAgbXV0YXRpb25zPzogUGFydGlhbDxCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucz47XG4gIHN1YnNjcmlwdGlvbnM/OiBQYXJ0aWFsPEJhc2VFbnRpdHlHcmFwaHFsU3Vic2NyaXB0aW9ucz47XG59XG5leHBvcnQgY29uc3QgQVBQX1BFUlNPTl9TRVJWSUNFX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48UGVyc29uU2VydmljZU9wdGlvbnM+KCdQZXJzb25TZXJ2aWNlT3B0aW9ucycpO1xuXG4vLyBUaGlzIGNsYXNzIGlzIHVuZGVyIEdQTHYzIGxpY2Vuc2VcbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0UGVyc29uU2VydmljZTxcbiAgICBFIGV4dGVuZHMgUGVyc29uPEU+ID0gUGVyc29uPGFueT4sXG4gICAgRiBleHRlbmRzIFBlcnNvbkZpbHRlcjxGLCBFPiA9IFBlcnNvbkZpbHRlcjxhbnksIEU+LFxuICAgIFEgZXh0ZW5kcyBCYXNlRW50aXR5R3JhcGhxbFF1ZXJpZXMgPSBCYXNlRW50aXR5R3JhcGhxbFF1ZXJpZXMsXG4gICAgTSBleHRlbmRzIEJhc2VFbnRpdHlHcmFwaHFsTXV0YXRpb25zID0gQmFzZUVudGl0eUdyYXBocWxNdXRhdGlvbnMsXG4gICAgUyBleHRlbmRzIEJhc2VFbnRpdHlHcmFwaHFsU3Vic2NyaXB0aW9ucyA9IEJhc2VFbnRpdHlHcmFwaHFsU3Vic2NyaXB0aW9ucyxcbiAgICBXTyBleHRlbmRzIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9uczxFPiA9IEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9uczxFPixcbiAgICBMTyBleHRlbmRzIEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zPEU+ID0gRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnM8RT4sXG4gICAgTyBleHRlbmRzIEFic3RyYWN0UGVyc29uU2VydmljZU9wdGlvbnM8RSwgUSwgTSwgUz4gPSBBYnN0cmFjdFBlcnNvblNlcnZpY2VPcHRpb25zPEUsIFEsIE0sIFM+LFxuICA+XG4gIGV4dGVuZHMgQmFzZUVudGl0eVNlcnZpY2U8RSwgRiwgbnVtYmVyLCBXTywgTE8+XG4gIGltcGxlbWVudHMgSVBlcnNvblNlcnZpY2U8RSwgRj5cbntcbiAgcHJvdGVjdGVkIG5ldHdvcmsgPSBpbmplY3QoTmV0d29ya1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZW50aXRpZXMgPSBpbmplY3QoRW50aXRpZXNTdG9yYWdlKTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgZ3JhcGhxbDogR3JhcGhxbFNlcnZpY2UsXG4gICAgcGxhdGZvcm06IFBsYXRmb3JtU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZGF0YVR5cGU6IG5ldyAoKSA9PiBFLFxuICAgIHByb3RlY3RlZCBmaWx0ZXJUeXBlOiBuZXcgKCkgPT4gRixcbiAgICBwcm90ZWN0ZWQgb3B0aW9uczogT1xuICApIHtcbiAgICBzdXBlcihncmFwaHFsLCBwbGF0Zm9ybSwgZGF0YVR5cGUsIGZpbHRlclR5cGUsIG9wdGlvbnMpO1xuXG4gICAgLy8gZm9yIERFViBvbmx5IC0tLS0tXG4gICAgdGhpcy5fZGVidWcgPSAhaW5qZWN0KEVOVklST05NRU5UKS5wcm9kdWN0aW9uO1xuICB9XG5cbiAgYXN5bmMgbG9hZEFsbChcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc29ydEJ5Pzoga2V5b2YgRSB8IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXI/OiBQYXJ0aWFsPEY+LFxuICAgIG9wdHM/OiBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucyAmIHsgZGVidWc/OiBib29sZWFuIH1cbiAgKTogUHJvbWlzZTxMb2FkUmVzdWx0PEU+PiB7XG4gICAgY29uc3Qgb2ZmbGluZSA9IHRoaXMubmV0d29yay5vZmZsaW5lICYmICghb3B0cyB8fCBvcHRzLmZldGNoUG9saWN5ICE9PSAnbmV0d29yay1vbmx5Jyk7XG4gICAgaWYgKG9mZmxpbmUpIHtcbiAgICAgIHJldHVybiB0aGlzLmxvYWRBbGxMb2NhbGx5KG9mZnNldCwgc2l6ZSwgc29ydEJ5IGFzIHN0cmluZywgc29ydERpcmVjdGlvbiwgZmlsdGVyLCBvcHRzKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmxvYWRBbGwob2Zmc2V0LCBzaXplLCBzb3J0QnkgYXMgYW55LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXIsIG9wdHMgYXMgYW55KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBsb2FkQWxsTG9jYWxseShcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc29ydEJ5Pzogc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgIGZpbHRlcj86IFBhcnRpYWw8Rj4sXG4gICAgb3B0cz86IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zICYgeyBkZWJ1Zz86IGJvb2xlYW4gfVxuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8RT4+IHtcbiAgICBmaWx0ZXIgPSB0aGlzLmFzRmlsdGVyKGZpbHRlcik7XG5cbiAgICBjb25zdCB2YXJpYWJsZXMgPSB7XG4gICAgICBvZmZzZXQ6IG9mZnNldCB8fCAwLFxuICAgICAgc2l6ZTogc2l6ZSB8fCAxMDAsXG4gICAgICBzb3J0Qnk6IHNvcnRCeSB8fCAodGhpcy5kZWZhdWx0U29ydEJ5IGFzIHN0cmluZyksXG4gICAgICBzb3J0RGlyZWN0aW9uOiBzb3J0RGlyZWN0aW9uIHx8IHRoaXMuZGVmYXVsdFNvcnREaXJlY3Rpb24sXG4gICAgICBmaWx0ZXI6IChmaWx0ZXIgYXMgYW55KSAmJiAoZmlsdGVyIGFzIGFueSkuYXNGaWx0ZXJGbiA/IChmaWx0ZXIgYXMgYW55KS5hc0ZpbHRlckZuKCkgOiBmaWx0ZXIsXG4gICAgfTtcblxuICAgIGNvbnN0IHR5cGVuYW1lID0gKHRoaXMuZGF0YVR5cGUgYXMgYW55KS5UWVBFTkFNRSB8fCBuZXcgdGhpcy5kYXRhVHlwZSgpLl9fdHlwZW5hbWUgfHwgJ1BlcnNvblZPJztcbiAgICBjb25zdCB7IGRhdGEsIHRvdGFsIH0gPSBhd2FpdCB0aGlzLmVudGl0aWVzLmxvYWRBbGw8RT4odHlwZW5hbWUsIHZhcmlhYmxlcyk7XG5cbiAgICBjb25zdCBlbnRpdGllcyA9IHRoaXMuZnJvbU9iamVjdHMoZGF0YSwgb3B0cyBhcyBhbnkpO1xuICAgIGNvbnN0IHJlczogTG9hZFJlc3VsdDxFPiA9IHsgZGF0YTogZW50aXRpZXMsIHRvdGFsIH0gYXMgYW55O1xuXG4gICAgLy8gQWRkIGZldGNoIG1vcmUgZnVuY3Rpb25cbiAgICBjb25zdCBuZXh0T2Zmc2V0ID0gKG9mZnNldCB8fCAwKSArIGVudGl0aWVzLmxlbmd0aDtcbiAgICBpZiAobmV4dE9mZnNldCA8IHRvdGFsKSB7XG4gICAgICByZXMuZmV0Y2hNb3JlID0gKCkgPT4gdGhpcy5sb2FkQWxsTG9jYWxseShuZXh0T2Zmc2V0LCBzaXplLCBzb3J0QnksIHNvcnREaXJlY3Rpb24sIGZpbHRlciwgb3B0cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIGFzeW5jIHN1Z2dlc3QoXG4gICAgdmFsdWU6IGFueSxcbiAgICBmaWx0ZXI/OiBQYXJ0aWFsPEY+LFxuICAgIHNvcnRCeT86IGtleW9mIEUgfCBzdHJpbmcsXG4gICAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gICAgb3B0cz86IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zXG4gICk6IFByb21pc2U8TG9hZFJlc3VsdDxFPj4ge1xuICAgIGlmICgodmFsdWUgYXMgYW55KT8uaWQgIT0gbnVsbCkgcmV0dXJuIHsgZGF0YTogW3ZhbHVlXSB9IGFzIGFueTtcbiAgICB2YWx1ZSA9ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlICE9PSAnKicgJiYgdmFsdWUpIHx8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmID0gKGZpbHRlciBhcyBhbnkpIHx8IHt9O1xuICAgIHNvcnRCeSA9IChzb3J0QnkgYXMgYW55KSB8fCBmLnNlYXJjaEF0dHJpYnV0ZSB8fCAoZi5zZWFyY2hBdHRyaWJ1dGVzICYmIGYuc2VhcmNoQXR0cmlidXRlc1swXSk7XG4gICAgcmV0dXJuIHRoaXMubG9hZEFsbChcbiAgICAgIDAsXG4gICAgICAhdmFsdWUgPyAzMCA6IDEwLFxuICAgICAgc29ydEJ5LFxuICAgICAgc29ydERpcmVjdGlvbixcbiAgICAgIHtcbiAgICAgICAgLi4uKGZpbHRlciBhcyBhbnkpLFxuICAgICAgICBzZWFyY2hUZXh0OiB2YWx1ZSBhcyBzdHJpbmcsXG4gICAgICAgIHN0YXR1c0lkczogKGYgJiYgZi5zdGF0dXNJZHMpIHx8IFtTdGF0dXNJZHMuRU5BQkxFLCBTdGF0dXNJZHMuVEVNUE9SQVJZXSxcbiAgICAgICAgdXNlclByb2ZpbGVzOiBmICYmIGYudXNlclByb2ZpbGVzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgd2l0aFRvdGFsOiB0cnVlIC8qIG5lZWQgYnkgYXV0b2NvbXBsZXRlICovLFxuICAgICAgICAuLi4ob3B0cyBhcyBhbnkpLFxuICAgICAgfSBhcyBhbnlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbG9hZEJ5SWQoaWQ6IG51bWJlciwgb3B0cz86IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucyk6IFByb21pc2U8RT4ge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5sb2FkQWxsKDAsIDEsIG51bGwgYXMgYW55LCBudWxsIGFzIGFueSwgeyBpbmNsdWRlZElkczogW2lkXSB9IGFzIGFueSwgeyB3aXRoVG90YWw6IGZhbHNlLCAuLi4ob3B0cyBhcyBhbnkpIH0pO1xuICAgIGNvbnN0IHNvdXJjZSA9IGlzTm90RW1wdHlBcnJheShkYXRhKSA/IChkYXRhWzBdIGFzIGFueSkgOiAoeyBpZCB9IGFzIGFueSk7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdChzb3VyY2UsIG9wdHMgYXMgYW55KTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRCeVB1YmtleShwdWJrZXk6IHN0cmluZywgb3B0cz86IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucyk6IFByb21pc2U8RT4ge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5sb2FkQWxsKDAsIDEsIG51bGwgYXMgYW55LCBudWxsIGFzIGFueSwgeyBwdWJrZXkgfSBhcyBhbnksIHsgd2l0aFRvdGFsOiBmYWxzZSwgLi4uKG9wdHMgYXMgYW55KSB9KTtcbiAgICBjb25zdCBzb3VyY2UgPSBpc05vdEVtcHR5QXJyYXkoZGF0YSkgPyAoZGF0YVswXSBhcyBhbnkpIDogKHsgcHVia2V5IH0gYXMgYW55KTtcbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyBhcyBhbnkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzT2JqZWN0KHNvdXJjZTogRSB8IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHN1cGVyLmFzT2JqZWN0KHNvdXJjZSk7XG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEZWZhdWx0IEdyYXBoUUwgKGZyb20gZm9ybWVyIHRlc3Rpbmcgc2VydmljZSlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5leHBvcnQgY29uc3QgUGVyc29uRnJhZ21lbnRzID0ge1xuICBsaWdodFBlcnNvbjogZ3FsYFxuICAgIGZyYWdtZW50IExpZ2h0UGVyc29uRnJhZ21lbnQgb24gUGVyc29uVk8ge1xuICAgICAgaWRcbiAgICAgIGZpcnN0TmFtZVxuICAgICAgbGFzdE5hbWVcbiAgICAgIGF2YXRhclxuICAgICAgZGVwYXJ0bWVudCB7XG4gICAgICAgIGlkXG4gICAgICAgIGxhYmVsXG4gICAgICAgIG5hbWVcbiAgICAgICAgX190eXBlbmFtZVxuICAgICAgfVxuICAgICAgX190eXBlbmFtZVxuICAgIH1cbiAgYCxcblxuICBwZXJzb246IGdxbGBcbiAgICBmcmFnbWVudCBQZXJzb25GcmFnbWVudCBvbiBQZXJzb25WTyB7XG4gICAgICBpZFxuICAgICAgZmlyc3ROYW1lXG4gICAgICBsYXN0TmFtZVxuICAgICAgZW1haWxcbiAgICAgIHB1YmtleVxuICAgICAgYXZhdGFyXG4gICAgICBzdGF0dXNJZFxuICAgICAgdXBkYXRlRGF0ZVxuICAgICAgY3JlYXRpb25EYXRlXG4gICAgICBwcm9maWxlc1xuICAgICAgdXNlcm5hbWVcbiAgICAgIHVzZXJuYW1lRXh0cmFuZXRcbiAgICAgIGRlcGFydG1lbnQge1xuICAgICAgICBpZFxuICAgICAgICBsYWJlbFxuICAgICAgICBuYW1lXG4gICAgICAgIGxvZ29cbiAgICAgICAgX190eXBlbmFtZVxuICAgICAgfVxuICAgICAgX190eXBlbmFtZVxuICAgIH1cbiAgYCxcblxuICBwZXJzb25GaWx0ZXI6IGdxbGBcbiAgICBmcmFnbWVudCBQZXJzb25GaWx0ZXJGcmFnbWVudCBvbiBQZXJzb25GaWx0ZXJWTyB7XG4gICAgICBlbWFpbFxuICAgICAgcHVia2V5XG4gICAgICBzZWFyY2hUZXh0XG4gICAgICBzdGF0dXNJZHNcbiAgICAgIHVzZXJQcm9maWxlc1xuICAgICAgaW5jbHVkZWRJZHNcbiAgICAgIGV4Y2x1ZGVkSWRzXG4gICAgICBzZWFyY2hBdHRyaWJ1dGVcbiAgICAgIHNlYXJjaEF0dHJpYnV0ZXNcbiAgICB9XG4gIGAsXG59O1xuXG5jb25zdCBEZWZhdWx0UGVyc29uUXVlcmllczogQmFzZUVudGl0eUdyYXBocWxRdWVyaWVzID0ge1xuICBsb2FkQWxsOiBncWxgXG4gICAgcXVlcnkgUGVyc29ucygkb2Zmc2V0OiBJbnQsICRzaXplOiBJbnQsICRzb3J0Qnk6IFN0cmluZywgJHNvcnREaXJlY3Rpb246IFN0cmluZywgJGZpbHRlcjogUGVyc29uRmlsdGVyVk9JbnB1dCkge1xuICAgICAgZGF0YTogcGVyc29ucyhmaWx0ZXI6ICRmaWx0ZXIsIG9mZnNldDogJG9mZnNldCwgc2l6ZTogJHNpemUsIHNvcnRCeTogJHNvcnRCeSwgc29ydERpcmVjdGlvbjogJHNvcnREaXJlY3Rpb24pIHtcbiAgICAgICAgLi4uUGVyc29uRnJhZ21lbnRcbiAgICAgIH1cbiAgICB9XG4gICAgJHtQZXJzb25GcmFnbWVudHMucGVyc29ufVxuICBgLFxuXG4gIGxvYWRBbGxXaXRoVG90YWw6IGdxbGBcbiAgICBxdWVyeSBQZXJzb25zV2l0aFRvdGFsKCRvZmZzZXQ6IEludCwgJHNpemU6IEludCwgJHNvcnRCeTogU3RyaW5nLCAkc29ydERpcmVjdGlvbjogU3RyaW5nLCAkZmlsdGVyOiBQZXJzb25GaWx0ZXJWT0lucHV0KSB7XG4gICAgICBkYXRhOiBwZXJzb25zKGZpbHRlcjogJGZpbHRlciwgb2Zmc2V0OiAkb2Zmc2V0LCBzaXplOiAkc2l6ZSwgc29ydEJ5OiAkc29ydEJ5LCBzb3J0RGlyZWN0aW9uOiAkc29ydERpcmVjdGlvbikge1xuICAgICAgICAuLi5QZXJzb25GcmFnbWVudFxuICAgICAgfVxuICAgICAgdG90YWw6IHBlcnNvbnNDb3VudChmaWx0ZXI6ICRmaWx0ZXIpXG4gICAgfVxuICAgICR7UGVyc29uRnJhZ21lbnRzLnBlcnNvbn1cbiAgYCxcbn07XG5cbmNvbnN0IERlZmF1bHRQZXJzb25NdXRhdGlvbnM6IEJhc2VFbnRpdHlHcmFwaHFsTXV0YXRpb25zID0ge1xuICBzYXZlQWxsOiBncWxgXG4gICAgbXV0YXRpb24gc2F2ZVBlcnNvbnMoJGRhdGE6IFtQZXJzb25WT0lucHV0XSkge1xuICAgICAgZGF0YTogc2F2ZVBlcnNvbnMocGVyc29uczogJGRhdGEpIHtcbiAgICAgICAgLi4uUGVyc29uRnJhZ21lbnRcbiAgICAgIH1cbiAgICB9XG4gICAgJHtQZXJzb25GcmFnbWVudHMucGVyc29ufVxuICBgLFxuICBkZWxldGVBbGw6IGdxbGBcbiAgICBtdXRhdGlvbiBkZWxldGVQZXJzb25zKCRpZHM6IFtJbnRdKSB7XG4gICAgICBkZWxldGVQZXJzb25zKGlkczogJGlkcylcbiAgICB9XG4gIGAsXG59O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFBlcnNvblNlcnZpY2UgZXh0ZW5kcyBBYnN0cmFjdFBlcnNvblNlcnZpY2U8UGVyc29uLCBQZXJzb25GaWx0ZXI+IGltcGxlbWVudHMgSVBlcnNvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBncmFwaHFsOiBHcmFwaHFsU2VydmljZSxcbiAgICBwbGF0Zm9ybTogUGxhdGZvcm1TZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX1BFUlNPTl9TRVJWSUNFX09QVElPTlMpIG9wdGlvbnM/OiBQZXJzb25TZXJ2aWNlT3B0aW9uc1xuICApIHtcbiAgICBzdXBlcihncmFwaHFsLCBwbGF0Zm9ybSwgUGVyc29uLCBQZXJzb25GaWx0ZXIsIHtcbiAgICAgIHF1ZXJpZXM6IHsgLi4uRGVmYXVsdFBlcnNvblF1ZXJpZXMsIC4uLihvcHRpb25zPy5xdWVyaWVzIHx8IHt9KSB9LFxuICAgICAgbXV0YXRpb25zOiB7IC4uLkRlZmF1bHRQZXJzb25NdXRhdGlvbnMsIC4uLihvcHRpb25zPy5tdXRhdGlvbnMgfHwge30pIH0sXG4gICAgICBzdWJzY3JpcHRpb25zOiBvcHRpb25zPy5zdWJzY3JpcHRpb25zIGFzIGFueSxcbiAgICAgIGRlZmF1bHRTb3J0Qnk6ICdsYXN0TmFtZScsXG4gICAgICBkZWZhdWx0U29ydERpcmVjdGlvbjogJ2FzYycsXG4gICAgICB3YXRjaFF1ZXJpZXNEZWxldGVQb2xpY3k6ICdyZWZldGNoLXF1ZXJpZXMnLFxuICAgIH0pO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cbiAgcHJvdGVjdGVkIGFzT2JqZWN0KHNvdXJjZTogUGVyc29uIHwgYW55KTogYW55IHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGlmICghKHNvdXJjZSBpbnN0YW5jZW9mIFBlcnNvbikpIHtcbiAgICAgIHNvdXJjZSA9IFBlcnNvbi5mcm9tT2JqZWN0KHNvdXJjZSk7XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldCA9IHNvdXJjZS5hc09iamVjdCgpO1xuXG4gICAgLy8gTm90IGtub3duIGluIHNlcnZlciBHcmFwaFFMIHNjaGVtYVxuICAgIGRlbGV0ZSAodGFyZ2V0IGFzIGFueSkubWFpblByb2ZpbGU7XG5cbiAgICAodGFyZ2V0IGFzIGFueSkuZGVwYXJ0bWVudCA9IHNvdXJjZS5kZXBhcnRtZW50Py5hc09iamVjdCgpO1xuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVBlcnNvblNlcnZpY2UoKSB7XG4gIHJldHVybiA8UHJvdmlkZXI+e1xuICAgIHByb3ZpZGU6IEFQUF9QRVJTT05fU0VSVklDRSxcbiAgICB1c2VFeGlzdGluZzogUGVyc29uU2VydmljZSxcbiAgfVxufVxuIl19