ets-fe-ng-sdk 1.0.70 → 1.0.72

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.
@@ -420,9 +420,6 @@ export class ETSUtilityService {
420
420
  this.logForm = (form) => {
421
421
  console.log('FORM', form, 'VALUES', form.value);
422
422
  };
423
- this.onlyUnique = (value, index, self) => {
424
- return self.indexOf(value) === index;
425
- };
426
423
  //#region route
427
424
  this.routeParams1 = this.routeService.routeParams1;
428
425
  this.routeParams2 = this.routeService.routeParams2;
@@ -576,4 +573,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
576
573
  type: Injectable,
577
574
  args: [{ providedIn: 'root' }]
578
575
  }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.MatSnackBar }, { type: i3.Router }, { type: i4.Title }, { type: i5.Location }, { type: i6.ETSReactiveFormInputService }, { type: i7.InputService }, { type: i8.RouteService }, { type: i9.PageLoaderService }, { type: i5.CurrencyPipe }, { type: i5.TitleCasePipe }, { type: i10.LoggerService }, { type: i11.PageService }, { type: i12.BreakpointObserver }]; } });
579
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBVWpELE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFhLGVBQWUsRUFBUSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQVNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFDTCxZQUFZLEVBQ1osYUFBYSxFQUNiLEtBQUssRUFDTCxVQUFVLEVBQ1YsRUFBRSxFQUNGLGFBQWEsR0FDZCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQXNCLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQUd0RSxNQUFNLE9BQU8saUJBQWlCO0lBYTVCLFlBQ1MsTUFBaUIsRUFDakIsUUFBcUIsRUFDckIsTUFBYyxFQUNkLE1BQWEsRUFDYixRQUFrQixFQUNsQixZQUFpQixFQUNqQixhQUFrQixFQUNsQixZQUEwQixFQUMxQixFQUFxQixFQUNyQixZQUEwQixFQUMxQixhQUE0QixFQUM1QixhQUE0QixFQUM1QixL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QztRQUNmLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQ3JCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDbEQsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNwQjtTQUNGO1FBQ0QsT0FBTyxHQUFVLENBQUM7SUFDcEIsQ0FBQzs7OEdBbGxCVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQURKLE1BQU07MkZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJyZW5jeVBpcGUsIExvY2F0aW9uLCBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE1hdERpYWxvZyBhcyBNYXREaWFsb2csXG4gIE1hdERpYWxvZ0NvbmZpZyBhcyBNYXREaWFsb2dDb25maWcsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciBhcyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRXh0cmFzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEVUU1JlYWN0aXZlRm9ybUlucHV0U2VydmljZSBhcyBJUzEgfSBmcm9tICcuL2lucHV0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVTZXJ2aWNlIH0gZnJvbSAnLi9yb3V0ZS5zZXJ2aWNlJztcbmltcG9ydCBqZmQgZnJvbSAnanMtZmlsZS1kb3dubG9hZCc7XG5pbXBvcnQgeyBQYWdlTG9hZGVyU2VydmljZSB9IGZyb20gJy4vcGFnZS1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWcsIENvbmZpZyBhcyBjb25maWcgfSBmcm9tICcuLi9jb25maWdzL2luZGV4LmNvbmZpZyc7XG5kZWNsYXJlIGNvbnN0ICQ6IGFueTtcbmltcG9ydCB7IEFwcFJvdXRlQmFzZSB9IGZyb20gJy4uL1NoYXJlZC9tb2RlbHMvUm91dGVJdGVtLmNsYXNzJztcbmltcG9ydCB7IHNhdmVBcyB9IGZyb20gJ2ZpbGUtc2F2ZXInO1xuaW1wb3J0IHsgRVBhZ2VUeXBlLCBFVmFsaWRhdGlvblR5cGUsIElCdG4gfSBmcm9tICcuLi9TaGFyZWQvbW9kZWxzL2luZGV4Lm1vZGVsJztcbmltcG9ydCB7IEVUU2Vudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbmltcG9ydCB7IFBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9wYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQXJyYXksXG4gIEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUFycmF5LFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgaXNPYnNlcnZhYmxlLFxuICBsYXN0VmFsdWVGcm9tLFxuICBtZXJnZSxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIFJlcGxheVN1YmplY3QsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRUVUU1BhZ2VCdG5JRCB9IGZyb20gJy4uL1NoYXJlZC9tb2RlbHMvSU1lbnVJdGVtJztcbmltcG9ydCB7IElucHV0U2VydmljZSBhcyBJUzIgfSBmcm9tICcuLi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5zZXJ2aWNlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRVRTRW52aXJvbm1lbnQgfSBmcm9tICcuLi9TaGFyZWQvbW9kZWxzL2Vudmlyb25tZW50Lm1vZGVsJztcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBFVFNVdGlsaXR5U2VydmljZTxURW52aXJvbm1lbnQgPSBFVFNFbnZpcm9ubWVudD4ge1xuICByOiBBcHBSb3V0ZUJhc2U7XG4gIGRvd25sb2FkZXIgPSBqZmQ7XG4gIGVWYWxpZGF0aW9uVHlwZSA9IEVWYWxpZGF0aW9uVHlwZTtcbiAgY29uZmlnID0gQ29uZmlnO1xuICBlbnZpcm9ubWVudDogVEVudmlyb25tZW50ID0gRVRTZW52aXJvbm1lbnQgYXMgYW55O1xuICBwYmlkID0gRUVUU1BhZ2VCdG5JRDtcbiAgJDogYW55O1xuICBpc01vYmlsZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEVtaXRzIHRydWUgaWYgbW9iaWxlXG4gICAqL1xuICBtb2JpbGVRdWVyeUNoYW5nZWQgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHVibGljIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHVibGljIHRpdGxlUzogVGl0bGUsXG4gICAgcHVibGljIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwdWJsaWMgaW5wdXRTZXJ2aWNlOiBJUzEsXG4gICAgcHVibGljIGlucHV0U2VydmljZTI6IElTMixcbiAgICBwdWJsaWMgcm91dGVTZXJ2aWNlOiBSb3V0ZVNlcnZpY2UsXG4gICAgcHVibGljIHBTOiBQYWdlTG9hZGVyU2VydmljZSxcbiAgICBwdWJsaWMgY3VycmVuY3lQaXBlOiBDdXJyZW5jeVBpcGUsXG4gICAgcHVibGljIHRpdGxlQ2FzZVBpcGU6IFRpdGxlQ2FzZVBpcGUsXG4gICAgcHVibGljIGxvZ2dlclNlcnZpY2U6IExvZ2dlclNlcnZpY2UsXG4gICAgcHVibGljIHBhZ2VTOiBQYWdlU2VydmljZSxcbiAgICBwdWJsaWMgcmVzcG9uc2l2ZTogQnJlYWtwb2ludE9ic2VydmVyXG4gICkge1xuICAgIHJlc3BvbnNpdmUub2JzZXJ2ZShbQnJlYWtwb2ludHMuSGFuZHNldFBvcnRyYWl0XSkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGNvbnN0IGJyZWFrcG9pbnRzID0gcmVzdWx0LmJyZWFrcG9pbnRzO1xuXG4gICAgICBpZiAoYnJlYWtwb2ludHNbQnJlYWtwb2ludHMuSGFuZHNldFBvcnRyYWl0XSkge1xuICAgICAgICB0aGlzLmlzTW9iaWxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5tb2JpbGVRdWVyeUNoYW5nZWQubmV4dCh0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tb2JpbGVRdWVyeUNoYW5nZWQubmV4dChmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy8gaWYgKCQpIHRoaXMuJCA9ICQ7XG4gIH1cblxuICBiYWNrID0gKCkgPT4gdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG5cbiAgb25seU9uZUlucHV0KGlucHV0czogRm9ybUNvbnRyb2xbXSkge1xuICAgIGNvbnN0IG5JbnB1dHMgPSBpbnB1dHM/Lm1hcCgoaW5wKSA9PiAoeyBpZDogdGhpcy5nZW5SYW5kb21JRCwgaW5wIH0pKSB8fCBbXTtcbiAgICBtZXJnZShcbiAgICAgIC4uLm5JbnB1dHMubWFwKChpKSA9PlxuICAgICAgICBpLmlucC52YWx1ZUNoYW5nZXMucGlwZShtYXAoKHZhbCkgPT4gKHsgaWQ6IGkuaWQsIHZhbCB9KSkpXG4gICAgICApXG4gICAgKS5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgIC8vIGRlYnVnZ2VyXG4gICAgICBpZiAoci52YWwpXG4gICAgICAgIG5JbnB1dHNcbiAgICAgICAgICAuZmlsdGVyKCh4KSA9PiB4LmlkICE9IHIuaWQpXG4gICAgICAgICAgLmZvckVhY2goKHgpID0+IHguaW5wLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKTtcbiAgICAgIGVsc2VcbiAgICAgICAgbklucHV0c1xuICAgICAgICAgIC5maWx0ZXIoKHgpID0+IHguaWQgIT0gci5pZClcbiAgICAgICAgICAuZm9yRWFjaCgoeCkgPT4geC5pbnAuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjb3B5UGF5bG9hZChwYXlsb2FkKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICgoPEVUU0Vudmlyb25tZW50PnRoaXMuZW52aXJvbm1lbnQpLmRlYnVnKSB7XG4gICAgICAgIGNvbnN0IGVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xuICAgICAgICBlbGVtLnZhbHVlID0gSlNPTi5zdHJpbmdpZnkocGF5bG9hZCk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbSk7XG4gICAgICAgIGVsZW0uc2VsZWN0KCk7XG4gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICB9XG4gIH1cbiAgeE9yWSA9ICh4LCB5ID0gJy0nKSA9PiBgJHt4ID09IG51bGwgPyB5IDogeH1gO1xuICB0b1RpdGxlQ2FzZSh0ZXh0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy50aXRsZUNhc2VQaXBlLnRyYW5zZm9ybSh0ZXh0KTtcbiAgfVxuICAvKipcbiAgICogQ29udmVydCBEYXRlIHN0cmluZyB0byBEYXRlIFRpbWUgc3RyaW5nXG4gICAqIEBwYXJhbSBkYXRlU3RyIERhdGUgc3RyaW5nXG4gICAqIEBleGFtcGxlICcyMDIyLTAxLTI1J1xuICAgKiBAcGFyYW0gY29uZmlnIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjb252ZXJzaW9uXG4gICAqIEByZXR1cm5zIFJldHVybnMgYSBEYXRlIFRpbWUgc3RyaW5nXG4gICAqIEBleGFtcGxlICcyMDIyLTAxLTI1VDAwOjAwOjAwWicgb3IgJzIwMjItMDEtMjUgMDA6MDA6MDAnXG4gICAqL1xuICBkYXRlVG9EYXRlVGltZSA9IChcbiAgICBkYXRlU3RyOiBzdHJpbmcsXG4gICAgY29uZmlnPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBVc2UgdGhlIHl5eXktbW0tZGQgaGg6bW06c3MgZm9ybWF0XG4gICAgICAgKi9cbiAgICAgIG9taXRUPzogYm9vbGVhbjtcbiAgICB9XG4gICkgPT4ge1xuICAgIGNvbnN0IG9taXRUID0gISFjb25maWc/Lm9taXRUO1xuICAgIGlmICghZGF0ZVN0cikgcmV0dXJuIG51bGw7XG4gICAgaWYgKGRhdGVTdHIuaW5jbHVkZXMoJ1QnKSkgcmV0dXJuIGRhdGVTdHI7XG4gICAgcmV0dXJuIGRhdGVTdHIgKyAob21pdFQgPyAnIDAwOjAwOjAwJyA6ICdUMDA6MDA6MDBaJyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNldCBhbiBPYmplY3QncyBmaWVsZCBpZiB0aGUgb2JqZWN0IGV4aXN0cyBvciBkb24ndCBpZiB0aGUgb2JqZWN0IGRvZXNuJ3RcbiAgICogQHBhcmFtIG9iaiBPYmplY3QgaG9sZGluZyB0aGUgZmllbGRcbiAgICogQHBhcmFtIGZpZWxkTmFtZSBOYW1lIG9mIHRoZSBmaWVsZCB0byBzZXRcbiAgICogQHBhcmFtIHZhbCBWYWx1ZSB0byBzZXQgdGhlIGZpZWxkIHdpdGhcbiAgICogQHJldHVybnMgUmV0dXJucyB0aGUgb2JqZWN0IGhvbGRpbmcgdGhlIGRhdGFcbiAgICovXG4gIHNldHRlcldpdGhOdWxsPFQ+KG9iajogVCwga3ZwczogUGFydGlhbDxUPikge1xuICAgIGlmICghb2JqKSByZXR1cm4gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBrdnBzKSB7XG4gICAgICBvYmpba2V5XSA9IGt2cHNba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8qKlxuICAgKiAoU2V0IGFuIE9iamVjdCdzIGZpZWxkIGlmIHRoZSBvYmplY3QgZXhpc3RzIG9yIGRvbid0IGlmIHRoZSBvYmplY3QgZG9lc24ndCkgZm9yIG11bHRpcGxlIGVudHJpZXNcbiAgICogQHBhcmFtIGl0ZW1zIEFycmF5IG9mIG9iamVjdHMgYW5kIHRoZWlyIG1vZGlmaWNhdGlvbnNcbiAgICovXG4gIHNldHRlcldpdGhOdWxsQXJyYXk8VD4oaXRlbXM6IHsgb2JqOiBUOyBrdnBzOiBQYXJ0aWFsPFQ+IH1bXSkge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgdGhpcy5zZXR0ZXJXaXRoTnVsbChpdGVtLm9iaiwgaXRlbS5rdnBzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgZGVsZXRpb24gb2Ygcm93cyBmcm9tIGEgRm9ybUFycmF5XG4gICAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiB0aGUgcm93IHRvIGRlbGV0ZVxuICAgKiBAcGFyYW0gZmEgVGhlIEZvcm1BcnJheSB0aGF0IGhvbGRzIHRoZSByb3dzXG4gICAqIEBwYXJhbSBkZWxldGVTZXJ2aWNlIFRoZSBkZWxldGlvbiBzZXJ2aWNlIHRvIGJlIGNhbGxlZCAoSXQgc2hvdWxkIGJlIGFuIGFub255bW91cyBmdW5jdGlvbilcbiAgICogQHBhcmFtIGFkZFJvd0Z1bmMgVGhlIGZ1bmN0aW9uIChhbm9ueW1vdXMpIHRoYXQgYWRkcyBhIG5ldyByb3cgdG8gdGhlIEZvcm1BcnJheVxuICAgKiBAcGFyYW0gZW1pdEV2ZW50IFNwZWNpZnkgd2hldGhlciB0byBlbWl0IGFuIGV2ZW50IHdoZW4gbWFuaXB1bGF0aW5nIHRoZSBGb3JtQXJyYXlcbiAgICogQHJldHVybnNcbiAgICovXG4gIGhhbmRsZUZvcm1Sb3dEZWxldGUgPSAoXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBmYTogVW50eXBlZEZvcm1BcnJheSxcbiAgICBkZWxldGVTZXJ2aWNlOiAoLi4uYXJncykgPT4gUHJvbWlzZTxhbnk+IHwgT2JzZXJ2YWJsZTxhbnk+LFxuICAgIGFkZFJvd0Z1bmM6ICguLi5hcmdzKSA9PiBhbnksXG4gICAgZW1pdEV2ZW50ID0gdHJ1ZVxuICApID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8YW55Pigoc3ViKSA9PiB7XG4gICAgICBjb25zdCBpZCA9IGNsb25lRGVlcChmYS5jb250cm9sc1tpbmRleF0/LnZhbHVlPy5pZCk7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIGlmIChmYS5jb250cm9scy5sZW5ndGggPT0gMSAmJiBpZCkge1xuICAgICAgICBmYS5yZW1vdmVBdChpbmRleCwgeyBlbWl0RXZlbnQgfSk7XG4gICAgICAgIGFkZFJvd0Z1bmMoKTtcbiAgICAgIH0gZWxzZSBpZiAoZmEuY29udHJvbHMubGVuZ3RoID4gMSkgZmEucmVtb3ZlQXQoaW5kZXgsIHsgZW1pdEV2ZW50IH0pO1xuICAgICAgZWxzZSBpZiAoZmEuY29udHJvbHMubGVuZ3RoID09IDEpIGZhLmNvbnRyb2xzWzBdLnJlc2V0KCk7XG5cbiAgICAgIGlmIChpZCAmJiBkZWxldGVTZXJ2aWNlKSB7XG4gICAgICAgIGNvbnN0IHJlcSA9IGRlbGV0ZVNlcnZpY2UoaWQpO1xuICAgICAgICBpZiAocmVxWyd0b1Byb21pc2UnXSkge1xuICAgICAgICAgIHN1YihyZXFbJ3RvUHJvbWlzZSddKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN1YihyZXEgYXMgYW55KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3ViKG51bGwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBkZWxldGlvbiBvZiByb3dzIGZyb20gYW4gYXJyYXlcbiAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIHRoZSByb3cgdG8gZGVsZXRlXG4gICAqIEBwYXJhbSBhcnIgVGhlIGFycmF5IHRoYXQgaG9sZHMgdGhlIHJvd3NcbiAgICogQHBhcmFtIGRlbGV0ZVNlcnZpY2UgVGhlIGRlbGV0aW9uIHNlcnZpY2UgdG8gYmUgY2FsbGVkIChJdCBzaG91bGQgYmUgYW4gYW5vbnltb3VzIGZ1bmN0aW9uKVxuICAgKiBAcGFyYW0gYWRkUm93RnVuYyBUaGUgZnVuY3Rpb24gKGFub255bW91cykgdGhhdCBhZGRzIGEgbmV3IHJvdyB0byB0aGUgYXJyYXlcbiAgICogQHBhcmFtIGNiIFRoZSBmdW5jdGlvbiB0byBjYWxsYmFjayB3aXRoIHRoZSByZXNwb25zZSBvZiB0aGUgZGVsZXRpb24gc2VydmljZSBhcyB0aGUgaW5wdXQgcGFyYW1ldGVyXG4gICAqL1xuICBoYW5kbGVSb3dEZWxldGUgPSBhc3luYyA8VD4oXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBhcnI6IGFueVtdLFxuICAgIGRlbGV0ZVNlcnZpY2U6ICguLi5hcmdzKSA9PiBQcm9taXNlPFQ+IHwgT2JzZXJ2YWJsZTxUPixcbiAgICBhZGRSb3dGdW5jOiAoLi4uYXJncykgPT4gYW55LFxuICAgIGNiPzogKGFueSkgPT4gYW55XG4gICkgPT4ge1xuICAgIGNvbnN0IGlkID0gYXJyW2luZGV4XT8uaWQ7XG4gICAgLy8gZGVidWdnZXI7XG5cbiAgICBpZiAoaWQgJiYgZGVsZXRlU2VydmljZSkge1xuICAgICAgY29uc3QgcmVxID0gZGVsZXRlU2VydmljZShpZCk7XG4gICAgICBpZiAodHlwZW9mIHJlcVsndG9Qcm9taXNlJ10gPT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgY2IgPyBjYihhd2FpdCByZXFbJ3RvUHJvbWlzZSddKCkpIDogcmVxWyd0b1Byb21pc2UnXSgpO1xuICAgICAgZWxzZSBjYiA/IGNiKGF3YWl0IHJlcSkgOiBudWxsO1xuICAgIH1cblxuICAgIGlmIChhcnIubGVuZ3RoID09IDEpIHtcbiAgICAgIGFyci5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgYWRkUm93RnVuYygpO1xuICAgIH0gZWxzZSBpZiAoYXJyLmxlbmd0aCA+IDEpIGFyci5zcGxpY2UoaW5kZXgsIDEpO1xuICB9O1xuICAvKipcbiAgICogVG8gaGFuZGxlIHRoZSBwYXRjaGluZyBvZiBhIEZvcm1BcnJheVxuICAgKiBAcGFyYW0gYXJyIFRoZSBhcnJheSB0aGF0IGNvbnRhaW5zIHRoZSBkYXRhXG4gICAqIEBwYXJhbSBhZGRGdW5jIFRoZSBmdW5jdGlvbiB0aGF0IHBlcmZvcm1zIGFkZGl0aW9uIG9mIHNpbmdsZSBlbnRyaWVzXG4gICAqIEBwYXJhbSBmb3JtQXJyIFRoZSBGb3JtQXJyYXkgdGhhdCB3aWxsIGhvbGQgdGhlIGFycmF5J3MgZGF0YVxuICAgKi9cbiAgaW5pdFBhdGNoRm9ybUFycmF5ID0gKFxuICAgIGFycjogYW55W10sXG4gICAgYWRkRnVuYzogKGk6IG51bWJlciwgZGF0YT86IGFueSwgZm9ybUFycj86IEZvcm1BcnJheSkgPT4gdm9pZCxcbiAgICBmb3JtQXJyOiBGb3JtQXJyYXlcbiAgKSA9PiB7XG4gICAgLy8gZGVidWdnZXJcbiAgICBpZiAoYXJyPy5sZW5ndGgpIHtcbiAgICAgIGlmIChmb3JtQXJyLmxlbmd0aCkgZm9ybUFyci5jbGVhcigpO1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGFycikge1xuICAgICAgICBhZGRGdW5jKGZvcm1BcnIubGVuZ3RoLCBpdGVtLCBmb3JtQXJyKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFmb3JtQXJyLmxlbmd0aCkgYWRkRnVuYyhmb3JtQXJyLmxlbmd0aCwgbnVsbCwgZm9ybUFycik7XG4gICAgfVxuICB9O1xuICBwcml2YXRlIGlzUHJvbWlzZSA9IChmdW5jKSA9PiB7XG4gICAgcmV0dXJuIHR5cGVvZiBmdW5jID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgZnVuYy50aGVuID09PSAnZnVuY3Rpb24nO1xuICB9O1xuICBpc0FzeW5jID0gKGZ1bmMpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgZnVuYy5jb25zdHJ1Y3Rvci5uYW1lID09PSAnQXN5bmNGdW5jdGlvbicgfHxcbiAgICAgICh0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJyAmJiB0aGlzLmlzUHJvbWlzZShmdW5jKCkpKVxuICAgICk7XG4gIH07XG5cbiAgaXNPYnNlcnZhYmxlID0gPFQ+KGZ1bmMpID0+IHtcbiAgICAvLyByZXR1cm4gdHlwZW9mIGZ1bmMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBmdW5jLnN1YnNjcmliZSA9PT0gJ2Z1bmN0aW9uJztcbiAgICAvLyByZXR1cm4gdHlwZW9mIGZ1bmMgPT09ICdvYmplY3QnICYmIGZ1bmMgaW5zdGFuY2VvZiBPYnNlcnZhYmxlO1xuICAgIC8vIHJldHVybiB0eXBlb2YgZnVuYyA9PT0gJ29iamVjdCcgJiYgZnVuYyBpbnN0YW5jZW9mIE9ic2VydmFibGU8VD47XG4gICAgcmV0dXJuIHR5cGVvZiBmdW5jID09PSAnb2JqZWN0JyAmJiBpc09ic2VydmFibGUoZnVuYyk7XG4gICAgcmV0dXJuIHR5cGVvZiBmdW5jID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgZnVuYy50b1Byb21pc2UgPT09ICdmdW5jdGlvbic7XG4gIH07XG4gIHByb21pc2lmeVZhbCA9IDxUPih2YWw6IFQgfCBQcm9taXNlPFQ+IHwgT2JzZXJ2YWJsZTxUPikgPT4ge1xuICAgIGlmICh0aGlzLmlzQXN5bmModmFsKSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh2YWwgYXMgUHJvbWlzZTxUPik7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzT2JzZXJ2YWJsZSh2YWwpKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGxhc3RWYWx1ZUZyb20odmFsIGFzIE9ic2VydmFibGU8VD4pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh2YWwgYXMgVCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gYXJyIEFycmF5IG9mIG9ic2VydmFibGVzIHRvIGZldGNoXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHRoZSByZXNwb25zZXMgbWVyZ2VkIHRvZ2V0aGVyLiBJdCBlbWl0cyB0aGUgbWVyZ2VkIHJlc3BvbnNlcyBhcyB0aGV5IGFyZSBmZXRjaGVkIGFuZCBjbG9zZXMgb25jZSBhbGxsIHRoZSByZXNwb25zZXMgaGF2ZSBiZWVuIGZldGNoZWRcbiAgICovXG4gIG1lcmdlQXJyT2JzZXJ2YWJsZXMgPSA8VD4oYXJyOiB7ICRmdW5jOiBPYnNlcnZhYmxlPFRbXT4gfVtdKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFRbXT4oKHN1YikgPT4ge1xuICAgICAgY29uc3QgcmV0OiBUW10gPSBbXTtcbiAgICAgIGxldCByZXNwb25zZUNvdW50ID0gMDtcbiAgICAgIG1lcmdlKFxuICAgICAgICAuLi5hcnIubWFwKCh4KSA9PlxuICAgICAgICAgIHguJGZ1bmM/LnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhcCgocikgPT4ge1xuICAgICAgICAgICAgICByZXNwb25zZUNvdW50Kys7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKS5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgICAgcmV0LnB1c2goLi4ucik7XG4gICAgICAgIHN1Yi5uZXh0KHJldCk7XG4gICAgICAgIGlmIChyZXNwb25zZUNvdW50ID09IGFyci5maWx0ZXIoKHgpID0+IHguJGZ1bmMpLmxlbmd0aCkge1xuICAgICAgICAgIC8vIGRlYnVnZ2VyXG4gICAgICAgICAgc3ViLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuICByZW1vdmVEdXBsaWNhdGU8VD4obGlzdDogVFtdLCBrZXlGaWVsZCA9ICdjb2RlJykge1xuICAgIGlmICghbGlzdCkgcmV0dXJuIG51bGw7XG4gICAgbGlzdCA9IGxpc3QuZmlsdGVyKCh4KSA9PiB4KTtcbiAgICBjb25zdCByZXQ6IFRbXSA9IFtdLFxuICAgICAgZHVwbGljYXRlTWFwOiB7IFt4OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBsaXN0KSB7XG4gICAgICBpZiAoZHVwbGljYXRlTWFwW2l0ZW1ba2V5RmllbGRdXSkgY29udGludWU7XG4gICAgICByZXQucHVzaChpdGVtKTtcbiAgICAgIGR1cGxpY2F0ZU1hcFtpdGVtW2tleUZpZWxkXV0gPSBpdGVtO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG4gIGdldCBnZW5SYW5kb21JRCgpIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwMDAwMDAwMDAwMDAwMCk7XG4gIH1cbiAgc3RvcmVQYXlsb2FkID0gdGhpcy5sb2dnZXJTZXJ2aWNlLmFkZExvZztcbiAgb2JqSXNFbXB0eSA9IChvYmosIGV4Y2x1c2lvbkZpZWxkcz86IHN0cmluZ1tdKSA9PiB7XG4gICAgaWYgKCFvYmopIHJldHVybiB0cnVlO1xuICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgICAgaWYgKGV4Y2x1c2lvbkZpZWxkcz8uaW5jbHVkZXMoa2V5KSkgY29udGludWU7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICBpZiAob2JqW2tleV0pIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG4gIGRhdGFHZW4gPSA8VCA9IGFueT4oa2V5czogc3RyaW5nW10sIGxlbmd0aCA9IDEwKSA9PiB7XG4gICAgY29uc3QgcmV0OiBhbnlbXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCB0OiBhbnkgPSB7fTtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgdFtrZXldID0gdGhpcy50ZXh0R2VuKCk7XG4gICAgICB9XG4gICAgICByZXQucHVzaCh0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJldCBhcyBUW107XG4gIH07XG4gIHRleHRHZW4gPSAoKSA9PiAncmFuZG9tJyArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDEwMDApO1xuICB0cmFja0J5Q29kZShpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcbiAgICByZXR1cm4gaXRlbT8uY29kZTtcbiAgfVxuICB0cmFja0J5SUQoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XG4gICAgcmV0dXJuIGl0ZW0/LmlkO1xuICB9XG4gIGRpYWxvZ09wZW5lciA9IChcbiAgICBjb21wOiBhbnksXG4gICAgY29uZmlnOiBNYXREaWFsb2dDb25maWcsXG4gICAgdmFsdWVDQjogKHIpID0+IGFueSxcbiAgICBub1ZhbHVlQ0I/OiBhbnlcbiAgKSA9PlxuICAgIHRoaXMuZGlhbG9nT3BlbmVyUmVmKGNvbXAsIGNvbmZpZylcbiAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICAgIGlmIChyICE9IG51bGwgJiYgciAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB2YWx1ZUNCKHIpO1xuICAgICAgICB9IGVsc2UgaWYgKG5vVmFsdWVDQikge1xuICAgICAgICAgIG5vVmFsdWVDQigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgZGlhbG9nT3BlbmVyUmVmID0gKGNvbXA6IGFueSwgY29uZmlnOiBNYXREaWFsb2dDb25maWcpID0+XG4gICAgdGhpcy5kaWFsb2cub3Blbihjb21wLCBjb25maWcpO1xuICBmaW5kTGFiZWxCeUl0ZW0gPSAoXG4gICAgaXRlbSxcbiAgICBhcnI6IGFueVtdLFxuICAgIGxhYmVsRmllbGQ/OiBzdHJpbmcsXG4gICAga2V5RmllbGQ6IHN0cmluZyA9ICdjb2RlJ1xuICApID0+IHtcbiAgICBpZiAoIWl0ZW0pIHJldHVybiBudWxsO1xuICAgIGNvbnN0IG9iaiA9IGFycj8uZmluZCgoeCkgPT4geFtrZXlGaWVsZF0gPT0gaXRlbSk7XG4gICAgaWYgKCFvYmopIHJldHVybiBpdGVtO1xuICAgIGVsc2VcbiAgICAgIHJldHVybiBgJHtpdGVtfSAtICR7XG4gICAgICAgIG9ialtsYWJlbEZpZWxkIHx8ICd0aXRsZSddIHx8IG9ialtsYWJlbEZpZWxkIHx8ICdkZXNjcmlwdGlvbiddXG4gICAgICB9YDtcbiAgfTtcblxuICBmb3JtRmllbGRzRnJvbUFyciA9IHRoaXMuaW5wdXRTZXJ2aWNlLmZvcm1GaWVsZHNGcm9tRkNJbnB1dHNBcnI7XG4gIG9ialRvRm9ybUNvbnRyb2xzID0gdGhpcy5pbnB1dFNlcnZpY2UuZm9ybUZpZWxkc0Zyb21PYmo7XG4gIGZvcm1TY2hlbWFUb0Zvcm1Db250cm9scyA9IHRoaXMuaW5wdXRTZXJ2aWNlLmZvcm1TY2hlbWFUb0Zvcm1Db250cm9scztcblxuICBiaW5kRm9ybUNvbnRyb2xUb0lucHV0cyA9IHRoaXMuaW5wdXRTZXJ2aWNlLmJpbmRGb3JtQ29udHJvbFRvSW5wdXRzO1xuXG4gIGdvID0gKHZhbHVlOiBzdHJpbmcsIGV4dHJhPzogTmF2aWdhdGlvbkV4dHJhcykgPT4ge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt2YWx1ZV0sIGV4dHJhKTtcbiAgfTtcbiAgLyoqXG4gICAqIFJvdXRlIHRvIGNvbXBvbmVudFxuICAgKiBAcGFyYW0gcm91dGUgUm91dGUgb2YgcGF0aCB0byBjb21wb25lbnRcbiAgICogQHBhcmFtIGV4dHJhXG4gICAqL1xuICBnb1IgPSAocm91dGU6IHN0cmluZywgZXh0cmE/OiBOYXZpZ2F0aW9uRXh0cmFzKSA9PiB7XG4gICAgaWYgKCEoPEVUU0Vudmlyb25tZW50PnRoaXMuZW52aXJvbm1lbnQpLmFjdGl2YXRlZFJvdXRlKSBkZWJ1Z2dlcjtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcm91dGVdLCB7XG4gICAgICByZWxhdGl2ZVRvOiAoPEVUU0Vudmlyb25tZW50PnRoaXMuZW52aXJvbm1lbnQpLmFjdGl2YXRlZFJvdXRlLFxuICAgICAgLi4uZXh0cmEsXG4gICAgfSk7XG4gICAgLy8gZGVidWdnZXI7XG4gIH07XG4gIG1vbmV5UGFyc2VyID0gKGFtb3VudDogc3RyaW5nIHwgbnVtYmVyLCBjdXJyZW5jeSA9ICcgJykgPT4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbmN5UGlwZS50cmFuc2Zvcm0oYW1vdW50LCBjdXJyZW5jeSB8fCAnICcpO1xuICB9O1xuICBleHRyYWN0VXBsb2FkKGV2ZW50OiBhbnkpIHtcbiAgICByZXR1cm4gKGV2ZW50LnRhcmdldC5maWxlcyBhcyBGaWxlW10pIHx8IFtdO1xuICB9XG5cbiAgc2Vjb25kc1RvSG91ck1pblNlYyA9IChzZWNvbmRzOiBudW1iZXIpID0+IHtcbiAgICBpZiAoIXNlY29uZHMpIHJldHVybiB7IHNlY3M6IG51bGwsIGhvdXJzOiBudWxsLCBtaW5zOiBudWxsIH07XG4gICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKHNlY29uZHMgLyAzNjAwKSB8fCAwLFxuICAgICAgc2Vjb25kc0V4SG91cnMgPSBzZWNvbmRzICUgMzYwMCB8fCAwLFxuICAgICAgbWlucyA9IE1hdGguZmxvb3Ioc2Vjb25kc0V4SG91cnMgLyA2MCkgfHwgMCxcbiAgICAgIHNlY3MgPSBzZWNvbmRzRXhIb3VycyAlIDYwO1xuICAgIHJldHVybiB7IGhvdXJzLCBtaW5zLCBzZWNzIH07XG4gIH07XG4gIG1pbnV0ZXNUb0RheUhvdXJNaW4gPSAobWludXRlczogbnVtYmVyKSA9PiB7XG4gICAgaWYgKCFtaW51dGVzKSByZXR1cm4geyBkYXlzOiBudWxsLCBob3VyczogbnVsbCwgbWluczogbnVsbCB9O1xuICAgIGNvbnN0IGRheXMgPSBNYXRoLmZsb29yKG1pbnV0ZXMgLyAxNDQwKSB8fCAwLFxuICAgICAgbWluaXV0ZXNFeERheXMgPSBtaW51dGVzICUgMTQ0MCB8fCAwLFxuICAgICAgaG91cnMgPSBNYXRoLmZsb29yKG1pbml1dGVzRXhEYXlzIC8gNjApIHx8IDAsXG4gICAgICBtaW5zID0gbWluaXV0ZXNFeERheXMgJSA2MCB8fCAwO1xuICAgIHJldHVybiB7IGRheXMsIGhvdXJzLCBtaW5zIH07XG4gIH07XG4gIG1pbnV0ZXNUb0RheUhvdXJNaW5TdHIgPSAobWludXRlczogbnVtYmVyKSA9PiB7XG4gICAgaWYgKCFtaW51dGVzKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCByZXQgPSB0aGlzLm1pbnV0ZXNUb0RheUhvdXJNaW4obWludXRlcyk7XG4gICAgcmV0dXJuIGAke3JldC5kYXlzfSAke3JldC5ob3Vyc306JHtyZXQubWluc31gLnRyaW0oKTtcbiAgfTtcbiAgbWludXRlc1RvRGF5SG91ck1pblN0cjIgPSAobWludXRlczogbnVtYmVyKSA9PiB7XG4gICAgaWYgKCFtaW51dGVzKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCByZXQgPSB0aGlzLm1pbnV0ZXNUb0RheUhvdXJNaW4obWludXRlcyk7XG4gICAgcmV0dXJuIGAke3JldC5kYXlzfWRheXMgJHtyZXQuaG91cnN9aHJzICR7cmV0Lm1pbnN9bWluc2AudHJpbSgpO1xuICB9O1xuICBkYXlIb3VyTWluVG9Ib3VyTWludXRlcyA9IChkeXM6IG51bWJlciwgaHJzOiBudW1iZXIsIG1pbnM6IG51bWJlcikgPT4ge1xuICAgIGlmICghZHlzICYmICFocnMgJiYgIW1pbnMpIHJldHVybiAnJztcbiAgICBjb25zdCBkeXNUb0hycyA9IChkeXMgfHwgMCkgKiAyNDtcbiAgICBocnMgPSAoK2hycyB8fCAwKSArIGR5c1RvSHJzO1xuICAgIHJldHVybiAoaHJzIHx8ICcwMCcpICsgJzonICsgKG1pbnMgfHwgJzAwJyk7XG4gIH07XG4gIGRpc2FibGVPckVuYWJsZUlucHV0cyA9IChjb250cm9sczogQWJzdHJhY3RDb250cm9sW10sIGRpc2FibGU6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAoZGlzYWJsZSkgdGhpcy5kaXNhYmxlSW5wdXRzKGNvbnRyb2xzKTtcbiAgICBlbHNlIHRoaXMuZW5hYmxlSW5wdXRzKGNvbnRyb2xzKTtcbiAgfTtcbiAgZGlzYWJsZUlucHV0cyA9IChjb250cm9sczogQWJzdHJhY3RDb250cm9sW10pID0+IHtcbiAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgY29udHJvbHMpIHtcbiAgICAgIGNvbnRyb2w/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgfTtcbiAgZW5hYmxlSW5wdXRzID0gKGNvbnRyb2xzOiBBYnN0cmFjdENvbnRyb2xbXSkgPT4ge1xuICAgIGZvciAoY29uc3QgY29udHJvbCBvZiBjb250cm9scykge1xuICAgICAgY29udHJvbD8uZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9XG4gIH07XG4gIGRheUhvdXJNaW5Ub01pbnV0ZXMgPSAoZHlzOiBudW1iZXIsIGhyczogbnVtYmVyLCBtaW5zOiBudW1iZXIpID0+IHtcbiAgICBpZiAoIWR5cyAmJiAhaHJzICYmICFtaW5zKSByZXR1cm4gMDtcbiAgICBjb25zdCBkeXNUb0hycyA9IChkeXMgfHwgMCkgKiAyNDtcbiAgICBocnMgPSAoK2hycyB8fCAwKSArIGR5c1RvSHJzO1xuICAgIHJldHVybiAoaHJzIHx8IDApICogNjAgKyBtaW5zO1xuICB9O1xuICBob3VyTWluVG9NaW51dGVzID0gKGhyczogbnVtYmVyLCBtaW5zOiBudW1iZXIpID0+IHtcbiAgICBpZiAoIWhycyAmJiAhbWlucykgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIChocnMgfHwgMCkgKiA2MCArIG1pbnM7XG4gIH07XG4gIGhvdXJNaW5Ub01pbnV0ZXMyID0gKGhyc01pbnM6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IFtocnMsIG1pbnNdID0gaHJzTWlucz8uc3BsaXQoJzonKSB8fCBbMCwgMF07XG4gICAgcmV0dXJuIHRoaXMuaG91ck1pblRvTWludXRlcygraHJzLCArbWlucyk7XG4gIH07XG4gIG5vdGlmeShtZXNzYWdlOiBzdHJpbmcsIGNsczogMCB8IDEgfCAyIHwgMyA9IDEsIGR1cmF0aW9uID0gNTAwMCwgdGl0bGUgPSAnJykge1xuICAgIG1lc3NhZ2UgPVxuICAgICAgdHlwZW9mIG1lc3NhZ2UgPT0gJ3N0cmluZydcbiAgICAgICAgPyBtZXNzYWdlXG4gICAgICAgIDogY2xzID09IDBcbiAgICAgICAgPyAnQW4gZXJyb3Igb2NjdXJyZWQnXG4gICAgICAgIDogJyc7XG4gICAgcmV0dXJuIHRoaXMuc25hY2tCYXIub3BlbihtZXNzYWdlLCB0aXRsZSwge1xuICAgICAgZHVyYXRpb24sXG4gICAgICBob3Jpem9udGFsUG9zaXRpb246ICdjZW50ZXInLFxuICAgICAgdmVydGljYWxQb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgICBwYW5lbENsYXNzOlxuICAgICAgICBjbHMgPT0gMVxuICAgICAgICAgID8gJ2JnLXN1Y2Nlc3MnXG4gICAgICAgICAgOiBjbHMgPT0gMlxuICAgICAgICAgID8gJ2J0bi1pbmZvJ1xuICAgICAgICAgIDogY2xzID09IDNcbiAgICAgICAgICA/ICdidG4td2FybmluZydcbiAgICAgICAgICA6ICdiZy1kYW5nZXInLFxuICAgIH0pO1xuICB9XG5cbiAgc2Nyb2xsVG9Ub3AgPSAoKSA9PiB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG5cbiAgLyoqXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IGRhdGUgdGltZSBsb2NhbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgZGF0ZXRpbWUtbG9jYWwgaW5wdXRcbiAgICovXG4gIGdldExvY2FsRGF0ZVRpbWVOb3cgPSAoKSA9PiB7XG4gICAgY29uc3QgZHQgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKTtcbiAgICByZXR1cm4gZHRbMF0gKyAnVCcgKyBkdFsxXS5zcGxpdCgnOicpLnNsaWNlKDAsIDIpLmpvaW4oJzonKTtcbiAgfTtcbiAgLyoqIEByZXR1cm5zIFRoZSBjdXJyZW50IGRhdGUgbG9jYWwgdGhhdCBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIGRhdGUgaW5wdXQgKi9cbiAgbG9jYWxEYXRlTm93ID0gKCkgPT4ge1xuICAgIHJldHVybiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcbiAgfTtcbiAgZGF0ZUZvcm1hdCA9IChkYXRlOiBhbnksIGZvcm1hdCA9IDEpID0+IHtcbiAgICBpZiAoIWRhdGUpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICBpZiAoZm9ybWF0ID09IDEpIHtcbiAgICAgIHJldHVybiBkLnRvRGF0ZVN0cmluZygpO1xuICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09IDIpIHtcbiAgICAgIHJldHVybiBkLmdldERhdGUoKSArICcgJyArIGNvbmZpZy5Nb250aHNbZC5nZXRNb250aCgpXTtcbiAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PSAzKSB7XG4gICAgICByZXR1cm4gZC50b0RhdGVTdHJpbmcoKSArICcsICcgKyB0aGlzLnRpbWVGb3JtYXQoZC50b0xvY2FsZVRpbWVTdHJpbmcoKSk7XG4gICAgfSBlbHNlIGlmIChmb3JtYXQgPT0gNCkge1xuICAgICAgcmV0dXJuIGNvbmZpZy5Nb250aHNbZC5nZXRNb250aCgpXSArICcgJyArIGQuZ2V0RGF0ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9O1xuXG4gIHRvSmF2YURhdGVTdHJpbmcgPSAoaXNvRGF0ZVN0cmluZzogc3RyaW5nID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpKSA9PiB7XG4gICAgaWYgKCFpc29EYXRlU3RyaW5nKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gYCR7aXNvRGF0ZVN0cmluZy5zbGljZSgwLCAxOSl9YDtcbiAgICByZXR1cm4gYCR7aXNvRGF0ZVN0cmluZy5zbGljZSgwLCAxMCl9ICR7aXNvRGF0ZVN0cmluZy5zbGljZSgxMSwgMTkpfWA7XG4gIH07XG5cbiAgdG9KYXZhRGF0ZXRpbWVTdHJpbmcgPSAoaXNvRGF0ZVN0cmluZzogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCFpc29EYXRlU3RyaW5nKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoaXNvRGF0ZVN0cmluZykudG9JU09TdHJpbmcoKTtcbiAgICBkZWJ1Z2dlcjtcbiAgICAvLyBjb25zb2xlLmxvZyhpc29EYXRlU3RyaW5nLCBkYXRlKTtcbiAgICAvLyByZXR1cm4gYCR7aXNvRGF0ZVN0cmluZy5zbGljZSgwLCAxOSl9YDtcbiAgICByZXR1cm4gYCR7ZGF0ZS5zbGljZSgwLCAxMCl9ICR7ZGF0ZS5zbGljZSgxMSwgMTkpfWA7XG4gIH07XG4gIHRpbWVGb3JtYXQgPSAodGltZT86IGFueSkgPT4ge1xuICAgIGNvbnN0IHRpbWVBcnI6IGFueVtdID0gdGltZS5zcGxpdCgnICcpO1xuICAgIHRpbWVBcnJbMF0gPSB0aW1lQXJyWzBdLnNwbGl0KCc6Jykuc3BsaWNlKDAsIDIpLmpvaW4oJzonKTtcbiAgICByZXR1cm4gdGltZUFyci5qb2luKCcgJyk7XG4gIH07XG4gIGZ1bGxEYXRlVGltZSA9ICh0aW1lc3RhbXA6IHN0cmluZyB8IG51bWJlcikgPT4ge1xuICAgIC8vIGRlYnVnZ2VyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZUZvcm1hdCh0aW1lc3RhbXAsIDMpO1xuICB9O1xuICBkYXlzRm9ybWF0dGVyID0gKGRheXM6IG51bWJlcikgPT4ge1xuICAgIGlmICghZGF5cykge1xuICAgICAgcmV0dXJuICctJztcbiAgICB9XG4gICAgbGV0IHlyOiBudW1iZXIsXG4gICAgICBtdDogbnVtYmVyLFxuICAgICAgZHk6IG51bWJlcixcbiAgICAgIHJldDogc3RyaW5nLFxuICAgICAgX3lyID0gMzY1LFxuICAgICAgX210ID0gMzA7XG4gICAgaWYgKGRheXMgPiBfeXIpIHtcbiAgICAgIHlyID0gTWF0aC5mbG9vcihkYXlzIC8gX3lyKTtcbiAgICB9XG4gICAgaWYgKGRheXMgPiBfbXQpIHtcbiAgICAgIG10ID0gTWF0aC5mbG9vcigoZGF5cyAlIF95cikgLyBfbXQpO1xuICAgIH1cbiAgICBkeSA9IChkYXlzICUgX3lyKSAlIF9tdDtcbiAgICByZXQgPSBgJHt5ciA/IHRoaXMucGx1YXJsaXplcih5ciwgJ3lyJykgOiAnJ30gJHtcbiAgICAgIG10ID8gdGhpcy5wbHVhcmxpemVyKG10LCAnbXRoJykgOiAnJ1xuICAgIH0gJHt0aGlzLnBsdWFybGl6ZXIoZHksICdkeScpfWA7XG4gICAgcmV0dXJuIHJldDtcbiAgfTtcbiAgbW9udGhzRm9ybWF0dGVyID0gKG1vbnRoczogbnVtYmVyKSA9PiB7XG4gICAgaWYgKCFtb250aHMpIHtcbiAgICAgIHJldHVybiAnLSc7XG4gICAgfVxuICAgIGxldCB5cjogbnVtYmVyLFxuICAgICAgbXQ6IG51bWJlcixcbiAgICAgIHJldDogc3RyaW5nLFxuICAgICAgX3lyID0gMTI7XG4gICAgaWYgKG1vbnRocyA+IF95cikge1xuICAgICAgeXIgPSBNYXRoLmZsb29yKG1vbnRocyAvIF95cik7XG4gICAgfVxuICAgIG10ID0gbW9udGhzICUgX3lyO1xuICAgIHJldCA9IGAke3lyID8gdGhpcy5wbHVhcmxpemVyKHlyLCAneXInKSA6ICcnfSAke1xuICAgICAgbXQgPyB0aGlzLnBsdWFybGl6ZXIobXQsICdtdGgnKSA6ICcnXG4gICAgfWA7XG4gICAgcmV0dXJuIHJldDtcbiAgfTtcbiAgcGx1YXJsaXplciA9ICh2YWw6IG51bWJlciwgdHh0OiBzdHJpbmcsIHBsdXJhbD86IHN0cmluZykgPT4ge1xuICAgIHBsdXJhbCA9IHBsdXJhbCB8fCB0eHQgKyAncyc7XG4gICAgcmV0dXJuIHZhbCArICh2YWwgPT0gMSA/IHR4dCA6IHBsdXJhbCk7XG4gIH07XG4gIGRlY2ltYWxUb1BlcmNlbnRhZ2UgPSAoZGVjOiBudW1iZXIpID0+IHtcbiAgICByZXR1cm4gZGVjICogMTAwICsgJyUnO1xuICB9O1xuICBsb2dGb3JtID0gKGZvcm0pID0+IHtcbiAgICBjb25zb2xlLmxvZygnRk9STScsIGZvcm0sICdWQUxVRVMnLCBmb3JtLnZhbHVlIGFzIGFueSk7XG4gIH07XG5cbiAgdG9DU1YoZGF0YTogYW55W10sIGhlYWRlck5hbWVzOiBzdHJpbmdbXSwgZmlsZW5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IHJlcGxhY2VyID0gKGtleSwgdmFsdWUpID0+ICh2YWx1ZSA9PT0gbnVsbCA/ICcnIDogdmFsdWUpOyAvLyBzcGVjaWZ5IGhvdyB5b3Ugd2FudCB0byBoYW5kbGUgbnVsbCB2YWx1ZXMgaGVyZVxuXG4gICAgbGV0IGNzdiA9IGRhdGEubWFwKChyb3cpID0+XG4gICAgICBoZWFkZXJOYW1lc1xuICAgICAgICAubWFwKChmaWVsZE5hbWUpID0+IEpTT04uc3RyaW5naWZ5KHJvd1tmaWVsZE5hbWVdLCByZXBsYWNlcikpXG4gICAgICAgIC5qb2luKCcsJylcbiAgICApO1xuICAgIGNzdi51bnNoaWZ0KGhlYWRlck5hbWVzLmpvaW4oJywnKSk7XG4gICAgbGV0IGNzdkFycmF5ID0gY3N2LmpvaW4oJ1xcclxcbicpO1xuXG4gICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbY3N2QXJyYXldLCB7IHR5cGU6ICd0ZXh0L2NzdicgfSk7XG4gICAgc2F2ZUFzKGJsb2IsIGZpbGVuYW1lICsgJy5jc3YnKTtcbiAgfVxuXG4gIGlzUGljdHVyZUZvcm1hdChmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCFmaWxlTmFtZSkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IFBJQ1RVUkVfRk9STUFUUyA9IFsnLmpwZycsICcuanBlZycsICcucG5nJywgJy5naWYnXTtcbiAgICByZXR1cm4gUElDVFVSRV9GT1JNQVRTLnNvbWUoKGZvcm1hdCkgPT4gZmlsZU5hbWUuZW5kc1dpdGgoZm9ybWF0KSk7XG4gIH1cbiAgb2JqZWN0VG9BcnJheTxUPihvYmo6IGFueSkge1xuICAgIGNvbnN0IHJldCA9IFtdO1xuICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgcmV0LnB1c2gob2JqW2tleV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0IGFzIFRbXTtcbiAgfVxuICBvbmx5VW5pcXVlID0gPFQ+KHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBzZWxmOiBUW10pID0+IHtcbiAgICByZXR1cm4gc2VsZi5pbmRleE9mKHZhbHVlKSA9PT0gaW5kZXg7XG4gIH07XG4gIC8vI3JlZ2lvbiByb3V0ZVxuICByb3V0ZVBhcmFtczEgPSB0aGlzLnJvdXRlU2VydmljZS5yb3V0ZVBhcmFtczE7XG4gIHJvdXRlUGFyYW1zMiA9IHRoaXMucm91dGVTZXJ2aWNlLnJvdXRlUGFyYW1zMjtcbiAgcm91dGVQYXJhbXMzID0gdGhpcy5yb3V0ZVNlcnZpY2Uucm91dGVQYXJhbXMzO1xuICAvLyNlbmRyZWdpb25cbiAgc3RhcnRQbCA9IHRoaXMucFMuc3RhcnRQbDtcbiAgc3RvcFBsID0gdGhpcy5wUy5zdG9wUGw7XG59XG4iXX0=
576
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBVWpELE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFhLGVBQWUsRUFBUSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQVNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFDTCxZQUFZLEVBQ1osYUFBYSxFQUNiLEtBQUssRUFDTCxVQUFVLEVBQ1YsRUFBRSxFQUNGLGFBQWEsR0FDZCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQXNCLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQUd0RSxNQUFNLE9BQU8saUJBQWlCO0lBYTVCLFlBQ1MsTUFBaUIsRUFDakIsUUFBcUIsRUFDckIsTUFBYyxFQUNkLE1BQWEsRUFDYixRQUFrQixFQUNsQixZQUFpQixFQUNqQixhQUFrQixFQUNsQixZQUEwQixFQUMxQixFQUFxQixFQUNyQixZQUEwQixFQUMxQixhQUE0QixFQUM1QixhQUE0QixFQUM1QixL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QUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3BCO1NBQ0Y7UUFDRCxPQUFPLEdBQVUsQ0FBQztJQUNwQixDQUFDOzs4R0FsbEJVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBREosTUFBTTsyRkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1cnJlbmN5UGlwZSwgTG9jYXRpb24sIFRpdGxlQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTWF0RGlhbG9nIGFzIE1hdERpYWxvZyxcbiAgTWF0RGlhbG9nQ29uZmlnIGFzIE1hdERpYWxvZ0NvbmZpZyxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIGFzIE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIsIE5hdmlnYXRpb25FeHRyYXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRVRTUmVhY3RpdmVGb3JtSW5wdXRTZXJ2aWNlIGFzIElTMSB9IGZyb20gJy4vaW5wdXQuc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZVNlcnZpY2UgfSBmcm9tICcuL3JvdXRlLnNlcnZpY2UnO1xuaW1wb3J0IGpmZCBmcm9tICdqcy1maWxlLWRvd25sb2FkJztcbmltcG9ydCB7IFBhZ2VMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi9wYWdlLWxvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpZywgQ29uZmlnIGFzIGNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZ3MvaW5kZXguY29uZmlnJztcbmRlY2xhcmUgY29uc3QgJDogYW55O1xuaW1wb3J0IHsgQXBwUm91dGVCYXNlIH0gZnJvbSAnLi4vU2hhcmVkL21vZGVscy9Sb3V0ZUl0ZW0uY2xhc3MnO1xuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgeyBFUGFnZVR5cGUsIEVWYWxpZGF0aW9uVHlwZSwgSUJ0biB9IGZyb20gJy4uL1NoYXJlZC9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgRVRTZW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgUGFnZVNlcnZpY2UgfSBmcm9tICcuL3BhZ2Uuc2VydmljZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEZvcm1BcnJheSxcbiAgRm9ybUNvbnRyb2wsXG4gIFVudHlwZWRGb3JtQXJyYXksXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBpc09ic2VydmFibGUsXG4gIGxhc3RWYWx1ZUZyb20sXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgUmVwbGF5U3ViamVjdCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFRVRTUGFnZUJ0bklEIH0gZnJvbSAnLi4vU2hhcmVkL21vZGVscy9JTWVudUl0ZW0nO1xuaW1wb3J0IHsgSW5wdXRTZXJ2aWNlIGFzIElTMiB9IGZyb20gJy4uL1NoYXJlZC9jb21wb25lbnRzL2lucHV0L2lucHV0LnNlcnZpY2UnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFVFNFbnZpcm9ubWVudCB9IGZyb20gJy4uL1NoYXJlZC9tb2RlbHMvZW52aXJvbm1lbnQubW9kZWwnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEVUU1V0aWxpdHlTZXJ2aWNlPFRFbnZpcm9ubWVudCA9IEVUU0Vudmlyb25tZW50PiB7XG4gIHI6IEFwcFJvdXRlQmFzZTtcbiAgZG93bmxvYWRlciA9IGpmZDtcbiAgZVZhbGlkYXRpb25UeXBlID0gRVZhbGlkYXRpb25UeXBlO1xuICBjb25maWcgPSBDb25maWc7XG4gIGVudmlyb25tZW50OiBURW52aXJvbm1lbnQgPSBFVFNlbnZpcm9ubWVudCBhcyBhbnk7XG4gIHBiaWQgPSBFRVRTUGFnZUJ0bklEO1xuICAkOiBhbnk7XG4gIGlzTW9iaWxlOiBib29sZWFuO1xuICAvKipcbiAgICogRW1pdHMgdHJ1ZSBpZiBtb2JpbGVcbiAgICovXG4gIG1vYmlsZVF1ZXJ5Q2hhbmdlZCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwdWJsaWMgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxuICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcbiAgICBwdWJsaWMgdGl0bGVTOiBUaXRsZSxcbiAgICBwdWJsaWMgbG9jYXRpb246IExvY2F0aW9uLFxuICAgIHB1YmxpYyBpbnB1dFNlcnZpY2U6IElTMSxcbiAgICBwdWJsaWMgaW5wdXRTZXJ2aWNlMjogSVMyLFxuICAgIHB1YmxpYyByb3V0ZVNlcnZpY2U6IFJvdXRlU2VydmljZSxcbiAgICBwdWJsaWMgcFM6IFBhZ2VMb2FkZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBjdXJyZW5jeVBpcGU6IEN1cnJlbmN5UGlwZSxcbiAgICBwdWJsaWMgdGl0bGVDYXNlUGlwZTogVGl0bGVDYXNlUGlwZSxcbiAgICBwdWJsaWMgbG9nZ2VyU2VydmljZTogTG9nZ2VyU2VydmljZSxcbiAgICBwdWJsaWMgcGFnZVM6IFBhZ2VTZXJ2aWNlLFxuICAgIHB1YmxpYyByZXNwb25zaXZlOiBCcmVha3BvaW50T2JzZXJ2ZXJcbiAgKSB7XG4gICAgcmVzcG9uc2l2ZS5vYnNlcnZlKFtCcmVha3BvaW50cy5IYW5kc2V0UG9ydHJhaXRdKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgY29uc3QgYnJlYWtwb2ludHMgPSByZXN1bHQuYnJlYWtwb2ludHM7XG5cbiAgICAgIGlmIChicmVha3BvaW50c1tCcmVha3BvaW50cy5IYW5kc2V0UG9ydHJhaXRdKSB7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSB0cnVlO1xuICAgICAgICB0aGlzLm1vYmlsZVF1ZXJ5Q2hhbmdlZC5uZXh0KHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1vYmlsZVF1ZXJ5Q2hhbmdlZC5uZXh0KGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBpZiAoJCkgdGhpcy4kID0gJDtcbiAgfVxuXG4gIGJhY2sgPSAoKSA9PiB0aGlzLmxvY2F0aW9uLmJhY2soKTtcblxuICBvbmx5T25lSW5wdXQoaW5wdXRzOiBGb3JtQ29udHJvbFtdKSB7XG4gICAgY29uc3QgbklucHV0cyA9IGlucHV0cz8ubWFwKChpbnApID0+ICh7IGlkOiB0aGlzLmdlblJhbmRvbUlELCBpbnAgfSkpIHx8IFtdO1xuICAgIG1lcmdlKFxuICAgICAgLi4ubklucHV0cy5tYXAoKGkpID0+XG4gICAgICAgIGkuaW5wLnZhbHVlQ2hhbmdlcy5waXBlKG1hcCgodmFsKSA9PiAoeyBpZDogaS5pZCwgdmFsIH0pKSlcbiAgICAgIClcbiAgICApLnN1YnNjcmliZSgocikgPT4ge1xuICAgICAgLy8gZGVidWdnZXJcbiAgICAgIGlmIChyLnZhbClcbiAgICAgICAgbklucHV0c1xuICAgICAgICAgIC5maWx0ZXIoKHgpID0+IHguaWQgIT0gci5pZClcbiAgICAgICAgICAuZm9yRWFjaCgoeCkgPT4geC5pbnAuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSkpO1xuICAgICAgZWxzZVxuICAgICAgICBuSW5wdXRzXG4gICAgICAgICAgLmZpbHRlcigoeCkgPT4geC5pZCAhPSByLmlkKVxuICAgICAgICAgIC5mb3JFYWNoKCh4KSA9PiB4LmlucC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNvcHlQYXlsb2FkKHBheWxvYWQpIHtcbiAgICB0cnkge1xuICAgICAgaWYgKCg8RVRTRW52aXJvbm1lbnQ+dGhpcy5lbnZpcm9ubWVudCkuZGVidWcpIHtcbiAgICAgICAgY29uc3QgZWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XG4gICAgICAgIGVsZW0udmFsdWUgPSBKU09OLnN0cmluZ2lmeShwYXlsb2FkKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtKTtcbiAgICAgICAgZWxlbS5zZWxlY3QoKTtcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgIH1cbiAgfVxuICB4T3JZID0gKHgsIHkgPSAnLScpID0+IGAke3ggPT0gbnVsbCA/IHkgOiB4fWA7XG4gIHRvVGl0bGVDYXNlKHRleHQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnRpdGxlQ2FzZVBpcGUudHJhbnNmb3JtKHRleHQpO1xuICB9XG4gIC8qKlxuICAgKiBDb252ZXJ0IERhdGUgc3RyaW5nIHRvIERhdGUgVGltZSBzdHJpbmdcbiAgICogQHBhcmFtIGRhdGVTdHIgRGF0ZSBzdHJpbmdcbiAgICogQGV4YW1wbGUgJzIwMjItMDEtMjUnXG4gICAqIEBwYXJhbSBjb25maWcgQ29uZmlndXJhdGlvbiBmb3IgdGhlIGNvbnZlcnNpb25cbiAgICogQHJldHVybnMgUmV0dXJucyBhIERhdGUgVGltZSBzdHJpbmdcbiAgICogQGV4YW1wbGUgJzIwMjItMDEtMjVUMDA6MDA6MDBaJyBvciAnMjAyMi0wMS0yNSAwMDowMDowMCdcbiAgICovXG4gIGRhdGVUb0RhdGVUaW1lID0gKFxuICAgIGRhdGVTdHI6IHN0cmluZyxcbiAgICBjb25maWc/OiB7XG4gICAgICAvKipcbiAgICAgICAqIFVzZSB0aGUgeXl5eS1tbS1kZCBoaDptbTpzcyBmb3JtYXRcbiAgICAgICAqL1xuICAgICAgb21pdFQ/OiBib29sZWFuO1xuICAgIH1cbiAgKSA9PiB7XG4gICAgY29uc3Qgb21pdFQgPSAhIWNvbmZpZz8ub21pdFQ7XG4gICAgaWYgKCFkYXRlU3RyKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoZGF0ZVN0ci5pbmNsdWRlcygnVCcpKSByZXR1cm4gZGF0ZVN0cjtcbiAgICByZXR1cm4gZGF0ZVN0ciArIChvbWl0VCA/ICcgMDA6MDA6MDAnIDogJ1QwMDowMDowMFonKTtcbiAgfTtcblxuICAvKipcbiAgICogU2V0IGFuIE9iamVjdCdzIGZpZWxkIGlmIHRoZSBvYmplY3QgZXhpc3RzIG9yIGRvbid0IGlmIHRoZSBvYmplY3QgZG9lc24ndFxuICAgKiBAcGFyYW0gb2JqIE9iamVjdCBob2xkaW5nIHRoZSBmaWVsZFxuICAgKiBAcGFyYW0gZmllbGROYW1lIE5hbWUgb2YgdGhlIGZpZWxkIHRvIHNldFxuICAgKiBAcGFyYW0gdmFsIFZhbHVlIHRvIHNldCB0aGUgZmllbGQgd2l0aFxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRoZSBvYmplY3QgaG9sZGluZyB0aGUgZGF0YVxuICAgKi9cbiAgc2V0dGVyV2l0aE51bGw8VD4ob2JqOiBULCBrdnBzOiBQYXJ0aWFsPFQ+KSB7XG4gICAgaWYgKCFvYmopIHJldHVybiBudWxsO1xuICAgIGZvciAoY29uc3Qga2V5IGluIGt2cHMpIHtcbiAgICAgIG9ialtrZXldID0ga3Zwc1trZXldO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgLyoqXG4gICAqIChTZXQgYW4gT2JqZWN0J3MgZmllbGQgaWYgdGhlIG9iamVjdCBleGlzdHMgb3IgZG9uJ3QgaWYgdGhlIG9iamVjdCBkb2Vzbid0KSBmb3IgbXVsdGlwbGUgZW50cmllc1xuICAgKiBAcGFyYW0gaXRlbXMgQXJyYXkgb2Ygb2JqZWN0cyBhbmQgdGhlaXIgbW9kaWZpY2F0aW9uc1xuICAgKi9cbiAgc2V0dGVyV2l0aE51bGxBcnJheTxUPihpdGVtczogeyBvYmo6IFQ7IGt2cHM6IFBhcnRpYWw8VD4gfVtdKSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICB0aGlzLnNldHRlcldpdGhOdWxsKGl0ZW0ub2JqLCBpdGVtLmt2cHMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBkZWxldGlvbiBvZiByb3dzIGZyb20gYSBGb3JtQXJyYXlcbiAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIHRoZSByb3cgdG8gZGVsZXRlXG4gICAqIEBwYXJhbSBmYSBUaGUgRm9ybUFycmF5IHRoYXQgaG9sZHMgdGhlIHJvd3NcbiAgICogQHBhcmFtIGRlbGV0ZVNlcnZpY2UgVGhlIGRlbGV0aW9uIHNlcnZpY2UgdG8gYmUgY2FsbGVkIChJdCBzaG91bGQgYmUgYW4gYW5vbnltb3VzIGZ1bmN0aW9uKVxuICAgKiBAcGFyYW0gYWRkUm93RnVuYyBUaGUgZnVuY3Rpb24gKGFub255bW91cykgdGhhdCBhZGRzIGEgbmV3IHJvdyB0byB0aGUgRm9ybUFycmF5XG4gICAqIEBwYXJhbSBlbWl0RXZlbnQgU3BlY2lmeSB3aGV0aGVyIHRvIGVtaXQgYW4gZXZlbnQgd2hlbiBtYW5pcHVsYXRpbmcgdGhlIEZvcm1BcnJheVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgaGFuZGxlRm9ybVJvd0RlbGV0ZSA9IChcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGZhOiBVbnR5cGVkRm9ybUFycmF5LFxuICAgIGRlbGV0ZVNlcnZpY2U6ICguLi5hcmdzKSA9PiBQcm9taXNlPGFueT4gfCBPYnNlcnZhYmxlPGFueT4sXG4gICAgYWRkUm93RnVuYzogKC4uLmFyZ3MpID0+IGFueSxcbiAgICBlbWl0RXZlbnQgPSB0cnVlXG4gICkgPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChzdWIpID0+IHtcbiAgICAgIGNvbnN0IGlkID0gY2xvbmVEZWVwKGZhLmNvbnRyb2xzW2luZGV4XT8udmFsdWU/LmlkKTtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgaWYgKGZhLmNvbnRyb2xzLmxlbmd0aCA9PSAxICYmIGlkKSB7XG4gICAgICAgIGZhLnJlbW92ZUF0KGluZGV4LCB7IGVtaXRFdmVudCB9KTtcbiAgICAgICAgYWRkUm93RnVuYygpO1xuICAgICAgfSBlbHNlIGlmIChmYS5jb250cm9scy5sZW5ndGggPiAxKSBmYS5yZW1vdmVBdChpbmRleCwgeyBlbWl0RXZlbnQgfSk7XG4gICAgICBlbHNlIGlmIChmYS5jb250cm9scy5sZW5ndGggPT0gMSkgZmEuY29udHJvbHNbMF0ucmVzZXQoKTtcblxuICAgICAgaWYgKGlkICYmIGRlbGV0ZVNlcnZpY2UpIHtcbiAgICAgICAgY29uc3QgcmVxID0gZGVsZXRlU2VydmljZShpZCk7XG4gICAgICAgIGlmIChyZXFbJ3RvUHJvbWlzZSddKSB7XG4gICAgICAgICAgc3ViKHJlcVsndG9Qcm9taXNlJ10oKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3ViKHJlcSBhcyBhbnkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdWIobnVsbCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGRlbGV0aW9uIG9mIHJvd3MgZnJvbSBhbiBhcnJheVxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgdGhlIHJvdyB0byBkZWxldGVcbiAgICogQHBhcmFtIGFyciBUaGUgYXJyYXkgdGhhdCBob2xkcyB0aGUgcm93c1xuICAgKiBAcGFyYW0gZGVsZXRlU2VydmljZSBUaGUgZGVsZXRpb24gc2VydmljZSB0byBiZSBjYWxsZWQgKEl0IHNob3VsZCBiZSBhbiBhbm9ueW1vdXMgZnVuY3Rpb24pXG4gICAqIEBwYXJhbSBhZGRSb3dGdW5jIFRoZSBmdW5jdGlvbiAoYW5vbnltb3VzKSB0aGF0IGFkZHMgYSBuZXcgcm93IHRvIHRoZSBhcnJheVxuICAgKiBAcGFyYW0gY2IgVGhlIGZ1bmN0aW9uIHRvIGNhbGxiYWNrIHdpdGggdGhlIHJlc3BvbnNlIG9mIHRoZSBkZWxldGlvbiBzZXJ2aWNlIGFzIHRoZSBpbnB1dCBwYXJhbWV0ZXJcbiAgICovXG4gIGhhbmRsZVJvd0RlbGV0ZSA9IGFzeW5jIDxUPihcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGFycjogYW55W10sXG4gICAgZGVsZXRlU2VydmljZTogKC4uLmFyZ3MpID0+IFByb21pc2U8VD4gfCBPYnNlcnZhYmxlPFQ+LFxuICAgIGFkZFJvd0Z1bmM6ICguLi5hcmdzKSA9PiBhbnksXG4gICAgY2I/OiAoYW55KSA9PiBhbnlcbiAgKSA9PiB7XG4gICAgY29uc3QgaWQgPSBhcnJbaW5kZXhdPy5pZDtcbiAgICAvLyBkZWJ1Z2dlcjtcblxuICAgIGlmIChpZCAmJiBkZWxldGVTZXJ2aWNlKSB7XG4gICAgICBjb25zdCByZXEgPSBkZWxldGVTZXJ2aWNlKGlkKTtcbiAgICAgIGlmICh0eXBlb2YgcmVxWyd0b1Byb21pc2UnXSA9PSAnZnVuY3Rpb24nKVxuICAgICAgICBjYiA/IGNiKGF3YWl0IHJlcVsndG9Qcm9taXNlJ10oKSkgOiByZXFbJ3RvUHJvbWlzZSddKCk7XG4gICAgICBlbHNlIGNiID8gY2IoYXdhaXQgcmVxKSA6IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGFyci5sZW5ndGggPT0gMSkge1xuICAgICAgYXJyLnNwbGljZShpbmRleCwgMSk7XG4gICAgICBhZGRSb3dGdW5jKCk7XG4gICAgfSBlbHNlIGlmIChhcnIubGVuZ3RoID4gMSkgYXJyLnNwbGljZShpbmRleCwgMSk7XG4gIH07XG4gIC8qKlxuICAgKiBUbyBoYW5kbGUgdGhlIHBhdGNoaW5nIG9mIGEgRm9ybUFycmF5XG4gICAqIEBwYXJhbSBhcnIgVGhlIGFycmF5IHRoYXQgY29udGFpbnMgdGhlIGRhdGFcbiAgICogQHBhcmFtIGFkZEZ1bmMgVGhlIGZ1bmN0aW9uIHRoYXQgcGVyZm9ybXMgYWRkaXRpb24gb2Ygc2luZ2xlIGVudHJpZXNcbiAgICogQHBhcmFtIGZvcm1BcnIgVGhlIEZvcm1BcnJheSB0aGF0IHdpbGwgaG9sZCB0aGUgYXJyYXkncyBkYXRhXG4gICAqL1xuICBpbml0UGF0Y2hGb3JtQXJyYXkgPSAoXG4gICAgYXJyOiBhbnlbXSxcbiAgICBhZGRGdW5jOiAoaTogbnVtYmVyLCBkYXRhPzogYW55LCBmb3JtQXJyPzogRm9ybUFycmF5KSA9PiB2b2lkLFxuICAgIGZvcm1BcnI6IEZvcm1BcnJheVxuICApID0+IHtcbiAgICAvLyBkZWJ1Z2dlclxuICAgIGlmIChhcnI/Lmxlbmd0aCkge1xuICAgICAgaWYgKGZvcm1BcnIubGVuZ3RoKSBmb3JtQXJyLmNsZWFyKCk7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXJyKSB7XG4gICAgICAgIGFkZEZ1bmMoZm9ybUFyci5sZW5ndGgsIGl0ZW0sIGZvcm1BcnIpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWZvcm1BcnIubGVuZ3RoKSBhZGRGdW5jKGZvcm1BcnIubGVuZ3RoLCBudWxsLCBmb3JtQXJyKTtcbiAgICB9XG4gIH07XG4gIHByaXZhdGUgaXNQcm9taXNlID0gKGZ1bmMpID0+IHtcbiAgICByZXR1cm4gdHlwZW9mIGZ1bmMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBmdW5jLnRoZW4gPT09ICdmdW5jdGlvbic7XG4gIH07XG4gIGlzQXN5bmMgPSAoZnVuYykgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBmdW5jLmNvbnN0cnVjdG9yLm5hbWUgPT09ICdBc3luY0Z1bmN0aW9uJyB8fFxuICAgICAgKHR5cGVvZiBmdW5jID09PSAnZnVuY3Rpb24nICYmIHRoaXMuaXNQcm9taXNlKGZ1bmMoKSkpXG4gICAgKTtcbiAgfTtcblxuICBpc09ic2VydmFibGUgPSA8VD4oZnVuYykgPT4ge1xuICAgIC8vIHJldHVybiB0eXBlb2YgZnVuYyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIGZ1bmMuc3Vic2NyaWJlID09PSAnZnVuY3Rpb24nO1xuICAgIC8vIHJldHVybiB0eXBlb2YgZnVuYyA9PT0gJ29iamVjdCcgJiYgZnVuYyBpbnN0YW5jZW9mIE9ic2VydmFibGU7XG4gICAgLy8gcmV0dXJuIHR5cGVvZiBmdW5jID09PSAnb2JqZWN0JyAmJiBmdW5jIGluc3RhbmNlb2YgT2JzZXJ2YWJsZTxUPjtcbiAgICByZXR1cm4gdHlwZW9mIGZ1bmMgPT09ICdvYmplY3QnICYmIGlzT2JzZXJ2YWJsZShmdW5jKTtcbiAgICByZXR1cm4gdHlwZW9mIGZ1bmMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBmdW5jLnRvUHJvbWlzZSA9PT0gJ2Z1bmN0aW9uJztcbiAgfTtcbiAgcHJvbWlzaWZ5VmFsID0gPFQ+KHZhbDogVCB8IFByb21pc2U8VD4gfCBPYnNlcnZhYmxlPFQ+KSA9PiB7XG4gICAgaWYgKHRoaXMuaXNBc3luYyh2YWwpKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHZhbCBhcyBQcm9taXNlPFQ+KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNPYnNlcnZhYmxlKHZhbCkpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobGFzdFZhbHVlRnJvbSh2YWwgYXMgT2JzZXJ2YWJsZTxUPikpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHZhbCBhcyBUKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBhcnIgQXJyYXkgb2Ygb2JzZXJ2YWJsZXMgdG8gZmV0Y2hcbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgdGhlIHJlc3BvbnNlcyBtZXJnZWQgdG9nZXRoZXIuIEl0IGVtaXRzIHRoZSBtZXJnZWQgcmVzcG9uc2VzIGFzIHRoZXkgYXJlIGZldGNoZWQgYW5kIGNsb3NlcyBvbmNlIGFsbGwgdGhlIHJlc3BvbnNlcyBoYXZlIGJlZW4gZmV0Y2hlZFxuICAgKi9cbiAgbWVyZ2VBcnJPYnNlcnZhYmxlcyA9IDxUPihhcnI6IHsgJGZ1bmM6IE9ic2VydmFibGU8VFtdPiB9W10pID0+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VFtdPigoc3ViKSA9PiB7XG4gICAgICBjb25zdCByZXQ6IFRbXSA9IFtdO1xuICAgICAgbGV0IHJlc3BvbnNlQ291bnQgPSAwO1xuICAgICAgbWVyZ2UoXG4gICAgICAgIC4uLmFyci5tYXAoKHgpID0+XG4gICAgICAgICAgeC4kZnVuYz8ucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKChyKSA9PiB7XG4gICAgICAgICAgICAgIHJlc3BvbnNlQ291bnQrKztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApLnN1YnNjcmliZSgocikgPT4ge1xuICAgICAgICByZXQucHVzaCguLi5yKTtcbiAgICAgICAgc3ViLm5leHQocmV0KTtcbiAgICAgICAgaWYgKHJlc3BvbnNlQ291bnQgPT0gYXJyLmZpbHRlcigoeCkgPT4geC4kZnVuYykubGVuZ3RoKSB7XG4gICAgICAgICAgLy8gZGVidWdnZXJcbiAgICAgICAgICBzdWIuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG4gIHJlbW92ZUR1cGxpY2F0ZTxUPihsaXN0OiBUW10sIGtleUZpZWxkID0gJ2NvZGUnKSB7XG4gICAgaWYgKCFsaXN0KSByZXR1cm4gbnVsbDtcbiAgICBsaXN0ID0gbGlzdC5maWx0ZXIoKHgpID0+IHgpO1xuICAgIGNvbnN0IHJldDogVFtdID0gW10sXG4gICAgICBkdXBsaWNhdGVNYXA6IHsgW3g6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGxpc3QpIHtcbiAgICAgIGlmIChkdXBsaWNhdGVNYXBbaXRlbVtrZXlGaWVsZF1dKSBjb250aW51ZTtcbiAgICAgIHJldC5wdXNoKGl0ZW0pO1xuICAgICAgZHVwbGljYXRlTWFwW2l0ZW1ba2V5RmllbGRdXSA9IGl0ZW07XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cbiAgZ2V0IGdlblJhbmRvbUlEKCkge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwMDAwMDAwMDAwKTtcbiAgfVxuICBzdG9yZVBheWxvYWQgPSB0aGlzLmxvZ2dlclNlcnZpY2UuYWRkTG9nO1xuICBvYmpJc0VtcHR5ID0gKG9iaiwgZXhjbHVzaW9uRmllbGRzPzogc3RyaW5nW10pID0+IHtcbiAgICBpZiAoIW9iaikgcmV0dXJuIHRydWU7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICBpZiAoZXhjbHVzaW9uRmllbGRzPy5pbmNsdWRlcyhrZXkpKSBjb250aW51ZTtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgIGlmIChvYmpba2V5XSkgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcbiAgZGF0YUdlbiA9IDxUID0gYW55PihrZXlzOiBzdHJpbmdbXSwgbGVuZ3RoID0gMTApID0+IHtcbiAgICBjb25zdCByZXQ6IGFueVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgbGV0IHQ6IGFueSA9IHt9O1xuICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICB0W2tleV0gPSB0aGlzLnRleHRHZW4oKTtcbiAgICAgIH1cbiAgICAgIHJldC5wdXNoKHQpO1xuICAgIH1cbiAgICByZXR1cm4gcmV0IGFzIFRbXTtcbiAgfTtcbiAgdGV4dEdlbiA9ICgpID0+ICdyYW5kb20nICsgTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwMCk7XG4gIHRyYWNrQnlDb2RlKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xuICAgIHJldHVybiBpdGVtPy5jb2RlO1xuICB9XG4gIHRyYWNrQnlJRChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcbiAgICByZXR1cm4gaXRlbT8uaWQ7XG4gIH1cbiAgZGlhbG9nT3BlbmVyID0gKFxuICAgIGNvbXA6IGFueSxcbiAgICBjb25maWc6IE1hdERpYWxvZ0NvbmZpZyxcbiAgICB2YWx1ZUNCOiAocikgPT4gYW55LFxuICAgIG5vVmFsdWVDQj86IGFueVxuICApID0+XG4gICAgdGhpcy5kaWFsb2dPcGVuZXJSZWYoY29tcCwgY29uZmlnKVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgICAgaWYgKHIgIT0gbnVsbCAmJiByICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHZhbHVlQ0Iocik7XG4gICAgICAgIH0gZWxzZSBpZiAobm9WYWx1ZUNCKSB7XG4gICAgICAgICAgbm9WYWx1ZUNCKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICBkaWFsb2dPcGVuZXJSZWYgPSAoY29tcDogYW55LCBjb25maWc6IE1hdERpYWxvZ0NvbmZpZykgPT5cbiAgICB0aGlzLmRpYWxvZy5vcGVuKGNvbXAsIGNvbmZpZyk7XG4gIGZpbmRMYWJlbEJ5SXRlbSA9IChcbiAgICBpdGVtLFxuICAgIGFycjogYW55W10sXG4gICAgbGFiZWxGaWVsZD86IHN0cmluZyxcbiAgICBrZXlGaWVsZDogc3RyaW5nID0gJ2NvZGUnXG4gICkgPT4ge1xuICAgIGlmICghaXRlbSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3Qgb2JqID0gYXJyPy5maW5kKCh4KSA9PiB4W2tleUZpZWxkXSA9PSBpdGVtKTtcbiAgICBpZiAoIW9iaikgcmV0dXJuIGl0ZW07XG4gICAgZWxzZVxuICAgICAgcmV0dXJuIGAke2l0ZW19IC0gJHtcbiAgICAgICAgb2JqW2xhYmVsRmllbGQgfHwgJ3RpdGxlJ10gfHwgb2JqW2xhYmVsRmllbGQgfHwgJ2Rlc2NyaXB0aW9uJ11cbiAgICAgIH1gO1xuICB9O1xuXG4gIGZvcm1GaWVsZHNGcm9tQXJyID0gdGhpcy5pbnB1dFNlcnZpY2UuZm9ybUZpZWxkc0Zyb21GQ0lucHV0c0FycjtcbiAgb2JqVG9Gb3JtQ29udHJvbHMgPSB0aGlzLmlucHV0U2VydmljZS5mb3JtRmllbGRzRnJvbU9iajtcbiAgZm9ybVNjaGVtYVRvRm9ybUNvbnRyb2xzID0gdGhpcy5pbnB1dFNlcnZpY2UuZm9ybVNjaGVtYVRvRm9ybUNvbnRyb2xzO1xuXG4gIGJpbmRGb3JtQ29udHJvbFRvSW5wdXRzID0gdGhpcy5pbnB1dFNlcnZpY2UuYmluZEZvcm1Db250cm9sVG9JbnB1dHM7XG5cbiAgZ28gPSAodmFsdWU6IHN0cmluZywgZXh0cmE/OiBOYXZpZ2F0aW9uRXh0cmFzKSA9PiB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3ZhbHVlXSwgZXh0cmEpO1xuICB9O1xuICAvKipcbiAgICogUm91dGUgdG8gY29tcG9uZW50XG4gICAqIEBwYXJhbSByb3V0ZSBSb3V0ZSBvZiBwYXRoIHRvIGNvbXBvbmVudFxuICAgKiBAcGFyYW0gZXh0cmFcbiAgICovXG4gIGdvUiA9IChyb3V0ZTogc3RyaW5nLCBleHRyYT86IE5hdmlnYXRpb25FeHRyYXMpID0+IHtcbiAgICBpZiAoISg8RVRTRW52aXJvbm1lbnQ+dGhpcy5lbnZpcm9ubWVudCkuYWN0aXZhdGVkUm91dGUpIGRlYnVnZ2VyO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtyb3V0ZV0sIHtcbiAgICAgIHJlbGF0aXZlVG86ICg8RVRTRW52aXJvbm1lbnQ+dGhpcy5lbnZpcm9ubWVudCkuYWN0aXZhdGVkUm91dGUsXG4gICAgICAuLi5leHRyYSxcbiAgICB9KTtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgfTtcbiAgbW9uZXlQYXJzZXIgPSAoYW1vdW50OiBzdHJpbmcgfCBudW1iZXIsIGN1cnJlbmN5ID0gJyAnKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVuY3lQaXBlLnRyYW5zZm9ybShhbW91bnQsIGN1cnJlbmN5IHx8ICcgJyk7XG4gIH07XG4gIGV4dHJhY3RVcGxvYWQoZXZlbnQ6IGFueSkge1xuICAgIHJldHVybiAoZXZlbnQudGFyZ2V0LmZpbGVzIGFzIEZpbGVbXSkgfHwgW107XG4gIH1cblxuICBzZWNvbmRzVG9Ib3VyTWluU2VjID0gKHNlY29uZHM6IG51bWJlcikgPT4ge1xuICAgIGlmICghc2Vjb25kcykgcmV0dXJuIHsgc2VjczogbnVsbCwgaG91cnM6IG51bGwsIG1pbnM6IG51bGwgfTtcbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDM2MDApIHx8IDAsXG4gICAgICBzZWNvbmRzRXhIb3VycyA9IHNlY29uZHMgJSAzNjAwIHx8IDAsXG4gICAgICBtaW5zID0gTWF0aC5mbG9vcihzZWNvbmRzRXhIb3VycyAvIDYwKSB8fCAwLFxuICAgICAgc2VjcyA9IHNlY29uZHNFeEhvdXJzICUgNjA7XG4gICAgcmV0dXJuIHsgaG91cnMsIG1pbnMsIHNlY3MgfTtcbiAgfTtcbiAgbWludXRlc1RvRGF5SG91ck1pbiA9IChtaW51dGVzOiBudW1iZXIpID0+IHtcbiAgICBpZiAoIW1pbnV0ZXMpIHJldHVybiB7IGRheXM6IG51bGwsIGhvdXJzOiBudWxsLCBtaW5zOiBudWxsIH07XG4gICAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IobWludXRlcyAvIDE0NDApIHx8IDAsXG4gICAgICBtaW5pdXRlc0V4RGF5cyA9IG1pbnV0ZXMgJSAxNDQwIHx8IDAsXG4gICAgICBob3VycyA9IE1hdGguZmxvb3IobWluaXV0ZXNFeERheXMgLyA2MCkgfHwgMCxcbiAgICAgIG1pbnMgPSBtaW5pdXRlc0V4RGF5cyAlIDYwIHx8IDA7XG4gICAgcmV0dXJuIHsgZGF5cywgaG91cnMsIG1pbnMgfTtcbiAgfTtcbiAgbWludXRlc1RvRGF5SG91ck1pblN0ciA9IChtaW51dGVzOiBudW1iZXIpID0+IHtcbiAgICBpZiAoIW1pbnV0ZXMpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHJldCA9IHRoaXMubWludXRlc1RvRGF5SG91ck1pbihtaW51dGVzKTtcbiAgICByZXR1cm4gYCR7cmV0LmRheXN9ICR7cmV0LmhvdXJzfToke3JldC5taW5zfWAudHJpbSgpO1xuICB9O1xuICBtaW51dGVzVG9EYXlIb3VyTWluU3RyMiA9IChtaW51dGVzOiBudW1iZXIpID0+IHtcbiAgICBpZiAoIW1pbnV0ZXMpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHJldCA9IHRoaXMubWludXRlc1RvRGF5SG91ck1pbihtaW51dGVzKTtcbiAgICByZXR1cm4gYCR7cmV0LmRheXN9ZGF5cyAke3JldC5ob3Vyc31ocnMgJHtyZXQubWluc31taW5zYC50cmltKCk7XG4gIH07XG4gIGRheUhvdXJNaW5Ub0hvdXJNaW51dGVzID0gKGR5czogbnVtYmVyLCBocnM6IG51bWJlciwgbWluczogbnVtYmVyKSA9PiB7XG4gICAgaWYgKCFkeXMgJiYgIWhycyAmJiAhbWlucykgcmV0dXJuICcnO1xuICAgIGNvbnN0IGR5c1RvSHJzID0gKGR5cyB8fCAwKSAqIDI0O1xuICAgIGhycyA9ICgraHJzIHx8IDApICsgZHlzVG9IcnM7XG4gICAgcmV0dXJuIChocnMgfHwgJzAwJykgKyAnOicgKyAobWlucyB8fCAnMDAnKTtcbiAgfTtcbiAgZGlzYWJsZU9yRW5hYmxlSW5wdXRzID0gKGNvbnRyb2xzOiBBYnN0cmFjdENvbnRyb2xbXSwgZGlzYWJsZTogYm9vbGVhbikgPT4ge1xuICAgIGlmIChkaXNhYmxlKSB0aGlzLmRpc2FibGVJbnB1dHMoY29udHJvbHMpO1xuICAgIGVsc2UgdGhpcy5lbmFibGVJbnB1dHMoY29udHJvbHMpO1xuICB9O1xuICBkaXNhYmxlSW5wdXRzID0gKGNvbnRyb2xzOiBBYnN0cmFjdENvbnRyb2xbXSkgPT4ge1xuICAgIGZvciAoY29uc3QgY29udHJvbCBvZiBjb250cm9scykge1xuICAgICAgY29udHJvbD8uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfVxuICB9O1xuICBlbmFibGVJbnB1dHMgPSAoY29udHJvbHM6IEFic3RyYWN0Q29udHJvbFtdKSA9PiB7XG4gICAgZm9yIChjb25zdCBjb250cm9sIG9mIGNvbnRyb2xzKSB7XG4gICAgICBjb250cm9sPy5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgfTtcbiAgZGF5SG91ck1pblRvTWludXRlcyA9IChkeXM6IG51bWJlciwgaHJzOiBudW1iZXIsIG1pbnM6IG51bWJlcikgPT4ge1xuICAgIGlmICghZHlzICYmICFocnMgJiYgIW1pbnMpIHJldHVybiAwO1xuICAgIGNvbnN0IGR5c1RvSHJzID0gKGR5cyB8fCAwKSAqIDI0O1xuICAgIGhycyA9ICgraHJzIHx8IDApICsgZHlzVG9IcnM7XG4gICAgcmV0dXJuIChocnMgfHwgMCkgKiA2MCArIG1pbnM7XG4gIH07XG4gIGhvdXJNaW5Ub01pbnV0ZXMgPSAoaHJzOiBudW1iZXIsIG1pbnM6IG51bWJlcikgPT4ge1xuICAgIGlmICghaHJzICYmICFtaW5zKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKGhycyB8fCAwKSAqIDYwICsgbWlucztcbiAgfTtcbiAgaG91ck1pblRvTWludXRlczIgPSAoaHJzTWluczogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgW2hycywgbWluc10gPSBocnNNaW5zPy5zcGxpdCgnOicpIHx8IFswLCAwXTtcbiAgICByZXR1cm4gdGhpcy5ob3VyTWluVG9NaW51dGVzKCtocnMsICttaW5zKTtcbiAgfTtcbiAgbm90aWZ5KG1lc3NhZ2U6IHN0cmluZywgY2xzOiAwIHwgMSB8IDIgfCAzID0gMSwgZHVyYXRpb24gPSA1MDAwLCB0aXRsZSA9ICcnKSB7XG4gICAgbWVzc2FnZSA9XG4gICAgICB0eXBlb2YgbWVzc2FnZSA9PSAnc3RyaW5nJ1xuICAgICAgICA/IG1lc3NhZ2VcbiAgICAgICAgOiBjbHMgPT0gMFxuICAgICAgICA/ICdBbiBlcnJvciBvY2N1cnJlZCdcbiAgICAgICAgOiAnJztcbiAgICByZXR1cm4gdGhpcy5zbmFja0Jhci5vcGVuKG1lc3NhZ2UsIHRpdGxlLCB7XG4gICAgICBkdXJhdGlvbixcbiAgICAgIGhvcml6b250YWxQb3NpdGlvbjogJ2NlbnRlcicsXG4gICAgICB2ZXJ0aWNhbFBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICAgIHBhbmVsQ2xhc3M6XG4gICAgICAgIGNscyA9PSAxXG4gICAgICAgICAgPyAnYmctc3VjY2VzcydcbiAgICAgICAgICA6IGNscyA9PSAyXG4gICAgICAgICAgPyAnYnRuLWluZm8nXG4gICAgICAgICAgOiBjbHMgPT0gM1xuICAgICAgICAgID8gJ2J0bi13YXJuaW5nJ1xuICAgICAgICAgIDogJ2JnLWRhbmdlcicsXG4gICAgfSk7XG4gIH1cblxuICBzY3JvbGxUb1RvcCA9ICgpID0+IHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgZGF0ZSB0aW1lIGxvY2FsIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBkYXRldGltZS1sb2NhbCBpbnB1dFxuICAgKi9cbiAgZ2V0TG9jYWxEYXRlVGltZU5vdyA9ICgpID0+IHtcbiAgICBjb25zdCBkdCA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpO1xuICAgIHJldHVybiBkdFswXSArICdUJyArIGR0WzFdLnNwbGl0KCc6Jykuc2xpY2UoMCwgMikuam9pbignOicpO1xuICB9O1xuICAvKiogQHJldHVybnMgVGhlIGN1cnJlbnQgZGF0ZSBsb2NhbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgZGF0ZSBpbnB1dCAqL1xuICBsb2NhbERhdGVOb3cgPSAoKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdO1xuICB9O1xuICBkYXRlRm9ybWF0ID0gKGRhdGU6IGFueSwgZm9ybWF0ID0gMSkgPT4ge1xuICAgIGlmICghZGF0ZSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIGlmIChmb3JtYXQgPT0gMSkge1xuICAgICAgcmV0dXJuIGQudG9EYXRlU3RyaW5nKCk7XG4gICAgfSBlbHNlIGlmIChmb3JtYXQgPT0gMikge1xuICAgICAgcmV0dXJuIGQuZ2V0RGF0ZSgpICsgJyAnICsgY29uZmlnLk1vbnRoc1tkLmdldE1vbnRoKCldO1xuICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09IDMpIHtcbiAgICAgIHJldHVybiBkLnRvRGF0ZVN0cmluZygpICsgJywgJyArIHRoaXMudGltZUZvcm1hdChkLnRvTG9jYWxlVGltZVN0cmluZygpKTtcbiAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PSA0KSB7XG4gICAgICByZXR1cm4gY29uZmlnLk1vbnRoc1tkLmdldE1vbnRoKCldICsgJyAnICsgZC5nZXREYXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH07XG5cbiAgdG9KYXZhRGF0ZVN0cmluZyA9IChpc29EYXRlU3RyaW5nOiBzdHJpbmcgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkpID0+IHtcbiAgICBpZiAoIWlzb0RhdGVTdHJpbmcpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBgJHtpc29EYXRlU3RyaW5nLnNsaWNlKDAsIDE5KX1gO1xuICAgIHJldHVybiBgJHtpc29EYXRlU3RyaW5nLnNsaWNlKDAsIDEwKX0gJHtpc29EYXRlU3RyaW5nLnNsaWNlKDExLCAxOSl9YDtcbiAgfTtcblxuICB0b0phdmFEYXRldGltZVN0cmluZyA9IChpc29EYXRlU3RyaW5nOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoIWlzb0RhdGVTdHJpbmcpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShpc29EYXRlU3RyaW5nKS50b0lTT1N0cmluZygpO1xuICAgIGRlYnVnZ2VyO1xuICAgIC8vIGNvbnNvbGUubG9nKGlzb0RhdGVTdHJpbmcsIGRhdGUpO1xuICAgIC8vIHJldHVybiBgJHtpc29EYXRlU3RyaW5nLnNsaWNlKDAsIDE5KX1gO1xuICAgIHJldHVybiBgJHtkYXRlLnNsaWNlKDAsIDEwKX0gJHtkYXRlLnNsaWNlKDExLCAxOSl9YDtcbiAgfTtcbiAgdGltZUZvcm1hdCA9ICh0aW1lPzogYW55KSA9PiB7XG4gICAgY29uc3QgdGltZUFycjogYW55W10gPSB0aW1lLnNwbGl0KCcgJyk7XG4gICAgdGltZUFyclswXSA9IHRpbWVBcnJbMF0uc3BsaXQoJzonKS5zcGxpY2UoMCwgMikuam9pbignOicpO1xuICAgIHJldHVybiB0aW1lQXJyLmpvaW4oJyAnKTtcbiAgfTtcbiAgZnVsbERhdGVUaW1lID0gKHRpbWVzdGFtcDogc3RyaW5nIHwgbnVtYmVyKSA9PiB7XG4gICAgLy8gZGVidWdnZXJcbiAgICByZXR1cm4gdGhpcy5kYXRlRm9ybWF0KHRpbWVzdGFtcCwgMyk7XG4gIH07XG4gIGRheXNGb3JtYXR0ZXIgPSAoZGF5czogbnVtYmVyKSA9PiB7XG4gICAgaWYgKCFkYXlzKSB7XG4gICAgICByZXR1cm4gJy0nO1xuICAgIH1cbiAgICBsZXQgeXI6IG51bWJlcixcbiAgICAgIG10OiBudW1iZXIsXG4gICAgICBkeTogbnVtYmVyLFxuICAgICAgcmV0OiBzdHJpbmcsXG4gICAgICBfeXIgPSAzNjUsXG4gICAgICBfbXQgPSAzMDtcbiAgICBpZiAoZGF5cyA+IF95cikge1xuICAgICAgeXIgPSBNYXRoLmZsb29yKGRheXMgLyBfeXIpO1xuICAgIH1cbiAgICBpZiAoZGF5cyA+IF9tdCkge1xuICAgICAgbXQgPSBNYXRoLmZsb29yKChkYXlzICUgX3lyKSAvIF9tdCk7XG4gICAgfVxuICAgIGR5ID0gKGRheXMgJSBfeXIpICUgX210O1xuICAgIHJldCA9IGAke3lyID8gdGhpcy5wbHVhcmxpemVyKHlyLCAneXInKSA6ICcnfSAke1xuICAgICAgbXQgPyB0aGlzLnBsdWFybGl6ZXIobXQsICdtdGgnKSA6ICcnXG4gICAgfSAke3RoaXMucGx1YXJsaXplcihkeSwgJ2R5Jyl9YDtcbiAgICByZXR1cm4gcmV0O1xuICB9O1xuICBtb250aHNGb3JtYXR0ZXIgPSAobW9udGhzOiBudW1iZXIpID0+IHtcbiAgICBpZiAoIW1vbnRocykge1xuICAgICAgcmV0dXJuICctJztcbiAgICB9XG4gICAgbGV0IHlyOiBudW1iZXIsXG4gICAgICBtdDogbnVtYmVyLFxuICAgICAgcmV0OiBzdHJpbmcsXG4gICAgICBfeXIgPSAxMjtcbiAgICBpZiAobW9udGhzID4gX3lyKSB7XG4gICAgICB5ciA9IE1hdGguZmxvb3IobW9udGhzIC8gX3lyKTtcbiAgICB9XG4gICAgbXQgPSBtb250aHMgJSBfeXI7XG4gICAgcmV0ID0gYCR7eXIgPyB0aGlzLnBsdWFybGl6ZXIoeXIsICd5cicpIDogJyd9ICR7XG4gICAgICBtdCA/IHRoaXMucGx1YXJsaXplcihtdCwgJ210aCcpIDogJydcbiAgICB9YDtcbiAgICByZXR1cm4gcmV0O1xuICB9O1xuICBwbHVhcmxpemVyID0gKHZhbDogbnVtYmVyLCB0eHQ6IHN0cmluZywgcGx1cmFsPzogc3RyaW5nKSA9PiB7XG4gICAgcGx1cmFsID0gcGx1cmFsIHx8IHR4dCArICdzJztcbiAgICByZXR1cm4gdmFsICsgKHZhbCA9PSAxID8gdHh0IDogcGx1cmFsKTtcbiAgfTtcbiAgZGVjaW1hbFRvUGVyY2VudGFnZSA9IChkZWM6IG51bWJlcikgPT4ge1xuICAgIHJldHVybiBkZWMgKiAxMDAgKyAnJSc7XG4gIH07XG4gIGxvZ0Zvcm0gPSAoZm9ybSkgPT4ge1xuICAgIGNvbnNvbGUubG9nKCdGT1JNJywgZm9ybSwgJ1ZBTFVFUycsIGZvcm0udmFsdWUgYXMgYW55KTtcbiAgfTtcblxuICB0b0NTVihkYXRhOiBhbnlbXSwgaGVhZGVyTmFtZXM6IHN0cmluZ1tdLCBmaWxlbmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVwbGFjZXIgPSAoa2V5LCB2YWx1ZSkgPT4gKHZhbHVlID09PSBudWxsID8gJycgOiB2YWx1ZSk7IC8vIHNwZWNpZnkgaG93IHlvdSB3YW50IHRvIGhhbmRsZSBudWxsIHZhbHVlcyBoZXJlXG5cbiAgICBsZXQgY3N2ID0gZGF0YS5tYXAoKHJvdykgPT5cbiAgICAgIGhlYWRlck5hbWVzXG4gICAgICAgIC5tYXAoKGZpZWxkTmFtZSkgPT4gSlNPTi5zdHJpbmdpZnkocm93W2ZpZWxkTmFtZV0sIHJlcGxhY2VyKSlcbiAgICAgICAgLmpvaW4oJywnKVxuICAgICk7XG4gICAgY3N2LnVuc2hpZnQoaGVhZGVyTmFtZXMuam9pbignLCcpKTtcbiAgICBsZXQgY3N2QXJyYXkgPSBjc3Yuam9pbignXFxyXFxuJyk7XG5cbiAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtjc3ZBcnJheV0sIHsgdHlwZTogJ3RleHQvY3N2JyB9KTtcbiAgICBzYXZlQXMoYmxvYiwgZmlsZW5hbWUgKyAnLmNzdicpO1xuICB9XG5cbiAgaXNQaWN0dXJlRm9ybWF0KGZpbGVOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIWZpbGVOYW1lKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgUElDVFVSRV9GT1JNQVRTID0gWycuanBnJywgJy5qcGVnJywgJy5wbmcnLCAnLmdpZiddO1xuICAgIHJldHVybiBQSUNUVVJFX0ZPUk1BVFMuc29tZSgoZm9ybWF0KSA9PiBmaWxlTmFtZS5lbmRzV2l0aChmb3JtYXQpKTtcbiAgfVxuICBvYmplY3RUb0FycmF5PFQ+KG9iajogYW55KSB7XG4gICAgY29uc3QgcmV0ID0gW107XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICByZXQucHVzaChvYmpba2V5XSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXQgYXMgVFtdO1xuICB9IFxuICAvLyNyZWdpb24gcm91dGVcbiAgcm91dGVQYXJhbXMxID0gdGhpcy5yb3V0ZVNlcnZpY2Uucm91dGVQYXJhbXMxO1xuICByb3V0ZVBhcmFtczIgPSB0aGlzLnJvdXRlU2VydmljZS5yb3V0ZVBhcmFtczI7XG4gIHJvdXRlUGFyYW1zMyA9IHRoaXMucm91dGVTZXJ2aWNlLnJvdXRlUGFyYW1zMztcbiAgLy8jZW5kcmVnaW9uXG4gIHN0YXJ0UGwgPSB0aGlzLnBTLnN0YXJ0UGw7XG4gIHN0b3BQbCA9IHRoaXMucFMuc3RvcFBsO1xufVxuIl19
@@ -8,7 +8,6 @@ import { PermissionManagerDirectivesModule } from './permission-manager.directiv
8
8
  import { InputFormatDirectivesModule, } from './InputFormat.directive';
9
9
  import { DragDropFileUploadDirective } from './drag-drop-file-upload.directive';
10
10
  import { Config } from '../../configs/index.config';
11
- import { ResponsivenessDirective } from './responsiveness.directive';
12
11
  import * as i0 from "@angular/core";
13
12
  import * as i1 from "../../Services/utility.service";
14
13
  import * as i2 from "@angular/router";
@@ -261,14 +260,11 @@ const comps = [
261
260
  // InputFormatDirective,
262
261
  PSDirective,
263
262
  DragDropFileUploadDirective,
264
- ResponsivenessDirective,
265
263
  ];
266
264
  export class ETSDirectivesModule {
267
265
  }
268
266
  ETSDirectivesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ETSDirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
269
- ETSDirectivesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.0", ngImport: i0, type: ETSDirectivesModule, declarations: [CommafyNumberDirective, ImageLoaderDirective, ImageUpload, IntegerOnlyDirective, MrouterLinkirective, NegativeNumberOnlyDirective, PSDirective, DragDropFileUploadDirective,
270
- ResponsivenessDirective], imports: [CommonModule, InputFormatDirectivesModule], exports: [CommafyNumberDirective, ImageLoaderDirective, ImageUpload, IntegerOnlyDirective, MrouterLinkirective, NegativeNumberOnlyDirective, PSDirective, DragDropFileUploadDirective,
271
- ResponsivenessDirective, PermissionManagerDirectivesModule,
267
+ ETSDirectivesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.0", ngImport: i0, type: ETSDirectivesModule, declarations: [CommafyNumberDirective, ImageLoaderDirective, ImageUpload, IntegerOnlyDirective, MrouterLinkirective, NegativeNumberOnlyDirective, PSDirective, DragDropFileUploadDirective], imports: [CommonModule, InputFormatDirectivesModule], exports: [CommafyNumberDirective, ImageLoaderDirective, ImageUpload, IntegerOnlyDirective, MrouterLinkirective, NegativeNumberOnlyDirective, PSDirective, DragDropFileUploadDirective, PermissionManagerDirectivesModule,
272
268
  InputFormatDirectivesModule] });
273
269
  ETSDirectivesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ETSDirectivesModule, providers: [DecimalPipe], imports: [CommonModule, InputFormatDirectivesModule, PermissionManagerDirectivesModule,
274
270
  InputFormatDirectivesModule] });
@@ -285,4 +281,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
285
281
  providers: [DecimalPipe],
286
282
  }]
287
283
  }] });
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9kaXJlY3RpdmVzL2luZGV4LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsUUFBUSxFQUVSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLGdCQUFnQixNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25GLE9BQU8sRUFFTCwyQkFBMkIsR0FDNUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFLckUsTUFBTSxPQUFPLFdBQVc7SUFRdEIsWUFDUyxFQUFnQyxFQUNoQyxFQUFxQjtRQURyQixPQUFFLEdBQUYsRUFBRSxDQUE4QjtRQUNoQyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQVRwQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFXaEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFB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cUg5QiwyQkFBMkIsRUFwQ2hCLFdBQVcsRUF3Q3RCLDJCQUEyQjtRQUMzQix1QkFBdUIsRUFPckIsaUNBQWlDO1FBQ2pDLDJCQUEyQjtpSEFJbEIsbUJBQW1CLGFBRm5CLENBQUMsV0FBVyxDQUFDLFlBTmQsWUFBWSxFQUFFLDJCQUEyQixFQUdqRCxpQ0FBaUM7UUFDakMsMkJBQTJCOzJGQUlsQixtQkFBbUI7a0JBVi9CLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEtBQUs7b0JBQ25CLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSwyQkFBMkIsQ0FBQztvQkFDcEQsT0FBTyxFQUFFO3dCQUNQLEdBQUcsS0FBSzt3QkFDUixpQ0FBaUM7d0JBQ2pDLDJCQUEyQjtxQkFDNUI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE5nTW9kdWxlLFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbWFnZVR5cGUgfSBmcm9tICcuLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgQ29tbWFmeU51bWJlckRpcmVjdGl2ZSB9IGZyb20gJy4vY29tbWFmeS1udW1iZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEludGVnZXJPbmx5RGlyZWN0aXZlIH0gZnJvbSAnLi9pbnRlZ2VyLW9ubHkuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmVnYXRpdmVOdW1iZXJPbmx5RGlyZWN0aXZlIH0gZnJvbSAnLi9uZWdhdGl2ZS1udW1iZXItb25seS5kaXJlY3RpdmUnO1xuaW1wb3J0IFBlcmZlY3RTY3JvbGxiYXIgZnJvbSAncGVyZmVjdC1zY3JvbGxiYXInO1xuaW1wb3J0IHsgUGVybWlzc2lvbk1hbmFnZXJEaXJlY3RpdmVzTW9kdWxlIH0gZnJvbSAnLi9wZXJtaXNzaW9uLW1hbmFnZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gIElucHV0Rm9ybWF0RGlyZWN0aXZlLFxuICBJbnB1dEZvcm1hdERpcmVjdGl2ZXNNb2R1bGUsXG59IGZyb20gJy4vSW5wdXRGb3JtYXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IERyYWdEcm9wRmlsZVVwbG9hZERpcmVjdGl2ZSB9IGZyb20gJy4vZHJhZy1kcm9wLWZpbGUtdXBsb2FkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWdzL2luZGV4LmNvbmZpZyc7XG5pbXBvcnQgeyBFVFNVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBSZXNwb25zaXZlbmVzc0RpcmVjdGl2ZSB9IGZyb20gJy4vcmVzcG9uc2l2ZW5lc3MuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ltYWdlVXBsb2FkXScsXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlVXBsb2FkIHtcbiAgQE91dHB1dCgpIGV4dHJhY3RlZEltZyA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKSBvbkNsaWNrKCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlVXBsb2FkKSB0aGlzLm9wZW5GaWxlKCk7XG4gIH1cbiAgQElucHV0KCkgZGlzYWJsZVVwbG9hZDogYm9vbGVhbjtcbiAgZmlsZUVsOiBIVE1MSW5wdXRFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZjxIVE1MSW1hZ2VFbGVtZW50PixcbiAgICBwdWJsaWMgdVM6IEVUU1V0aWxpdHlTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZmlsZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICB0aGlzLmZpbGVFbC50eXBlID0gJ2ZpbGUnO1xuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInO1xuXG4gICAgdGhpcy5maWxlRWwub25jaGFuZ2UgPSAoKSA9PiB7XG4gICAgICB0aGlzLnByZXZpZXcodGhpcy5maWxlRWwuZmlsZXMpO1xuICAgIH07XG4gIH1cbiAgb3BlbkZpbGUoKSB7XG4gICAgdGhpcy5maWxlRWwuY2xpY2soKTtcbiAgfVxuXG4gIHByZXZpZXcoZmlsZXM6IEZpbGVMaXN0KSB7XG4gICAgaWYgKGZpbGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGYgPSBmaWxlc1swXTtcbiAgICBjb25zdCBtaW1lVHlwZSA9IGYudHlwZTtcbiAgICBpZiAoZmlsZXMubGVuZ3RoID09IDEgJiYgZi5zaXplID4gMTAwMDAwMDApIHtcbiAgICAgIHRoaXMudVMubm90aWZ5KCdJbWFnZSBoYXMgdG8gYmUgbGVzcyB0aGVuIDEwbWIgaW4gc2l6ZScsIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAobWltZVR5cGUubWF0Y2goL2ltYWdlXFwvKi8pID09IG51bGwpIHtcbiAgICAgIHRoaXMudVMubm90aWZ5KCdPbmx5IGltYWdlcyBhcmUgc3VwcG9ydGVkLicsIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmV4dHJhY3RlZEltZy5lbWl0KGYpO1xuICB9XG59XG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbaW1hZ2VMb2FkZXJdJyxcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VMb2FkZXJEaXJlY3RpdmUge1xuICBzcmM6IHN0cmluZztcbiAgQElucHV0KCkgc2V0IGltYWdlTG9hZGVyKHY6IHN0cmluZykge1xuICAgIHRoaXMuc3JjID0gdjtcbiAgICB0aGlzLmxvYWRJbWFnZSh2KTtcbiAgfVxuICBASW5wdXQoKSBpbWFnZVR5cGU6IEltYWdlVHlwZTtcbiAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmPEhUTUxJbWFnZUVsZW1lbnQ+KSB7fVxuICBsb2FkSW1hZ2Uoc3JjOiBzdHJpbmcgPSB0aGlzLnNyYywgdHlwZTogSW1hZ2VUeXBlID0gdGhpcy5pbWFnZVR5cGUpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3JjID0gdGhpcy5nZXRJbWFnZUJ5VHlwZSh0eXBlKT8ubWluO1xuICAgIGNvbnN0IGltZ0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XG4gICAgaW1nRWwuc3JjID0gc3JjIHx8IHRoaXMuZ2V0SW1hZ2VCeVR5cGUodHlwZSk/LnNyYztcbiAgICBpbWdFbC5vbmxvYWQgPSAoZSkgPT4ge1xuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnNyYyA9IGltZ0VsLnNyYztcbiAgICB9O1xuICB9XG4gIGdldEltYWdlQnlUeXBlKHR5cGU6IEltYWdlVHlwZSkge1xuICAgIHJldHVybiBDb25maWcuSW1hZ2VzW3R5cGVdID8gQ29uZmlnLkltYWdlc1t0eXBlXSA6IENvbmZpZy5JbWFnZXMub3RoZXI7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnYnV0dG9uJyxcbn0pXG5leHBvcnQgY2xhc3MgT25DbGlja0RpcmVjdGl2ZSB7XG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSkgb25DbGljaygkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCBsb2NhdGlvbiA9ICRldmVudC52aWV3LmxvY2F0aW9uO1xuICAgIGNvbnN0IHBhdGhOYW1lID0gZGVjb2RlVVJJKGxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICBjb25zdCBpbm50ZXJIdG1sOiBzdHJpbmcgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MO1xuICAgIGNvbnNvbGUubG9nKGxvY2F0aW9uLCBwYXRoTmFtZSk7XG4gICAgLy8gc2VuZCBwYXRoTmFtZSBhbmQgaW5udGVySHRtbCB0byBzZXJ2ZXIuXG4gICAgLy8gICAgOlxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cbn1cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttcm91dGVyTGlua10nLFxufSlcbmV4cG9ydCBjbGFzcyBNcm91dGVyTGlua2lyZWN0aXZlIHtcbiAgbXJvdXRlckxpbms6IHN0cmluZztcbiAgQElucHV0KCdtcm91dGVyTGluaycpIHNldCBfbXJvdXRlckxpbmsodjogc3RyaW5nKSB7XG4gICAgdGhpcy5tcm91dGVyTGluayA9IHY7XG4gICAgLy8gaWYgKHYpIGRlYnVnZ2VyO1xuICAgIHRoaXMuc2V0Um91dGVyKCk7XG4gIH1cbiAgQElucHV0KCkgbXJvdXRlckxpbmtBY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGU7XG4gIEBJbnB1dCgpIG1xdWVyeVBhcmFtczogYW55O1xuICBASW5wdXQoKSBpc1Bob25lOiBib29sZWFuO1xuICBASW5wdXQoKSBpc0VtYWlsOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZjxIVE1MQW5jaG9yRWxlbWVudD4sXG4gICAgcHVibGljIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHVibGljIHVTOiBFVFNVdGlsaXR5U2VydmljZVxuICApIHt9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFJvdXRlcigpO1xuICB9XG4gIHNldFJvdXRlcigpIHtcbiAgICBpZiAodGhpcy5tcm91dGVyTGluayAmJiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdub3RMaW5rJyk7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbGluaycpO1xuICAgICAgLy8gZGVidWdnZXI7XG4gICAgICBpZiAodGhpcy5pc0VtYWlsKSB7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5ocmVmID0gJ21haWx0bzonICsgdGhpcy5tcm91dGVyTGluaztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1Bob25lKSB7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5ocmVmID0gJ3RlbDonICsgdGhpcy5tcm91dGVyTGluaztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICBjb25zdCBxdWVyeVBhcmFtczogeyBbeDogc3RyaW5nXTogc3RyaW5nIH0gPSB0aGlzLm1xdWVyeVBhcmFtcyB8fCB7fSxcbiAgICAgICAgICByb3V0ZUxldmVscyA9IHRoaXMubXJvdXRlckxpbmsuc3BsaXQoJy4uLycpLmxlbmd0aCAtIDEsXG4gICAgICAgICAgY3VycmVudExvY2F0aW9uUGFydHMgPSBsb2NhdGlvbi5wYXRobmFtZS5zcGxpdCgnLycpO1xuICAgICAgICBsZXQgcm91dGUgPSAnJyxcbiAgICAgICAgICB1cmxQYXJ0cyA9IHRoaXMubXJvdXRlckxpbmsuc3BsaXQoJz8nKTtcblxuICAgICAgICByb3V0ZSA9IHVybFBhcnRzWzBdO1xuICAgICAgICBpZiAodXJsUGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIGNvbnN0IGt2cHMgPSB1cmxQYXJ0c1sxXS5zcGxpdCgnJicpO1xuICAgICAgICAgIGZvciAoY29uc3Qga3ZwIG9mIGt2cHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGt2cFNwbGl0ID0ga3ZwLnNwbGl0KCc9Jyk7XG4gICAgICAgICAgICBxdWVyeVBhcmFtc1trdnBTcGxpdFswXV0gPSBrdnBTcGxpdFsxXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50TG9jYXRpb25QYXJ0cy5zcGxpY2Uocm91dGVMZXZlbHMgKiAtMSk7XG5cbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmhyZWYgPVxuICAgICAgICAgIGN1cnJlbnRMb2NhdGlvblBhcnRzLmpvaW4oJy8nKSArXG4gICAgICAgICAgJy8nICtcbiAgICAgICAgICByb3V0ZVxuICAgICAgICAgICAgLnNwbGl0KCcuLi8nKVxuICAgICAgICAgICAgLmZpbHRlcigoeCkgPT4geClcbiAgICAgICAgICAgIC5qb2luKCcvJykgK1xuICAgICAgICAgICc/JyArXG4gICAgICAgICAgdGhpcy5zdHJpbmdpZnlRdWVyeVBhcmFtcyhxdWVyeVBhcmFtcyk7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vbmNsaWNrID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3JvdXRlXSwge1xuICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy51Uy5lbnZpcm9ubWVudC5hY3RpdmF0ZWRSb3V0ZSB8fCB0aGlzLnJvdXRlLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdub3RMaW5rJyk7XG4gICAgfVxuICB9XG4gIHN0cmluZ2lmeVF1ZXJ5UGFyYW1zKHE6IHsgW3g6IHN0cmluZ106IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocSlcbiAgICAgIC5tYXAoKGtleSkgPT4gYCR7a2V5fT0ke3Fba2V5XX1gKVxuICAgICAgLmpvaW4oJyYnKTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbUFNCb3hdJyxcbn0pXG5leHBvcnQgY2xhc3MgUFNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoJ1BTQm94Jykgc2VsZWN0b3I6IHN0cmluZztcbiAgQElucHV0KCdQU0JveE5vSG9yaXpvbnRhbCcpIG5vSG9yaXpvbnRhbDogYm9vbGVhbjtcbiAgQElucHV0KCdQU0JveE5vVmVydGljYWwnKSBub1ZlcnRpY2FsOiBib29sZWFuO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYsIHB1YmxpYyB1UzogRVRTVXRpbGl0eVNlcnZpY2UpIHt9XG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge31cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG4gIGluaXQoKSB7XG4gICAgaWYgKCF0aGlzLnVTLmlzTW9iaWxlKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgcHNOb3RpZiA9IG5ldyBQZXJmZWN0U2Nyb2xsYmFyKFxuICAgICAgICAgIHRoaXMuc2VsZWN0b3IgfHwgdGhpcy5lbC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHdoZWVsU3BlZWQ6IDAuNSxcbiAgICAgICAgICAgIHN3aXBlRWFzaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIHN1cHByZXNzU2Nyb2xsWDogdGhpcy5ub0hvcml6b250YWwgfHwgZmFsc2UsXG4gICAgICAgICAgICBzdXBwcmVzc1Njcm9sbFk6IHRoaXMubm9WZXJ0aWNhbCB8fCBmYWxzZSxcbiAgICAgICAgICAgIHdoZWVsUHJvcGFnYXRpb246IHRydWUsXG4gICAgICAgICAgICBtaW5TY3JvbGxiYXJMZW5ndGg6IDQwLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgcHNOb3RpZi51cGRhdGUoKTtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBjb21wcyA9IFtcbiAgQ29tbWFmeU51bWJlckRpcmVjdGl2ZSxcbiAgSW1hZ2VMb2FkZXJEaXJlY3RpdmUsXG4gIEltYWdlVXBsb2FkLFxuICBJbnRlZ2VyT25seURpcmVjdGl2ZSxcbiAgLy8gTm9Gb3JtYXREaXJlY3RpdmUsXG4gIE1yb3V0ZXJMaW5raXJlY3RpdmUsXG4gIE5lZ2F0aXZlTnVtYmVyT25seURpcmVjdGl2ZSxcbiAgLy8gT25DbGlja0RpcmVjdGl2ZSxcbiAgLy8gSW5wdXRGb3JtYXREaXJlY3RpdmUsXG4gIFBTRGlyZWN0aXZlLFxuICBEcmFnRHJvcEZpbGVVcGxvYWREaXJlY3RpdmUsXG4gIFJlc3BvbnNpdmVuZXNzRGlyZWN0aXZlLFxuXTtcbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogY29tcHMsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElucHV0Rm9ybWF0RGlyZWN0aXZlc01vZHVsZV0sXG4gIGV4cG9ydHM6IFtcbiAgICAuLi5jb21wcyxcbiAgICBQZXJtaXNzaW9uTWFuYWdlckRpcmVjdGl2ZXNNb2R1bGUsXG4gICAgSW5wdXRGb3JtYXREaXJlY3RpdmVzTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtEZWNpbWFsUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIEVUU0RpcmVjdGl2ZXNNb2R1bGUge31cbiJdfQ==
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9kaXJlY3RpdmVzL2luZGV4LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsUUFBUSxFQUVSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLGdCQUFnQixNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25GLE9BQU8sRUFFTCwyQkFBMkIsR0FDNUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFNcEQsTUFBTSxPQUFPLFdBQVc7SUFRdEIsWUFDUyxFQUFnQyxFQUNoQyxFQUFxQjtRQURyQixPQUFFLEdBQUYsRUFBRSxDQUE4QjtRQUNoQyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQVRwQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFXaEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxNQUFNLENB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LG1CQUFtQixhQUZuQixDQUFDLFdBQVcsQ0FBQyxZQU5kLFlBQVksRUFBRSwyQkFBMkIsRUFHakQsaUNBQWlDO1FBQ2pDLDJCQUEyQjsyRkFJbEIsbUJBQW1CO2tCQVYvQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxLQUFLO29CQUNuQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsMkJBQTJCLENBQUM7b0JBQ3BELE9BQU8sRUFBRTt3QkFDUCxHQUFHLEtBQUs7d0JBQ1IsaUNBQWlDO3dCQUNqQywyQkFBMkI7cUJBQzVCO29CQUNELFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBOZ01vZHVsZSxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL2luZGV4Lm1vZGVsJztcbmltcG9ydCB7IENvbW1hZnlOdW1iZXJEaXJlY3RpdmUgfSBmcm9tICcuL2NvbW1hZnktbnVtYmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJbnRlZ2VyT25seURpcmVjdGl2ZSB9IGZyb20gJy4vaW50ZWdlci1vbmx5LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5lZ2F0aXZlTnVtYmVyT25seURpcmVjdGl2ZSB9IGZyb20gJy4vbmVnYXRpdmUtbnVtYmVyLW9ubHkuZGlyZWN0aXZlJztcbmltcG9ydCBQZXJmZWN0U2Nyb2xsYmFyIGZyb20gJ3BlcmZlY3Qtc2Nyb2xsYmFyJztcbmltcG9ydCB7IFBlcm1pc3Npb25NYW5hZ2VyRGlyZWN0aXZlc01vZHVsZSB9IGZyb20gJy4vcGVybWlzc2lvbi1tYW5hZ2VyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICBJbnB1dEZvcm1hdERpcmVjdGl2ZSxcbiAgSW5wdXRGb3JtYXREaXJlY3RpdmVzTW9kdWxlLFxufSBmcm9tICcuL0lucHV0Rm9ybWF0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEcmFnRHJvcEZpbGVVcGxvYWREaXJlY3RpdmUgfSBmcm9tICcuL2RyYWctZHJvcC1maWxlLXVwbG9hZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlncy9pbmRleC5jb25maWcnO1xuaW1wb3J0IHsgRVRTVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9TZXJ2aWNlcy91dGlsaXR5LnNlcnZpY2UnOyBcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ltYWdlVXBsb2FkXScsXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlVXBsb2FkIHtcbiAgQE91dHB1dCgpIGV4dHJhY3RlZEltZyA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKSBvbkNsaWNrKCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlVXBsb2FkKSB0aGlzLm9wZW5GaWxlKCk7XG4gIH1cbiAgQElucHV0KCkgZGlzYWJsZVVwbG9hZDogYm9vbGVhbjtcbiAgZmlsZUVsOiBIVE1MSW5wdXRFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZjxIVE1MSW1hZ2VFbGVtZW50PixcbiAgICBwdWJsaWMgdVM6IEVUU1V0aWxpdHlTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZmlsZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICB0aGlzLmZpbGVFbC50eXBlID0gJ2ZpbGUnO1xuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInO1xuXG4gICAgdGhpcy5maWxlRWwub25jaGFuZ2UgPSAoKSA9PiB7XG4gICAgICB0aGlzLnByZXZpZXcodGhpcy5maWxlRWwuZmlsZXMpO1xuICAgIH07XG4gIH1cbiAgb3BlbkZpbGUoKSB7XG4gICAgdGhpcy5maWxlRWwuY2xpY2soKTtcbiAgfVxuXG4gIHByZXZpZXcoZmlsZXM6IEZpbGVMaXN0KSB7XG4gICAgaWYgKGZpbGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGYgPSBmaWxlc1swXTtcbiAgICBjb25zdCBtaW1lVHlwZSA9IGYudHlwZTtcbiAgICBpZiAoZmlsZXMubGVuZ3RoID09IDEgJiYgZi5zaXplID4gMTAwMDAwMDApIHtcbiAgICAgIHRoaXMudVMubm90aWZ5KCdJbWFnZSBoYXMgdG8gYmUgbGVzcyB0aGVuIDEwbWIgaW4gc2l6ZScsIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAobWltZVR5cGUubWF0Y2goL2ltYWdlXFwvKi8pID09IG51bGwpIHtcbiAgICAgIHRoaXMudVMubm90aWZ5KCdPbmx5IGltYWdlcyBhcmUgc3VwcG9ydGVkLicsIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmV4dHJhY3RlZEltZy5lbWl0KGYpO1xuICB9XG59XG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbaW1hZ2VMb2FkZXJdJyxcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VMb2FkZXJEaXJlY3RpdmUge1xuICBzcmM6IHN0cmluZztcbiAgQElucHV0KCkgc2V0IGltYWdlTG9hZGVyKHY6IHN0cmluZykge1xuICAgIHRoaXMuc3JjID0gdjtcbiAgICB0aGlzLmxvYWRJbWFnZSh2KTtcbiAgfVxuICBASW5wdXQoKSBpbWFnZVR5cGU6IEltYWdlVHlwZTtcbiAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmPEhUTUxJbWFnZUVsZW1lbnQ+KSB7fVxuICBsb2FkSW1hZ2Uoc3JjOiBzdHJpbmcgPSB0aGlzLnNyYywgdHlwZTogSW1hZ2VUeXBlID0gdGhpcy5pbWFnZVR5cGUpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3JjID0gdGhpcy5nZXRJbWFnZUJ5VHlwZSh0eXBlKT8ubWluO1xuICAgIGNvbnN0IGltZ0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XG4gICAgaW1nRWwuc3JjID0gc3JjIHx8IHRoaXMuZ2V0SW1hZ2VCeVR5cGUodHlwZSk/LnNyYztcbiAgICBpbWdFbC5vbmxvYWQgPSAoZSkgPT4ge1xuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnNyYyA9IGltZ0VsLnNyYztcbiAgICB9O1xuICB9XG4gIGdldEltYWdlQnlUeXBlKHR5cGU6IEltYWdlVHlwZSkge1xuICAgIHJldHVybiBDb25maWcuSW1hZ2VzW3R5cGVdID8gQ29uZmlnLkltYWdlc1t0eXBlXSA6IENvbmZpZy5JbWFnZXMub3RoZXI7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnYnV0dG9uJyxcbn0pXG5leHBvcnQgY2xhc3MgT25DbGlja0RpcmVjdGl2ZSB7XG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSkgb25DbGljaygkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCBsb2NhdGlvbiA9ICRldmVudC52aWV3LmxvY2F0aW9uO1xuICAgIGNvbnN0IHBhdGhOYW1lID0gZGVjb2RlVVJJKGxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICBjb25zdCBpbm50ZXJIdG1sOiBzdHJpbmcgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MO1xuICAgIGNvbnNvbGUubG9nKGxvY2F0aW9uLCBwYXRoTmFtZSk7XG4gICAgLy8gc2VuZCBwYXRoTmFtZSBhbmQgaW5udGVySHRtbCB0byBzZXJ2ZXIuXG4gICAgLy8gICAgOlxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cbn1cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttcm91dGVyTGlua10nLFxufSlcbmV4cG9ydCBjbGFzcyBNcm91dGVyTGlua2lyZWN0aXZlIHtcbiAgbXJvdXRlckxpbms6IHN0cmluZztcbiAgQElucHV0KCdtcm91dGVyTGluaycpIHNldCBfbXJvdXRlckxpbmsodjogc3RyaW5nKSB7XG4gICAgdGhpcy5tcm91dGVyTGluayA9IHY7XG4gICAgLy8gaWYgKHYpIGRlYnVnZ2VyO1xuICAgIHRoaXMuc2V0Um91dGVyKCk7XG4gIH1cbiAgQElucHV0KCkgbXJvdXRlckxpbmtBY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGU7XG4gIEBJbnB1dCgpIG1xdWVyeVBhcmFtczogYW55O1xuICBASW5wdXQoKSBpc1Bob25lOiBib29sZWFuO1xuICBASW5wdXQoKSBpc0VtYWlsOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZjxIVE1MQW5jaG9yRWxlbWVudD4sXG4gICAgcHVibGljIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHVibGljIHVTOiBFVFNVdGlsaXR5U2VydmljZVxuICApIHt9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFJvdXRlcigpO1xuICB9XG4gIHNldFJvdXRlcigpIHtcbiAgICBpZiAodGhpcy5tcm91dGVyTGluayAmJiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdub3RMaW5rJyk7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbGluaycpO1xuICAgICAgLy8gZGVidWdnZXI7XG4gICAgICBpZiAodGhpcy5pc0VtYWlsKSB7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5ocmVmID0gJ21haWx0bzonICsgdGhpcy5tcm91dGVyTGluaztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1Bob25lKSB7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5ocmVmID0gJ3RlbDonICsgdGhpcy5tcm91dGVyTGluaztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICBjb25zdCBxdWVyeVBhcmFtczogeyBbeDogc3RyaW5nXTogc3RyaW5nIH0gPSB0aGlzLm1xdWVyeVBhcmFtcyB8fCB7fSxcbiAgICAgICAgICByb3V0ZUxldmVscyA9IHRoaXMubXJvdXRlckxpbmsuc3BsaXQoJy4uLycpLmxlbmd0aCAtIDEsXG4gICAgICAgICAgY3VycmVudExvY2F0aW9uUGFydHMgPSBsb2NhdGlvbi5wYXRobmFtZS5zcGxpdCgnLycpO1xuICAgICAgICBsZXQgcm91dGUgPSAnJyxcbiAgICAgICAgICB1cmxQYXJ0cyA9IHRoaXMubXJvdXRlckxpbmsuc3BsaXQoJz8nKTtcblxuICAgICAgICByb3V0ZSA9IHVybFBhcnRzWzBdO1xuICAgICAgICBpZiAodXJsUGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIGNvbnN0IGt2cHMgPSB1cmxQYXJ0c1sxXS5zcGxpdCgnJicpO1xuICAgICAgICAgIGZvciAoY29uc3Qga3ZwIG9mIGt2cHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGt2cFNwbGl0ID0ga3ZwLnNwbGl0KCc9Jyk7XG4gICAgICAgICAgICBxdWVyeVBhcmFtc1trdnBTcGxpdFswXV0gPSBrdnBTcGxpdFsxXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50TG9jYXRpb25QYXJ0cy5zcGxpY2Uocm91dGVMZXZlbHMgKiAtMSk7XG5cbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmhyZWYgPVxuICAgICAgICAgIGN1cnJlbnRMb2NhdGlvblBhcnRzLmpvaW4oJy8nKSArXG4gICAgICAgICAgJy8nICtcbiAgICAgICAgICByb3V0ZVxuICAgICAgICAgICAgLnNwbGl0KCcuLi8nKVxuICAgICAgICAgICAgLmZpbHRlcigoeCkgPT4geClcbiAgICAgICAgICAgIC5qb2luKCcvJykgK1xuICAgICAgICAgICc/JyArXG4gICAgICAgICAgdGhpcy5zdHJpbmdpZnlRdWVyeVBhcmFtcyhxdWVyeVBhcmFtcyk7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vbmNsaWNrID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3JvdXRlXSwge1xuICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy51Uy5lbnZpcm9ubWVudC5hY3RpdmF0ZWRSb3V0ZSB8fCB0aGlzLnJvdXRlLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdub3RMaW5rJyk7XG4gICAgfVxuICB9XG4gIHN0cmluZ2lmeVF1ZXJ5UGFyYW1zKHE6IHsgW3g6IHN0cmluZ106IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocSlcbiAgICAgIC5tYXAoKGtleSkgPT4gYCR7a2V5fT0ke3Fba2V5XX1gKVxuICAgICAgLmpvaW4oJyYnKTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbUFNCb3hdJyxcbn0pXG5leHBvcnQgY2xhc3MgUFNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoJ1BTQm94Jykgc2VsZWN0b3I6IHN0cmluZztcbiAgQElucHV0KCdQU0JveE5vSG9yaXpvbnRhbCcpIG5vSG9yaXpvbnRhbDogYm9vbGVhbjtcbiAgQElucHV0KCdQU0JveE5vVmVydGljYWwnKSBub1ZlcnRpY2FsOiBib29sZWFuO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYsIHB1YmxpYyB1UzogRVRTVXRpbGl0eVNlcnZpY2UpIHt9XG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge31cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG4gIGluaXQoKSB7XG4gICAgaWYgKCF0aGlzLnVTLmlzTW9iaWxlKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgcHNOb3RpZiA9IG5ldyBQZXJmZWN0U2Nyb2xsYmFyKFxuICAgICAgICAgIHRoaXMuc2VsZWN0b3IgfHwgdGhpcy5lbC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHdoZWVsU3BlZWQ6IDAuNSxcbiAgICAgICAgICAgIHN3aXBlRWFzaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIHN1cHByZXNzU2Nyb2xsWDogdGhpcy5ub0hvcml6b250YWwgfHwgZmFsc2UsXG4gICAgICAgICAgICBzdXBwcmVzc1Njcm9sbFk6IHRoaXMubm9WZXJ0aWNhbCB8fCBmYWxzZSxcbiAgICAgICAgICAgIHdoZWVsUHJvcGFnYXRpb246IHRydWUsXG4gICAgICAgICAgICBtaW5TY3JvbGxiYXJMZW5ndGg6IDQwLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgcHNOb3RpZi51cGRhdGUoKTtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBjb21wcyA9IFtcbiAgQ29tbWFmeU51bWJlckRpcmVjdGl2ZSxcbiAgSW1hZ2VMb2FkZXJEaXJlY3RpdmUsXG4gIEltYWdlVXBsb2FkLFxuICBJbnRlZ2VyT25seURpcmVjdGl2ZSxcbiAgLy8gTm9Gb3JtYXREaXJlY3RpdmUsXG4gIE1yb3V0ZXJMaW5raXJlY3RpdmUsXG4gIE5lZ2F0aXZlTnVtYmVyT25seURpcmVjdGl2ZSxcbiAgLy8gT25DbGlja0RpcmVjdGl2ZSxcbiAgLy8gSW5wdXRGb3JtYXREaXJlY3RpdmUsXG4gIFBTRGlyZWN0aXZlLFxuICBEcmFnRHJvcEZpbGVVcGxvYWREaXJlY3RpdmUsIFxuXTtcbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogY29tcHMsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElucHV0Rm9ybWF0RGlyZWN0aXZlc01vZHVsZV0sXG4gIGV4cG9ydHM6IFtcbiAgICAuLi5jb21wcyxcbiAgICBQZXJtaXNzaW9uTWFuYWdlckRpcmVjdGl2ZXNNb2R1bGUsXG4gICAgSW5wdXRGb3JtYXREaXJlY3RpdmVzTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtEZWNpbWFsUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIEVUU0RpcmVjdGl2ZXNNb2R1bGUge31cbiJdfQ==
@@ -1,4 +1,5 @@
1
- import { Directive, Input } from '@angular/core';
1
+ import { CommonModule } from '@angular/common';
2
+ import { Directive, Input, NgModule } from '@angular/core';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "../../Services/utility.service";
4
5
  export class ResponsivenessDirective {
@@ -71,7 +72,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
71
72
  }], hideDesktop: [{
72
73
  type: Input
73
74
  }] } });
74
- export class mobileClassDirective {
75
+ export class MobileClassDirective {
75
76
  constructor(elRef, uS) {
76
77
  this.elRef = elRef;
77
78
  this.uS = uS;
@@ -113,9 +114,9 @@ export class mobileClassDirective {
113
114
  this.elRef.nativeElement.classList.remove(...this.mobileClass.split(' '));
114
115
  }
115
116
  }
116
- mobileClassDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: mobileClassDirective, deps: [{ token: i0.ElementRef }, { token: i1.ETSUtilityService }], target: i0.ɵɵFactoryTarget.Directive });
117
- mobileClassDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: mobileClassDirective, selector: "[mobileClass]", inputs: { mobileClass: "mobileClass" }, ngImport: i0 });
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: mobileClassDirective, decorators: [{
117
+ MobileClassDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: MobileClassDirective, deps: [{ token: i0.ElementRef }, { token: i1.ETSUtilityService }], target: i0.ɵɵFactoryTarget.Directive });
118
+ MobileClassDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: MobileClassDirective, selector: "[mobileClass]", inputs: { mobileClass: "mobileClass" }, ngImport: i0 });
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: MobileClassDirective, decorators: [{
119
120
  type: Directive,
120
121
  args: [{
121
122
  selector: '[mobileClass]',
@@ -123,7 +124,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
123
124
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ETSUtilityService }]; }, propDecorators: { mobileClass: [{
124
125
  type: Input
125
126
  }] } });
126
- export class desktopClassDirective {
127
+ export class DesktopClassDirective {
127
128
  constructor(elRef, uS) {
128
129
  this.elRef = elRef;
129
130
  this.uS = uS;
@@ -165,9 +166,9 @@ export class desktopClassDirective {
165
166
  this.elRef.nativeElement.classList.add(...this.desktopClass.split(' '));
166
167
  }
167
168
  }
168
- desktopClassDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: desktopClassDirective, deps: [{ token: i0.ElementRef }, { token: i1.ETSUtilityService }], target: i0.ɵɵFactoryTarget.Directive });
169
- desktopClassDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: desktopClassDirective, selector: "[desktopClass]", inputs: { desktopClass: "desktopClass" }, ngImport: i0 });
170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: desktopClassDirective, decorators: [{
169
+ DesktopClassDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: DesktopClassDirective, deps: [{ token: i0.ElementRef }, { token: i1.ETSUtilityService }], target: i0.ɵɵFactoryTarget.Directive });
170
+ DesktopClassDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: DesktopClassDirective, selector: "[desktopClass]", inputs: { desktopClass: "desktopClass" }, ngImport: i0 });
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: DesktopClassDirective, decorators: [{
171
172
  type: Directive,
172
173
  args: [{
173
174
  selector: '[desktopClass]',
@@ -175,7 +176,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
175
176
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ETSUtilityService }]; }, propDecorators: { desktopClass: [{
176
177
  type: Input
177
178
  }] } });
178
- export class hideMobileDirective {
179
+ export class HideMobileDirective {
179
180
  constructor(elRef, uS) {
180
181
  this.elRef = elRef;
181
182
  this.uS = uS;
@@ -215,15 +216,15 @@ export class hideMobileDirective {
215
216
  this.elRef.nativeElement.hidden = false;
216
217
  }
217
218
  }
218
- hideMobileDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: hideMobileDirective, deps: [{ token: i0.ElementRef }, { token: i1.ETSUtilityService }], target: i0.ɵɵFactoryTarget.Directive });
219
- hideMobileDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: hideMobileDirective, selector: "[hideMobile]", ngImport: i0 });
220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: hideMobileDirective, decorators: [{
219
+ HideMobileDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: HideMobileDirective, deps: [{ token: i0.ElementRef }, { token: i1.ETSUtilityService }], target: i0.ɵɵFactoryTarget.Directive });
220
+ HideMobileDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: HideMobileDirective, selector: "[hideMobile]", ngImport: i0 });
221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: HideMobileDirective, decorators: [{
221
222
  type: Directive,
222
223
  args: [{
223
224
  selector: '[hideMobile]',
224
225
  }]
225
226
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ETSUtilityService }]; } });
226
- export class hideDesktopDirective {
227
+ export class HideDesktopDirective {
227
228
  constructor(elRef, uS) {
228
229
  this.elRef = elRef;
229
230
  this.uS = uS;
@@ -263,12 +264,34 @@ export class hideDesktopDirective {
263
264
  this.elRef.nativeElement.hidden = true;
264
265
  }
265
266
  }
266
- hideDesktopDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: hideDesktopDirective, deps: [{ token: i0.ElementRef }, { token: i1.ETSUtilityService }], target: i0.ɵɵFactoryTarget.Directive });
267
- hideDesktopDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: hideDesktopDirective, selector: "[hideDesktop]", ngImport: i0 });
268
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: hideDesktopDirective, decorators: [{
267
+ HideDesktopDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: HideDesktopDirective, deps: [{ token: i0.ElementRef }, { token: i1.ETSUtilityService }], target: i0.ɵɵFactoryTarget.Directive });
268
+ HideDesktopDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0", type: HideDesktopDirective, selector: "[hideDesktop]", ngImport: i0 });
269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: HideDesktopDirective, decorators: [{
269
270
  type: Directive,
270
271
  args: [{
271
272
  selector: '[hideDesktop]',
272
273
  }]
273
274
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ETSUtilityService }]; } });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZW5lc3MuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9kaXJlY3RpdmVzL3Jlc3BvbnNpdmVuZXNzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTzdELE1BQU0sT0FBTyx1QkFBdUI7SUFNbEMsWUFDUyxLQUFpQyxFQUNqQyxFQUFxQjtRQURyQixVQUFLLEdBQUwsS0FBSyxDQUE0QjtRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtJQUMzQixDQUFDO0lBRUosZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDOztZQUNyQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzNELFlBQVk7WUFDWixZQUFZO1lBQ1osSUFBSSxRQUFRLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3JCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN0QjtZQUNELG1DQUFtQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1QsZ0RBQWdEO1FBQ2hELDBDQUEwQztRQUMxQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxZQUFZO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQ3ZDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQ2hDLENBQUM7UUFDSixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ3ZELElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFFLElBQUksSUFBSSxDQUFDLFdBQVc7WUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxJQUFJLENBQUMsVUFBVTtZQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7YUFDeEQsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDcEUsQ0FBQzs7b0hBeERVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7aUlBRVUsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSzs7QUF5RFIsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUNTLEtBQWlDLEVBQ2pDLEVBQXFCO1FBRHJCLFVBQUssR0FBTCxLQUFLLENBQTRCO1FBQ2pDLE9BQUUsR0FBRixFQUFFLENBQW1CO0lBQzNCLENBQUM7SUFFSixlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7O1lBQ3JDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUxQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDM0QsWUFBWTtZQUNaLFlBQVk7WUFDWixJQUFJLFFBQVEsRUFBRTtnQkFDWixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3RCO1lBQ0QsbUNBQW1DO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVc7UUFDVCxnREFBZ0Q7UUFDaEQsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLFdBQVc7WUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFdBQVc7WUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQzs7aUhBM0NVLG9CQUFvQjtxR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO2lJQUVVLFdBQVc7c0JBQW5CLEtBQUs7O0FBK0NSLE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsWUFDUyxLQUFpQyxFQUNqQyxFQUFxQjtRQURyQixVQUFLLEdBQUwsS0FBSyxDQUE0QjtRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtJQUMzQixDQUFDO0lBRUosZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDOztZQUNyQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzNELFlBQVk7WUFDWixZQUFZO1lBQ1osSUFBSSxRQUFRLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3JCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN0QjtZQUNELG1DQUFtQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1QsZ0RBQWdEO1FBQ2hELDBDQUEwQztRQUMxQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxZQUFZO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQ3ZDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQ2hDLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsWUFBWTtZQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDOztrSEE3Q1UscUJBQXFCO3NHQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQjtpSUFFVSxZQUFZO3NCQUFwQixLQUFLOztBQWlEUixNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQ1MsS0FBaUMsRUFDakMsRUFBcUI7UUFEckIsVUFBSyxHQUFMLEtBQUssQ0FBNEI7UUFDakMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7SUFDM0IsQ0FBQztJQUVKLGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzs7WUFDckMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMzRCxZQUFZO1lBQ1osWUFBWTtZQUNaLElBQUksUUFBUSxFQUFFO2dCQUNaLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDdEI7WUFDRCxtQ0FBbUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVztRQUNULGdEQUFnRDtRQUNoRCwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUMxQyxDQUFDOztnSEF4Q1UsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztpQkFDekI7O0FBOENELE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFDUyxLQUFpQyxFQUNqQyxFQUFxQjtRQURyQixVQUFLLEdBQUwsS0FBSyxDQUE0QjtRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtJQUMzQixDQUFDO0lBRUosZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDOztZQUNyQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzNELFlBQVk7WUFDWixZQUFZO1lBQ1osSUFBSSxRQUFRLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3JCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN0QjtZQUNELG1DQUFtQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1QsZ0RBQWdEO1FBQ2hELDBDQUEwQztRQUMxQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3pDLENBQUM7O2lIQXhDVSxvQkFBb0I7cUdBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUhoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRVRTVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9TZXJ2aWNlcy91dGlsaXR5LnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbXJlc3BvbnNpdmVuZXNzXScsXG59KVxuZXhwb3J0IGNsYXNzIFJlc3BvbnNpdmVuZXNzRGlyZWN0aXZlIHtcbiAgQElucHV0KCkgbW9iaWxlQ2xhc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlc2t0b3BDbGFzcz86IHN0cmluZztcbiAgQElucHV0KCkgaGlkZU1vYmlsZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGhpZGVEZXNrdG9wPzogYm9vbGVhbjtcbiAgc3ViITogU3Vic2NyaXB0aW9uO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICAgIHB1YmxpYyB1UzogRVRTVXRpbGl0eVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51Uy5pc01vYmlsZSkgdGhpcy5oYW5kbGVNb2JpbGUoKTtcbiAgICBlbHNlIHRoaXMuaGFuZGxlRGVza3RvcCgpO1xuXG4gICAgdGhpcy5zdWIgPSB0aGlzLnVTLm1vYmlsZVF1ZXJ5Q2hhbmdlZC5zdWJzY3JpYmUoKGlzTW9iaWxlKSA9PiB7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlTW9iaWxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhhbmRsZURlc2t0b3AoKTtcbiAgICAgIH1cbiAgICAgIC8vIGNvbnNvbGUubG9nKGV2LCdtZWRpYSBjaGFuZ2VkJyk7XG4gICAgfSk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy9DYWxsZWQgb25jZSwgYmVmb3JlIHRoZSBpbnN0YW5jZSBpcyBkZXN0cm95ZWQuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgT25EZXN0cm95JyB0byB0aGUgY2xhc3MuXG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB2aWV3cG9ydCBpcyBtb2JpbGVcbiAgICovXG4gIGhhbmRsZU1vYmlsZSgpIHtcbiAgICBpZiAodGhpcy5kZXNrdG9wQ2xhc3MpXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcbiAgICAgICAgLi4udGhpcy5kZXNrdG9wQ2xhc3Muc3BsaXQoJyAnKVxuICAgICAgKTtcbiAgICBpZiAodGhpcy5tb2JpbGVDbGFzcylcbiAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKC4uLnRoaXMubW9iaWxlQ2xhc3Muc3BsaXQoJyAnKSk7XG4gICAgaWYgKHRoaXMuaGlkZU1vYmlsZSkgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmhpZGRlbiA9IHRydWU7XG4gICAgZWxzZSBpZiAodGhpcy5oaWRlRGVza3RvcCkgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmhpZGRlbiA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHZpZXdwb3J0IGlzIGRlc2t0b3BcbiAgICovXG4gIGhhbmRsZURlc2t0b3AoKSB7XG4gICAgaWYgKHRoaXMuZGVza3RvcENsYXNzKVxuICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoLi4udGhpcy5kZXNrdG9wQ2xhc3Muc3BsaXQoJyAnKSk7XG4gICAgaWYgKHRoaXMubW9iaWxlQ2xhc3MpXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSguLi50aGlzLm1vYmlsZUNsYXNzLnNwbGl0KCcgJykpO1xuICAgIGlmICh0aGlzLmhpZGVNb2JpbGUpIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5oaWRkZW4gPSBmYWxzZTtcbiAgICBlbHNlIGlmICh0aGlzLmhpZGVEZXNrdG9wKSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcbiAgfVxufVxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21vYmlsZUNsYXNzXScsXG59KVxuZXhwb3J0IGNsYXNzIG1vYmlsZUNsYXNzRGlyZWN0aXZlIHtcbiAgQElucHV0KCkgbW9iaWxlQ2xhc3M/OiBzdHJpbmc7XG4gIHN1YiE6IFN1YnNjcmlwdGlvbjtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsUmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcbiAgICBwdWJsaWMgdVM6IEVUU1V0aWxpdHlTZXJ2aWNlXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudVMuaXNNb2JpbGUpIHRoaXMuaGFuZGxlTW9iaWxlKCk7XG4gICAgZWxzZSB0aGlzLmhhbmRsZURlc2t0b3AoKTtcblxuICAgIHRoaXMuc3ViID0gdGhpcy51Uy5tb2JpbGVRdWVyeUNoYW5nZWQuc3Vic2NyaWJlKChpc01vYmlsZSkgPT4ge1xuICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIGlmIChpc01vYmlsZSkge1xuICAgICAgICB0aGlzLmhhbmRsZU1vYmlsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5oYW5kbGVEZXNrdG9wKCk7XG4gICAgICB9XG4gICAgICAvLyBjb25zb2xlLmxvZyhldiwnbWVkaWEgY2hhbmdlZCcpO1xuICAgIH0pO1xuICB9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8vQ2FsbGVkIG9uY2UsIGJlZm9yZSB0aGUgaW5zdGFuY2UgaXMgZGVzdHJveWVkLlxuICAgIC8vQWRkICdpbXBsZW1lbnRzIE9uRGVzdHJveScgdG8gdGhlIGNsYXNzLlxuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogSWYgdmlld3BvcnQgaXMgbW9iaWxlXG4gICAqL1xuICBoYW5kbGVNb2JpbGUoKSB7XG4gICAgaWYgKHRoaXMubW9iaWxlQ2xhc3MpXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCguLi50aGlzLm1vYmlsZUNsYXNzLnNwbGl0KCcgJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHZpZXdwb3J0IGlzIGRlc2t0b3BcbiAgICovXG4gIGhhbmRsZURlc2t0b3AoKSB7XG4gICAgaWYgKHRoaXMubW9iaWxlQ2xhc3MpXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSguLi50aGlzLm1vYmlsZUNsYXNzLnNwbGl0KCcgJykpO1xuICB9XG59XG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGVza3RvcENsYXNzXScsXG59KVxuZXhwb3J0IGNsYXNzIGRlc2t0b3BDbGFzc0RpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIGRlc2t0b3BDbGFzcz86IHN0cmluZztcbiAgc3ViITogU3Vic2NyaXB0aW9uO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICAgIHB1YmxpYyB1UzogRVRTVXRpbGl0eVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51Uy5pc01vYmlsZSkgdGhpcy5oYW5kbGVNb2JpbGUoKTtcbiAgICBlbHNlIHRoaXMuaGFuZGxlRGVza3RvcCgpO1xuXG4gICAgdGhpcy5zdWIgPSB0aGlzLnVTLm1vYmlsZVF1ZXJ5Q2hhbmdlZC5zdWJzY3JpYmUoKGlzTW9iaWxlKSA9PiB7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlTW9iaWxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhhbmRsZURlc2t0b3AoKTtcbiAgICAgIH1cbiAgICAgIC8vIGNvbnNvbGUubG9nKGV2LCdtZWRpYSBjaGFuZ2VkJyk7XG4gICAgfSk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy9DYWxsZWQgb25jZSwgYmVmb3JlIHRoZSBpbnN0YW5jZSBpcyBkZXN0cm95ZWQuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgT25EZXN0cm95JyB0byB0aGUgY2xhc3MuXG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB2aWV3cG9ydCBpcyBtb2JpbGVcbiAgICovXG4gIGhhbmRsZU1vYmlsZSgpIHtcbiAgICBpZiAodGhpcy5kZXNrdG9wQ2xhc3MpXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcbiAgICAgICAgLi4udGhpcy5kZXNrdG9wQ2xhc3Muc3BsaXQoJyAnKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB2aWV3cG9ydCBpcyBkZXNrdG9wXG4gICAqL1xuICBoYW5kbGVEZXNrdG9wKCkge1xuICAgIGlmICh0aGlzLmRlc2t0b3BDbGFzcylcbiAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKC4uLnRoaXMuZGVza3RvcENsYXNzLnNwbGl0KCcgJykpO1xuICB9XG59XG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbaGlkZU1vYmlsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBoaWRlTW9iaWxlRGlyZWN0aXZlIHtcbiAgc3ViITogU3Vic2NyaXB0aW9uO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICAgIHB1YmxpYyB1UzogRVRTVXRpbGl0eVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51Uy5pc01vYmlsZSkgdGhpcy5oYW5kbGVNb2JpbGUoKTtcbiAgICBlbHNlIHRoaXMuaGFuZGxlRGVza3RvcCgpO1xuXG4gICAgdGhpcy5zdWIgPSB0aGlzLnVTLm1vYmlsZVF1ZXJ5Q2hhbmdlZC5zdWJzY3JpYmUoKGlzTW9iaWxlKSA9PiB7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlTW9iaWxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhhbmRsZURlc2t0b3AoKTtcbiAgICAgIH1cbiAgICAgIC8vIGNvbnNvbGUubG9nKGV2LCdtZWRpYSBjaGFuZ2VkJyk7XG4gICAgfSk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy9DYWxsZWQgb25jZSwgYmVmb3JlIHRoZSBpbnN0YW5jZSBpcyBkZXN0cm95ZWQuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgT25EZXN0cm95JyB0byB0aGUgY2xhc3MuXG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB2aWV3cG9ydCBpcyBtb2JpbGVcbiAgICovXG4gIGhhbmRsZU1vYmlsZSgpIHtcbiAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB2aWV3cG9ydCBpcyBkZXNrdG9wXG4gICAqL1xuICBoYW5kbGVEZXNrdG9wKCkge1xuICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5oaWRkZW4gPSBmYWxzZTtcbiAgfVxufVxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2hpZGVEZXNrdG9wXScsXG59KVxuZXhwb3J0IGNsYXNzIGhpZGVEZXNrdG9wRGlyZWN0aXZlIHtcbiAgc3ViITogU3Vic2NyaXB0aW9uO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICAgIHB1YmxpYyB1UzogRVRTVXRpbGl0eVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51Uy5pc01vYmlsZSkgdGhpcy5oYW5kbGVNb2JpbGUoKTtcbiAgICBlbHNlIHRoaXMuaGFuZGxlRGVza3RvcCgpO1xuXG4gICAgdGhpcy5zdWIgPSB0aGlzLnVTLm1vYmlsZVF1ZXJ5Q2hhbmdlZC5zdWJzY3JpYmUoKGlzTW9iaWxlKSA9PiB7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlTW9iaWxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhhbmRsZURlc2t0b3AoKTtcbiAgICAgIH1cbiAgICAgIC8vIGNvbnNvbGUubG9nKGV2LCdtZWRpYSBjaGFuZ2VkJyk7XG4gICAgfSk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy9DYWxsZWQgb25jZSwgYmVmb3JlIHRoZSBpbnN0YW5jZSBpcyBkZXN0cm95ZWQuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgT25EZXN0cm95JyB0byB0aGUgY2xhc3MuXG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB2aWV3cG9ydCBpcyBtb2JpbGVcbiAgICovXG4gIGhhbmRsZU1vYmlsZSgpIHtcbiAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaGlkZGVuID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogSWYgdmlld3BvcnQgaXMgZGVza3RvcFxuICAgKi9cbiAgaGFuZGxlRGVza3RvcCgpIHtcbiAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcbiAgfVxufVxuIl19
275
+ const comps = [
276
+ ResponsivenessDirective,
277
+ MobileClassDirective,
278
+ DesktopClassDirective,
279
+ HideMobileDirective,
280
+ HideDesktopDirective,
281
+ ];
282
+ export class ETSResponsivenessModule {
283
+ }
284
+ ETSResponsivenessModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ETSResponsivenessModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
285
+ ETSResponsivenessModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.0", ngImport: i0, type: ETSResponsivenessModule, declarations: [ResponsivenessDirective, MobileClassDirective, DesktopClassDirective, HideMobileDirective, HideDesktopDirective], imports: [CommonModule], exports: [ResponsivenessDirective, MobileClassDirective, DesktopClassDirective, HideMobileDirective, HideDesktopDirective] });
286
+ ETSResponsivenessModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ETSResponsivenessModule, imports: [CommonModule] });
287
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ETSResponsivenessModule, decorators: [{
288
+ type: NgModule,
289
+ args: [{
290
+ declarations: comps,
291
+ imports: [CommonModule],
292
+ exports: [
293
+ ...comps,
294
+ ],
295
+ }]
296
+ }] });
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZW5lc3MuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9kaXJlY3RpdmVzL3Jlc3BvbnNpdmVuZXNzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPdkUsTUFBTSxPQUFPLHVCQUF1QjtJQU1sQyxZQUNTLEtBQWlDLEVBQ2pDLEVBQXFCO1FBRHJCLFVBQUssR0FBTCxLQUFLLENBQTRCO1FBQ2pDLE9BQUUsR0FBRixFQUFFLENBQW1CO0lBQzNCLENBQUM7SUFFSixlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7O1lBQ3JDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUxQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDM0QsWUFBWTtZQUNaLFlBQVk7WUFDWixJQUFJLFFBQVEsRUFBRTtnQkFDWixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3RCO1lBQ0QsbUNBQW1DO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVc7UUFDVCxnREFBZ0Q7UUFDaEQsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLFlBQVk7WUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FDdkMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FDaEMsQ0FBQztRQUNKLElBQUksSUFBSSxDQUFDLFdBQVc7WUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekUsSUFBSSxJQUFJLENBQUMsVUFBVTtZQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7YUFDdkQsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDckUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFlBQVk7WUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxJQUFJLENBQUMsV0FBVztZQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1RSxJQUFJLElBQUksQ0FBQyxVQUFVO1lBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQzthQUN4RCxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNwRSxDQUFDOztvSEF4RFUsdUJBQXVCO3dHQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFIbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2lCQUM5QjtpSUFFVSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLOztBQXlEUixNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLFlBQ1MsS0FBaUMsRUFDakMsRUFBcUI7UUFEckIsVUFBSyxHQUFMLEtBQUssQ0FBNEI7UUFDakMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7SUFDM0IsQ0FBQztJQUVKLGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzs7WUFDckMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMzRCxZQUFZO1lBQ1osWUFBWTtZQUNaLElBQUksUUFBUSxFQUFFO2dCQUNaLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDdEI7WUFDRCxtQ0FBbUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVztRQUNULGdEQUFnRDtRQUNoRCwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1YsSUFBSSxJQUFJLENBQUMsV0FBVztZQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsV0FBVztZQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDOztpSEEzQ1Usb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtpQkFDMUI7aUlBRVUsV0FBVztzQkFBbkIsS0FBSzs7QUErQ1IsTUFBTSxPQUFPLHFCQUFxQjtJQUdoQyxZQUNTLEtBQWlDLEVBQ2pDLEVBQXFCO1FBRHJCLFVBQUssR0FBTCxLQUFLLENBQTRCO1FBQ2pDLE9BQUUsR0FBRixFQUFFLENBQW1CO0lBQzNCLENBQUM7SUFFSixlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7O1lBQ3JDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUxQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDM0QsWUFBWTtZQUNaLFlBQVk7WUFDWixJQUFJLFFBQVEsRUFBRTtnQkFDWixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3RCO1lBQ0QsbUNBQW1DO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVc7UUFDVCxnREFBZ0Q7UUFDaEQsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLFlBQVk7WUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FDdkMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FDaEMsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7O2tIQTdDVSxxQkFBcUI7c0dBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCO2lJQUVVLFlBQVk7c0JBQXBCLEtBQUs7O0FBaURSLE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFDUyxLQUFpQyxFQUNqQyxFQUFxQjtRQURyQixVQUFLLEdBQUwsS0FBSyxDQUE0QjtRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtJQUMzQixDQUFDO0lBRUosZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDOztZQUNyQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzNELFlBQVk7WUFDWixZQUFZO1lBQ1osSUFBSSxRQUFRLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3JCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN0QjtZQUNELG1DQUFtQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1QsZ0RBQWdEO1FBQ2hELDBDQUEwQztRQUMxQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzFDLENBQUM7O2dIQXhDVSxtQkFBbUI7b0dBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjs7QUE4Q0QsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUNTLEtBQWlDLEVBQ2pDLEVBQXFCO1FBRHJCLFVBQUssR0FBTCxLQUFLLENBQTRCO1FBQ2pDLE9BQUUsR0FBRixFQUFFLENBQW1CO0lBQzNCLENBQUM7SUFFSixlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7O1lBQ3JDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUxQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDM0QsWUFBWTtZQUNaLFlBQVk7WUFDWixJQUFJLFFBQVEsRUFBRTtnQkFDWixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3RCO1lBQ0QsbUNBQW1DO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVc7UUFDVCxnREFBZ0Q7UUFDaEQsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDekMsQ0FBQzs7aUhBeENVLG9CQUFvQjtxR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7aUJBQzFCOztBQTRDRCxNQUFNLEtBQUssR0FBRztJQUNaLHVCQUF1QjtJQUN2QixvQkFBb0I7SUFDcEIscUJBQXFCO0lBQ3JCLG1CQUFtQjtJQUNuQixvQkFBb0I7Q0FDckIsQ0FBQztBQVFGLE1BQU0sT0FBTyx1QkFBdUI7O29IQUF2Qix1QkFBdUI7cUhBQXZCLHVCQUF1QixpQkFyUXZCLHVCQUF1QixFQTZEdkIsb0JBQW9CLEVBZ0RwQixxQkFBcUIsRUFrRHJCLG1CQUFtQixFQTZDbkIsb0JBQW9CLGFBb0RyQixZQUFZLGFBaFFYLHVCQUF1QixFQTZEdkIsb0JBQW9CLEVBZ0RwQixxQkFBcUIsRUFrRHJCLG1CQUFtQixFQTZDbkIsb0JBQW9CO3FIQXlEcEIsdUJBQXVCLFlBTHhCLFlBQVk7MkZBS1gsdUJBQXVCO2tCQVBuQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxLQUFLO29CQUNuQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRTt3QkFDUCxHQUFHLEtBQUs7cUJBQ1Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRVRTVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9TZXJ2aWNlcy91dGlsaXR5LnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbXJlc3BvbnNpdmVuZXNzXScsXG59KVxuZXhwb3J0IGNsYXNzIFJlc3BvbnNpdmVuZXNzRGlyZWN0aXZlIHtcbiAgQElucHV0KCkgbW9iaWxlQ2xhc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlc2t0b3BDbGFzcz86IHN0cmluZztcbiAgQElucHV0KCkgaGlkZU1vYmlsZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGhpZGVEZXNrdG9wPzogYm9vbGVhbjtcbiAgc3ViITogU3Vic2NyaXB0aW9uO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICAgIHB1YmxpYyB1UzogRVRTVXRpbGl0eVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51Uy5pc01vYmlsZSkgdGhpcy5oYW5kbGVNb2JpbGUoKTtcbiAgICBlbHNlIHRoaXMuaGFuZGxlRGVza3RvcCgpO1xuXG4gICAgdGhpcy5zdWIgPSB0aGlzLnVTLm1vYmlsZVF1ZXJ5Q2hhbmdlZC5zdWJzY3JpYmUoKGlzTW9iaWxlKSA9PiB7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlTW9iaWxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhhbmRsZURlc2t0b3AoKTtcbiAgICAgIH1cbiAgICAgIC8vIGNvbnNvbGUubG9nKGV2LCdtZWRpYSBjaGFuZ2VkJyk7XG4gICAgfSk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy9DYWxsZWQgb25jZSwgYmVmb3JlIHRoZSBpbnN0YW5jZSBpcyBkZXN0cm95ZWQuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgT25EZXN0cm95JyB0byB0aGUgY2xhc3MuXG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB2aWV3cG9ydCBpcyBtb2JpbGVcbiAgICovXG4gIGhhbmRsZU1vYmlsZSgpIHtcbiAgICBpZiAodGhpcy5kZXNrdG9wQ2xhc3MpXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcbiAgICAgICAgLi4udGhpcy5kZXNrdG9wQ2xhc3Muc3BsaXQoJyAnKVxuICAgICAgKTtcbiAgICBpZiAodGhpcy5tb2JpbGVDbGFzcylcbiAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKC4uLnRoaXMubW9iaWxlQ2xhc3Muc3BsaXQoJyAnKSk7XG4gICAgaWYgKHRoaXMuaGlkZU1vYmlsZSkgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmhpZGRlbiA9IHRydWU7XG4gICAgZWxzZSBpZiAodGhpcy5oaWRlRGVza3RvcCkgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmhpZGRlbiA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHZpZXdwb3J0IGlzIGRlc2t0b3BcbiAgICovXG4gIGhhbmRsZURlc2t0b3AoKSB7XG4gICAgaWYgKHRoaXMuZGVza3RvcENsYXNzKVxuICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoLi4udGhpcy5kZXNrdG9wQ2xhc3Muc3BsaXQoJyAnKSk7XG4gICAgaWYgKHRoaXMubW9iaWxlQ2xhc3MpXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSguLi50aGlzLm1vYmlsZUNsYXNzLnNwbGl0KCcgJykpO1xuICAgIGlmICh0aGlzLmhpZGVNb2JpbGUpIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5oaWRkZW4gPSBmYWxzZTtcbiAgICBlbHNlIGlmICh0aGlzLmhpZGVEZXNrdG9wKSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcbiAgfVxufVxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21vYmlsZUNsYXNzXScsXG59KVxuZXhwb3J0IGNsYXNzIE1vYmlsZUNsYXNzRGlyZWN0aXZlIHtcbiAgQElucHV0KCkgbW9iaWxlQ2xhc3M/OiBzdHJpbmc7XG4gIHN1YiE6IFN1YnNjcmlwdGlvbjtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsUmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcbiAgICBwdWJsaWMgdVM6IEVUU1V0aWxpdHlTZXJ2aWNlXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudVMuaXNNb2JpbGUpIHRoaXMuaGFuZGxlTW9iaWxlKCk7XG4gICAgZWxzZSB0aGlzLmhhbmRsZURlc2t0b3AoKTtcblxuICAgIHRoaXMuc3ViID0gdGhpcy51Uy5tb2JpbGVRdWVyeUNoYW5nZWQuc3Vic2NyaWJlKChpc01vYmlsZSkgPT4ge1xuICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIGlmIChpc01vYmlsZSkge1xuICAgICAgICB0aGlzLmhhbmRsZU1vYmlsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5oYW5kbGVEZXNrdG9wKCk7XG4gICAgICB9XG4gICAgICAvLyBjb25zb2xlLmxvZyhldiwnbWVkaWEgY2hhbmdlZCcpO1xuICAgIH0pO1xuICB9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8vQ2FsbGVkIG9uY2UsIGJlZm9yZSB0aGUgaW5zdGFuY2UgaXMgZGVzdHJveWVkLlxuICAgIC8vQWRkICdpbXBsZW1lbnRzIE9uRGVzdHJveScgdG8gdGhlIGNsYXNzLlxuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogSWYgdmlld3BvcnQgaXMgbW9iaWxlXG4gICAqL1xuICBoYW5kbGVNb2JpbGUoKSB7XG4gICAgaWYgKHRoaXMubW9iaWxlQ2xhc3MpXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCguLi50aGlzLm1vYmlsZUNsYXNzLnNwbGl0KCcgJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHZpZXdwb3J0IGlzIGRlc2t0b3BcbiAgICovXG4gIGhhbmRsZURlc2t0b3AoKSB7XG4gICAgaWYgKHRoaXMubW9iaWxlQ2xhc3MpXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSguLi50aGlzLm1vYmlsZUNsYXNzLnNwbGl0KCcgJykpO1xuICB9XG59XG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGVza3RvcENsYXNzXScsXG59KVxuZXhwb3J0IGNsYXNzIERlc2t0b3BDbGFzc0RpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIGRlc2t0b3BDbGFzcz86IHN0cmluZztcbiAgc3ViITogU3Vic2NyaXB0aW9uO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICAgIHB1YmxpYyB1UzogRVRTVXRpbGl0eVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51Uy5pc01vYmlsZSkgdGhpcy5oYW5kbGVNb2JpbGUoKTtcbiAgICBlbHNlIHRoaXMuaGFuZGxlRGVza3RvcCgpO1xuXG4gICAgdGhpcy5zdWIgPSB0aGlzLnVTLm1vYmlsZVF1ZXJ5Q2hhbmdlZC5zdWJzY3JpYmUoKGlzTW9iaWxlKSA9PiB7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlTW9iaWxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhhbmRsZURlc2t0b3AoKTtcbiAgICAgIH1cbiAgICAgIC8vIGNvbnNvbGUubG9nKGV2LCdtZWRpYSBjaGFuZ2VkJyk7XG4gICAgfSk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy9DYWxsZWQgb25jZSwgYmVmb3JlIHRoZSBpbnN0YW5jZSBpcyBkZXN0cm95ZWQuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgT25EZXN0cm95JyB0byB0aGUgY2xhc3MuXG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB2aWV3cG9ydCBpcyBtb2JpbGVcbiAgICovXG4gIGhhbmRsZU1vYmlsZSgpIHtcbiAgICBpZiAodGhpcy5kZXNrdG9wQ2xhc3MpXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcbiAgICAgICAgLi4udGhpcy5kZXNrdG9wQ2xhc3Muc3BsaXQoJyAnKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB2aWV3cG9ydCBpcyBkZXNrdG9wXG4gICAqL1xuICBoYW5kbGVEZXNrdG9wKCkge1xuICAgIGlmICh0aGlzLmRlc2t0b3BDbGFzcylcbiAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKC4uLnRoaXMuZGVza3RvcENsYXNzLnNwbGl0KCcgJykpO1xuICB9XG59XG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbaGlkZU1vYmlsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBIaWRlTW9iaWxlRGlyZWN0aXZlIHtcbiAgc3ViITogU3Vic2NyaXB0aW9uO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICAgIHB1YmxpYyB1UzogRVRTVXRpbGl0eVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51Uy5pc01vYmlsZSkgdGhpcy5oYW5kbGVNb2JpbGUoKTtcbiAgICBlbHNlIHRoaXMuaGFuZGxlRGVza3RvcCgpO1xuXG4gICAgdGhpcy5zdWIgPSB0aGlzLnVTLm1vYmlsZVF1ZXJ5Q2hhbmdlZC5zdWJzY3JpYmUoKGlzTW9iaWxlKSA9PiB7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlTW9iaWxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhhbmRsZURlc2t0b3AoKTtcbiAgICAgIH1cbiAgICAgIC8vIGNvbnNvbGUubG9nKGV2LCdtZWRpYSBjaGFuZ2VkJyk7XG4gICAgfSk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy9DYWxsZWQgb25jZSwgYmVmb3JlIHRoZSBpbnN0YW5jZSBpcyBkZXN0cm95ZWQuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgT25EZXN0cm95JyB0byB0aGUgY2xhc3MuXG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB2aWV3cG9ydCBpcyBtb2JpbGVcbiAgICovXG4gIGhhbmRsZU1vYmlsZSgpIHtcbiAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB2aWV3cG9ydCBpcyBkZXNrdG9wXG4gICAqL1xuICBoYW5kbGVEZXNrdG9wKCkge1xuICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5oaWRkZW4gPSBmYWxzZTtcbiAgfVxufVxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2hpZGVEZXNrdG9wXScsXG59KVxuZXhwb3J0IGNsYXNzIEhpZGVEZXNrdG9wRGlyZWN0aXZlIHtcbiAgc3ViITogU3Vic2NyaXB0aW9uO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICAgIHB1YmxpYyB1UzogRVRTVXRpbGl0eVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51Uy5pc01vYmlsZSkgdGhpcy5oYW5kbGVNb2JpbGUoKTtcbiAgICBlbHNlIHRoaXMuaGFuZGxlRGVza3RvcCgpO1xuXG4gICAgdGhpcy5zdWIgPSB0aGlzLnVTLm1vYmlsZVF1ZXJ5Q2hhbmdlZC5zdWJzY3JpYmUoKGlzTW9iaWxlKSA9PiB7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlTW9iaWxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhhbmRsZURlc2t0b3AoKTtcbiAgICAgIH1cbiAgICAgIC8vIGNvbnNvbGUubG9nKGV2LCdtZWRpYSBjaGFuZ2VkJyk7XG4gICAgfSk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy9DYWxsZWQgb25jZSwgYmVmb3JlIHRoZSBpbnN0YW5jZSBpcyBkZXN0cm95ZWQuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgT25EZXN0cm95JyB0byB0aGUgY2xhc3MuXG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB2aWV3cG9ydCBpcyBtb2JpbGVcbiAgICovXG4gIGhhbmRsZU1vYmlsZSgpIHtcbiAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaGlkZGVuID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogSWYgdmlld3BvcnQgaXMgZGVza3RvcFxuICAgKi9cbiAgaGFuZGxlRGVza3RvcCgpIHtcbiAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcbiAgfVxufVxuXG5jb25zdCBjb21wcyA9IFtcbiAgUmVzcG9uc2l2ZW5lc3NEaXJlY3RpdmUsXG4gIE1vYmlsZUNsYXNzRGlyZWN0aXZlLFxuICBEZXNrdG9wQ2xhc3NEaXJlY3RpdmUsXG4gIEhpZGVNb2JpbGVEaXJlY3RpdmUsXG4gIEhpZGVEZXNrdG9wRGlyZWN0aXZlLFxuXTtcbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogY29tcHMsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbXG4gICAgLi4uY29tcHMsIFxuICBdLCBcbn0pXG5leHBvcnQgY2xhc3MgRVRTUmVzcG9uc2l2ZW5lc3NNb2R1bGUge31cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL21vZGVscy9mb3JtLXNjaGVtYS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgVmFsaWRhdG9yRm4sXG4gIEZvcm1Db250cm9sT3B0aW9ucyxcbiAgQXN5bmNWYWxpZGF0b3JGbixcbiAgRm9ybUdyb3VwLFxuICBGb3JtQXJyYXksXG4gIEFic3RyYWN0Q29udHJvbCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRVRTSW5wdXRUeXBlIH0gZnJvbSAnLi9pbmRleC5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVUU0Zvcm1TY2hlbWE8XG4gIFRGb3JtR3JvdXAgZXh0ZW5kcyB7XG4gICAgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gIH0gPSBhbnksXG4gIFRPcHRpb25MYWJlbFR5cGUgPSBPcHRpb25MYWJlbFR5cGUsXG4gIFRJbnB1dFR5cGUgPSBFVFNJbnB1dFR5cGVcbj4ge1xuICBhc3luY1ZhbGlkYXRvcnM/OiBBc3luY1ZhbGlkYXRvckZuW107XG4gIGF1dG9QaWNrVmFsdWVGaWVsZD86IGJvb2xlYW47XG4gIGNoZWNrZWQ/OiBib29sZWFuO1xuICBjbGVhck9uRGlzYWJsZT86IGJvb2xlYW47XG4gIGNscz86IHN0cmluZztcbiAgY291bnRyeUNvZGUzPzogc3RyaW5nO1xuICBkZWNpbWFsUG9pbnRzPzogbnVtYmVyO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkSWY/OiAocm93OiBhbnksIGNlbGxGaWVsZD86IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgaGlkZUlmRnVuYz86IChyb3cpID0+IGJvb2xlYW47XG4gIGZpZWxkOiBrZXlvZiBURm9ybUdyb3VwO1xuICBmb3JtPzogRm9ybUdyb3VwPFRGb3JtR3JvdXA+O1xuICBnZXRDb3VudHJ5Q29kZTNLZXk/OiBzdHJpbmc7XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIGhpbnQ/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBpc1JlcXVpcmVkPzogYm9vbGVhbjtcbiAgaXNTZWFyY2hGaWVsZD86IGJvb2xlYW47XG4gIGxhYmVsPzogc3RyaW5nO1xuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xuICBsYWJlbFR5cGU/OiBUT3B0aW9uTGFiZWxUeXBlO1xuICBvcHRpb25MYWJlbEZvcm1hdHRlcj86KHJvdyk9PnN0cmluZztcbiAgbWF4PzogbnVtYmVyO1xuICBtaW4/OiBudW1iZXI7XG4gIG5vRm9ybWF0PzogYm9vbGVhbjtcbiAgb25DaGFuZ2VGdW5jPzogKHJvdzogYW55LCBjZWxsPzogYW55LCBfdGhpcz86IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnlbXT4gfCBhbnk7XG4gIG9wdGlvbkZvcm1hdHRlcj86IChpdGVtOiBhbnkpID0+IHN0cmluZztcbiAgb3B0aW9ucz86IGFueVtdO1xuICBvcHRpb25zQXN5bmM/OiBPYnNlcnZhYmxlPGFueVtdPiB8IFByb21pc2U8YW55W10+O1xuICBvcHRpb25zSW5pdEZ1bmM/OiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgb3B0aW9uc0tleT86IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHNlYXJjaEZ1bmM/OiAoLi4uYXJncykgPT4gYW55O1xuICBzZXRBc0NvdW50cnlDb2RlMz86IGJvb2xlYW47XG4gIHNob3dWYWxpZGF0aW9uPzogYm9vbGVhbjtcbiAgc2hvd1ZhbGlkYXRpb25JY29uPzogYm9vbGVhbjtcbiAgdGVtcGxhdGVWYWx1ZT86IGFueTtcbiAgdHlwZT86IFRJbnB1dFR5cGU7XG4gIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbltdO1xuICB2YWx1ZT86IGFueTtcbiAgdmFsdWVGaWVsZD86IHN0cmluZztcbiAgb3B0aW9uc0Z1bmM/OiAoXG4gICAgcm93OiBhbnksXG4gICAgY2VsbEZpZWxkPzogc3RyaW5nXG4gICkgPT4gUHJvbWlzZTxhbnlbXT4gfCBPYnNlcnZhYmxlPGFueVtdPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybU9wdGlvbnMge1xuICBbZmllbGQ6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgT3B0aW9uTGFiZWxUeXBlID0gJ2NkJyB8ICdjZHQnIHwgJ3ZsJztcblxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uPFQgPSBhbnk+IHtcbiAgdmFsdWU6IFQ7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL21vZGVscy9mb3JtLXNjaGVtYS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgVmFsaWRhdG9yRm4sXG4gIEZvcm1Db250cm9sT3B0aW9ucyxcbiAgQXN5bmNWYWxpZGF0b3JGbixcbiAgRm9ybUdyb3VwLFxuICBGb3JtQXJyYXksXG4gIEFic3RyYWN0Q29udHJvbCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRVRTSW5wdXRUeXBlIH0gZnJvbSAnLi9pbmRleC5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVUU0Zvcm1TY2hlbWE8XG4gIFRGb3JtR3JvdXAgZXh0ZW5kcyB7XG4gICAgW0sgaW4ga2V5b2YgVEZvcm1Hcm91cF06IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gIH0gPSBhbnksXG4gIFRPcHRpb25MYWJlbFR5cGUgPSBPcHRpb25MYWJlbFR5cGUsXG4gIFRJbnB1dFR5cGUgPSBFVFNJbnB1dFR5cGVcbj4ge1xuICBhc3luY1ZhbGlkYXRvcnM/OiBBc3luY1ZhbGlkYXRvckZuW107XG4gIGF1dG9QaWNrVmFsdWVGaWVsZD86IGJvb2xlYW47XG4gIGNoZWNrZWQ/OiBib29sZWFuO1xuICBjbGVhck9uRGlzYWJsZT86IGJvb2xlYW47XG4gIGNscz86IHN0cmluZztcbiAgY291bnRyeUNvZGUzPzogc3RyaW5nO1xuICBkZWNpbWFsUG9pbnRzPzogbnVtYmVyO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkSWY/OiAocm93OiBhbnksIGNlbGxGaWVsZD86IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgaGlkZUlmRnVuYz86IChyb3cpID0+IGJvb2xlYW47XG4gIGZpZWxkOiBrZXlvZiBURm9ybUdyb3VwO1xuICBmb3JtPzogRm9ybUdyb3VwPFRGb3JtR3JvdXA+O1xuICBnZXRDb3VudHJ5Q29kZTNLZXk/OiBzdHJpbmc7XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIGhpbnQ/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBpc1JlcXVpcmVkPzogYm9vbGVhbjtcbiAgaXNTZWFyY2hGaWVsZD86IGJvb2xlYW47XG4gIGxhYmVsPzogc3RyaW5nO1xuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xuICBsYWJlbFR5cGU/OiBUT3B0aW9uTGFiZWxUeXBlO1xuICBvcHRpb25MYWJlbEZvcm1hdHRlcj86IChyb3cpID0+IHN0cmluZztcbiAgbWF4PzogbnVtYmVyO1xuICBtaW4/OiBudW1iZXI7XG4gIG5vRm9ybWF0PzogYm9vbGVhbjtcbiAgb25DaGFuZ2VGdW5jPzogKHJvdzogYW55LCBjZWxsPzogYW55LCBfdGhpcz86IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnlbXT4gfCBhbnk7XG4gIG9wdGlvbkZvcm1hdHRlcj86IChpdGVtOiBhbnkpID0+IHN0cmluZztcbiAgb3B0aW9ucz86IGFueVtdO1xuICBvcHRpb25zQXN5bmM/OiBPYnNlcnZhYmxlPGFueVtdPiB8IFByb21pc2U8YW55W10+O1xuICBvcHRpb25zSW5pdEZ1bmM/OiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgb3B0aW9uc0tleT86IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHNlYXJjaEZ1bmM/OiAoLi4uYXJncykgPT4gYW55O1xuICBzZXRBc0NvdW50cnlDb2RlMz86IGJvb2xlYW47XG4gIHNob3dWYWxpZGF0aW9uPzogYm9vbGVhbjtcbiAgc2hvd1ZhbGlkYXRpb25JY29uPzogYm9vbGVhbjtcbiAgdGVtcGxhdGVWYWx1ZT86IGFueTtcbiAgdHlwZT86IFRJbnB1dFR5cGU7XG4gIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbltdO1xuICB2YWx1ZT86IGFueTtcbiAgdmFsdWVGaWVsZD86IHN0cmluZztcbiAgb3B0aW9uc0Z1bmM/OiAoLi4udmFsOiBhbnkpID0+IE9ic2VydmFibGU8YW55W10+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtT3B0aW9ucyB7XG4gIFtmaWVsZDogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgdHlwZSBPcHRpb25MYWJlbFR5cGUgPSAnY2QnIHwgJ2NkdCcgfCAndmwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElPcHRpb248VCA9IGFueT4ge1xuICB2YWx1ZTogVDtcbiAgbGFiZWw6IHN0cmluZztcbn1cbiJdfQ==