@snabcentr/client-core 3.15.2 → 3.16.2

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.
@@ -3,6 +3,7 @@ import { inject, Injectable, RendererFactory2 } from '@angular/core';
3
3
  import { Meta, Title } from '@angular/platform-browser';
4
4
  import { Router } from '@angular/router';
5
5
  import { get, isNil, isString } from 'lodash-es';
6
+ import { SC_PAGE_QUERY_PARAM, scParsePageQueryParam as scParsePageQueryParameter } from '../../pagination/sc-page-query-param';
6
7
  import { ScIdOrSlugPipe } from '../../pipes/sc-id-or-slug.pipe';
7
8
  import { ScMediaImageTransformerPipe } from '../../pipes/sc-media-image-transformer.pipe';
8
9
  import { SC_COMPANY_INFO } from '../../tokens/sc-company-info';
@@ -128,9 +129,12 @@ export class ScSeoService {
128
129
  const keywords = item.seo?.keywords ?? `${item.name}, ${this.catalogItemDefaultSeo.keywords}`;
129
130
  const meta = item.seo?.meta ?? [];
130
131
  // Устанавливаем стандартные seo-параметры, в том числе и каноническую ссылку.
132
+ // Страницы пагинации индексируются отдельно, поэтому каноническая ссылка содержит номер страницы из query-параметров.
133
+ const page = scParsePageQueryParameter(this.router.parseUrl(this.router.url).queryParamMap.get(SC_PAGE_QUERY_PARAM));
134
+ const canonicalUrl = page > 1 ? `${url}?${SC_PAGE_QUERY_PARAM}=${page}` : url;
131
135
  this.setMetaTags(title, description, keywords, meta, ['index', 'follow']);
132
136
  this.setOpenGraphMetaTags(title, description, url, this.mediaImageTransformerPipe.transform(item.image, true));
133
- this.setCanonicalLink(url);
137
+ this.setCanonicalLink(canonicalUrl);
134
138
  // Устанавливаем Schema.org параметры.
135
139
  this.setSchemaOrgData(this.schemaOrgFactory.merge([this.schemaOrgFactory.generateForOrganization(), ...(schemaOrgData ? [schemaOrgData] : [])]));
136
140
  }
@@ -234,4 +238,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
234
238
  providedIn: 'root',
235
239
  }]
236
240
  }] });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3Nlby9zZXJ2aWNlcy9zYy1zZW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTWpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUlqRTs7R0FFRztBQUlILE1BQU0sT0FBTyxZQUFZO0lBSHpCO1FBSUk7O1dBRUc7UUFDYyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV2RDs7V0FFRztRQUNjLGVBQVUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUUzRDs7V0FFRztRQUNjLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRTNFOztX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USxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQTdQUSxZQUFZO21IQUFaLFlBQVksY0FGVCxNQUFNOzs0RkFFVCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhLCBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGdldCwgaXNOaWwsIGlzU3RyaW5nIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFRoaW5nLCBXaXRoQ29udGV4dCB9IGZyb20gJ3NjaGVtYS1kdHMnO1xuXG5pbXBvcnQgeyBTY0lDYXRhbG9nSXRlbSB9IGZyb20gJy4uLy4uL2NhdGFsb2cvaW50ZXJmYWNlcy9zYy1pLWNhdGFsb2ctaXRlbSc7XG5pbXBvcnQgeyBTY0lDYXRlZ29yeSB9IGZyb20gJy4uLy4uL2NhdGFsb2cvaW50ZXJmYWNlcy9zYy1pLWNhdGVnb3J5JztcbmltcG9ydCB7IFNjSVZpcnR1YWxDYXRlZ29yeSB9IGZyb20gJy4uLy4uL2NhdGFsb2cvaW50ZXJmYWNlcy9zYy1pLXZpcnR1YWwtY2F0ZWdvcnknO1xuaW1wb3J0IHsgU2NJZE9yU2x1Z1BpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9zYy1pZC1vci1zbHVnLnBpcGUnO1xuaW1wb3J0IHsgU2NNZWRpYUltYWdlVHJhbnNmb3JtZXJQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvc2MtbWVkaWEtaW1hZ2UtdHJhbnNmb3JtZXIucGlwZSc7XG5pbXBvcnQgeyBTQ19DT01QQU5ZX0lORk8gfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtY29tcGFueS1pbmZvJztcbmltcG9ydCB7IFNDX0NBVEFMT0dfSVRFTV9QQUdFX01FVEEsIFNDX0RFRkFVTFRfUEFHRV9NRVRBIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLWRlZmF1bHQtcGFnZS1tZXRhJztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBTY2hlbWFPcmdGYWN0b3J5IH0gZnJvbSAnLi4vY2xhc3Nlcy9zY2hlbWEtb3JnLWZhY3RvcnknO1xuaW1wb3J0IHsgU2NJU2VvIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zYy1pLXNlbyc7XG5pbXBvcnQgeyBSb2JvdHNUYWdUeXBlIH0gZnJvbSAnLi4vdHlwZXMvcm9ib3RzLXRhZy10eXBlJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0YPQv9GA0LDQstC70LXQvdC40Y8gU0VPLdC/0LDRgNCw0LzQtdGC0YDQsNC80LguXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjU2VvU2VydmljZSB7XG4gICAgLyoqXG4gICAgICog0JTQsNC90L3Ri9C1INC+INC60L7QvNC/0LDQvdC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wYW55SW5mbyA9IGluamVjdChTQ19DT01QQU5ZX0lORk8pO1xuXG4gICAgLyoqXG4gICAgICog0JzQtdGC0LDQtNCw0L3QvdGL0LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0U2VvID0gaW5qZWN0KFNDX0RFRkFVTFRfUEFHRV9NRVRBKTtcblxuICAgIC8qKlxuICAgICAqINCc0LXRgtCw0LTQsNC90L3Ri9C1INGB0YLRgNCw0L3QuNGG0Ysg0LrQsNGC0LDQu9C+0LPQsCDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhdGFsb2dJdGVtRGVmYXVsdFNlbyA9IGluamVjdChTQ19DQVRBTE9HX0lURU1fUEFHRV9NRVRBKTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L/RgNC40LvQvtC20LXQvdC40Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmxzID0gaW5qZWN0KFNDX1VSTFMpO1xuXG4gICAgLyoqXG4gICAgICog0J/QsNC50L8sINCy0L7Qt9Cy0YDQsNGJ0LDRjtGJ0LjQuSDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lgg0YHQuNC80LLQvtC70YzQvdC+0LUg0L7QsdC+0LfQvdCw0YfQtdC90LjQtSAoc2x1Zykg0LjRgdGF0L7QtNGPINC40Lcg0L3QsNGB0YLRgNC+0LXQuiDQvtC60YDRg9C20LXQvdC40Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSBpZE9yU2x1Z1BpcGU6IFNjSWRPclNsdWdQaXBlID0gaW5qZWN0KFNjSWRPclNsdWdQaXBlKTtcblxuICAgIC8qKlxuICAgICAqINCf0LDQudC/INC00LvRjyDRhNC+0YDQvNC40YDQvtCy0LDQvdC40Y8g0L/QvtC70L3QvtCz0L4gVVJJINC40LfQvtCx0YDQsNC20LXQvdC40Y8g0L3QsCBtZWRpYSDRgdC10YDQstC10YDQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lZGlhSW1hZ2VUcmFuc2Zvcm1lclBpcGUgPSBpbmplY3QoU2NNZWRpYUltYWdlVHJhbnNmb3JtZXJQaXBlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRg9GB0YLQsNC90L7QstC60Lgg0LzQtdGC0LDQtNCw0L3QvdGL0YUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG1ldGFTZXJ2aWNlID0gaW5qZWN0KE1ldGEpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC80LDRgNGI0YDRg9GC0LjQt9Cw0YbQuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0YPQv9GA0LDQstC70LXQvdC40Y8g0LfQsNCz0L7Qu9C+0LLQutC+0Lwg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlU2VydmljZSA9IGluamVjdChUaXRsZSk7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YrQtdC60YIge0BsaW5rIERvY3VtZW50fSwg0L/RgNC10LTQvtGB0YLQsNCy0LvRj9GO0YnQuNC5INC00L7RgdGC0YPQvyDQuiBET00g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIC8qKlxuICAgICAqINCk0LDQsdGA0LjQutCwINC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINC00LDQvdC90YvRhSBTY2hlbWEub3JnLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hT3JnRmFjdG9yeSA9IGluamVjdChTY2hlbWFPcmdGYWN0b3J5KTtcblxuICAgIC8qKlxuICAgICAqINCk0LDQsdGA0LjQutCwINC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINGN0LrQt9C10LzQv9C70Y/RgNC+0LIge0BsaW5rIFJlbmRlcmVyMn0uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlckZhY3RvcnkgPSBpbmplY3QoUmVuZGVyZXJGYWN0b3J5Mik7XG5cbiAgICAvKipcbiAgICAgKiDQrdC60LfQtdC80L/Qu9GP0YAge0BsaW5rIFJlbmRlcmVyMn0g0LTQu9GPINCx0LXQt9C+0L/QsNGB0L3QvtC5INGA0LDQsdC+0YLRiyDRgSBET00uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBzZW8g0L/QsNGA0LDQvNC10YLRgNGLINC90LAg0L7RgdC90L7QstC1INGD0LrQsNC30LDQvdC90L7Qs9C+INGA0LXRgdGD0YDRgdCwLiDQldGB0LvQuCDQutCw0LrQvtCz0L4t0YLQviDRgtC10LPQsCDQvdC10YIsINCx0YPQtNC10YIg0YPRgdGC0LDQvdC+0LLQu9C10L3QviDQt9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlc291cmNlINCg0LXRgdGD0YDRgSDQvdCwINC+0YHQvdC+0LLQtSDQutC+0YLQvtGA0L7Qs9C+INC90LXQvtCx0YXQvtC00LjQvNC+INGD0YHRgtCw0L3QvtCy0LjRgtGMINC80LXRgtCwLdGC0LXQs9C4LlxuICAgICAqIEBwYXJhbSBpbWcg0JjQt9C+0LHRgNCw0LbQtdC90LjQtS4g0JXRgdC70Lgg0L3QtSDQv9GA0LjRiNC70L4sINGC0L4g0LHRg9C00LXRgiDRg9GB0YLQsNC90L7QstC70LXQvdC+INC30L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4gKGxvZ28g0LrQvtC80L/QsNC90LjQuCkuXG4gICAgICogQHBhcmFtIHJvYm90cyDQodC/0LjRgdC+0Logcm9ib3RzLdGC0LXQs9C+0LIg0LTQu9GPINGB0YLRgNCw0L3QuNGG0YsuINCX0L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4gKFsnaW5kZXgnLCAnZm9sbG93J10pLlxuICAgICAqIEBwYXJhbSBzY2hlbWFPcmdEYXRhINCU0LDQvdC90YvQtSBTY2hlbWEub3JnINC00LvRjyDQstGB0YLRgNCw0LjQstCw0L3QuNGPINC90LAg0YHRgtGA0LDQvdC40YbQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0RnJvbVJlc291cmNlKHJlc291cmNlPzogU2NJU2VvLCBpbWc/OiBzdHJpbmcsIHJvYm90cz86IFJvYm90c1RhZ1R5cGVbXSwgc2NoZW1hT3JnRGF0YT86IFdpdGhDb250ZXh0PFRoaW5nPik6IHZvaWQge1xuICAgICAgICBjb25zdCB1cGRhdGVkUmVzb3VyY2UgPSB7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy5yZXBsYWNlVGVtcGxhdGVzKHJlc291cmNlPy50aXRsZSA/PyB0aGlzLmRlZmF1bHRTZW8udGl0bGUsIHJlc291cmNlPy5pbnN0YW5jZURhdGEgPz8ge30pLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMucmVwbGFjZVRlbXBsYXRlcyhyZXNvdXJjZT8uZGVzY3JpcHRpb24gPz8gdGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9uLCByZXNvdXJjZT8uaW5zdGFuY2VEYXRhID8/IHt9KSxcbiAgICAgICAgICAgIGtleXdvcmRzOiByZXNvdXJjZT8ua2V5d29yZHMgPz8gdGhpcy5kZWZhdWx0U2VvLmtleXdvcmRzLFxuICAgICAgICAgICAgbWV0YTogcmVzb3VyY2U/Lm1ldGEgPz8gW10sXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJscy5zaXRlVXJsfSR7dGhpcy5yb3V0ZXIudXJsfWA7XG5cbiAgICAgICAgdGhpcy5zZXRNZXRhVGFncyh1cGRhdGVkUmVzb3VyY2UudGl0bGUsIHVwZGF0ZWRSZXNvdXJjZS5kZXNjcmlwdGlvbiwgdXBkYXRlZFJlc291cmNlLmtleXdvcmRzLCB1cGRhdGVkUmVzb3VyY2UubWV0YSwgcm9ib3RzID8/IFsnaW5kZXgnLCAnZm9sbG93J10pO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFUYWdzKHVwZGF0ZWRSZXNvdXJjZS50aXRsZSwgdXBkYXRlZFJlc291cmNlLmRlc2NyaXB0aW9uLCB1cmwsIGltZyA/PyB0aGlzLnVybHMubG9nb1VybCk7XG4gICAgICAgIHRoaXMuc2V0Q2Fub25pY2FsTGluayh1cmwpO1xuXG4gICAgICAgIC8vINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdC8IFNjaGVtYS5vcmcg0L/QsNGA0LDQvNC10YLRgNGLLlxuICAgICAgICB0aGlzLnNldFNjaGVtYU9yZ0RhdGEodGhpcy5zY2hlbWFPcmdGYWN0b3J5Lm1lcmdlKFt0aGlzLnNjaGVtYU9yZ0ZhY3RvcnkuZ2VuZXJhdGVGb3JPcmdhbml6YXRpb24oKSwgLi4uKHNjaGVtYU9yZ0RhdGEgPyBbc2NoZW1hT3JnRGF0YV0gOiBbXSldKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgc2VvINC/0LDRgNCw0LzQtdGC0YDRiyDRgdC+INC30L3QsNGH0LXQvdC40LXQvCDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aXRsZSDQl9Cw0LPQvtC70L7QstC+0Log0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy4g0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiAoWydpbmRleCcsICdmb2xsb3cnXSkuXG4gICAgICogQHBhcmFtIHNjaGVtYU9yZ0RhdGEg0JTQsNC90L3Ri9C1IFNjaGVtYS5vcmcg0LTQu9GPINCy0YHRgtGA0LDQuNCy0LDQvdC40Y8g0L3QsCDRgdGC0YDQsNC90LjRhtC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRCeURlZmF1bHQodGl0bGU/OiBzdHJpbmcsIHJvYm90cz86IFJvYm90c1RhZ1R5cGVbXSwgc2NoZW1hT3JnRGF0YT86IFdpdGhDb250ZXh0PFRoaW5nPik6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEZyb21SZXNvdXJjZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogYCR7dGl0bGUgPz8gdGhpcy5kZWZhdWx0U2VvLnRpdGxlfSAtICR7dGhpcy5jb21wYW55SW5mby5uYW1lfWAsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRpdGxlID8gYCR7dGl0bGV9LCAke3RoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbn1gIDogdGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMudXJscy5sb2dvVXJsLFxuICAgICAgICAgICAgcm9ib3RzID8/IFsnaW5kZXgnLCAnZm9sbG93J10sXG4gICAgICAgICAgICBzY2hlbWFPcmdEYXRhXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgc2VvINC/0LDRgNCw0LzQtdGC0YDRiyDRgdC+INC30L3QsNGH0LXQvdC40LXQvCDQv9C+INGD0LzQvtC70YfQsNC90LjRji4g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LfQvdCw0YfQtdC90LjQtSBcItC90LUg0LjQvdC00LXQutGB0LjRgNC+0LLQsNGC0YxcIiDQtNC70Y8g0L/QvtC40YHQutC+0LLRi9GFINGA0L7QsdC+0YLQvtCyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRCeURlZmF1bHRBc05vSW5kZXhlZCh0aXRsZT86IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEJ5RGVmYXVsdCh0aXRsZSwgWydub2luZGV4JywgJ25vZm9sbG93JywgJ25vYXJjaGl2ZSddKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBzZW8t0L/QsNGA0LDQvNC10YLRgNGLINC00LvRjyDRg9C60LDQt9Cw0L3QvdC+0LPQviDRjdC70LXQvNC10L3RgtCwINC60LDRgtCw0LvQvtCz0LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbSDQlNCw0L3QvdGL0LUg0L7QsSDRjdC70LXQvNC10L3RgtC1INC60LDRgtCw0LvQvtCz0LAuXG4gICAgICogQHBhcmFtIHVybFBhdGggVXJsINC/0YPRgtGMINC6INGN0LvQtdC80LXQvdGC0YMg0LrQsNGC0LDQu9C+0LPQsC4g0JIg0L/Rg9GC0Lgg0LTQvtC70LbQtdC9INC/0YDQuNGB0YPRgtGB0YLQstC+0LLQsNGC0Ywg0YjQsNCx0LvQvtC9ICc6aWQnLCDQvtCx0L7Qt9C90LDRh9Cw0Y7RidC40Lkg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0Y3Qu9C10LzQtdC90YLQsCDQutCw0YLQsNC70L7Qs9CwINC00LvRjyDQv9C+0LTRgdGC0LDQvdC+0LLQutC4LlxuICAgICAqIEBwYXJhbSBzY2hlbWFPcmdEYXRhINCU0LDQvdC90YvQtSBTY2hlbWEub3JnINGN0LvQtdC80LXQvdGC0LAg0LrQsNGC0LDQu9C+0LPQsFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRGb3JDYXRhbG9nSXRlbShpdGVtOiBTY0lDYXRhbG9nSXRlbTxTY0lDYXRlZ29yeSB8IFNjSVZpcnR1YWxDYXRlZ29yeT4sIHVybFBhdGg6IHN0cmluZywgc2NoZW1hT3JnRGF0YT86IFdpdGhDb250ZXh0PFRoaW5nPik6IHZvaWQge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVybHMuc2l0ZVVybH0ke3VybFBhdGgucmVwbGFjZSgnOmlkJywgdGhpcy5pZE9yU2x1Z1BpcGUudHJhbnNmb3JtKGl0ZW0pLnRvU3RyaW5nKCkpfWA7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXG4gICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5yZXBsYWNlVGVtcGxhdGVzKGl0ZW0uc2VvPy50aXRsZSA/PyB0aGlzLmNhdGFsb2dJdGVtRGVmYXVsdFNlby50aXRsZSA/PyBgJHtpdGVtLm5hbWV9IC0g0JrRg9C/0LjRgtGMINCyICR7dGhpcy5jb21wYW55SW5mby5uYW1lfWAsIGl0ZW0pO1xuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMucmVwbGFjZVRlbXBsYXRlcyhcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXG4gICAgICAgICAgICBpdGVtLnNlbz8uZGVzY3JpcHRpb24gPz8gdGhpcy5jYXRhbG9nSXRlbURlZmF1bHRTZW8uZGVzY3JpcHRpb24gPz8gYCR7aXRlbS5uYW1lfSAtINCa0YPQv9C40YLRjCDQv9C+INCy0YvQs9C+0LTQvdGL0Lwg0YbQtdC90LDQvCDQsiAke3RoaXMuY29tcGFueUluZm8ubmFtZX1gLFxuICAgICAgICAgICAgaXRlbVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBrZXl3b3JkcyA9IGl0ZW0uc2VvPy5rZXl3b3JkcyA/PyBgJHtpdGVtLm5hbWV9LCAke3RoaXMuY2F0YWxvZ0l0ZW1EZWZhdWx0U2VvLmtleXdvcmRzfWA7XG4gICAgICAgIGNvbnN0IG1ldGEgPSBpdGVtLnNlbz8ubWV0YSA/PyBbXTtcblxuICAgICAgICAvLyDQo9GB0YLQsNC90LDQstC70LjQstCw0LXQvCDRgdGC0LDQvdC00LDRgNGC0L3Ri9C1IHNlby3Qv9Cw0YDQsNC80LXRgtGA0YssINCyINGC0L7QvCDRh9C40YHQu9C1INC4INC60LDQvdC+0L3QuNGH0LXRgdC60YPRjiDRgdGB0YvQu9C60YMuXG4gICAgICAgIHRoaXMuc2V0TWV0YVRhZ3ModGl0bGUsIGRlc2NyaXB0aW9uLCBrZXl3b3JkcywgbWV0YSwgWydpbmRleCcsICdmb2xsb3cnXSk7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YVRhZ3ModGl0bGUsIGRlc2NyaXB0aW9uLCB1cmwsIHRoaXMubWVkaWFJbWFnZVRyYW5zZm9ybWVyUGlwZS50cmFuc2Zvcm0oaXRlbS5pbWFnZSwgdHJ1ZSkpO1xuICAgICAgICB0aGlzLnNldENhbm9uaWNhbExpbmsodXJsKTtcblxuICAgICAgICAvLyDQo9GB0YLQsNC90LDQstC70LjQstCw0LXQvCBTY2hlbWEub3JnINC/0LDRgNCw0LzQtdGC0YDRiy5cbiAgICAgICAgdGhpcy5zZXRTY2hlbWFPcmdEYXRhKHRoaXMuc2NoZW1hT3JnRmFjdG9yeS5tZXJnZShbdGhpcy5zY2hlbWFPcmdGYWN0b3J5LmdlbmVyYXRlRm9yT3JnYW5pemF0aW9uKCksIC4uLihzY2hlbWFPcmdEYXRhID8gW3NjaGVtYU9yZ0RhdGFdIDogW10pXSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCX0LDQvNC10L3Rj9C10YIg0YjQsNCx0LvQvtC90Ysg0LIg0YLQtdC60YHRgtC1INC90LAg0LfQvdCw0YfQtdC90LjRjyDQuNC3INC+0LHRitC10LrRgtCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRleHQg0KLQtdC60YHRgiDRgSDRiNCw0LHQu9C+0L3QsNC80LguXG4gICAgICogQHBhcmFtIGluc3RhbmNlRGF0YSDQntCx0YrQtdC60YIg0YEg0LTQsNC90L3Ri9C80Lgg0LTQu9GPINC30LDQvNC10L3Riy5cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICAgIHByaXZhdGUgcmVwbGFjZVRlbXBsYXRlcyh0ZXh0OiBzdHJpbmcsIGluc3RhbmNlRGF0YTogb2JqZWN0KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRleHQucmVwbGFjZUFsbCgvXFwkXFx7KFtefV0rKVxcfS9nLCAoX3RlbXBsYXRlOiBzdHJpbmcsIGZpZWxkUGF0aFZhcmlhbnRzOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWU6IHVua25vd24gPSBmaWVsZFBhdGhWYXJpYW50c1xuICAgICAgICAgICAgICAgIC5zcGxpdCgnfCcpXG4gICAgICAgICAgICAgICAgLm1hcCgoZmllbGRQYXRoKSA9PiBmaWVsZFBhdGgudHJpbSgpKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAgICAgICAubWFwKChmaWVsZFBhdGgpID0+IGdldChpbnN0YW5jZURhdGEsIGZpZWxkUGF0aCkgYXMgdW5rbm93bilcbiAgICAgICAgICAgICAgICAuZmluZCgoZmllbGRWYWx1ZSkgPT4gIWlzTmlsKGZpZWxkVmFsdWUpKTtcblxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvbm8tbmVzdGVkLWNvbmRpdGlvbmFsXG4gICAgICAgICAgICByZXR1cm4gaXNOaWwodmFsdWUpID8gJycgOiBpc1N0cmluZyh2YWx1ZSkgPyB2YWx1ZSA6IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0YHQtSBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0YsuINCV0YHQu9C4INC60LDQutC+0Lkt0LvQuNCx0L4g0LjQtyDQv9Cw0YDQsNC80LXRgtGA0L7QsiDQvdC1INGD0LrQsNC30LDQvSwg0LTQu9GPINC90LXQs9C+INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGC0YHRjyDQt9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiDQntC/0LjRgdCw0L3QuNC1INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGtleXdvcmRzINCa0LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBtZXRhINCc0LDRgdGB0LjQsiDQtNC+0L/QvtC70L3QuNGC0LXQu9GM0L3Ri9GFINC30L3QsNGH0LXQvdC40Lkg0LzQtdGC0LDRgtC10LPQvtCyLlxuICAgICAqIEBwYXJhbSByb2JvdHMg0KHQv9C40YHQvtC6IHJvYm90cyDRgtC10LPQvtCyINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0TWV0YVRhZ3MoXG4gICAgICAgIHRpdGxlOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8udGl0bGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb24sXG4gICAgICAgIGtleXdvcmRzOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8ua2V5d29yZHMsXG4gICAgICAgIG1ldGE6IFNjSVNlb1snbWV0YSddID0gW10sXG4gICAgICAgIHJvYm90czogUm9ib3RzVGFnVHlwZVtdID0gWydpbmRleCcsICdmb2xsb3cnXVxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZSh0aXRsZSk7XG5cbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBuYW1lOiAnZGVzY3JpcHRpb24nLCBjb250ZW50OiBkZXNjcmlwdGlvbiB9KTtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBuYW1lOiAna2V5d29yZHMnLCBjb250ZW50OiBrZXl3b3JkcyB9KTtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBuYW1lOiAncm9ib3RzJywgY29udGVudDogcm9ib3RzLmpvaW4oJywgJykgfSk7XG5cbiAgICAgICAgbWV0YS5mb3JFYWNoKCh0YWcpID0+IHtcbiAgICAgICAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgbmFtZTogdGFnLm5hbWUsIGNvbnRlbnQ6IHRhZy5jb250ZW50IH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBPcGVuIEdyYXBoIG1ldGEt0YLQtdCz0LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2dUaXRsZSDQl9Cw0LPQvtC70L7QstC+0LouXG4gICAgICogQHBhcmFtIG9nRGVzY3JpcHRpb24g0J7Qv9C40YHQsNC90LjQtS5cbiAgICAgKiBAcGFyYW0gb2dVcmwgVXJsLlxuICAgICAqIEBwYXJhbSBvZ0ltZyDQodGB0YvQu9C60LAg0L3QsCDQuNC30L7QsdGA0LDQttC10L3QuNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0T3BlbkdyYXBoTWV0YVRhZ3Mob2dUaXRsZTogc3RyaW5nLCBvZ0Rlc2NyaXB0aW9uOiBzdHJpbmcsIG9nVXJsOiBzdHJpbmcsIG9nSW1nOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnR5cGUnLCBjb250ZW50OiAnd2Vic2l0ZScgfSk7XG4gICAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp0aXRsZScsIGNvbnRlbnQ6IG9nVGl0bGUgfSk7XG4gICAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzpkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IG9nRGVzY3JpcHRpb24gfSk7XG4gICAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp1cmwnLCBjb250ZW50OiBvZ1VybCB9KTtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmltYWdlJywgY29udGVudDogb2dJbWcgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YLQtdCzINC60LDQvdC+0L3QuNGH0LXRgdC60L7QuSDRgdGC0YDQsNC90LjRhtGLIDxsaW5rIHJlbD1cImNhbm9uaWNhbFwiIGhyZWY9XCIuLi5cIiAvPi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1cmwgVVJMINC60L7RgtC+0YDRi9C5INC90LXQvtCx0YXQvtC00LjQvNC+INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQsiDQutCw0YfQtdGB0YLQstC1INGB0YHRi9C70LrQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldENhbm9uaWNhbExpbmsodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8g0KPQtNCw0LvRj9C10Lwg0YHRg9GJ0LXRgdGC0LLRg9GO0YnQuNC5IGxpbmsgY2Fub25pY2FsLlxuICAgICAgICBjb25zdCBleGlzdGluZ0xpbmsgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2xpbmtbcmVsPVwiY2Fub25pY2FsXCJdJyk7XG5cbiAgICAgICAgaWYgKGV4aXN0aW5nTGluaz8ucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChleGlzdGluZ0xpbmsucGFyZW50Tm9kZSwgZXhpc3RpbmdMaW5rKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vINCh0L7Qt9C00LDRkdC8INC4INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdC8INC90L7QstGL0Lkg0YLQtdCzLlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgIGNvbnN0IGxpbmsgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUobGluaywgJ3JlbCcsICdjYW5vbmljYWwnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUobGluaywgJ2hyZWYnLCB1cmwpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuaGVhZCwgbGluayk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgU2NoZW1hLm9yZyDQvtCx0YrQtdC60YIg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRhINCU0LDQvdC90YvQtSBTY2hlbWEub3JnINC00LvRjyDQstGB0YLRgNCw0LjQstCw0L3QuNGPINC90LAg0YHRgtGA0LDQvdC40YbQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFNjaGVtYU9yZ0RhdGE8VCBleHRlbmRzIFRoaW5nPihkYXRhOiBXaXRoQ29udGV4dDxUPik6IHZvaWQge1xuICAgICAgICBjb25zdCBwcm9qZWN0QXR0cmlidXRlTmFtZSA9ICdkYXRhLXNjLXNjaGVtYS1vcmcnO1xuICAgICAgICAvLyDQo9C00LDQu9GP0LXQvCDQstGB0LUg0YDQsNC90LXQtSDRgdC+0LfQtNCw0L3QvdGL0LUg0YHQutGA0LjQv9GC0YsgU2NoZW1hLm9yZyAo0L/QviDRg9C90LjQutCw0LvRjNC90L7QvNGDINCw0YLRgNC40LHRg9GC0YMg0L/RgNC+0LXQutGC0LApLlxuICAgICAgICBjb25zdCBleGlzdGluZ1NjcmlwdHMgPSB0aGlzLmRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvckFsbChgc2NyaXB0WyR7cHJvamVjdEF0dHJpYnV0ZU5hbWV9XWApO1xuICAgICAgICBleGlzdGluZ1NjcmlwdHMuZm9yRWFjaCgoZXhpc3RpbmdTY3JpcHQpID0+IHtcbiAgICAgICAgICAgIGlmIChleGlzdGluZ1NjcmlwdC5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChleGlzdGluZ1NjcmlwdC5wYXJlbnROb2RlLCBleGlzdGluZ1NjcmlwdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgY29uc3Qgc2NyaXB0ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc2NyaXB0LCAndHlwZScsICdhcHBsaWNhdGlvbi9sZCtqc29uJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHNjcmlwdCwgcHJvamVjdEF0dHJpYnV0ZU5hbWUsICcnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChzY3JpcHQsIHRoaXMuZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoSlNPTi5zdHJpbmdpZnkoZGF0YSkpKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50LmhlYWQsIHNjcmlwdCk7XG4gICAgfVxufVxuIl19
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3Nlby9zZXJ2aWNlcy9zYy1zZW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsSUFBSSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9ILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUlqRTs7R0FFRztBQUlILE1BQU0sT0FBTyxZQUFZO0lBSHpCO1FBSUk7O1dBRUc7UUFDYyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV2RDs7V0FFRztRQUNjLGVBQVUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMs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O1FBQ2xELG9GQUFvRjtRQUNwRixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLG9CQUFvQixHQUFHLENBQUMsQ0FBQztRQUMvRixlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDekUsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsbUVBQW1FO1FBQ25FLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7K0dBalFRLFlBQVk7bUhBQVosWUFBWSxjQUZULE1BQU07OzRGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZ2V0LCBpc05pbCwgaXNTdHJpbmcgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgVGhpbmcsIFdpdGhDb250ZXh0IH0gZnJvbSAnc2NoZW1hLWR0cyc7XG5cbmltcG9ydCB7IFNjSUNhdGFsb2dJdGVtIH0gZnJvbSAnLi4vLi4vY2F0YWxvZy9pbnRlcmZhY2VzL3NjLWktY2F0YWxvZy1pdGVtJztcbmltcG9ydCB7IFNjSUNhdGVnb3J5IH0gZnJvbSAnLi4vLi4vY2F0YWxvZy9pbnRlcmZhY2VzL3NjLWktY2F0ZWdvcnknO1xuaW1wb3J0IHsgU2NJVmlydHVhbENhdGVnb3J5IH0gZnJvbSAnLi4vLi4vY2F0YWxvZy9pbnRlcmZhY2VzL3NjLWktdmlydHVhbC1jYXRlZ29yeSc7XG5pbXBvcnQgeyBTQ19QQUdFX1FVRVJZX1BBUkFNLCBzY1BhcnNlUGFnZVF1ZXJ5UGFyYW0gYXMgc2NQYXJzZVBhZ2VRdWVyeVBhcmFtZXRlciB9IGZyb20gJy4uLy4uL3BhZ2luYXRpb24vc2MtcGFnZS1xdWVyeS1wYXJhbSc7XG5pbXBvcnQgeyBTY0lkT3JTbHVnUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3NjLWlkLW9yLXNsdWcucGlwZSc7XG5pbXBvcnQgeyBTY01lZGlhSW1hZ2VUcmFuc2Zvcm1lclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9zYy1tZWRpYS1pbWFnZS10cmFuc2Zvcm1lci5waXBlJztcbmltcG9ydCB7IFNDX0NPTVBBTllfSU5GTyB9IGZyb20gJy4uLy4uL3Rva2Vucy9zYy1jb21wYW55LWluZm8nO1xuaW1wb3J0IHsgU0NfQ0FUQUxPR19JVEVNX1BBR0VfTUVUQSwgU0NfREVGQVVMVF9QQUdFX01FVEEgfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtZGVmYXVsdC1wYWdlLW1ldGEnO1xuaW1wb3J0IHsgU0NfVVJMUyB9IGZyb20gJy4uLy4uL3Rva2Vucy9zYy11cmxzJztcbmltcG9ydCB7IFNjaGVtYU9yZ0ZhY3RvcnkgfSBmcm9tICcuLi9jbGFzc2VzL3NjaGVtYS1vcmctZmFjdG9yeSc7XG5pbXBvcnQgeyBTY0lTZW8gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NjLWktc2VvJztcbmltcG9ydCB7IFJvYm90c1RhZ1R5cGUgfSBmcm9tICcuLi90eXBlcy9yb2JvdHMtdGFnLXR5cGUnO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyBTRU8t0L/QsNGA0LDQvNC10YLRgNCw0LzQuC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NTZW9TZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiDQlNCw0L3QvdGL0LUg0L4g0LrQvtC80L/QsNC90LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBhbnlJbmZvID0gaW5qZWN0KFNDX0NPTVBBTllfSU5GTyk7XG5cbiAgICAvKipcbiAgICAgKiDQnNC10YLQsNC00LDQvdC90YvQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTZW8gPSBpbmplY3QoU0NfREVGQVVMVF9QQUdFX01FVEEpO1xuXG4gICAgLyoqXG4gICAgICog0JzQtdGC0LDQtNCw0L3QvdGL0LUg0YHRgtGA0LDQvdC40YbRiyDQutCw0YLQsNC70L7Qs9CwINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2F0YWxvZ0l0ZW1EZWZhdWx0U2VvID0gaW5qZWN0KFNDX0NBVEFMT0dfSVRFTV9QQUdFX01FVEEpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQv9GA0LjQu9C+0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiDQn9Cw0LnQvywg0LLQvtC30LLRgNCw0YnQsNGO0YnQuNC5INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINC40LvQuCDRgdC40LzQstC+0LvRjNC90L7QtSDQvtCx0L7Qt9C90LDRh9C10L3QuNC1IChzbHVnKSDQuNGB0YXQvtC00Y8g0LjQtyDQvdCw0YHRgtGA0L7QtdC6INC+0LrRgNGD0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIGlkT3JTbHVnUGlwZTogU2NJZE9yU2x1Z1BpcGUgPSBpbmplY3QoU2NJZE9yU2x1Z1BpcGUpO1xuXG4gICAgLyoqXG4gICAgICog0J/QsNC50L8g0LTQu9GPINGE0L7RgNC80LjRgNC+0LLQsNC90LjRjyDQv9C+0LvQvdC+0LPQviBVUkkg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDQvdCwIG1lZGlhINGB0LXRgNCy0LXRgNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVkaWFJbWFnZVRyYW5zZm9ybWVyUGlwZSA9IGluamVjdChTY01lZGlhSW1hZ2VUcmFuc2Zvcm1lclBpcGUpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINGD0YHRgtCw0L3QvtCy0LrQuCDQvNC10YLQsNC00LDQvdC90YvRhSDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWV0YVNlcnZpY2UgPSBpbmplY3QoTWV0YSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LzQsNGA0YjRgNGD0YLQuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyDQt9Cw0LPQvtC70L7QstC60L7QvCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGl0bGVTZXJ2aWNlID0gaW5qZWN0KFRpdGxlKTtcblxuICAgIC8qKlxuICAgICAqINCe0LHRitC10LrRgiB7QGxpbmsgRG9jdW1lbnR9LCDQv9GA0LXQtNC+0YHRgtCw0LLQu9GP0Y7RidC40Lkg0LTQvtGB0YLRg9C/INC6IERPTSDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgLyoqXG4gICAgICog0KTQsNCx0YDQuNC60LAg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0LTQsNC90L3Ri9GFIFNjaGVtYS5vcmcuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBzY2hlbWFPcmdGYWN0b3J5ID0gaW5qZWN0KFNjaGVtYU9yZ0ZhY3RvcnkpO1xuXG4gICAgLyoqXG4gICAgICog0KTQsNCx0YDQuNC60LAg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0Y3QutC30LXQvNC/0LvRj9GA0L7QsiB7QGxpbmsgUmVuZGVyZXIyfS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyRmFjdG9yeSA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKTtcblxuICAgIC8qKlxuICAgICAqINCt0LrQt9C10LzQv9C70Y/RgCB7QGxpbmsgUmVuZGVyZXIyfSDQtNC70Y8g0LHQtdC30L7Qv9Cw0YHQvdC+0Lkg0YDQsNCx0L7RgtGLINGBIERPTS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIHNlbyDQv9Cw0YDQsNC80LXRgtGA0Ysg0L3QsCDQvtGB0L3QvtCy0LUg0YPQutCw0LfQsNC90L3QvtCz0L4g0YDQtdGB0YPRgNGB0LAuINCV0YHQu9C4INC60LDQutC+0LPQvi3RgtC+INGC0LXQs9CwINC90LXRgiwg0LHRg9C00LXRgiDRg9GB0YLQsNC90L7QstC70LXQvdC+INC30L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVzb3VyY2Ug0KDQtdGB0YPRgNGBINC90LAg0L7RgdC90L7QstC1INC60L7RgtC+0YDQvtCz0L4g0L3QtdC+0LHRhdC+0LTQuNC80L4g0YPRgdGC0LDQvdC+0LLQuNGC0Ywg0LzQtdGC0LAt0YLQtdCz0LguXG4gICAgICogQHBhcmFtIGltZyDQmNC30L7QsdGA0LDQttC10L3QuNC1LiDQldGB0LvQuCDQvdC1INC/0YDQuNGI0LvQviwg0YLQviDQsdGD0LTQtdGCINGD0YHRgtCw0L3QvtCy0LvQtdC90L4g0LfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiAobG9nbyDQutC+0LzQv9Cw0L3QuNC4KS5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMt0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy4g0JfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRjiAoWydpbmRleCcsICdmb2xsb3cnXSkuXG4gICAgICogQHBhcmFtIHNjaGVtYU9yZ0RhdGEg0JTQsNC90L3Ri9C1IFNjaGVtYS5vcmcg0LTQu9GPINCy0YHRgtGA0LDQuNCy0LDQvdC40Y8g0L3QsCDRgdGC0YDQsNC90LjRhtC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRGcm9tUmVzb3VyY2UocmVzb3VyY2U/OiBTY0lTZW8sIGltZz86IHN0cmluZywgcm9ib3RzPzogUm9ib3RzVGFnVHlwZVtdLCBzY2hlbWFPcmdEYXRhPzogV2l0aENvbnRleHQ8VGhpbmc+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRSZXNvdXJjZSA9IHtcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnJlcGxhY2VUZW1wbGF0ZXMocmVzb3VyY2U/LnRpdGxlID8/IHRoaXMuZGVmYXVsdFNlby50aXRsZSwgcmVzb3VyY2U/Lmluc3RhbmNlRGF0YSA/PyB7fSksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5yZXBsYWNlVGVtcGxhdGVzKHJlc291cmNlPy5kZXNjcmlwdGlvbiA/PyB0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb24sIHJlc291cmNlPy5pbnN0YW5jZURhdGEgPz8ge30pLFxuICAgICAgICAgICAga2V5d29yZHM6IHJlc291cmNlPy5rZXl3b3JkcyA/PyB0aGlzLmRlZmF1bHRTZW8ua2V5d29yZHMsXG4gICAgICAgICAgICBtZXRhOiByZXNvdXJjZT8ubWV0YSA/PyBbXSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxzLnNpdGVVcmx9JHt0aGlzLnJvdXRlci51cmx9YDtcblxuICAgICAgICB0aGlzLnNldE1ldGFUYWdzKHVwZGF0ZWRSZXNvdXJjZS50aXRsZSwgdXBkYXRlZFJlc291cmNlLmRlc2NyaXB0aW9uLCB1cGRhdGVkUmVzb3VyY2Uua2V5d29yZHMsIHVwZGF0ZWRSZXNvdXJjZS5tZXRhLCByb2JvdHMgPz8gWydpbmRleCcsICdmb2xsb3cnXSk7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YVRhZ3ModXBkYXRlZFJlc291cmNlLnRpdGxlLCB1cGRhdGVkUmVzb3VyY2UuZGVzY3JpcHRpb24sIHVybCwgaW1nID8/IHRoaXMudXJscy5sb2dvVXJsKTtcbiAgICAgICAgdGhpcy5zZXRDYW5vbmljYWxMaW5rKHVybCk7XG5cbiAgICAgICAgLy8g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10LwgU2NoZW1hLm9yZyDQv9Cw0YDQsNC80LXRgtGA0YsuXG4gICAgICAgIHRoaXMuc2V0U2NoZW1hT3JnRGF0YSh0aGlzLnNjaGVtYU9yZ0ZhY3RvcnkubWVyZ2UoW3RoaXMuc2NoZW1hT3JnRmFjdG9yeS5nZW5lcmF0ZUZvck9yZ2FuaXphdGlvbigpLCAuLi4oc2NoZW1hT3JnRGF0YSA/IFtzY2hlbWFPcmdEYXRhXSA6IFtdKV0pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBzZW8g0L/QsNGA0LDQvNC10YLRgNGLINGB0L4g0LfQvdCw0YfQtdC90LjQtdC8INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSByb2JvdHMg0KHQv9C40YHQvtC6IHJvYm90cyDRgtC10LPQvtCyINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLiDQl9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOIChbJ2luZGV4JywgJ2ZvbGxvdyddKS5cbiAgICAgKiBAcGFyYW0gc2NoZW1hT3JnRGF0YSDQlNCw0L3QvdGL0LUgU2NoZW1hLm9yZyDQtNC70Y8g0LLRgdGC0YDQsNC40LLQsNC90LjRjyDQvdCwINGB0YLRgNCw0L3QuNGG0LUuXG4gICAgICovXG4gICAgcHVibGljIHNldEJ5RGVmYXVsdCh0aXRsZT86IHN0cmluZywgcm9ib3RzPzogUm9ib3RzVGFnVHlwZVtdLCBzY2hlbWFPcmdEYXRhPzogV2l0aENvbnRleHQ8VGhpbmc+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0RnJvbVJlc291cmNlKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBgJHt0aXRsZSA/PyB0aGlzLmRlZmF1bHRTZW8udGl0bGV9IC0gJHt0aGlzLmNvbXBhbnlJbmZvLm5hbWV9YCxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogdGl0bGUgPyBgJHt0aXRsZX0sICR7dGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9ufWAgOiB0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGhpcy51cmxzLmxvZ29VcmwsXG4gICAgICAgICAgICByb2JvdHMgPz8gWydpbmRleCcsICdmb2xsb3cnXSxcbiAgICAgICAgICAgIHNjaGVtYU9yZ0RhdGFcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBzZW8g0L/QsNGA0LDQvNC10YLRgNGLINGB0L4g0LfQvdCw0YfQtdC90LjQtdC8INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQt9C90LDRh9C10L3QuNC1IFwi0L3QtSDQuNC90LTQtdC60YHQuNGA0L7QstCw0YLRjFwiINC00LvRjyDQv9C+0LjRgdC60L7QstGL0YUg0YDQvtCx0L7RgtC+0LIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHNldEJ5RGVmYXVsdEFzTm9JbmRleGVkKHRpdGxlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0QnlEZWZhdWx0KHRpdGxlLCBbJ25vaW5kZXgnLCAnbm9mb2xsb3cnLCAnbm9hcmNoaXZlJ10pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIHNlby3Qv9Cw0YDQsNC80LXRgtGA0Ysg0LTQu9GPINGD0LrQsNC30LDQvdC90L7Qs9C+INGN0LvQtdC80LXQvdGC0LAg0LrQsNGC0LDQu9C+0LPQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtINCU0LDQvdC90YvQtSDQvtCxINGN0LvQtdC80LXQvdGC0LUg0LrQsNGC0LDQu9C+0LPQsC5cbiAgICAgKiBAcGFyYW0gdXJsUGF0aCBVcmwg0L/Rg9GC0Ywg0Log0Y3Qu9C10LzQtdC90YLRgyDQutCw0YLQsNC70L7Qs9CwLiDQkiDQv9GD0YLQuCDQtNC+0LvQttC10L0g0L/RgNC40YHRg9GC0YHRgtCy0L7QstCw0YLRjCDRiNCw0LHQu9C+0L0gJzppZCcsINC+0LHQvtC30L3QsNGH0LDRjtGJ0LjQuSDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRjdC70LXQvNC10L3RgtCwINC60LDRgtCw0LvQvtCz0LAg0LTQu9GPINC/0L7QtNGB0YLQsNC90L7QstC60LguXG4gICAgICogQHBhcmFtIHNjaGVtYU9yZ0RhdGEg0JTQsNC90L3Ri9C1IFNjaGVtYS5vcmcg0Y3Qu9C10LzQtdC90YLQsCDQutCw0YLQsNC70L7Qs9CwXG4gICAgICovXG4gICAgcHVibGljIHNldEZvckNhdGFsb2dJdGVtKGl0ZW06IFNjSUNhdGFsb2dJdGVtPFNjSUNhdGVnb3J5IHwgU2NJVmlydHVhbENhdGVnb3J5PiwgdXJsUGF0aDogc3RyaW5nLCBzY2hlbWFPcmdEYXRhPzogV2l0aENvbnRleHQ8VGhpbmc+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJscy5zaXRlVXJsfSR7dXJsUGF0aC5yZXBsYWNlKCc6aWQnLCB0aGlzLmlkT3JTbHVnUGlwZS50cmFuc2Zvcm0oaXRlbSkudG9TdHJpbmcoKSl9YDtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb25cbiAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLnJlcGxhY2VUZW1wbGF0ZXMoaXRlbS5zZW8/LnRpdGxlID8/IHRoaXMuY2F0YWxvZ0l0ZW1EZWZhdWx0U2VvLnRpdGxlID8/IGAke2l0ZW0ubmFtZX0gLSDQmtGD0L/QuNGC0Ywg0LIgJHt0aGlzLmNvbXBhbnlJbmZvLm5hbWV9YCwgaXRlbSk7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gdGhpcy5yZXBsYWNlVGVtcGxhdGVzKFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb25cbiAgICAgICAgICAgIGl0ZW0uc2VvPy5kZXNjcmlwdGlvbiA/PyB0aGlzLmNhdGFsb2dJdGVtRGVmYXVsdFNlby5kZXNjcmlwdGlvbiA/PyBgJHtpdGVtLm5hbWV9IC0g0JrRg9C/0LjRgtGMINC/0L4g0LLRi9Cz0L7QtNC90YvQvCDRhtC10L3QsNC8INCyICR7dGhpcy5jb21wYW55SW5mby5uYW1lfWAsXG4gICAgICAgICAgICBpdGVtXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGtleXdvcmRzID0gaXRlbS5zZW8/LmtleXdvcmRzID8/IGAke2l0ZW0ubmFtZX0sICR7dGhpcy5jYXRhbG9nSXRlbURlZmF1bHRTZW8ua2V5d29yZHN9YDtcbiAgICAgICAgY29uc3QgbWV0YSA9IGl0ZW0uc2VvPy5tZXRhID8/IFtdO1xuXG4gICAgICAgIC8vINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdC8INGB0YLQsNC90LTQsNGA0YLQvdGL0LUgc2VvLdC/0LDRgNCw0LzQtdGC0YDRiywg0LIg0YLQvtC8INGH0LjRgdC70LUg0Lgg0LrQsNC90L7QvdC40YfQtdGB0LrRg9GOINGB0YHRi9C70LrRgy5cbiAgICAgICAgLy8g0KHRgtGA0LDQvdC40YbRiyDQv9Cw0LPQuNC90LDRhtC40Lgg0LjQvdC00LXQutGB0LjRgNGD0Y7RgtGB0Y8g0L7RgtC00LXQu9GM0L3Qviwg0L/QvtGN0YLQvtC80YMg0LrQsNC90L7QvdC40YfQtdGB0LrQsNGPINGB0YHRi9C70LrQsCDRgdC+0LTQtdGA0LbQuNGCINC90L7QvNC10YAg0YHRgtGA0LDQvdC40YbRiyDQuNC3IHF1ZXJ5LdC/0LDRgNCw0LzQtdGC0YDQvtCyLlxuICAgICAgICBjb25zdCBwYWdlID0gc2NQYXJzZVBhZ2VRdWVyeVBhcmFtZXRlcih0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnJvdXRlci51cmwpLnF1ZXJ5UGFyYW1NYXAuZ2V0KFNDX1BBR0VfUVVFUllfUEFSQU0pKTtcbiAgICAgICAgY29uc3QgY2Fub25pY2FsVXJsID0gcGFnZSA+IDEgPyBgJHt1cmx9PyR7U0NfUEFHRV9RVUVSWV9QQVJBTX09JHtwYWdlfWAgOiB1cmw7XG5cbiAgICAgICAgdGhpcy5zZXRNZXRhVGFncyh0aXRsZSwgZGVzY3JpcHRpb24sIGtleXdvcmRzLCBtZXRhLCBbJ2luZGV4JywgJ2ZvbGxvdyddKTtcbiAgICAgICAgdGhpcy5zZXRPcGVuR3JhcGhNZXRhVGFncyh0aXRsZSwgZGVzY3JpcHRpb24sIHVybCwgdGhpcy5tZWRpYUltYWdlVHJhbnNmb3JtZXJQaXBlLnRyYW5zZm9ybShpdGVtLmltYWdlLCB0cnVlKSk7XG4gICAgICAgIHRoaXMuc2V0Q2Fub25pY2FsTGluayhjYW5vbmljYWxVcmwpO1xuXG4gICAgICAgIC8vINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdC8IFNjaGVtYS5vcmcg0L/QsNGA0LDQvNC10YLRgNGLLlxuICAgICAgICB0aGlzLnNldFNjaGVtYU9yZ0RhdGEodGhpcy5zY2hlbWFPcmdGYWN0b3J5Lm1lcmdlKFt0aGlzLnNjaGVtYU9yZ0ZhY3RvcnkuZ2VuZXJhdGVGb3JPcmdhbml6YXRpb24oKSwgLi4uKHNjaGVtYU9yZ0RhdGEgPyBbc2NoZW1hT3JnRGF0YV0gOiBbXSldKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JfQsNC80LXQvdGP0LXRgiDRiNCw0LHQu9C+0L3RiyDQsiDRgtC10LrRgdGC0LUg0L3QsCDQt9C90LDRh9C10L3QuNGPINC40Lcg0L7QsdGK0LXQutGC0LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGV4dCDQotC10LrRgdGCINGBINGI0LDQsdC70L7QvdCw0LzQuC5cbiAgICAgKiBAcGFyYW0gaW5zdGFuY2VEYXRhINCe0LHRitC10LrRgiDRgSDQtNCw0L3QvdGL0LzQuCDQtNC70Y8g0LfQsNC80LXQvdGLLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzXG4gICAgcHJpdmF0ZSByZXBsYWNlVGVtcGxhdGVzKHRleHQ6IHN0cmluZywgaW5zdGFuY2VEYXRhOiBvYmplY3QpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGV4dC5yZXBsYWNlQWxsKC9cXCRcXHsoW159XSspXFx9L2csIChfdGVtcGxhdGU6IHN0cmluZywgZmllbGRQYXRoVmFyaWFudHM6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZTogdW5rbm93biA9IGZpZWxkUGF0aFZhcmlhbnRzXG4gICAgICAgICAgICAgICAgLnNwbGl0KCd8JylcbiAgICAgICAgICAgICAgICAubWFwKChmaWVsZFBhdGgpID0+IGZpZWxkUGF0aC50cmltKCkpXG4gICAgICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgICAgICAgIC5tYXAoKGZpZWxkUGF0aCkgPT4gZ2V0KGluc3RhbmNlRGF0YSwgZmllbGRQYXRoKSBhcyB1bmtub3duKVxuICAgICAgICAgICAgICAgIC5maW5kKChmaWVsZFZhbHVlKSA9PiAhaXNOaWwoZmllbGRWYWx1ZSkpO1xuXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9uby1uZXN0ZWQtY29uZGl0aW9uYWxcbiAgICAgICAgICAgIHJldHVybiBpc05pbCh2YWx1ZSkgPyAnJyA6IGlzU3RyaW5nKHZhbHVlKSA/IHZhbHVlIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLRgdC1IG1ldGEt0YLQtdCz0Lgg0YHRgtGA0LDQvdC40YbRiy4g0JXRgdC70Lgg0LrQsNC60L7QuS3Qu9C40LHQviDQuNC3INC/0LDRgNCw0LzQtdGC0YDQvtCyINC90LUg0YPQutCw0LfQsNC9LCDQtNC70Y8g0L3QtdCz0L4g0YPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YLRgdGPINC30L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGRlc2NyaXB0aW9uINCe0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0ga2V5d29yZHMg0JrQu9GO0YfQtdCy0YvQtSDRgdC70L7QstCwINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIG1ldGEg0JzQsNGB0YHQuNCyINC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0YUg0LfQvdCw0YfQtdC90LjQuSDQvNC10YLQsNGC0LXQs9C+0LIuXG4gICAgICogQHBhcmFtIHJvYm90cyDQodC/0LjRgdC+0Logcm9ib3RzINGC0LXQs9C+0LIg0LTQu9GPINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRNZXRhVGFncyhcbiAgICAgICAgdGl0bGU6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby50aXRsZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbixcbiAgICAgICAga2V5d29yZHM6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5rZXl3b3JkcyxcbiAgICAgICAgbWV0YTogU2NJU2VvWydtZXRhJ10gPSBbXSxcbiAgICAgICAgcm9ib3RzOiBSb2JvdHNUYWdUeXBlW10gPSBbJ2luZGV4JywgJ2ZvbGxvdyddXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRpdGxlKTtcblxuICAgICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7IG5hbWU6ICdkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IGRlc2NyaXB0aW9uIH0pO1xuICAgICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7IG5hbWU6ICdrZXl3b3JkcycsIGNvbnRlbnQ6IGtleXdvcmRzIH0pO1xuICAgICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7IG5hbWU6ICdyb2JvdHMnLCBjb250ZW50OiByb2JvdHMuam9pbignLCAnKSB9KTtcblxuICAgICAgICBtZXRhLmZvckVhY2goKHRhZykgPT4ge1xuICAgICAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBuYW1lOiB0YWcubmFtZSwgY29udGVudDogdGFnLmNvbnRlbnQgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIE9wZW4gR3JhcGggbWV0YS3RgtC10LPQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvZ1RpdGxlINCX0LDQs9C+0LvQvtCy0L7Qui5cbiAgICAgKiBAcGFyYW0gb2dEZXNjcmlwdGlvbiDQntC/0LjRgdCw0L3QuNC1LlxuICAgICAqIEBwYXJhbSBvZ1VybCBVcmwuXG4gICAgICogQHBhcmFtIG9nSW1nINCh0YHRi9C70LrQsCDQvdCwINC40LfQvtCx0YDQsNC20LXQvdC40LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRPcGVuR3JhcGhNZXRhVGFncyhvZ1RpdGxlOiBzdHJpbmcsIG9nRGVzY3JpcHRpb246IHN0cmluZywgb2dVcmw6IHN0cmluZywgb2dJbWc6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dHlwZScsIGNvbnRlbnQ6ICd3ZWJzaXRlJyB9KTtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnRpdGxlJywgY29udGVudDogb2dUaXRsZSB9KTtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmRlc2NyaXB0aW9uJywgY29udGVudDogb2dEZXNjcmlwdGlvbiB9KTtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnVybCcsIGNvbnRlbnQ6IG9nVXJsIH0pO1xuICAgICAgICB0aGlzLm1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6aW1hZ2UnLCBjb250ZW50OiBvZ0ltZyB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRgtC10LMg0LrQsNC90L7QvdC40YfQtdGB0LrQvtC5INGB0YLRgNCw0L3QuNGG0YsgPGxpbmsgcmVsPVwiY2Fub25pY2FsXCIgaHJlZj1cIi4uLlwiIC8+LlxuICAgICAqXG4gICAgICogQHBhcmFtIHVybCBVUkwg0LrQvtGC0L7RgNGL0Lkg0L3QtdC+0LHRhdC+0LTQuNC80L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINCyINC60LDRh9C10YHRgtCy0LUg0YHRgdGL0LvQutC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0Q2Fub25pY2FsTGluayh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyDQo9C00LDQu9GP0LXQvCDRgdGD0YnQtdGB0YLQstGD0Y7RidC40LkgbGluayBjYW5vbmljYWwuXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTGluayA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbGlua1tyZWw9XCJjYW5vbmljYWxcIl0nKTtcblxuICAgICAgICBpZiAoZXhpc3RpbmdMaW5rPy5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKGV4aXN0aW5nTGluay5wYXJlbnROb2RlLCBleGlzdGluZ0xpbmspO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g0KHQvtC30LTQsNGR0Lwg0Lgg0YPRgdGC0LDQvdCw0LLQu9C40LLQsNC10Lwg0L3QvtCy0YvQuSDRgtC10LMuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgY29uc3QgbGluayA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShsaW5rLCAncmVsJywgJ2Nhbm9uaWNhbCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShsaW5rLCAnaHJlZicsIHVybCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudC5oZWFkLCBsaW5rKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBTY2hlbWEub3JnINC+0LHRitC10LrRgiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGEg0JTQsNC90L3Ri9C1IFNjaGVtYS5vcmcg0LTQu9GPINCy0YHRgtGA0LDQuNCy0LDQvdC40Y8g0L3QsCDRgdGC0YDQsNC90LjRhtC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0U2NoZW1hT3JnRGF0YTxUIGV4dGVuZHMgVGhpbmc+KGRhdGE6IFdpdGhDb250ZXh0PFQ+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByb2plY3RBdHRyaWJ1dGVOYW1lID0gJ2RhdGEtc2Mtc2NoZW1hLW9yZyc7XG4gICAgICAgIC8vINCj0LTQsNC70Y/QtdC8INCy0YHQtSDRgNCw0L3QtdC1INGB0L7Qt9C00LDQvdC90YvQtSDRgdC60YDQuNC/0YLRiyBTY2hlbWEub3JnICjQv9C+INGD0L3QuNC60LDQu9GM0L3QvtC80YMg0LDRgtGA0LjQsdGD0YLRgyDQv9GA0L7QtdC60YLQsCkuXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nU2NyaXB0cyA9IHRoaXMuZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yQWxsKGBzY3JpcHRbJHtwcm9qZWN0QXR0cmlidXRlTmFtZX1dYCk7XG4gICAgICAgIGV4aXN0aW5nU2NyaXB0cy5mb3JFYWNoKChleGlzdGluZ1NjcmlwdCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV4aXN0aW5nU2NyaXB0LnBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKGV4aXN0aW5nU2NyaXB0LnBhcmVudE5vZGUsIGV4aXN0aW5nU2NyaXB0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICBjb25zdCBzY3JpcHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzY3JpcHQsICd0eXBlJywgJ2FwcGxpY2F0aW9uL2xkK2pzb24nKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc2NyaXB0LCBwcm9qZWN0QXR0cmlidXRlTmFtZSwgJycpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHNjcmlwdCwgdGhpcy5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShKU09OLnN0cmluZ2lmeShkYXRhKSkpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuaGVhZCwgc2NyaXB0KTtcbiAgICB9XG59XG4iXX0=
@@ -175,6 +175,20 @@ export class ScUIService {
175
175
  setCatalogFormat(catalogFormat) {
176
176
  this.setMetadataByKey('catalogFormat', catalogFormat);
177
177
  }
178
+ /**
179
+ * Возвращает {@link Observable} признака свёрнутой до значков боковой панели каталога.
180
+ */
181
+ getCatalogSidebarCollapsed$() {
182
+ return this.getMetadataChangeByKey$('isCatalogSidebarCollapsed');
183
+ }
184
+ /**
185
+ * Устанавливает признак свёрнутой до значков боковой панели каталога.
186
+ *
187
+ * @param isCatalogSidebarCollapsed Признак свёрнутой до значков боковой панели каталога.
188
+ */
189
+ setCatalogSidebarCollapsed(isCatalogSidebarCollapsed) {
190
+ this.setMetadataByKey('isCatalogSidebarCollapsed', isCatalogSidebarCollapsed);
191
+ }
178
192
  /**
179
193
  * Устанавливает идентификатор выбранного склада.
180
194
  *
@@ -192,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
192
206
  providedIn: 'root',
193
207
  }]
194
208
  }], ctorParameters: () => [{ type: i1.ScUserService }] });
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdWkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvdWkvc2VydmljZXMvc2MtdWkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxREFBcUQ7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBYyxhQUFhLEVBQUUsSUFBSSxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLbEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBRXBFOztHQUVHO0FBSUgsTUFBTSxPQUFPLFdBQVc7SUFXcEI7Ozs7T0FJRztJQUNILFlBQW9DLFdBQTBCO1FBQTFCLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBZjlEOztXQUVHO1FBQ2Msd0JBQW1CLEdBQWtDLElBQUksYUFBYSxDQUFpQixDQUFDLENBQUMsQ0FBQztRQWF2RyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDNUMsSUFBSSxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25ELENBQUM7WUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBRWpFLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUMsbUJBQW1CO2lCQUN0RCxJQUFJLENBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxF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QUF1QixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZ0JBQWdCLENBQUMsYUFBOEI7UUFDbEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHNCQUFzQixDQUFDLG1CQUEyQjtRQUNyRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUN0RSxDQUFDOytHQW5OUSxXQUFXO21IQUFYLFdBQVcsY0FGUixNQUFNOzs0RkFFVCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaXJzdCwgbWFwLCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBza2lwLCBTdWJzY3JpcHRpb24sIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0NhdGFsb2dGb3JtYXQgfSBmcm9tICcuLi8uLi9jYXRhbG9nL2VudW1zL3NjLWNhdGFsb2ctZm9ybWF0JztcbmltcG9ydCB7IFNjUHJvZHVjdFRpbGVUeXBlIH0gZnJvbSAnLi4vLi4vY2F0YWxvZy9lbnVtcy9zYy1wcm9kdWN0LXRpbGUtdHlwZSc7XG5pbXBvcnQgeyBTY0lOZXdPcmRlciB9IGZyb20gJy4uLy4uL29yZGVyL2ludGVybmFsL3NjLWktbmV3LW9yZGVyJztcbmltcG9ydCB7IFNjVXNlck1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vdXNlci9kdG8vc2MtdXNlci1tZXRhZGF0YSc7XG5pbXBvcnQgeyBTY1VzZXJUeXBlIH0gZnJvbSAnLi4vLi4vdXNlci9lbnVtcy9zYy11c2VyLXR5cGUnO1xuaW1wb3J0IHsgU2NVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvc2MtdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IGZpbHRlckNoYW5nZWRCeUtleSB9IGZyb20gJy4uL3V0aWxzL2ZpbHRlci1jaGFuZ2VkLWJ5LWtleSc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEgVUkuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjVUlTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiB7QGxpbmsgUmVwbGF5U3ViamVjdH0g0LzQtdGC0LDQtNCw0L3QvdGL0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlck1ldGFkYXRhU3ViamVjdDogUmVwbGF5U3ViamVjdDxTY1VzZXJNZXRhZGF0YT4gPSBuZXcgUmVwbGF5U3ViamVjdDxTY1VzZXJNZXRhZGF0YT4oMSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LTQv9C40YHQutCwINC90LAg0LjQt9C80LXQvdC10L3QuNC1INC80LXRgtCw0LTQsNC90L3Ri9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIG1ldGFkYXRhU3ViamVjdFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NVSVNlcnZpY2V9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJTZXJ2aWNlINCh0LXRgNCy0LjRgSDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdXNlclNlcnZpY2U6IFNjVXNlclNlcnZpY2UpIHtcbiAgICAgICAgdXNlclNlcnZpY2UuZ2V0VXNlckNoYW5nZSQoKS5zdWJzY3JpYmUoKHVzZXIpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1ldGFkYXRhU3ViamVjdFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMubWV0YWRhdGFTdWJqZWN0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudXNlck1ldGFkYXRhU3ViamVjdC5uZXh0KG5ldyBTY1VzZXJNZXRhZGF0YSh1c2VyLm1ldGFkYXRhKSk7XG5cbiAgICAgICAgICAgIHRoaXMubWV0YWRhdGFTdWJqZWN0U3Vic2NyaXB0aW9uID0gdGhpcy51c2VyTWV0YWRhdGFTdWJqZWN0XG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHNraXAoMSksIC8vINCd0LUg0L3Rg9C20L3QviDQvtCx0L3QvtCy0LvRj9GC0Ywg0LTQsNC90L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQv9GA0Lgg0LXQs9C+INGB0LzQtdC90LUuXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgobWV0YWRhdGEpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyLnVzZXJUeXBlID09PSBTY1VzZXJUeXBlLmd1ZXN0ID8gdGhpcy51c2VyU2VydmljZS51cGRhdGVHdWVzdEluZm8kKHsgbWV0YWRhdGE6IG1ldGFkYXRhIH0pIDogdGhpcy51c2VyU2VydmljZS51cGRhdGVVc2VySW5mbyQoeyBtZXRhZGF0YTogbWV0YWRhdGEgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQvNC10YLQsNC00LDQvdC90YvRhSwg0LrQvtCz0LTQsCDQuNC30LzQtdC90Y/QtdGC0YHRjyDQt9C90LDRh9C10L3QuNC1INC/0LXRgNC10LTQsNC90L3QvtCz0L4g0YHQstC+0LnRgdGC0LLQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXJnZXQg0KHQstC+0LnRgdGC0LLQviDQtNC70Y8g0LrQvtGC0L7RgNC+0LPQviDQvtGC0YHQu9C10LbQuNCy0LDQtdGC0YHRjyDQuNC30LzQtdC90LXQvdC40LUuXG4gICAgICovXG4gICAgcHVibGljIGdldE1ldGFkYXRhQ2hhbmdlQnlLZXkkPFQgZXh0ZW5kcyBrZXlvZiBTY1VzZXJNZXRhZGF0YSwgUiA9IFNjVXNlck1ldGFkYXRhW1RdPih0YXJnZXQ6IFQpOiBPYnNlcnZhYmxlPFI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlck1ldGFkYXRhU3ViamVjdC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyQ2hhbmdlZEJ5S2V5KHRhcmdldCksXG4gICAgICAgICAgICBtYXAoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YVt0YXJnZXRdIGFzIFIpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC80LXRgtCw0LTQsNC90L3Ri9GFLCDQutC+0LPQtNCwINC40LfQvNC10L3Rj9C10YLRgdGPINC30L3QsNGH0LXQvdC40LUg0L/QtdGA0LXQtNCw0L3QvdC+0LPQviDRgdCy0L7QudGB0YLQstCwLlxuICAgICAqIFRPRE86INCU0L7RgNCw0LHQvtGC0LDRgtGMINGE0YPQvdC60YbQuNGOLCDRh9GC0L7QsdGLINC+0L3QsCDQstC+0LfQstGA0LDRidCw0LvQsCBPYnNlcnZhYmxlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhcmdldCDQodCy0L7QudGB0YLQstC+LCDQt9C90LDRh9C10L3QuNC1INC60L7RgtC+0YDQvtCz0L4g0L3QtdC+0LHRhdC+0LTQuNC80L4g0LjQt9C80LXQvdC40YLRjC5cbiAgICAgKiBAcGFyYW0gdmFsdWUg0J3QvtCy0L7QtSDQt9C90LDRh9C10L3QuNC1LlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1wYXJhbWV0ZXJzXG4gICAgcHVibGljIHNldE1ldGFkYXRhQnlLZXk8VCBleHRlbmRzIGtleW9mIFNjVXNlck1ldGFkYXRhLCBWID0gU2NVc2VyTWV0YWRhdGFbVF0+KHRhcmdldDogVCwgdmFsdWU6IFYpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51c2VyTWV0YWRhdGFTdWJqZWN0LnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKChtZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3TWV0YWRhdGEgPSBuZXcgU2NVc2VyTWV0YWRhdGEobWV0YWRhdGEpO1xuXG4gICAgICAgICAgICBuZXdNZXRhZGF0YVt0YXJnZXRdID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnVzZXJNZXRhZGF0YVN1YmplY3QubmV4dChuZXdNZXRhZGF0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC/0LjRgdC60LAg0LrQsNGC0LXQs9C+0YDQuNC5LCDQutC+0YLQvtGA0YvQtSDQvdC10L7QsdGF0L7QtNC40LzQviDRgdC60YDRi9GC0YwuXG4gICAgICovXG4gICAgcHVibGljIGdldEhpZGRlbkNhdGVnb3JpZXNMaXN0JCgpOiBPYnNlcnZhYmxlPEFycmF5PG51bWJlciB8IHN0cmluZz4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFDaGFuZ2VCeUtleSQoJ2hpZGRlbkNhdGVnb3JpZXMnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRgdC/0LjRgdC+0Log0LrQsNGC0LXQs9C+0YDQuNC5LCDQutC+0YLQvtGA0YvQtSDQvdC10L7QsdGF0L7QtNC40LzQviDRgdC60YDRi9GC0YwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2F0ZWdvcnlJZHMg0KHQv9C40YHQvtC6INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0L7QsiDQutCw0YLQtdCz0L7RgNC40LksINC60L7RgtC+0YDRi9C1INC90LXQvtCx0YXQvtC00LjQvNC+INGB0LrRgNGL0YLRjC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0SGlkZGVuQ2F0ZWdvcmllc0xpc3QoY2F0ZWdvcnlJZHM6IEFycmF5PG51bWJlciB8IHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNZXRhZGF0YUJ5S2V5KCdoaWRkZW5DYXRlZ29yaWVzJywgY2F0ZWdvcnlJZHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQstC40LTQsCDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjRjyDRgtC+0LLQsNGA0LAg0LIg0YHQv9C40YHQutC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQcm9kdWN0VGlsZVR5cGUkKCk6IE9ic2VydmFibGU8U2NQcm9kdWN0VGlsZVR5cGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFDaGFuZ2VCeUtleSQoJ3Byb2R1Y3RUaWxlVHlwZScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0LjQtCDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjRjyDRgtC+0LLQsNGA0LAg0LIg0YHQv9C40YHQutC1LlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3RUaWxlVHlwZSDQktC40LQg0L/RgNC10LTRgdGC0LDQstC70LXQvdC40Y8g0YLQvtCy0LDRgNCwINCyINGB0L/QuNGB0LrQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UHJvZHVjdFRpbGVUeXBlKHByb2R1Y3RUaWxlVHlwZTogU2NQcm9kdWN0VGlsZVR5cGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNZXRhZGF0YUJ5S2V5KCdwcm9kdWN0VGlsZVR5cGUnLCBwcm9kdWN0VGlsZVR5cGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQutC+0LvQuNGH0LXRgdGC0LLQsCDRjdC70LXQvNC10L3RgtC+0LIg0L3QsCDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGFnaW5hdGVQYWdlU2l6ZSQoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFDaGFuZ2VCeUtleSQoJ3BhZ2luYXRlUGFnZVNpemUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQutC+0LvQuNGH0LXRgdGC0LLQviDRjdC70LXQvNC10L3RgtC+0LIg0L3QsCDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdpbmF0ZVBhZ2VTaXplINCa0L7Qu9C40YfQtdGB0YLQstC+INGN0LvQtdC80LXQvdGC0L7QsiDQvdCwINGB0YLRgNCw0L3QuNGG0LUg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRQYWdpbmF0ZVBhZ2VTaXplKHBhZ2luYXRlUGFnZVNpemU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE1ldGFkYXRhQnlLZXkoJ3BhZ2luYXRlUGFnZVNpemUnLCBwYWdpbmF0ZVBhZ2VTaXplKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LzQtdGC0LDQtNCw0L3QvdGL0YUg0L3QtdC+0YTQvtGA0LzQu9C10L3QvdC+0LPQviDQt9Cw0LrQsNC30LAg0L/QviDQvdCw0L/RgNCw0LLQu9C10L3QuNGOINC/0YDQvtC00LDQti5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkaXJlY3Rpb25zSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0L3QsNC/0YDQsNCy0LvQtdC90LjRjyDQv9GA0L7QtNCw0LYuXG4gICAgICovXG4gICAgcHVibGljIGdldE5ld09yZGVyTWV0YWRhdGEkKGRpcmVjdGlvbnNJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTY0lOZXdPcmRlciB8IHVuZGVmaW5lZD4ge1xuICAgICAgICAvLyDQlNCw0L3QvdGL0LUg0L/RgNC10LTRgdGC0LDQstC70LXQvdGLINC80LDRgdGB0LjQstC+0Lwg0L7QsdGK0LXQutGC0L7Qsiwg0L/QvtGN0YLQvtC80YMg0L3QtSDQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8gZ2V0TWV0YWRhdGFDaGFuZ2VCeUtleSQoKS5cbiAgICAgICAgcmV0dXJuIHRoaXMudXNlck1ldGFkYXRhU3ViamVjdC5waXBlKFxuICAgICAgICAgICAgbWFwKChtZXRhZGF0YSkgPT4gbWV0YWRhdGEubmV3T3JkZXJzTWV0YWRhdGEpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIG1hcCgob3JkZXJzTWV0YWRhdGE6IFJlY29yZDxudW1iZXIsIFNjSU5ld09yZGVyIHwgdW5kZWZpbmVkPikgPT4gb3JkZXJzTWV0YWRhdGFbZGlyZWN0aW9uc0lkXSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LzQtdGC0LDQtNCw0L3QvdGL0LUg0L3QtdC+0YTQvtGA0LzQu9C10L3QvdC+0LPQviDQt9Cw0LrQsNC30LAg0L/QviDQvdCw0L/RgNCw0LLQu9C10L3QuNGOINC/0YDQvtC00LDQti5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkaXJlY3Rpb25zSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0L3QsNC/0YDQsNCy0LvQtdC90LjRjyDQv9GA0L7QtNCw0LYuXG4gICAgICogQHBhcmFtIG5ld09yZGVyTWV0YWRhdGEg0JTQsNC90L3Ri9C1INC90L7QstC+0LPQviDQvdC10L7RhNC+0YDQvNC70LXQvdC90L7Qs9C+INC30LDQutCw0LfQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0TmV3T3JkZXJNZXRhZGF0YShkaXJlY3Rpb25zSWQ6IG51bWJlciwgbmV3T3JkZXJNZXRhZGF0YTogU2NJTmV3T3JkZXIpOiB2b2lkIHtcbiAgICAgICAgLy8g0J/RgNC4INGB0L7RhdGA0LDQvdC10L3QuNC4INC40LfQvtCx0YDQsNC20LXQvdC40Y8g0LLRi9C00LDRkdGCINC+0YjQuNCx0LrRgyA1MDAgJ9Cf0YDQvtC40LfQvtGI0LvQsCDQvtGI0LjQsdC60LAg0L/RgNC4INGA0LDQsdC+0YLQtSDRgSDQsdCw0LfQvtC5INC00LDQvdC90YvRhScuXG4gICAgICAgIC8vIFRPRE86IFRBU0tbIzYzNzBdOiDQlNC+0YDQsNCx0L7RgtCw0YLRjCDQv9C+0YHQu9C1INGA0LXRiNC10L3QuNGPINC30LDQtNCw0YfQuC5cbiAgICAgICAgaWYgKG5ld09yZGVyTWV0YWRhdGEuaW1hZ2UpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgZGVsZXRlIG5ld09yZGVyTWV0YWRhdGEuaW1hZ2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmdldE1ldGFkYXRhQ2hhbmdlQnlLZXkkKCduZXdPcmRlcnNNZXRhZGF0YScpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgob3JkZXJzTWV0YWRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgICAgICBvcmRlcnNNZXRhZGF0YVtkaXJlY3Rpb25zSWRdID0gbmV3T3JkZXJNZXRhZGF0YTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldE1ldGFkYXRhQnlLZXkoJ25ld09yZGVyc01ldGFkYXRhJywgc3RydWN0dXJlZENsb25lKG9yZGVyc01ldGFkYXRhKSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiDQvNC10YLQsNC00LDQvdC90YvQtSDQvdC10L7RhNC+0YDQvNC70LXQvdC90L7Qs9C+INC30LDQutCw0LfQsCDQv9C+INC90LDQv9GA0LDQstC70LXQvdC40Y4g0L/RgNC+0LTQsNC2LlxuICAgICAqXG4gICAgICogQHBhcmFtIGRpcmVjdGlvbnNJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQvdCw0L/RgNCw0LLQu9C10L3QuNGPINC/0YDQvtC00LDQti5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlTmV3T3JkZXJNZXRhZGF0YShkaXJlY3Rpb25zSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmdldE1ldGFkYXRhQ2hhbmdlQnlLZXkkKCduZXdPcmRlcnNNZXRhZGF0YScpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgob3JkZXJzTWV0YWRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWR5bmFtaWMtZGVsZXRlLG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICAgICAgZGVsZXRlIG9yZGVyc01ldGFkYXRhW2RpcmVjdGlvbnNJZF07XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRNZXRhZGF0YUJ5S2V5KCduZXdPcmRlcnNNZXRhZGF0YScsIHN0cnVjdHVyZWRDbG9uZShvcmRlcnNNZXRhZGF0YSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LzQtdGC0LDQtNCw0L3QvdGL0LUg0L3QtSDQvtGE0L7RgNC80LvQtdC90L3Ri9GFINC30LDQutCw0LfQvtCyINC/0L4g0LLRgdC10Lwg0L3QsNC/0YDQsNCy0LvQtdC90LjRj9C8INC/0YDQvtC00LDQti5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlQWxsTmV3T3JkZXJzTWV0YWRhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0TWV0YWRhdGFCeUtleSgnbmV3T3JkZXJzTWV0YWRhdGEnLCBbXSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LTQsNGC0YMg0L/QvtGB0LvQtdC00L3QtdCz0L4g0L7RgtC60YDRi9GC0LjRjyDQvtC/0YDQvtGB0L3QuNC60L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TGFzdE9wZW5RdWVzdGlvbm5haXJlVGltZSQoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFDaGFuZ2VCeUtleSQoJ2xhc3RPcGVuUXVlc3Rpb25uYWlyZVRpbWUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQtNCw0YLRgyDQv9C+0YHQu9C10LTQvdC10LPQviDQvtGC0LrRgNGL0YLQuNGPINC+0L/RgNC+0YHQvdC40LrQvtCyLlxuICAgICAqXG4gICAgICogQHBhcmFtIGxhc3RPcGVuUXVlc3Rpb25uYWlyZVRpbWUg0JTQsNGC0LAg0L/QvtGB0LvQtdC00L3QtdCz0L4g0L7RgtC60YDRi9GC0LjRjyDQvtC/0YDQvtGB0L3QuNC60L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0TGFzdE9wZW5RdWVzdGlvbm5haXJlVGltZShsYXN0T3BlblF1ZXN0aW9ubmFpcmVUaW1lOiBudW1iZXIgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNZXRhZGF0YUJ5S2V5KCdsYXN0T3BlblF1ZXN0aW9ubmFpcmVUaW1lJywgbGFzdE9wZW5RdWVzdGlvbm5haXJlVGltZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YTQvtGA0LzQsNGCINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LrQsNGC0LDQu9C+0LPQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2F0YWxvZ0Zvcm1hdCQoKTogT2JzZXJ2YWJsZTxTY0NhdGFsb2dGb3JtYXQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFDaGFuZ2VCeUtleSQoJ2NhdGFsb2dGb3JtYXQnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRhNC+0YDQvNCw0YIg0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDQutCw0YLQsNC70L7Qs9CwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhdGFsb2dGb3JtYXQg0KTQvtGA0LzQsNGCINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LrQsNGC0LDQu9C+0LPQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0Q2F0YWxvZ0Zvcm1hdChjYXRhbG9nRm9ybWF0OiBTY0NhdGFsb2dGb3JtYXQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNZXRhZGF0YUJ5S2V5KCdjYXRhbG9nRm9ybWF0JywgY2F0YWxvZ0Zvcm1hdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YHQutC70LDQtNCwLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNlbGVjdGVkV2FyZWhvdXNlSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YHQutC70LDQtNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRTZWxlY3RlZFdhcmVob3VzZUlkKHNlbGVjdGVkV2FyZWhvdXNlSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE1ldGFkYXRhQnlLZXkoJ3NlbGVjdGVkV2FyZWhvdXNlSWQnLCBzZWxlY3RlZFdhcmVob3VzZUlkKTtcbiAgICB9XG59XG4iXX0=
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdWkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvdWkvc2VydmljZXMvc2MtdWkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxREFBcUQ7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBYyxhQUFhLEVBQUUsSUFBSSxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLbEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBRXBFOztHQUVHO0FBSUgsTUFBTSxPQUFPLFdBQVc7SUFXcEI7Ozs7T0FJRztJQUNILFlBQW9DLFdBQTBCO1FBQTFCLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBZjlEOztXQUVHO1FBQ2Msd0JBQW1CLEdBQWtDLElBQUksYUFBYSxDQUFpQixDQUFDLENBQUMsQ0FBQztRQWF2RyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDNUMsSUFBSSxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25ELENBQUM7WUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBRWpFLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUMsbUJBQW1CO2lCQUN0RCxJQUFJLENBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxF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QUF1QixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZ0JBQWdCLENBQUMsYUFBOEI7UUFDbEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSwyQkFBMkI7UUFDOUIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDBCQUEwQixDQUFDLHlCQUFrQztRQUNoRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsMkJBQTJCLEVBQUUseUJBQXlCLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHNCQUFzQixDQUFDLG1CQUEyQjtRQUNyRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUN0RSxDQUFDOytHQW5PUSxXQUFXO21IQUFYLFdBQVcsY0FGUixNQUFNOzs0RkFFVCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaXJzdCwgbWFwLCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBza2lwLCBTdWJzY3JpcHRpb24sIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0NhdGFsb2dGb3JtYXQgfSBmcm9tICcuLi8uLi9jYXRhbG9nL2VudW1zL3NjLWNhdGFsb2ctZm9ybWF0JztcbmltcG9ydCB7IFNjUHJvZHVjdFRpbGVUeXBlIH0gZnJvbSAnLi4vLi4vY2F0YWxvZy9lbnVtcy9zYy1wcm9kdWN0LXRpbGUtdHlwZSc7XG5pbXBvcnQgeyBTY0lOZXdPcmRlciB9IGZyb20gJy4uLy4uL29yZGVyL2ludGVybmFsL3NjLWktbmV3LW9yZGVyJztcbmltcG9ydCB7IFNjVXNlck1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vdXNlci9kdG8vc2MtdXNlci1tZXRhZGF0YSc7XG5pbXBvcnQgeyBTY1VzZXJUeXBlIH0gZnJvbSAnLi4vLi4vdXNlci9lbnVtcy9zYy11c2VyLXR5cGUnO1xuaW1wb3J0IHsgU2NVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvc2MtdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IGZpbHRlckNoYW5nZWRCeUtleSB9IGZyb20gJy4uL3V0aWxzL2ZpbHRlci1jaGFuZ2VkLWJ5LWtleSc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEgVUkuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjVUlTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiB7QGxpbmsgUmVwbGF5U3ViamVjdH0g0LzQtdGC0LDQtNCw0L3QvdGL0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlck1ldGFkYXRhU3ViamVjdDogUmVwbGF5U3ViamVjdDxTY1VzZXJNZXRhZGF0YT4gPSBuZXcgUmVwbGF5U3ViamVjdDxTY1VzZXJNZXRhZGF0YT4oMSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LTQv9C40YHQutCwINC90LAg0LjQt9C80LXQvdC10L3QuNC1INC80LXRgtCw0LTQsNC90L3Ri9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIG1ldGFkYXRhU3ViamVjdFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NVSVNlcnZpY2V9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJTZXJ2aWNlINCh0LXRgNCy0LjRgSDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdXNlclNlcnZpY2U6IFNjVXNlclNlcnZpY2UpIHtcbiAgICAgICAgdXNlclNlcnZpY2UuZ2V0VXNlckNoYW5nZSQoKS5zdWJzY3JpYmUoKHVzZXIpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1ldGFkYXRhU3ViamVjdFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMubWV0YWRhdGFTdWJqZWN0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudXNlck1ldGFkYXRhU3ViamVjdC5uZXh0KG5ldyBTY1VzZXJNZXRhZGF0YSh1c2VyLm1ldGFkYXRhKSk7XG5cbiAgICAgICAgICAgIHRoaXMubWV0YWRhdGFTdWJqZWN0U3Vic2NyaXB0aW9uID0gdGhpcy51c2VyTWV0YWRhdGFTdWJqZWN0XG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHNraXAoMSksIC8vINCd0LUg0L3Rg9C20L3QviDQvtCx0L3QvtCy0LvRj9GC0Ywg0LTQsNC90L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQv9GA0Lgg0LXQs9C+INGB0LzQtdC90LUuXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgobWV0YWRhdGEpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyLnVzZXJUeXBlID09PSBTY1VzZXJUeXBlLmd1ZXN0ID8gdGhpcy51c2VyU2VydmljZS51cGRhdGVHdWVzdEluZm8kKHsgbWV0YWRhdGE6IG1ldGFkYXRhIH0pIDogdGhpcy51c2VyU2VydmljZS51cGRhdGVVc2VySW5mbyQoeyBtZXRhZGF0YTogbWV0YWRhdGEgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQvNC10YLQsNC00LDQvdC90YvRhSwg0LrQvtCz0LTQsCDQuNC30LzQtdC90Y/QtdGC0YHRjyDQt9C90LDRh9C10L3QuNC1INC/0LXRgNC10LTQsNC90L3QvtCz0L4g0YHQstC+0LnRgdGC0LLQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXJnZXQg0KHQstC+0LnRgdGC0LLQviDQtNC70Y8g0LrQvtGC0L7RgNC+0LPQviDQvtGC0YHQu9C10LbQuNCy0LDQtdGC0YHRjyDQuNC30LzQtdC90LXQvdC40LUuXG4gICAgICovXG4gICAgcHVibGljIGdldE1ldGFkYXRhQ2hhbmdlQnlLZXkkPFQgZXh0ZW5kcyBrZXlvZiBTY1VzZXJNZXRhZGF0YSwgUiA9IFNjVXNlck1ldGFkYXRhW1RdPih0YXJnZXQ6IFQpOiBPYnNlcnZhYmxlPFI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlck1ldGFkYXRhU3ViamVjdC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyQ2hhbmdlZEJ5S2V5KHRhcmdldCksXG4gICAgICAgICAgICBtYXAoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YVt0YXJnZXRdIGFzIFIpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC80LXRgtCw0LTQsNC90L3Ri9GFLCDQutC+0LPQtNCwINC40LfQvNC10L3Rj9C10YLRgdGPINC30L3QsNGH0LXQvdC40LUg0L/QtdGA0LXQtNCw0L3QvdC+0LPQviDRgdCy0L7QudGB0YLQstCwLlxuICAgICAqIFRPRE86INCU0L7RgNCw0LHQvtGC0LDRgtGMINGE0YPQvdC60YbQuNGOLCDRh9GC0L7QsdGLINC+0L3QsCDQstC+0LfQstGA0LDRidCw0LvQsCBPYnNlcnZhYmxlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhcmdldCDQodCy0L7QudGB0YLQstC+LCDQt9C90LDRh9C10L3QuNC1INC60L7RgtC+0YDQvtCz0L4g0L3QtdC+0LHRhdC+0LTQuNC80L4g0LjQt9C80LXQvdC40YLRjC5cbiAgICAgKiBAcGFyYW0gdmFsdWUg0J3QvtCy0L7QtSDQt9C90LDRh9C10L3QuNC1LlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1wYXJhbWV0ZXJzXG4gICAgcHVibGljIHNldE1ldGFkYXRhQnlLZXk8VCBleHRlbmRzIGtleW9mIFNjVXNlck1ldGFkYXRhLCBWID0gU2NVc2VyTWV0YWRhdGFbVF0+KHRhcmdldDogVCwgdmFsdWU6IFYpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51c2VyTWV0YWRhdGFTdWJqZWN0LnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKChtZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3TWV0YWRhdGEgPSBuZXcgU2NVc2VyTWV0YWRhdGEobWV0YWRhdGEpO1xuXG4gICAgICAgICAgICBuZXdNZXRhZGF0YVt0YXJnZXRdID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnVzZXJNZXRhZGF0YVN1YmplY3QubmV4dChuZXdNZXRhZGF0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC/0LjRgdC60LAg0LrQsNGC0LXQs9C+0YDQuNC5LCDQutC+0YLQvtGA0YvQtSDQvdC10L7QsdGF0L7QtNC40LzQviDRgdC60YDRi9GC0YwuXG4gICAgICovXG4gICAgcHVibGljIGdldEhpZGRlbkNhdGVnb3JpZXNMaXN0JCgpOiBPYnNlcnZhYmxlPEFycmF5PG51bWJlciB8IHN0cmluZz4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFDaGFuZ2VCeUtleSQoJ2hpZGRlbkNhdGVnb3JpZXMnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRgdC/0LjRgdC+0Log0LrQsNGC0LXQs9C+0YDQuNC5LCDQutC+0YLQvtGA0YvQtSDQvdC10L7QsdGF0L7QtNC40LzQviDRgdC60YDRi9GC0YwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2F0ZWdvcnlJZHMg0KHQv9C40YHQvtC6INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0L7QsiDQutCw0YLQtdCz0L7RgNC40LksINC60L7RgtC+0YDRi9C1INC90LXQvtCx0YXQvtC00LjQvNC+INGB0LrRgNGL0YLRjC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0SGlkZGVuQ2F0ZWdvcmllc0xpc3QoY2F0ZWdvcnlJZHM6IEFycmF5PG51bWJlciB8IHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNZXRhZGF0YUJ5S2V5KCdoaWRkZW5DYXRlZ29yaWVzJywgY2F0ZWdvcnlJZHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQstC40LTQsCDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjRjyDRgtC+0LLQsNGA0LAg0LIg0YHQv9C40YHQutC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQcm9kdWN0VGlsZVR5cGUkKCk6IE9ic2VydmFibGU8U2NQcm9kdWN0VGlsZVR5cGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFDaGFuZ2VCeUtleSQoJ3Byb2R1Y3RUaWxlVHlwZScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0LjQtCDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjRjyDRgtC+0LLQsNGA0LAg0LIg0YHQv9C40YHQutC1LlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb2R1Y3RUaWxlVHlwZSDQktC40LQg0L/RgNC10LTRgdGC0LDQstC70LXQvdC40Y8g0YLQvtCy0LDRgNCwINCyINGB0L/QuNGB0LrQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UHJvZHVjdFRpbGVUeXBlKHByb2R1Y3RUaWxlVHlwZTogU2NQcm9kdWN0VGlsZVR5cGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNZXRhZGF0YUJ5S2V5KCdwcm9kdWN0VGlsZVR5cGUnLCBwcm9kdWN0VGlsZVR5cGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQutC+0LvQuNGH0LXRgdGC0LLQsCDRjdC70LXQvNC10L3RgtC+0LIg0L3QsCDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGFnaW5hdGVQYWdlU2l6ZSQoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFDaGFuZ2VCeUtleSQoJ3BhZ2luYXRlUGFnZVNpemUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQutC+0LvQuNGH0LXRgdGC0LLQviDRjdC70LXQvNC10L3RgtC+0LIg0L3QsCDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdpbmF0ZVBhZ2VTaXplINCa0L7Qu9C40YfQtdGB0YLQstC+INGN0LvQtdC80LXQvdGC0L7QsiDQvdCwINGB0YLRgNCw0L3QuNGG0LUg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRQYWdpbmF0ZVBhZ2VTaXplKHBhZ2luYXRlUGFnZVNpemU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE1ldGFkYXRhQnlLZXkoJ3BhZ2luYXRlUGFnZVNpemUnLCBwYWdpbmF0ZVBhZ2VTaXplKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LzQtdGC0LDQtNCw0L3QvdGL0YUg0L3QtdC+0YTQvtGA0LzQu9C10L3QvdC+0LPQviDQt9Cw0LrQsNC30LAg0L/QviDQvdCw0L/RgNCw0LLQu9C10L3QuNGOINC/0YDQvtC00LDQti5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkaXJlY3Rpb25zSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0L3QsNC/0YDQsNCy0LvQtdC90LjRjyDQv9GA0L7QtNCw0LYuXG4gICAgICovXG4gICAgcHVibGljIGdldE5ld09yZGVyTWV0YWRhdGEkKGRpcmVjdGlvbnNJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTY0lOZXdPcmRlciB8IHVuZGVmaW5lZD4ge1xuICAgICAgICAvLyDQlNCw0L3QvdGL0LUg0L/RgNC10LTRgdGC0LDQstC70LXQvdGLINC80LDRgdGB0LjQstC+0Lwg0L7QsdGK0LXQutGC0L7Qsiwg0L/QvtGN0YLQvtC80YMg0L3QtSDQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8gZ2V0TWV0YWRhdGFDaGFuZ2VCeUtleSQoKS5cbiAgICAgICAgcmV0dXJuIHRoaXMudXNlck1ldGFkYXRhU3ViamVjdC5waXBlKFxuICAgICAgICAgICAgbWFwKChtZXRhZGF0YSkgPT4gbWV0YWRhdGEubmV3T3JkZXJzTWV0YWRhdGEpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIG1hcCgob3JkZXJzTWV0YWRhdGE6IFJlY29yZDxudW1iZXIsIFNjSU5ld09yZGVyIHwgdW5kZWZpbmVkPikgPT4gb3JkZXJzTWV0YWRhdGFbZGlyZWN0aW9uc0lkXSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LzQtdGC0LDQtNCw0L3QvdGL0LUg0L3QtdC+0YTQvtGA0LzQu9C10L3QvdC+0LPQviDQt9Cw0LrQsNC30LAg0L/QviDQvdCw0L/RgNCw0LLQu9C10L3QuNGOINC/0YDQvtC00LDQti5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkaXJlY3Rpb25zSWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0L3QsNC/0YDQsNCy0LvQtdC90LjRjyDQv9GA0L7QtNCw0LYuXG4gICAgICogQHBhcmFtIG5ld09yZGVyTWV0YWRhdGEg0JTQsNC90L3Ri9C1INC90L7QstC+0LPQviDQvdC10L7RhNC+0YDQvNC70LXQvdC90L7Qs9C+INC30LDQutCw0LfQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0TmV3T3JkZXJNZXRhZGF0YShkaXJlY3Rpb25zSWQ6IG51bWJlciwgbmV3T3JkZXJNZXRhZGF0YTogU2NJTmV3T3JkZXIpOiB2b2lkIHtcbiAgICAgICAgLy8g0J/RgNC4INGB0L7RhdGA0LDQvdC10L3QuNC4INC40LfQvtCx0YDQsNC20LXQvdC40Y8g0LLRi9C00LDRkdGCINC+0YjQuNCx0LrRgyA1MDAgJ9Cf0YDQvtC40LfQvtGI0LvQsCDQvtGI0LjQsdC60LAg0L/RgNC4INGA0LDQsdC+0YLQtSDRgSDQsdCw0LfQvtC5INC00LDQvdC90YvRhScuXG4gICAgICAgIC8vIFRPRE86IFRBU0tbIzYzNzBdOiDQlNC+0YDQsNCx0L7RgtCw0YLRjCDQv9C+0YHQu9C1INGA0LXRiNC10L3QuNGPINC30LDQtNCw0YfQuC5cbiAgICAgICAgaWYgKG5ld09yZGVyTWV0YWRhdGEuaW1hZ2UpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgZGVsZXRlIG5ld09yZGVyTWV0YWRhdGEuaW1hZ2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmdldE1ldGFkYXRhQ2hhbmdlQnlLZXkkKCduZXdPcmRlcnNNZXRhZGF0YScpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgob3JkZXJzTWV0YWRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgICAgICBvcmRlcnNNZXRhZGF0YVtkaXJlY3Rpb25zSWRdID0gbmV3T3JkZXJNZXRhZGF0YTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldE1ldGFkYXRhQnlLZXkoJ25ld09yZGVyc01ldGFkYXRhJywgc3RydWN0dXJlZENsb25lKG9yZGVyc01ldGFkYXRhKSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiDQvNC10YLQsNC00LDQvdC90YvQtSDQvdC10L7RhNC+0YDQvNC70LXQvdC90L7Qs9C+INC30LDQutCw0LfQsCDQv9C+INC90LDQv9GA0LDQstC70LXQvdC40Y4g0L/RgNC+0LTQsNC2LlxuICAgICAqXG4gICAgICogQHBhcmFtIGRpcmVjdGlvbnNJZCDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQvdCw0L/RgNCw0LLQu9C10L3QuNGPINC/0YDQvtC00LDQti5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlTmV3T3JkZXJNZXRhZGF0YShkaXJlY3Rpb25zSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmdldE1ldGFkYXRhQ2hhbmdlQnlLZXkkKCduZXdPcmRlcnNNZXRhZGF0YScpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgob3JkZXJzTWV0YWRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWR5bmFtaWMtZGVsZXRlLG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICAgICAgZGVsZXRlIG9yZGVyc01ldGFkYXRhW2RpcmVjdGlvbnNJZF07XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRNZXRhZGF0YUJ5S2V5KCduZXdPcmRlcnNNZXRhZGF0YScsIHN0cnVjdHVyZWRDbG9uZShvcmRlcnNNZXRhZGF0YSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LzQtdGC0LDQtNCw0L3QvdGL0LUg0L3QtSDQvtGE0L7RgNC80LvQtdC90L3Ri9GFINC30LDQutCw0LfQvtCyINC/0L4g0LLRgdC10Lwg0L3QsNC/0YDQsNCy0LvQtdC90LjRj9C8INC/0YDQvtC00LDQti5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlQWxsTmV3T3JkZXJzTWV0YWRhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0TWV0YWRhdGFCeUtleSgnbmV3T3JkZXJzTWV0YWRhdGEnLCBbXSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LTQsNGC0YMg0L/QvtGB0LvQtdC00L3QtdCz0L4g0L7RgtC60YDRi9GC0LjRjyDQvtC/0YDQvtGB0L3QuNC60L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TGFzdE9wZW5RdWVzdGlvbm5haXJlVGltZSQoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFDaGFuZ2VCeUtleSQoJ2xhc3RPcGVuUXVlc3Rpb25uYWlyZVRpbWUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQtNCw0YLRgyDQv9C+0YHQu9C10LTQvdC10LPQviDQvtGC0LrRgNGL0YLQuNGPINC+0L/RgNC+0YHQvdC40LrQvtCyLlxuICAgICAqXG4gICAgICogQHBhcmFtIGxhc3RPcGVuUXVlc3Rpb25uYWlyZVRpbWUg0JTQsNGC0LAg0L/QvtGB0LvQtdC00L3QtdCz0L4g0L7RgtC60YDRi9GC0LjRjyDQvtC/0YDQvtGB0L3QuNC60L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0TGFzdE9wZW5RdWVzdGlvbm5haXJlVGltZShsYXN0T3BlblF1ZXN0aW9ubmFpcmVUaW1lOiBudW1iZXIgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNZXRhZGF0YUJ5S2V5KCdsYXN0T3BlblF1ZXN0aW9ubmFpcmVUaW1lJywgbGFzdE9wZW5RdWVzdGlvbm5haXJlVGltZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YTQvtGA0LzQsNGCINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LrQsNGC0LDQu9C+0LPQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2F0YWxvZ0Zvcm1hdCQoKTogT2JzZXJ2YWJsZTxTY0NhdGFsb2dGb3JtYXQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFDaGFuZ2VCeUtleSQoJ2NhdGFsb2dGb3JtYXQnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRhNC+0YDQvNCw0YIg0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDQutCw0YLQsNC70L7Qs9CwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhdGFsb2dGb3JtYXQg0KTQvtGA0LzQsNGCINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LrQsNGC0LDQu9C+0LPQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0Q2F0YWxvZ0Zvcm1hdChjYXRhbG9nRm9ybWF0OiBTY0NhdGFsb2dGb3JtYXQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNZXRhZGF0YUJ5S2V5KCdjYXRhbG9nRm9ybWF0JywgY2F0YWxvZ0Zvcm1hdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC/0YDQuNC30L3QsNC60LAg0YHQstGR0YDQvdGD0YLQvtC5INC00L4g0LfQvdCw0YfQutC+0LIg0LHQvtC60L7QstC+0Lkg0L/QsNC90LXQu9C4INC60LDRgtCw0LvQvtCz0LAuXG4gICAgICovXG4gICAgcHVibGljIGdldENhdGFsb2dTaWRlYmFyQ29sbGFwc2VkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFDaGFuZ2VCeUtleSQoJ2lzQ2F0YWxvZ1NpZGViYXJDb2xsYXBzZWQnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQv9GA0LjQt9C90LDQuiDRgdCy0ZHRgNC90YPRgtC+0Lkg0LTQviDQt9C90LDRh9C60L7QsiDQsdC+0LrQvtCy0L7QuSDQv9Cw0L3QtdC70Lgg0LrQsNGC0LDQu9C+0LPQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpc0NhdGFsb2dTaWRlYmFyQ29sbGFwc2VkINCf0YDQuNC30L3QsNC6INGB0LLRkdGA0L3Rg9GC0L7QuSDQtNC+INC30L3QsNGH0LrQvtCyINCx0L7QutC+0LLQvtC5INC/0LDQvdC10LvQuCDQutCw0YLQsNC70L7Qs9CwLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRDYXRhbG9nU2lkZWJhckNvbGxhcHNlZChpc0NhdGFsb2dTaWRlYmFyQ29sbGFwc2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0TWV0YWRhdGFCeUtleSgnaXNDYXRhbG9nU2lkZWJhckNvbGxhcHNlZCcsIGlzQ2F0YWxvZ1NpZGViYXJDb2xsYXBzZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINCy0YvQsdGA0LDQvdC90L7Qs9C+INGB0LrQu9Cw0LTQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzZWxlY3RlZFdhcmVob3VzZUlkINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINCy0YvQsdGA0LDQvdC90L7Qs9C+INGB0LrQu9Cw0LTQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0U2VsZWN0ZWRXYXJlaG91c2VJZChzZWxlY3RlZFdhcmVob3VzZUlkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNZXRhZGF0YUJ5S2V5KCdzZWxlY3RlZFdhcmVob3VzZUlkJywgc2VsZWN0ZWRXYXJlaG91c2VJZCk7XG4gICAgfVxufVxuIl19
@@ -26,7 +26,11 @@ export class ScUserMetadata {
26
26
  * Формат отображения каталога.
27
27
  */
28
28
  this.catalogFormat = ScCatalogFormat.normal;
29
+ /**
30
+ * Признак свёрнутой до значков боковой панели каталога.
31
+ */
32
+ this.isCatalogSidebarCollapsed = false;
29
33
  Object.assign(this, data);
30
34
  }
31
35
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXNlci1tZXRhZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvdXNlci9kdG8vc2MtdXNlci1tZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHN0U7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQTBDdkI7Ozs7T0FJRztJQUNILFlBQW1CLE9BQWdDLEVBQUU7UUF4Q3JEOztXQUVHO1FBQ0kscUJBQWdCLEdBQTJCLEVBQUUsQ0FBQztRQUVyRDs7V0FFRztRQUNJLG9CQUFlLEdBQXNCLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQU9uRTs7V0FFRztRQUNJLHNCQUFpQixHQUE0QyxFQUFFLENBQUM7UUFPdkU7O1dBRUc7UUFDSSxrQkFBYSxHQUFvQixlQUFlLENBQUMsTUFBTSxDQUFDO1FBYTNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjQ2F0YWxvZ0Zvcm1hdCB9IGZyb20gJy4uLy4uL2NhdGFsb2cvZW51bXMvc2MtY2F0YWxvZy1mb3JtYXQnO1xuaW1wb3J0IHsgU2NQcm9kdWN0VGlsZVR5cGUgfSBmcm9tICcuLi8uLi9jYXRhbG9nL2VudW1zL3NjLXByb2R1Y3QtdGlsZS10eXBlJztcbmltcG9ydCB7IFNjSU5ld09yZGVyIH0gZnJvbSAnLi4vLi4vb3JkZXIvaW50ZXJuYWwvc2MtaS1uZXctb3JkZXInO1xuXG4vKipcbiAqINCc0LXRgtCw0LTQsNC90L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNjVXNlck1ldGFkYXRhIHtcbiAgICAvKipcbiAgICAgKiDQndCw0LfQstCw0L3QuNC1INGB0LLQvtC50YHRgtCy0LAg0Lgg0LXQs9C+INC30L3QsNGH0LXQvdC40LUuXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDQvtCyINC60LDRgtC10LPQvtGA0LjQuSwg0LrQvtGC0L7RgNGL0LUg0L3QtdC+0LHRhdC+0LTQuNC80L4g0YHQutGA0YvRgtGMINCyINC60LDRgtCw0LvQvtCz0LUuXG4gICAgICovXG4gICAgcHVibGljIGhpZGRlbkNhdGVnb3JpZXM6IEFycmF5PG51bWJlciB8IHN0cmluZz4gPSBbXTtcblxuICAgIC8qKlxuICAgICAqINCS0LjQtCDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC/0LvQuNGC0L7QuiDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcHJvZHVjdFRpbGVUeXBlOiBTY1Byb2R1Y3RUaWxlVHlwZSA9IFNjUHJvZHVjdFRpbGVUeXBlLmdyaWQ7XG5cbiAgICAvKipcbiAgICAgKiDQmtC+0LvQuNGH0LXRgdGC0LLQviDRjdC70LXQvNC10L3RgtC+0LIg0L3QsCDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGFnaW5hdGVQYWdlU2l6ZT86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCc0LXRgtCw0LTQsNC90L3Ri9C1INC90LUg0L7RhNC+0YDQvNC70LXQvdC90YvRhSDQt9Cw0LrQsNC30L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmV3T3JkZXJzTWV0YWRhdGE6IFJlY29yZDxudW1iZXIsIFNjSU5ld09yZGVyIHwgdW5kZWZpbmVkPiA9IFtdO1xuXG4gICAgLyoqXG4gICAgICog0JTQsNGC0LAg0L/QvtGB0LvQtdC00L3QtdCz0L4g0L7RgtC60YDRi9GC0LjRjyDQvtC/0YDQvtGB0L3QuNC60L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgbGFzdE9wZW5RdWVzdGlvbm5haXJlVGltZT86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCk0L7RgNC80LDRgiDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC60LDRgtCw0LvQvtCz0LAuXG4gICAgICovXG4gICAgcHVibGljIGNhdGFsb2dGb3JtYXQ6IFNjQ2F0YWxvZ0Zvcm1hdCA9IFNjQ2F0YWxvZ0Zvcm1hdC5ub3JtYWw7XG5cbiAgICAvKipcbiAgICAgKiDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQstGL0LHRgNCw0L3QvdC+0LPQviDRgdC60LvQsNC00LAuXG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdGVkV2FyZWhvdXNlSWQ/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjVXNlck1ldGFkYXRhfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRhINCU0LDQvdC90YvQtSDQtNC70Y8g0L/QtdGA0LLQvtC90LDRh9Cw0LvRjNC90L7QuSDQuNC90LjRhtC40LDQu9C40LfQsNGG0LjQuCDQvtCx0YrQtdC60YLQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZGF0YTogUGFydGlhbDxTY1VzZXJNZXRhZGF0YT4gPSB7fSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGRhdGEpO1xuICAgIH1cbn1cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXNlci1tZXRhZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvdXNlci9kdG8vc2MtdXNlci1tZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHN0U7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQStDdkI7Ozs7T0FJRztJQUNILFlBQW1CLE9BQWdDLEVBQUU7UUE3Q3JEOztXQUVHO1FBQ0kscUJBQWdCLEdBQTJCLEVBQUUsQ0FBQztRQUVyRDs7V0FFRztRQUNJLG9CQUFlLEdBQXNCLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQU9uRTs7V0FFRztRQUNJLHNCQUFpQixHQUE0QyxFQUFFLENBQUM7UUFPdkU7O1dBRUc7UUFDSSxrQkFBYSxHQUFvQixlQUFlLENBQUMsTUFBTSxDQUFDO1FBRS9EOztXQUVHO1FBQ0ksOEJBQXlCLEdBQVksS0FBSyxDQUFDO1FBYTlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjQ2F0YWxvZ0Zvcm1hdCB9IGZyb20gJy4uLy4uL2NhdGFsb2cvZW51bXMvc2MtY2F0YWxvZy1mb3JtYXQnO1xuaW1wb3J0IHsgU2NQcm9kdWN0VGlsZVR5cGUgfSBmcm9tICcuLi8uLi9jYXRhbG9nL2VudW1zL3NjLXByb2R1Y3QtdGlsZS10eXBlJztcbmltcG9ydCB7IFNjSU5ld09yZGVyIH0gZnJvbSAnLi4vLi4vb3JkZXIvaW50ZXJuYWwvc2MtaS1uZXctb3JkZXInO1xuXG4vKipcbiAqINCc0LXRgtCw0LTQsNC90L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNjVXNlck1ldGFkYXRhIHtcbiAgICAvKipcbiAgICAgKiDQndCw0LfQstCw0L3QuNC1INGB0LLQvtC50YHRgtCy0LAg0Lgg0LXQs9C+INC30L3QsNGH0LXQvdC40LUuXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDQvtCyINC60LDRgtC10LPQvtGA0LjQuSwg0LrQvtGC0L7RgNGL0LUg0L3QtdC+0LHRhdC+0LTQuNC80L4g0YHQutGA0YvRgtGMINCyINC60LDRgtCw0LvQvtCz0LUuXG4gICAgICovXG4gICAgcHVibGljIGhpZGRlbkNhdGVnb3JpZXM6IEFycmF5PG51bWJlciB8IHN0cmluZz4gPSBbXTtcblxuICAgIC8qKlxuICAgICAqINCS0LjQtCDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC/0LvQuNGC0L7QuiDRgtC+0LLQsNGA0L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcHJvZHVjdFRpbGVUeXBlOiBTY1Byb2R1Y3RUaWxlVHlwZSA9IFNjUHJvZHVjdFRpbGVUeXBlLmdyaWQ7XG5cbiAgICAvKipcbiAgICAgKiDQmtC+0LvQuNGH0LXRgdGC0LLQviDRjdC70LXQvNC10L3RgtC+0LIg0L3QsCDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGFnaW5hdGVQYWdlU2l6ZT86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCc0LXRgtCw0LTQsNC90L3Ri9C1INC90LUg0L7RhNC+0YDQvNC70LXQvdC90YvRhSDQt9Cw0LrQsNC30L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmV3T3JkZXJzTWV0YWRhdGE6IFJlY29yZDxudW1iZXIsIFNjSU5ld09yZGVyIHwgdW5kZWZpbmVkPiA9IFtdO1xuXG4gICAgLyoqXG4gICAgICog0JTQsNGC0LAg0L/QvtGB0LvQtdC00L3QtdCz0L4g0L7RgtC60YDRi9GC0LjRjyDQvtC/0YDQvtGB0L3QuNC60L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgbGFzdE9wZW5RdWVzdGlvbm5haXJlVGltZT86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqINCk0L7RgNC80LDRgiDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC60LDRgtCw0LvQvtCz0LAuXG4gICAgICovXG4gICAgcHVibGljIGNhdGFsb2dGb3JtYXQ6IFNjQ2F0YWxvZ0Zvcm1hdCA9IFNjQ2F0YWxvZ0Zvcm1hdC5ub3JtYWw7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgdCy0ZHRgNC90YPRgtC+0Lkg0LTQviDQt9C90LDRh9C60L7QsiDQsdC+0LrQvtCy0L7QuSDQv9Cw0L3QtdC70Lgg0LrQsNGC0LDQu9C+0LPQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNDYXRhbG9nU2lkZWJhckNvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YHQutC70LDQtNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3RlZFdhcmVob3VzZUlkPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1VzZXJNZXRhZGF0YX0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0YSDQlNCw0L3QvdGL0LUg0LTQu9GPINC/0LXRgNCy0L7QvdCw0YfQsNC70YzQvdC+0Lkg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40Lgg0L7QsdGK0LXQutGC0LAuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGRhdGE6IFBhcnRpYWw8U2NVc2VyTWV0YWRhdGE+ID0ge30pIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBkYXRhKTtcbiAgICB9XG59XG4iXX0=
@@ -4,7 +4,7 @@ import { map, startWith, catchError } from 'rxjs/operators';
4
4
  import { parseISO, parse, isValid, format } from 'date-fns';
5
5
  import { isString, isNil, isMatch, isArray, omit, get } from 'lodash-es';
6
6
  import * as i0 from '@angular/core';
7
- import { InjectionToken, inject, PLATFORM_ID, Injectable, Inject, Optional, EventEmitter, DestroyRef, LOCALE_ID, Pipe, RendererFactory2 } from '@angular/core';
7
+ import { InjectionToken, inject, PLATFORM_ID, Injectable, Inject, Optional, EventEmitter, DestroyRef, LOCALE_ID, Pipe, assertInInjectionContext, RendererFactory2 } from '@angular/core';
8
8
  import { WA_LOCAL_STORAGE, WA_USER_AGENT, WA_WINDOW } from '@ng-web-apis/common';
9
9
  import { filterByKey, toValue, WA_STORAGE_EVENT, StorageService } from '@ng-web-apis/storage';
10
10
  import { isPlatformBrowser, isPlatformServer, DOCUMENT, formatDate } from '@angular/common';
@@ -2063,6 +2063,10 @@ class ScUserMetadata {
2063
2063
  * Формат отображения каталога.
2064
2064
  */
2065
2065
  this.catalogFormat = ScCatalogFormat.normal;
2066
+ /**
2067
+ * Признак свёрнутой до значков боковой панели каталога.
2068
+ */
2069
+ this.isCatalogSidebarCollapsed = false;
2066
2070
  Object.assign(this, data);
2067
2071
  }
2068
2072
  }
@@ -2248,6 +2252,20 @@ class ScUIService {
2248
2252
  setCatalogFormat(catalogFormat) {
2249
2253
  this.setMetadataByKey('catalogFormat', catalogFormat);
2250
2254
  }
2255
+ /**
2256
+ * Возвращает {@link Observable} признака свёрнутой до значков боковой панели каталога.
2257
+ */
2258
+ getCatalogSidebarCollapsed$() {
2259
+ return this.getMetadataChangeByKey$('isCatalogSidebarCollapsed');
2260
+ }
2261
+ /**
2262
+ * Устанавливает признак свёрнутой до значков боковой панели каталога.
2263
+ *
2264
+ * @param isCatalogSidebarCollapsed Признак свёрнутой до значков боковой панели каталога.
2265
+ */
2266
+ setCatalogSidebarCollapsed(isCatalogSidebarCollapsed) {
2267
+ this.setMetadataByKey('isCatalogSidebarCollapsed', isCatalogSidebarCollapsed);
2268
+ }
2251
2269
  /**
2252
2270
  * Устанавливает идентификатор выбранного склада.
2253
2271
  *
@@ -3471,25 +3489,6 @@ class ScCatalogService {
3471
3489
  return data.map((item, index) => new ScProduct(item, index));
3472
3490
  }));
3473
3491
  }
3474
- /**
3475
- * Создает запрос получения списка товаров, созданных за указанный период (с пагинацией).
3476
- *
3477
- * @deprecated Используйте {@link getProducts$} с фильтром `created`. Удалить после перевода всех веток.
3478
- *
3479
- * @param params Параметры запроса товаров за период.
3480
- */
3481
- getNewProducts$(params) {
3482
- return this.http
3483
- .get(`${this.urls.apiUrl}/catalog/products/new`, {
3484
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
3485
- params: this.convertersService.toHttpParams({ ...params }, { nonNullable: true }),
3486
- })
3487
- .pipe(map$1((data) => {
3488
- const cloneData = structuredClone(data);
3489
- cloneData.data = cloneData.data.map((item) => new ScProduct(item));
3490
- return cloneData;
3491
- }));
3492
- }
3493
3492
  /**
3494
3493
  * Создает запрос получения списка товаров категории и кэширует его.
3495
3494
  *
@@ -7439,6 +7438,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
7439
7438
  }]
7440
7439
  }], ctorParameters: () => [] });
7441
7440
 
7441
+ /* eslint-disable unicorn/prevent-abbreviations */
7442
+ /**
7443
+ * Наименование query-параметра номера страницы пагинации.
7444
+ */
7445
+ const SC_PAGE_QUERY_PARAM = 'page';
7446
+ /**
7447
+ * Преобразует значение query-параметра {@link SC_PAGE_QUERY_PARAM} в номер страницы пагинации.
7448
+ * Нечисловые, дробные и меньшие единицы значения приводятся к первой странице.
7449
+ *
7450
+ * @param value Значение query-параметра номера страницы пагинации.
7451
+ */
7452
+ function scParsePageQueryParam(value) {
7453
+ return Math.max(1, Math.trunc(Number(value) || 1));
7454
+ }
7455
+ /**
7456
+ * Возвращает {@link Observable} изменения номера страницы пагинации из query-параметра {@link SC_PAGE_QUERY_PARAM}.
7457
+ * Должна вызываться в контексте инъекции.
7458
+ */
7459
+ function scGetPageQueryParamChanges() {
7460
+ assertInInjectionContext(scGetPageQueryParamChanges);
7461
+ return inject(ActivatedRoute).queryParamMap.pipe(map$1((params) => scParsePageQueryParam(params.get(SC_PAGE_QUERY_PARAM))), distinctUntilChanged());
7462
+ }
7463
+
7442
7464
  /**
7443
7465
  * Сервис пагинации.
7444
7466
  */
@@ -7507,7 +7529,9 @@ class ScPaginationService {
7507
7529
  return [value, value];
7508
7530
  }, [null, null]), map$1(([paginate]) => paginate), takeWhile((paginate) => paginate === null || paginate.meta.currentPage < paginate.meta.lastPage, true))), share());
7509
7531
  this.others$
7510
- .pipe(filter(tuiIsPresent), switchMap(() => this.nextPageClickEvent.pipe(scan((accumulator) => accumulator + 1, 1), startWith$1(1))), takeUntilDestroyed())
7532
+ .pipe(filter(tuiIsPresent), switchMap(() => this.nextPageClickEvent.pipe(
7533
+ // Страница может быть изменена извне (например, из query-параметра page), поэтому номер следующей страницы берётся из текущего состояния page$.
7534
+ map$1(() => this.page$.value.page + 1), startWith$1(1))), takeUntilDestroyed())
7511
7535
  .subscribe((page) => {
7512
7536
  this.patchPage({ page: page });
7513
7537
  });
@@ -7596,6 +7620,97 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
7596
7620
  type: Injectable
7597
7621
  }], ctorParameters: () => [] });
7598
7622
 
7623
+ /* eslint-disable unicorn/prevent-abbreviations */
7624
+ /**
7625
+ * Сервис синхронизации номера страницы пагинации с query-параметром {@link SC_PAGE_QUERY_PARAM}.
7626
+ */
7627
+ class ScPaginationPageQueryParamService {
7628
+ /**
7629
+ * Инициализирует экземпляр класса {@link ScPaginationPageQueryParamService}.
7630
+ */
7631
+ constructor() {
7632
+ /**
7633
+ * Сервис пагинации.
7634
+ */
7635
+ this.paginationService = inject((ScPaginationService));
7636
+ /**
7637
+ * Сервис предоставляющий доступ к данным о маршруте.
7638
+ */
7639
+ this.route = inject(ActivatedRoute);
7640
+ /**
7641
+ * Сервис маршрутизации.
7642
+ */
7643
+ this.router = inject(Router);
7644
+ /**
7645
+ * Номер страницы пагинации, применённый последним.
7646
+ */
7647
+ this.lastAppliedPage = 1;
7648
+ scGetPageQueryParamChanges()
7649
+ .pipe(takeUntilDestroyed())
7650
+ .subscribe((page) => {
7651
+ if (!this.lastParams || page === this.lastAppliedPage) {
7652
+ return;
7653
+ }
7654
+ this.lastAppliedPage = page;
7655
+ // Повторная установка параметров сбрасывает накопленный список, чтобы отобразить только страницу из query-параметра.
7656
+ this.paginationService.patchOthers(this.lastParams);
7657
+ this.paginationService.patchPage({ page });
7658
+ });
7659
+ }
7660
+ /**
7661
+ * Частично обновляет остальные параметры пагинации и применяет номер страницы из query-параметра при первом вызове.
7662
+ *
7663
+ * @param parameters Новые параметры пагинации.
7664
+ */
7665
+ patchOthers(parameters) {
7666
+ const isFirst = !this.lastParams;
7667
+ this.lastParams = parameters;
7668
+ this.paginationService.patchOthers(parameters);
7669
+ if (isFirst) {
7670
+ const pageFromUrl = scParsePageQueryParam(this.route.snapshot.queryParamMap.get(SC_PAGE_QUERY_PARAM));
7671
+ this.lastAppliedPage = pageFromUrl;
7672
+ if (pageFromUrl > 1) {
7673
+ this.paginationService.patchPage({ page: pageFromUrl });
7674
+ }
7675
+ }
7676
+ else {
7677
+ // Изменение фильтров сбрасывает пагинацию на первую страницу.
7678
+ this.resetPageQueryParam();
7679
+ }
7680
+ }
7681
+ /**
7682
+ * Применяет количество записей на странице пагинации с сохранением текущей страницы.
7683
+ *
7684
+ * @param perPage Количество записей на странице пагинации.
7685
+ */
7686
+ patchPerPage(perPage) {
7687
+ if (this.lastParams) {
7688
+ // Повторная установка параметров сбрасывает накопленный список, чтобы текущая страница была запрошена заново с новым количеством записей.
7689
+ this.paginationService.patchOthers(this.lastParams);
7690
+ this.paginationService.patchPage({ page: this.lastAppliedPage, perPage });
7691
+ }
7692
+ else {
7693
+ this.paginationService.patchPage({ page: 1, perPage });
7694
+ }
7695
+ }
7696
+ /**
7697
+ * Убирает номер страницы пагинации из query-параметров.
7698
+ */
7699
+ resetPageQueryParam() {
7700
+ if (!this.lastParams || this.lastAppliedPage === 1) {
7701
+ return;
7702
+ }
7703
+ this.lastAppliedPage = 1;
7704
+ // eslint-disable-next-line no-void
7705
+ void this.router.navigate([], { queryParams: { [SC_PAGE_QUERY_PARAM]: null }, queryParamsHandling: 'merge' });
7706
+ }
7707
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScPaginationPageQueryParamService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
7708
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScPaginationPageQueryParamService }); }
7709
+ }
7710
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScPaginationPageQueryParamService, decorators: [{
7711
+ type: Injectable
7712
+ }], ctorParameters: () => [] });
7713
+
7599
7714
  /**
7600
7715
  * Перечисление идентификаторов статусов опросника.
7601
7716
  */
@@ -8432,9 +8547,12 @@ class ScSeoService {
8432
8547
  const keywords = item.seo?.keywords ?? `${item.name}, ${this.catalogItemDefaultSeo.keywords}`;
8433
8548
  const meta = item.seo?.meta ?? [];
8434
8549
  // Устанавливаем стандартные seo-параметры, в том числе и каноническую ссылку.
8550
+ // Страницы пагинации индексируются отдельно, поэтому каноническая ссылка содержит номер страницы из query-параметров.
8551
+ const page = scParsePageQueryParam(this.router.parseUrl(this.router.url).queryParamMap.get(SC_PAGE_QUERY_PARAM));
8552
+ const canonicalUrl = page > 1 ? `${url}?${SC_PAGE_QUERY_PARAM}=${page}` : url;
8435
8553
  this.setMetaTags(title, description, keywords, meta, ['index', 'follow']);
8436
8554
  this.setOpenGraphMetaTags(title, description, url, this.mediaImageTransformerPipe.transform(item.image, true));
8437
- this.setCanonicalLink(url);
8555
+ this.setCanonicalLink(canonicalUrl);
8438
8556
  // Устанавливаем Schema.org параметры.
8439
8557
  this.setSchemaOrgData(this.schemaOrgFactory.merge([this.schemaOrgFactory.generateForOrganization(), ...(schemaOrgData ? [schemaOrgData] : [])]));
8440
8558
  }
@@ -8918,5 +9036,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
8918
9036
  * Generated bundle index. Do not edit.
8919
9037
  */
8920
9038
 
8921
- export { CATEGORY_PROVIDERS, EMPTY_CART, IS_BROWSER, IS_RUNNING_ON_TERMINAL, IS_SERVER, RESPONSE, SC_ACCESS_AUTH_TOKEN_STORAGE_KEY, SC_API_KEYS, SC_AUTH_ADD_HEADER_REQUIRED, SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS, SC_AUTH_AS_CLIENT_OPTIONS, SC_CACHE_LIFETIME, SC_CACHE_SETTINGS, SC_CATALOG_ITEM_PAGE_META, SC_CATALOG_ROOT_PAGE_META, SC_CATEGORY_INFO, SC_CATEGORY_STATE, SC_COMPANY_INFO, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DATE_FORMAT, SC_DEFAULT_PAGE_META, SC_FEEDBACK_API, SC_GUEST_ENDPOINTS_TOKEN, SC_GUEST_PARAMETER_NAME_TOKEN, SC_GUEST_TOKEN_STORAGE_KEY, SC_ID_OR_SLUG_IN_ROUTE, SC_IS_HEADER_REQUIRED, SC_IS_HIDDEN_ERROR_ALERT, SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_IS_LOGOUT_REQUEST, SC_IS_REFRESH_REQUIRED, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_MAX_LENGTH_SEARCH_TERM, SC_MIN_LENGTH_SEARCH_TERM, SC_NEXT_PAGE_PAGINATION_CLICK, SC_ORDER_LOADER, SC_ORDER_LOADING, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCTS_PAGINATION_LOADER, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_UPDATE_INTERVAL, SC_URLS, SC_USER_INFO, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBanner, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartService, ScCatalogFilterService, ScCatalogFormat, ScCatalogItem, ScCatalogRedirectService, ScCatalogService, ScCatalogableItem, ScCategory, ScClientType, ScCodedIdentity, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDateFormatInterceptor, ScDeletableNamedIdentity, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorRequestState, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForms, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScHiddenCatalogableItem, ScIBreadcrumbItem, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScIdentity, ScImage, ScImageHelper, ScLoadingRequestState, ScLocationsService, ScMediaImageTransformerPipe, ScMimeTypes, ScNamedIdentity, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderBase, ScOrderDraft, ScOrderDraftShort, ScOrderDraftType, ScOrderDraftsService, ScOrderItem, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScPrimaryCatalogableItem, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScReference, ScReferenceName, ScReferencesService, ScRequestStateStatusEnum, ScRequisitesService, ScRouteKeys, ScSearchService, ScSeoService, ScSocialType, ScSuccessRequestState, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUpdatableNamedIdentity, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, SchemaOrgFactory, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, loadingPlaceholder, mapRequestStateToDataOrNull, mapToRequestState, runningOnTerminalFactory, scGetCurrentRoute, scOrderIsLoaded, searchTermFactory };
9039
+ export { CATEGORY_PROVIDERS, EMPTY_CART, IS_BROWSER, IS_RUNNING_ON_TERMINAL, IS_SERVER, RESPONSE, SC_ACCESS_AUTH_TOKEN_STORAGE_KEY, SC_API_KEYS, SC_AUTH_ADD_HEADER_REQUIRED, SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS, SC_AUTH_AS_CLIENT_OPTIONS, SC_CACHE_LIFETIME, SC_CACHE_SETTINGS, SC_CATALOG_ITEM_PAGE_META, SC_CATALOG_ROOT_PAGE_META, SC_CATEGORY_INFO, SC_CATEGORY_STATE, SC_COMPANY_INFO, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DATE_FORMAT, SC_DEFAULT_PAGE_META, SC_FEEDBACK_API, SC_GUEST_ENDPOINTS_TOKEN, SC_GUEST_PARAMETER_NAME_TOKEN, SC_GUEST_TOKEN_STORAGE_KEY, SC_ID_OR_SLUG_IN_ROUTE, SC_IS_HEADER_REQUIRED, SC_IS_HIDDEN_ERROR_ALERT, SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_IS_LOGOUT_REQUEST, SC_IS_REFRESH_REQUIRED, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_MAX_LENGTH_SEARCH_TERM, SC_MIN_LENGTH_SEARCH_TERM, SC_NEXT_PAGE_PAGINATION_CLICK, SC_ORDER_LOADER, SC_ORDER_LOADING, SC_PAGE_QUERY_PARAM, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCTS_PAGINATION_LOADER, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_UPDATE_INTERVAL, SC_URLS, SC_USER_INFO, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBanner, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartService, ScCatalogFilterService, ScCatalogFormat, ScCatalogItem, ScCatalogRedirectService, ScCatalogService, ScCatalogableItem, ScCategory, ScClientType, ScCodedIdentity, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDateFormatInterceptor, ScDeletableNamedIdentity, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorRequestState, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForms, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScHiddenCatalogableItem, ScIBreadcrumbItem, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScIdentity, ScImage, ScImageHelper, ScLoadingRequestState, ScLocationsService, ScMediaImageTransformerPipe, ScMimeTypes, ScNamedIdentity, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderBase, ScOrderDraft, ScOrderDraftShort, ScOrderDraftType, ScOrderDraftsService, ScOrderItem, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationPageQueryParamService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScPrimaryCatalogableItem, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScReference, ScReferenceName, ScReferencesService, ScRequestStateStatusEnum, ScRequisitesService, ScRouteKeys, ScSearchService, ScSeoService, ScSocialType, ScSuccessRequestState, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUpdatableNamedIdentity, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, SchemaOrgFactory, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, loadingPlaceholder, mapRequestStateToDataOrNull, mapToRequestState, runningOnTerminalFactory, scGetCurrentRoute, scGetPageQueryParamChanges, scOrderIsLoaded, scParsePageQueryParam, searchTermFactory };
8922
9040
  //# sourceMappingURL=snabcentr-client-core.mjs.map