info-library 2.14.52 → 2.14.53-beta.0

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.
@@ -0,0 +1 @@
1
+ export { InfoSafeHtmlDirective } from './safehtml.directive';
@@ -0,0 +1,16 @@
1
+ import { ElementRef, OnChanges } from '@angular/core';
2
+ import { DomSanitizer } from '@angular/platform-browser';
3
+ import { HtmlSanitizerConfig } from '../model/html-sanitizer-config.model';
4
+ import * as i0 from "@angular/core";
5
+ export declare class InfoSafeHtmlDirective implements OnChanges {
6
+ private elementRef;
7
+ private sanitizer;
8
+ private config;
9
+ safeHtml: string;
10
+ readonly defaultConfig: HtmlSanitizerConfig;
11
+ private readonly domPurifyConfig;
12
+ constructor(elementRef: ElementRef, sanitizer: DomSanitizer, config: HtmlSanitizerConfig);
13
+ ngOnChanges(): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<InfoSafeHtmlDirective, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<InfoSafeHtmlDirective, "[safeHtml]", never, { "safeHtml": "safeHtml"; }, {}, never, never, false>;
16
+ }
@@ -0,0 +1,2 @@
1
+ export { InfoSafeHtmlDirective } from './safehtml.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBJbmZvU2FmZUh0bWxEaXJlY3RpdmUgfSBmcm9tICcuL3NhZmVodG1sLmRpcmVjdGl2ZSc7Il19
@@ -0,0 +1,42 @@
1
+ import { Directive, ElementRef, Inject, Input, SecurityContext } from '@angular/core';
2
+ import { DomSanitizer } from '@angular/platform-browser';
3
+ import DOMPurify from 'dompurify';
4
+ import { HTML_SANITIZER_CONFIG } from '../global-config';
5
+ import { HtmlSanitizerConfig } from '../model/html-sanitizer-config.model';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/platform-browser";
8
+ import * as i2 from "../model/html-sanitizer-config.model";
9
+ export class InfoSafeHtmlDirective {
10
+ constructor(elementRef, sanitizer, config) {
11
+ this.elementRef = elementRef;
12
+ this.sanitizer = sanitizer;
13
+ this.config = config;
14
+ this.safeHtml = '';
15
+ this.defaultConfig = new HtmlSanitizerConfig();
16
+ this.domPurifyConfig = {
17
+ FORBID_TAGS: this.config?.forbiddenTags ?? this.defaultConfig.forbiddenTags,
18
+ FORBID_ATTR: this.config?.forbiddenAttributes ?? this.defaultConfig.forbiddenAttributes
19
+ };
20
+ }
21
+ ngOnChanges() {
22
+ if (!this.safeHtml)
23
+ return;
24
+ const sanitized = DOMPurify.sanitize(this.safeHtml, this.domPurifyConfig);
25
+ const finalHtml = this.sanitizer.sanitize(SecurityContext.HTML, sanitized) || '';
26
+ this.elementRef.nativeElement.innerHTML = finalHtml;
27
+ }
28
+ }
29
+ /** @nocollapse */ InfoSafeHtmlDirective.ɵfac = function InfoSafeHtmlDirective_Factory(t) { return new (t || InfoSafeHtmlDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.DomSanitizer), i0.ɵɵdirectiveInject(HTML_SANITIZER_CONFIG)); };
30
+ /** @nocollapse */ InfoSafeHtmlDirective.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: InfoSafeHtmlDirective, selectors: [["", "safeHtml", ""]], inputs: { safeHtml: "safeHtml" }, features: [i0.ɵɵNgOnChangesFeature] });
31
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoSafeHtmlDirective, [{
32
+ type: Directive,
33
+ args: [{
34
+ selector: '[safeHtml]'
35
+ }]
36
+ }], function () { return [{ type: i0.ElementRef }, { type: i1.DomSanitizer }, { type: i2.HtmlSanitizerConfig, decorators: [{
37
+ type: Inject,
38
+ args: [HTML_SANITIZER_CONFIG]
39
+ }] }]; }, { safeHtml: [{
40
+ type: Input
41
+ }] }); })();
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZWh0bWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5mby1saWJyYXJ5L3NyYy9kaXJlY3RpdmVzL3NhZmVodG1sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7O0FBSzNFLE1BQU0sT0FBTyxxQkFBcUI7SUFVaEMsWUFBb0IsVUFBc0IsRUFDaEMsU0FBdUIsRUFDUSxNQUEyQjtRQUZoRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDUSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQVYzRCxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBRXRCLGtCQUFhLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ2xDLG9CQUFlLEdBQXFCO1lBQ25ELFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWE7WUFDM0UsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUI7U0FDdkYsQ0FBQztJQUlvRSxDQUFDO0lBRXhFLFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBRTNCLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUUsSUFBSSxFQUFFLENBQUM7UUFDbEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUN0RCxDQUFDOzs2R0FwQlUscUJBQXFCLG1HQVl0QixxQkFBcUI7dUdBWnBCLHFCQUFxQjt1RkFBckIscUJBQXFCO2NBSGpDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTthQUN2Qjs7c0JBYUksTUFBTTt1QkFBQyxxQkFBcUI7d0JBVnRCLFFBQVE7a0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgU2VjdXJpdHlDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgRE9NUHVyaWZ5IGZyb20gJ2RvbXB1cmlmeSc7XHJcbmltcG9ydCB7IEhUTUxfU0FOSVRJWkVSX0NPTkZJRyB9IGZyb20gJy4uL2dsb2JhbC1jb25maWcnO1xyXG5pbXBvcnQgeyBIdG1sU2FuaXRpemVyQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvaHRtbC1zYW5pdGl6ZXItY29uZmlnLm1vZGVsJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3NhZmVIdG1sXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEluZm9TYWZlSHRtbERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIHNhZmVIdG1sOiBzdHJpbmcgPSAnJztcclxuICBcclxuICByZWFkb25seSBkZWZhdWx0Q29uZmlnID0gbmV3IEh0bWxTYW5pdGl6ZXJDb25maWcoKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRvbVB1cmlmeUNvbmZpZzogRE9NUHVyaWZ5LkNvbmZpZyA9IHtcclxuICAgIEZPUkJJRF9UQUdTOiB0aGlzLmNvbmZpZz8uZm9yYmlkZGVuVGFncyA/PyB0aGlzLmRlZmF1bHRDb25maWcuZm9yYmlkZGVuVGFncyxcclxuICAgIEZPUkJJRF9BVFRSOiB0aGlzLmNvbmZpZz8uZm9yYmlkZGVuQXR0cmlidXRlcyA/PyB0aGlzLmRlZmF1bHRDb25maWcuZm9yYmlkZGVuQXR0cmlidXRlc1xyXG4gICB9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgQEluamVjdChIVE1MX1NBTklUSVpFUl9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBIdG1sU2FuaXRpemVyQ29uZmlnKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zYWZlSHRtbCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHNhbml0aXplZCA9IERPTVB1cmlmeS5zYW5pdGl6ZSh0aGlzLnNhZmVIdG1sLCB0aGlzLmRvbVB1cmlmeUNvbmZpZyk7ICAgICBcclxuICAgIGNvbnN0IGZpbmFsSHRtbCA9IHRoaXMuc2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5IVE1MLCBzYW5pdGl6ZWQgKSB8fCAnJztcclxuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IGZpbmFsSHRtbDtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { InjectionToken } from "@angular/core";
2
2
  export const DICTIONARIES_CONFIG = new InjectionToken('DICTIONARIES_CONFIG');
3
3
  export const APICONTROLLER_CONFIG = new InjectionToken('APICONTROLLER_CONFIG');
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvZ2xvYmFsLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFNLHFCQUFxQixDQUFDLENBQUM7QUFDbEYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQU0sc0JBQXNCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBESUNUSU9OQVJJRVNfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ0RJQ1RJT05BUklFU19DT05GSUcnKTtcclxuZXhwb3J0IGNvbnN0IEFQSUNPTlRST0xMRVJfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ0FQSUNPTlRST0xMRVJfQ09ORklHJyk7Il19
4
+ export const HTML_SANITIZER_CONFIG = new InjectionToken('HTML_SANITIZER_CONFIG');
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvZ2xvYmFsLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFNLHFCQUFxQixDQUFDLENBQUM7QUFDbEYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQU0sc0JBQXNCLENBQUMsQ0FBQztBQUNwRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBSSxJQUFJLGNBQWMsQ0FBc0IsdUJBQXVCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSHRtbFNhbml0aXplckNvbmZpZyB9IGZyb20gXCIuL21vZGVsL2h0bWwtc2FuaXRpemVyLWNvbmZpZy5tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IERJQ1RJT05BUklFU19DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignRElDVElPTkFSSUVTX0NPTkZJRycpO1xyXG5leHBvcnQgY29uc3QgQVBJQ09OVFJPTExFUl9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignQVBJQ09OVFJPTExFUl9DT05GSUcnKTtcclxuZXhwb3J0IGNvbnN0IEhUTUxfU0FOSVRJWkVSX0NPTkZJRyAgPSBuZXcgSW5qZWN0aW9uVG9rZW48SHRtbFNhbml0aXplckNvbmZpZz4oJ0hUTUxfU0FOSVRJWkVSX0NPTkZJRycpOyJdfQ==
@@ -25,6 +25,7 @@ import { InfoTranslatePipe } from './pipe/translate.pipe';
25
25
  import { InfoMaskPipe } from './pipe/mask.pipe';
26
26
  import { InfoMaskDirective } from './directives/mask.directive';
27
27
  import { InfoUnmaskDirective } from './directives/unmask.directive';
28
+ import { InfoSafeHtmlDirective } from './directives/safehtml.directive';
28
29
  import { Utilities } from './utils/utilities';
29
30
  // Controls
30
31
  import { InfoAlertComponent } from './controls/alert/alert.component';
@@ -120,6 +121,7 @@ export class InfoLibraryModule {
120
121
  InfoMaskPipe,
121
122
  InfoMaskDirective,
122
123
  InfoUnmaskDirective,
124
+ InfoSafeHtmlDirective,
123
125
  InfoAlertComponent,
124
126
  InfoAutoCompleteComponent,
125
127
  InfoBigCheckboxComponent,
@@ -155,6 +157,7 @@ export class InfoLibraryModule {
155
157
  exports: [
156
158
  InfoTranslatePipe,
157
159
  InfoMaskPipe,
160
+ InfoSafeHtmlDirective,
158
161
  InfoAlertComponent,
159
162
  InfoAutoCompleteComponent,
160
163
  InfoBigCheckboxComponent,
@@ -197,6 +200,7 @@ export class InfoLibraryModule {
197
200
  InfoMaskPipe,
198
201
  InfoMaskDirective,
199
202
  InfoUnmaskDirective,
203
+ InfoSafeHtmlDirective,
200
204
  InfoAlertComponent,
201
205
  InfoAutoCompleteComponent,
202
206
  InfoBigCheckboxComponent,
@@ -251,6 +255,7 @@ export class InfoLibraryModule {
251
255
  AngularEditorModule,
252
256
  MatChipsModule], exports: [InfoTranslatePipe,
253
257
  InfoMaskPipe,
258
+ InfoSafeHtmlDirective,
254
259
  InfoAlertComponent,
255
260
  InfoAutoCompleteComponent,
256
261
  InfoBigCheckboxComponent,
@@ -280,4 +285,4 @@ export class InfoLibraryModule {
280
285
  InfoSidebarComponent,
281
286
  InfoTopbarComponent,
282
287
  InfoTopMenuComponent] }); })();
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1saWJyYXJ5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvaW5mby1saWJyYXJ5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVB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QUFvQjtRQUNwQixzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQixtQkFBbUI7UUFDbkIsd0JBQXdCO1FBQ3hCLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIsbUJBQW1CO1FBQ25CLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEN1cnJlbmN5TWFza01vZHVsZSB9IGZyb20gJ25nMi1jdXJyZW5jeS1tYXNrJztcclxuaW1wb3J0IHsgTWF0TW9tZW50RGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgQW5ndWxhckVkaXRvck1vZHVsZSB9IGZyb20gJ0Brb2xrb3YvYW5ndWxhci1lZGl0b3InO1xyXG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuXHJcbmltcG9ydCB7IEluZm9UcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi9waXBlL3RyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgSW5mb01hc2tQaXBlIH0gZnJvbSAnLi9waXBlL21hc2sucGlwZSc7XHJcbmltcG9ydCB7IEluZm9NYXNrRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL21hc2suZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW5mb1VubWFza0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy91bm1hc2suZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVXRpbGl0aWVzIH0gZnJvbSAnLi91dGlscy91dGlsaXRpZXMnO1xyXG5cclxuLy8gQ29udHJvbHNcclxuaW1wb3J0IHsgSW5mb0FsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9hbGVydC9hbGVydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvQXV0b0NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9CaWdDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvYmlnLWNoZWNrYm94L2JpZy1jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9NZW51Q2FyZENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY2FyZC1tZW51L2NhcmQtbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9EYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9kYXRlL2RhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0RhdGVNb250aENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZGF0ZS1tb250aC9kYXRlLW1vbnRoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9HcmlkQ29tcG9uZW50LCBJbmZvR3JpZE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9ncmlkL2dyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvSW5wdXRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9pbnB1dC1saXN0L2lucHV0LWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0xpc3RDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbGlzdC1jaGVja2JveC9saXN0LWNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9tZXNzYWdlL21lc3NhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb1BhZ2luYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9UaW1lbGluZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0VkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvTXVsdGlTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0NoaXBzQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jaGlwcy9jaGlwcy5jb21wb25lbnQnO1xyXG5cclxuLy8gTGF5b3V0c1xyXG5pbXBvcnQgeyBJbmZvRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0xvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9NYWluQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL21haW4vbWFpbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb1BhZ2ViYXJDb21wb25lbnQsIEF0YWxob01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL3BhZ2ViYXIvcGFnZWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb1RvcGJhckNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy90b3BiYXIvdG9wYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlZnJlc2hTZXNzaW9uVGltZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9zZXJ2aWNlL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbmZvVG9wTWVudUNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy90b3BtZW51L3RvcG1lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0ZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBIdHRwQ2xpZW50TW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgTWF0Q2FyZE1vZHVsZSxcclxuICAgICAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgICAgICBNYXRMaXN0TW9kdWxlLFxyXG4gICAgICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgICAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgICAgICBNYXRSYWRpb01vZHVsZSxcclxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcclxuICAgICAgICBNYXRNb21lbnREYXRlTW9kdWxlLFxyXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcclxuICAgICAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcclxuICAgICAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXHJcbiAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgICAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICAgICAgQ3VycmVuY3lNYXNrTW9kdWxlLFxyXG4gICAgICAgIEFuZ3VsYXJFZGl0b3JNb2R1bGUsXHJcbiAgICAgICAgTWF0Q2hpcHNNb2R1bGUsXHJcbiAgICBdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgSW5mb1RyYW5zbGF0ZVBpcGUsXHJcbiAgICAgICAgSW5mb01hc2tQaXBlLFxyXG4gICAgICAgIEluZm9NYXNrRGlyZWN0aXZlLFxyXG4gICAgICAgIEluZm9Vbm1hc2tEaXJlY3RpdmUsXHJcbiAgICAgICAgSW5mb0FsZXJ0Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9BdXRvQ29tcGxldGVDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0JpZ0NoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9DYXJkQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9NZW51Q2FyZENvbXBvbmVudCxcclxuICAgICAgICBJbmZvQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0RhdGVDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0RhdGVNb250aENvbXBvbmVudCxcclxuICAgICAgICBJbmZvR3JpZENvbXBvbmVudCxcclxuXHRcdEluZm9HcmlkTW9kYWxDb21wb25lbnQsXHJcblx0XHRJbmZvSW5wdXRDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0lucHV0TGlzdENvbXBvbmVudCxcclxuICAgICAgICBJbmZvTGlzdENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9NZXNzYWdlQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9QYWdpbmF0b3JDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb1NlbGVjdENvbXBvbmVudCxcclxuICAgICAgICBJbmZvVGltZWxpbmVDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0VkaXRvckNvbXBvbmVudCxcclxuICAgICAgICBJbmZvTXVsdGlTZWxlY3RDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0NoaXBzQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9EaWFsb2dDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0ZpbHRlckNvbXBvbmVudCxcclxuICAgICAgICBJbmZvTG9hZGluZ0NvbXBvbmVudCxcclxuICAgICAgICBJbmZvTWFpbkNvbXBvbmVudCxcclxuICAgICAgICBJbmZvTW9kYWxDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb1BhZ2ViYXJDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb1NpZGViYXJDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb1RvcGJhckNvbXBvbmVudCxcclxuICAgICAgICBJbmZvVG9wTWVudUNvbXBvbmVudCxcclxuICAgICAgICBBdGFsaG9Nb2RhbENvbXBvbmVudCxcclxuICAgICAgICBSZWZyZXNoU2Vzc2lvblRpbWVNb2RhbENvbXBvbmVudCxcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgSW5mb1RyYW5zbGF0ZVBpcGUsXHJcbiAgICAgICAgSW5mb01hc2tQaXBlLFxyXG4gICAgICAgIEluZm9BbGVydENvbXBvbmVudCxcclxuICAgICAgICBJbmZvQXV0b0NvbXBsZXRlQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9CaWdDaGVja2JveENvbXBvbmVudCxcclxuICAgICAgICBJbmZvQ2FyZENvbXBvbmVudCxcclxuICAgICAgICBJbmZvTWVudUNhcmRDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0NoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9EYXRlQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9EYXRlTW9udGhDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0dyaWRDb21wb25lbnQsXHJcblx0XHRJbmZvR3JpZE1vZGFsQ29tcG9uZW50LFxyXG5cdFx0SW5mb0lucHV0Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9JbnB1dExpc3RDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0xpc3RDaGVja2JveENvbXBvbmVudCxcclxuICAgICAgICBJbmZvTWVzc2FnZUNvbXBvbmVudCxcclxuICAgICAgICBJbmZvUGFnaW5hdG9yQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9TZWxlY3RDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb1RpbWVsaW5lQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9FZGl0b3JDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb011bHRpU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9DaGlwc0NvbXBvbmVudCxcclxuICAgICAgICBJbmZvRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9GaWx0ZXJDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0xvYWRpbmdDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb01haW5Db21wb25lbnQsXHJcbiAgICAgICAgSW5mb01vZGFsQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9QYWdlYmFyQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9TaWRlYmFyQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9Ub3BiYXJDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb1RvcE1lbnVDb21wb25lbnQsXHJcbiAgICBdLFxyXG4gICAgc2NoZW1hczogW1xyXG4gICAgICAgIENVU1RPTV9FTEVNRU5UU19TQ0hFTUFcclxuXHRdLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgVXRpbGl0aWVzXHJcblx0XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5mb0xpYnJhcnlNb2R1bGUgeyB9Il19
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1saWJyYXJ5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvaW5mby1saWJyYXJ5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUMsV0FBVztBQUNYLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRFLFVBQVU7QUFDVixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUEyR3hFLE1BQU0sT0FBTyxpQkFBaUI7O3FHQUFqQixpQkFBaUI7a0dBQWpCLGlCQUFpQjt1R0FKZjtRQUNQLFNBQVM7S0FDZixZQXJHTSxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsYUFBYTtRQUNiLGFBQWE7UUFDYixjQUFjO1FBQ2Qsa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLHFCQUFxQjtRQUNyQixnQkFBZ0I7UUFDaEIsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsY0FBYzt1RkFpRlQsaUJBQWlCO2NBekc3QixRQUFRO2VBQUM7Z0JBQ04sT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osZ0JBQWdCO29CQUNoQixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsYUFBYTtvQkFDYixhQUFhO29CQUNiLGNBQWM7b0JBQ2Qsa0JBQWtCO29CQUNsQixhQUFhO29CQUNiLGVBQWU7b0JBQ2YsaUJBQWlCO29CQUNqQixjQUFjO29CQUNkLGVBQWU7b0JBQ2YsbUJBQW1CO29CQUNuQixtQkFBbUI7b0JBQ25CLGVBQWU7b0JBQ2Ysb0JBQW9CO29CQUNwQixxQkFBcUI7b0JBQ3JCLGdCQUFnQjtvQkFDaEIsWUFBWTtvQkFDWixrQkFBa0I7b0JBQ2xCLG1CQUFtQjtvQkFDbkIsY0FBYztpQkFDakI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLGlCQUFpQjtvQkFDakIsWUFBWTtvQkFDWixpQkFBaUI7b0JBQ2pCLG1CQUFtQjtvQkFDbkIscUJBQXFCO29CQUNyQixrQkFBa0I7b0JBQ2xCLHlCQUF5QjtvQkFDekIsd0JBQXdCO29CQUN4QixpQkFBaUI7b0JBQ2pCLHFCQUFxQjtvQkFDckIscUJBQXFCO29CQUNyQixpQkFBaUI7b0JBQ2pCLHNCQUFzQjtvQkFDdEIsaUJBQWlCO29CQUN2QixzQkFBc0I7b0JBQ3RCLGtCQUFrQjtvQkFDWixzQkFBc0I7b0JBQ3RCLHlCQUF5QjtvQkFDekIsb0JBQW9CO29CQUNwQixzQkFBc0I7b0JBQ3RCLG1CQUFtQjtvQkFDbkIscUJBQXFCO29CQUNyQixtQkFBbUI7b0JBQ25CLHdCQUF3QjtvQkFDeEIsa0JBQWtCO29CQUNsQixtQkFBbUI7b0JBQ25CLG1CQUFtQjtvQkFDbkIsb0JBQW9CO29CQUNwQixpQkFBaUI7b0JBQ2pCLGtCQUFrQjtvQkFDbEIsb0JBQW9CO29CQUNwQixvQkFBb0I7b0JBQ3BCLG1CQUFtQjtvQkFDbkIsb0JBQW9CO29CQUNwQixvQkFBb0I7b0JBQ3BCLGdDQUFnQztpQkFDbkM7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLGlCQUFpQjtvQkFDakIsWUFBWTtvQkFDWixxQkFBcUI7b0JBQ3JCLGtCQUFrQjtvQkFDbEIseUJBQXlCO29CQUN6Qix3QkFBd0I7b0JBQ3hCLGlCQUFpQjtvQkFDakIscUJBQXFCO29CQUNyQixxQkFBcUI7b0JBQ3JCLGlCQUFpQjtvQkFDakIsc0JBQXNCO29CQUN0QixpQkFBaUI7b0JBQ3ZCLHNCQUFzQjtvQkFDdEIsa0JBQWtCO29CQUNaLHNCQUFzQjtvQkFDdEIseUJBQXlCO29CQUN6QixvQkFBb0I7b0JBQ3BCLHNCQUFzQjtvQkFDdEIsbUJBQW1CO29CQUNuQixxQkFBcUI7b0JBQ3JCLG1CQUFtQjtvQkFDbkIsd0JBQXdCO29CQUN4QixrQkFBa0I7b0JBQ2xCLG1CQUFtQjtvQkFDbkIsbUJBQW1CO29CQUNuQixvQkFBb0I7b0JBQ3BCLGlCQUFpQjtvQkFDakIsa0JBQWtCO29CQUNsQixvQkFBb0I7b0JBQ3BCLG9CQUFvQjtvQkFDcEIsbUJBQW1CO29CQUNuQixvQkFBb0I7aUJBQ3ZCO2dCQUNELE9BQU8sRUFBRTtvQkFDTCxzQkFBc0I7aUJBQzVCO2dCQUNFLFNBQVMsRUFBRTtvQkFDUCxTQUFTO2lCQUNmO2FBQ0Q7O3dGQUNZLGlCQUFpQixtQkE5RXRCLGlCQUFpQjtRQUNqQixZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixxQkFBcUI7UUFDckIsa0JBQWtCO1FBQ2xCLHlCQUF5QjtRQUN6Qix3QkFBd0I7UUFDeEIsaUJBQWlCO1FBQ2pCLHFCQUFxQjtRQUNyQixxQkFBcUI7UUFDckIsaUJBQWlCO1FBQ2pCLHNCQUFzQjtRQUN0QixpQkFBaUI7UUFDdkIsc0JBQXNCO1FBQ3RCLGtCQUFrQjtRQUNaLHNCQUFzQjtRQUN0Qix5QkFBeUI7UUFDekIsb0JBQW9CO1FBQ3BCLHNCQUFzQjtRQUN0QixtQkFBbUI7UUFDbkIscUJBQXFCO1FBQ3JCLG1CQUFtQjtRQUNuQix3QkFBd0I7UUFDeEIsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQixtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLGlCQUFpQjtRQUNqQixrQkFBa0I7UUFDbEIsb0JBQW9CO1FBQ3BCLG9CQUFvQjtRQUNwQixtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLG9CQUFvQjtRQUNwQixnQ0FBZ0MsYUE1RGhDLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLG1CQUFtQjtRQUNuQixhQUFhO1FBQ2IsYUFBYTtRQUNiLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsY0FBYztRQUNkLGVBQWU7UUFDZixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLGdCQUFnQjtRQUNoQixZQUFZO1FBQ1osa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQixjQUFjLGFBeUNkLGlCQUFpQjtRQUNqQixZQUFZO1FBQ1oscUJBQXFCO1FBQ3JCLGtCQUFrQjtRQUNsQix5QkFBeUI7UUFDekIsd0JBQXdCO1FBQ3hCLGlCQUFpQjtRQUNqQixxQkFBcUI7UUFDckIscUJBQXFCO1FBQ3JCLGlCQUFpQjtRQUNqQixzQkFBc0I7UUFDdEIsaUJBQWlCO1FBQ3ZCLHNCQUFzQjtRQUN0QixrQkFBa0I7UUFDWixzQkFBc0I7UUFDdEIseUJBQXlCO1FBQ3pCLG9CQUFvQjtRQUNwQixzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQixtQkFBbUI7UUFDbkIsd0JBQXdCO1FBQ3hCLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIsbUJBQW1CO1FBQ25CLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEN1cnJlbmN5TWFza01vZHVsZSB9IGZyb20gJ25nMi1jdXJyZW5jeS1tYXNrJztcclxuaW1wb3J0IHsgTWF0TW9tZW50RGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgQW5ndWxhckVkaXRvck1vZHVsZSB9IGZyb20gJ0Brb2xrb3YvYW5ndWxhci1lZGl0b3InO1xyXG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuXHJcbmltcG9ydCB7IEluZm9UcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi9waXBlL3RyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgSW5mb01hc2tQaXBlIH0gZnJvbSAnLi9waXBlL21hc2sucGlwZSc7XHJcbmltcG9ydCB7IEluZm9NYXNrRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL21hc2suZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW5mb1VubWFza0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy91bm1hc2suZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW5mb1NhZmVIdG1sRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NhZmVodG1sLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFV0aWxpdGllcyB9IGZyb20gJy4vdXRpbHMvdXRpbGl0aWVzJztcclxuXHJcbi8vIENvbnRyb2xzXHJcbmltcG9ydCB7IEluZm9BbGVydENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvYWxlcnQvYWxlcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0F1dG9Db21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvQmlnQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2JpZy1jaGVja2JveC9iaWctY2hlY2tib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0NhcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2NhcmQvY2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvTWVudUNhcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2NhcmQtbWVudS9jYXJkLW1lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0NoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZGF0ZS9kYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9EYXRlTW9udGhDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2RhdGUtbW9udGgvZGF0ZS1tb250aC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvR3JpZENvbXBvbmVudCwgSW5mb0dyaWRNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZ3JpZC9ncmlkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvaW5wdXQvaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb0lucHV0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvaW5wdXQtbGlzdC9pbnB1dC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9MaXN0Q2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2xpc3QtY2hlY2tib3gvbGlzdC1jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbWVzc2FnZS9tZXNzYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9QYWdpbmF0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvVGltZWxpbmVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3RpbWVsaW5lL3RpbWVsaW5lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9FZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb011bHRpU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9DaGlwc0NvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY2hpcHMvY2hpcHMuY29tcG9uZW50JztcclxuXHJcbi8vIExheW91dHNcclxuaW1wb3J0IHsgSW5mb0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9Mb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbmZvTWFpbkNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9tYWluL21haW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9QYWdlYmFyQ29tcG9uZW50LCBBdGFsaG9Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9wYWdlYmFyL3BhZ2ViYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5mb1NpZGViYXJDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9Ub3BiYXJDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvdG9wYmFyL3RvcGJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZWZyZXNoU2Vzc2lvblRpbWVNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vc2VydmljZS9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW5mb1RvcE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvdG9wbWVudS90b3BtZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEluZm9GaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIE1hdENhcmRNb2R1bGUsXHJcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcclxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICAgICAgTWF0TGlzdE1vZHVsZSxcclxuICAgICAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICAgICAgTWF0Q2hlY2tib3hNb2R1bGUsXHJcbiAgICAgICAgTWF0UmFkaW9Nb2R1bGUsXHJcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICAgICAgTWF0TW9tZW50RGF0ZU1vZHVsZSxcclxuICAgICAgICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgICAgICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXHJcbiAgICAgICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICAgICAgUm91dGVyTW9kdWxlLFxyXG4gICAgICAgIEN1cnJlbmN5TWFza01vZHVsZSxcclxuICAgICAgICBBbmd1bGFyRWRpdG9yTW9kdWxlLFxyXG4gICAgICAgIE1hdENoaXBzTW9kdWxlLFxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIEluZm9UcmFuc2xhdGVQaXBlLFxyXG4gICAgICAgIEluZm9NYXNrUGlwZSxcclxuICAgICAgICBJbmZvTWFza0RpcmVjdGl2ZSxcclxuICAgICAgICBJbmZvVW5tYXNrRGlyZWN0aXZlLFxyXG4gICAgICAgIEluZm9TYWZlSHRtbERpcmVjdGl2ZSxcclxuICAgICAgICBJbmZvQWxlcnRDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0F1dG9Db21wbGV0ZUNvbXBvbmVudCxcclxuICAgICAgICBJbmZvQmlnQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0NhcmRDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb01lbnVDYXJkQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9DaGVja2JveENvbXBvbmVudCxcclxuICAgICAgICBJbmZvRGF0ZUNvbXBvbmVudCxcclxuICAgICAgICBJbmZvRGF0ZU1vbnRoQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9HcmlkQ29tcG9uZW50LFxyXG5cdFx0SW5mb0dyaWRNb2RhbENvbXBvbmVudCxcclxuXHRcdEluZm9JbnB1dENvbXBvbmVudCxcclxuICAgICAgICBJbmZvSW5wdXRMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9MaXN0Q2hlY2tib3hDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb01lc3NhZ2VDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb1BhZ2luYXRvckNvbXBvbmVudCxcclxuICAgICAgICBJbmZvU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9UaW1lbGluZUNvbXBvbmVudCxcclxuICAgICAgICBJbmZvRWRpdG9yQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9NdWx0aVNlbGVjdENvbXBvbmVudCxcclxuICAgICAgICBJbmZvQ2hpcHNDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0RpYWxvZ0NvbXBvbmVudCxcclxuICAgICAgICBJbmZvRmlsdGVyQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9Mb2FkaW5nQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9NYWluQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9Nb2RhbENvbXBvbmVudCxcclxuICAgICAgICBJbmZvUGFnZWJhckNvbXBvbmVudCxcclxuICAgICAgICBJbmZvU2lkZWJhckNvbXBvbmVudCxcclxuICAgICAgICBJbmZvVG9wYmFyQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9Ub3BNZW51Q29tcG9uZW50LFxyXG4gICAgICAgIEF0YWxob01vZGFsQ29tcG9uZW50LFxyXG4gICAgICAgIFJlZnJlc2hTZXNzaW9uVGltZU1vZGFsQ29tcG9uZW50LFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBJbmZvVHJhbnNsYXRlUGlwZSxcclxuICAgICAgICBJbmZvTWFza1BpcGUsXHJcbiAgICAgICAgSW5mb1NhZmVIdG1sRGlyZWN0aXZlLFxyXG4gICAgICAgIEluZm9BbGVydENvbXBvbmVudCxcclxuICAgICAgICBJbmZvQXV0b0NvbXBsZXRlQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9CaWdDaGVja2JveENvbXBvbmVudCxcclxuICAgICAgICBJbmZvQ2FyZENvbXBvbmVudCxcclxuICAgICAgICBJbmZvTWVudUNhcmRDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0NoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9EYXRlQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9EYXRlTW9udGhDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0dyaWRDb21wb25lbnQsXHJcblx0XHRJbmZvR3JpZE1vZGFsQ29tcG9uZW50LFxyXG5cdFx0SW5mb0lucHV0Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9JbnB1dExpc3RDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0xpc3RDaGVja2JveENvbXBvbmVudCxcclxuICAgICAgICBJbmZvTWVzc2FnZUNvbXBvbmVudCxcclxuICAgICAgICBJbmZvUGFnaW5hdG9yQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9TZWxlY3RDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb1RpbWVsaW5lQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9FZGl0b3JDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb011bHRpU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgICAgIEluZm9DaGlwc0NvbXBvbmVudCxcclxuICAgICAgICBJbmZvRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9GaWx0ZXJDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb0xvYWRpbmdDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb01haW5Db21wb25lbnQsXHJcbiAgICAgICAgSW5mb01vZGFsQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9QYWdlYmFyQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9TaWRlYmFyQ29tcG9uZW50LFxyXG4gICAgICAgIEluZm9Ub3BiYXJDb21wb25lbnQsXHJcbiAgICAgICAgSW5mb1RvcE1lbnVDb21wb25lbnQsXHJcbiAgICBdLFxyXG4gICAgc2NoZW1hczogW1xyXG4gICAgICAgIENVU1RPTV9FTEVNRU5UU19TQ0hFTUFcclxuXHRdLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgVXRpbGl0aWVzXHJcblx0XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5mb0xpYnJhcnlNb2R1bGUgeyB9Il19
@@ -0,0 +1,9 @@
1
+ export class HtmlSanitizerConfig {
2
+ constructor() {
3
+ //allowedTags: string[] = ['small', 'b', 'strong', 'i', 'em', 'u', 'br', 'p', 'span', 'ul', 'ol', 'li'];
4
+ //allowedAttributes: string[] = [ 'class' ];
5
+ this.forbiddenTags = ['img', 'iframe', 'script', 'svg', 'object', 'embed', 'video', 'audio', 'source', 'style'];
6
+ this.forbiddenAttributes = ['style', 'src', 'srcset', 'onerror', 'onclick', 'onload'];
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1zYW5pdGl6ZXItY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5mby1saWJyYXJ5L3NyYy9tb2RlbC9odG1sLXNhbml0aXplci1jb25maWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLG1CQUFtQjtJQUFoQztRQUNJLHdHQUF3RztRQUN4Ryw0Q0FBNEM7UUFDNUMsa0JBQWEsR0FBYSxDQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBRSxDQUFDO1FBQ3ZILHdCQUFtQixHQUFhLENBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUUsQ0FBQztJQUNqRyxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSHRtbFNhbml0aXplckNvbmZpZyB7XHJcbiAgICAvL2FsbG93ZWRUYWdzOiBzdHJpbmdbXSA9IFsnc21hbGwnLCAnYicsICdzdHJvbmcnLCAnaScsICdlbScsICd1JywgJ2JyJywgJ3AnLCAnc3BhbicsICd1bCcsICdvbCcsICdsaSddO1xyXG4gICAgLy9hbGxvd2VkQXR0cmlidXRlczogc3RyaW5nW10gPSBbICdjbGFzcycgXTtcclxuICAgIGZvcmJpZGRlblRhZ3M6IHN0cmluZ1tdID0gWyAnaW1nJywgJ2lmcmFtZScsICdzY3JpcHQnLCAnc3ZnJywgJ29iamVjdCcsICdlbWJlZCcsICd2aWRlbycsICdhdWRpbycsICdzb3VyY2UnLCAnc3R5bGUnIF07XHJcbiAgICBmb3JiaWRkZW5BdHRyaWJ1dGVzOiBzdHJpbmdbXSA9IFsgJ3N0eWxlJywgJ3NyYycsICdzcmNzZXQnLCAnb25lcnJvcicsICdvbmNsaWNrJywgJ29ubG9hZCcgXTtcclxufSJdfQ==
@@ -1,4 +1,5 @@
1
- export { APICONTROLLER_CONFIG, DICTIONARIES_CONFIG } from './global-config';
1
+ export { APICONTROLLER_CONFIG, DICTIONARIES_CONFIG, HTML_SANITIZER_CONFIG } from './global-config';
2
+ export * from './directives';
2
3
  export * from './model';
3
4
  export * from './enum';
4
5
  export * from './pipe';
@@ -34,4 +35,4 @@ export { InfoLoadingComponent } from './layouts/loading/loading.component';
34
35
  export { InfoModalComponent } from './layouts/modal/modal.component';
35
36
  export { InfoPagebarComponent } from './layouts/pagebar/pagebar.component';
36
37
  export { InfoLibraryModule } from './info-library.module';
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1RSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFdBQVcsQ0FBQztBQUUxQixXQUFXO0FBQ1gsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDMUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDN0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdEUsVUFBVTtBQUNWLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFQSUNPTlRST0xMRVJfQ09ORklHLCBESUNUSU9OQVJJRVNfQ09ORklHIH0gZnJvbSAnLi9nbG9iYWwtY29uZmlnJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2VudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UnO1xyXG5cclxuLy8gQ29udHJvbHNcclxuZXhwb3J0IHsgSW5mb0FsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9hbGVydC9hbGVydC5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvQXV0b0NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9CaWdDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvYmlnLWNoZWNrYm94L2JpZy1jaGVja2JveC5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9NZW51Q2FyZENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY2FyZC1tZW51L2NhcmQtbWVudS5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9EYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9kYXRlL2RhdGUuY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb0RhdGVNb250aENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZGF0ZS1tb250aC9kYXRlLW1vbnRoLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9HcmlkQ29tcG9uZW50LCBJbmZvR3JpZE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9ncmlkL2dyaWQuY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvSW5wdXRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9pbnB1dC1saXN0L2lucHV0LWxpc3QuY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb0xpc3RDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbGlzdC1jaGVja2JveC9saXN0LWNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9tZXNzYWdlL21lc3NhZ2UuY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb1BhZ2luYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9UaW1lbGluZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb0VkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvTXVsdGlTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb0NoaXBzQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jaGlwcy9jaGlwcy5jb21wb25lbnQnO1xyXG5cclxuLy8gTGF5b3V0c1xyXG5leHBvcnQgeyBJbmZvTWFpbkNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9tYWluL21haW4uY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb1NpZGViYXJDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9Ub3BiYXJDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvdG9wYmFyL3RvcGJhci5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvVG9wTWVudUNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy90b3BtZW51L3RvcG1lbnUuY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb0RpYWxvZ0NvbXBvbmVudCwgSW5mb0RpYWxvZ01vZGFsIH0gZnJvbSAnLi9sYXlvdXRzL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb0ZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9Mb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb1BhZ2ViYXJDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvcGFnZWJhci9wYWdlYmFyLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgeyBJbmZvTGlicmFyeU1vZHVsZSB9IGZyb20gJy4vaW5mby1saWJyYXJ5Lm1vZHVsZSc7Il19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVuRyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFdBQVcsQ0FBQztBQUUxQixXQUFXO0FBQ1gsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDMUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDN0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdEUsVUFBVTtBQUNWLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFQSUNPTlRST0xMRVJfQ09ORklHLCBESUNUSU9OQVJJRVNfQ09ORklHLCBIVE1MX1NBTklUSVpFUl9DT05GSUcgfSBmcm9tICcuL2dsb2JhbC1jb25maWcnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZSc7XHJcblxyXG4vLyBDb250cm9sc1xyXG5leHBvcnQgeyBJbmZvQWxlcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9BdXRvQ29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb0JpZ0NoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9iaWctY2hlY2tib3gvYmlnLWNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jYXJkL2NhcmQuY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb01lbnVDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jYXJkLW1lbnUvY2FyZC1tZW51LmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9DaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb0RhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2RhdGUvZGF0ZS5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvRGF0ZU1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9kYXRlLW1vbnRoL2RhdGUtbW9udGguY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb0dyaWRDb21wb25lbnQsIEluZm9HcmlkTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9JbnB1dExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2lucHV0LWxpc3QvaW5wdXQtbGlzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvTGlzdENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9saXN0LWNoZWNrYm94L2xpc3QtY2hlY2tib3guY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb01lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL21lc3NhZ2UvbWVzc2FnZS5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvUGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9TZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb1RpbWVsaW5lQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy90aW1lbGluZS90aW1lbGluZS5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9NdWx0aVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvQ2hpcHNDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2NoaXBzL2NoaXBzLmNvbXBvbmVudCc7XHJcblxyXG4vLyBMYXlvdXRzXHJcbmV4cG9ydCB7IEluZm9NYWluQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL21haW4vbWFpbi5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb1RvcGJhckNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy90b3BiYXIvdG9wYmFyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9Ub3BNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL3RvcG1lbnUvdG9wbWVudS5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvRGlhbG9nQ29tcG9uZW50LCBJbmZvRGlhbG9nTW9kYWwgfSBmcm9tICcuL2xheW91dHMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50JztcclxuZXhwb3J0IHsgSW5mb0xvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEluZm9Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbmZvUGFnZWJhckNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9wYWdlYmFyL3BhZ2ViYXIuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCB7IEluZm9MaWJyYXJ5TW9kdWxlIH0gZnJvbSAnLi9pbmZvLWxpYnJhcnkubW9kdWxlJzsiXX0=
@@ -3,6 +3,7 @@ import { HttpClient } from "@angular/common/http";
3
3
  import { InfoPlatformModel } from "../model/platform.model";
4
4
  import { InfoThemeService } from "./theme.service";
5
5
  import { Utilities } from "../utils/utilities";
6
+ import DOMPurify from 'dompurify';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@angular/common/http";
8
9
  import * as i2 from "../model/platform.model";
@@ -60,6 +61,7 @@ export class InfoConfigurationService {
60
61
  this._themeService.setTheme(activeTheme || 'default-theme');
61
62
  this._themeService.setMenuMin(menuMin == 'true');
62
63
  this._themeService.setModePrime(prime == 'true');
64
+ this.configDOMPurify();
63
65
  r(config);
64
66
  });
65
67
  });
@@ -74,6 +76,23 @@ export class InfoConfigurationService {
74
76
  cssFile.innerHTML = this._utilities.descriptografar(xmlhttp.responseText);
75
77
  document.head.appendChild(cssFile);
76
78
  }
79
+ configDOMPurify() {
80
+ DOMPurify.addHook('afterSanitizeAttributes', (node) => {
81
+ if (node.tagName === 'A') {
82
+ const href = node.getAttribute('href');
83
+ if (!href)
84
+ return;
85
+ const isInternal = href.startsWith('/') ||
86
+ href.startsWith('#') ||
87
+ href.startsWith('mailto:');
88
+ if (!isInternal)
89
+ node.removeAttribute('href');
90
+ }
91
+ });
92
+ // DOMPurify.addHook('uponSanitizeElement', (node, data) => {
93
+ // if (!data.allowedTags[data.tagName]) console.warn('Blocked HTML tag:', data.tagName);
94
+ // });
95
+ }
77
96
  }
78
97
  /** @nocollapse */ InfoConfigurationService.ɵfac = function InfoConfigurationService_Factory(t) { return new (t || InfoConfigurationService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.InfoPlatformModel), i0.ɵɵinject(i3.InfoThemeService), i0.ɵɵinject(i4.Utilities)); };
79
98
  /** @nocollapse */ InfoConfigurationService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: InfoConfigurationService, factory: InfoConfigurationService.ɵfac, providedIn: 'root' });
@@ -83,4 +102,4 @@ export class InfoConfigurationService {
83
102
  providedIn: 'root'
84
103
  }]
85
104
  }], function () { return [{ type: i1.HttpClient }, { type: i2.InfoPlatformModel }, { type: i3.InfoThemeService }, { type: i4.Utilities }]; }, null); })();
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5mby1saWJyYXJ5L3NyYy9zZXJ2aWNlL2NvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQUsvQyxNQUFNLE9BQU8sd0JBQXdCO0lBRWpDLFlBQW9CLEtBQWlCLEVBQVUsV0FBOEIsRUFBVSxhQUErQixFQUFVLFVBQXFCO1FBQWpJLFVBQUssR0FBTCxLQUFLLENBQVk7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFXO0lBQUksQ0FBQztJQUUxSixVQUFVO1FBRU4sT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsS0FBSztpQkFDTCxHQUFHLENBQXFCLGFBQWEsQ0FBQztpQkFDdEMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNoQixJQUFJLFdBQVcsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzdFLElBQUksT0FBTyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJ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QUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxVQUFVO1FBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsR0FBRyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5RyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJO1lBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMxRyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZixJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7O21IQXhFUSx3QkFBd0I7NkdBQXhCLHdCQUF3QixXQUF4Qix3QkFBd0IsbUJBRnJCLE1BQU07dUZBRVQsd0JBQXdCO2NBSHBDLFVBQVU7ZUFBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEluZm9QbGF0Zm9ybU1vZGVsIH0gZnJvbSBcIi4uL21vZGVsL3BsYXRmb3JtLm1vZGVsXCI7XHJcbmltcG9ydCB7IEluZm9BcHBDb25maWdNb2RlbCB9IGZyb20gXCIuLi9tb2RlbC9hcHAtY29uZmlnLm1vZGVsXCI7XHJcbmltcG9ydCB7IEluZm9UaGVtZVNlcnZpY2UgfSBmcm9tIFwiLi90aGVtZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFV0aWxpdGllcyB9IGZyb20gXCIuLi91dGlscy91dGlsaXRpZXNcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5mb0NvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIF9wbGF0YWZvcm1hOiBJbmZvUGxhdGZvcm1Nb2RlbCwgcHJpdmF0ZSBfdGhlbWVTZXJ2aWNlOiBJbmZvVGhlbWVTZXJ2aWNlLCBwcml2YXRlIF91dGlsaXRpZXM6IFV0aWxpdGllcykgeyB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZSgpOiBQcm9taXNlPEluZm9BcHBDb25maWdNb2RlbD4ge1xyXG5cclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHIsIGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5faHR0cFxyXG4gICAgICAgICAgICAgICAgLmdldDxJbmZvQXBwQ29uZmlnTW9kZWw+KCdjb25maWcuanNvbicpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGNvbmZpZyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFjdGl2ZVRoZW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXQnKSB8fCBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYXQnKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbWVudU1pbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ21tJykgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21tJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByaW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnbXAnKSB8fCBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbXAnKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGxhdGFmb3JtYS5Db25maWcgPSBjb25maWc7IFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BsYXRhZm9ybWEuQ29uZmlnSXNOdWxsID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9wbGF0YWZvcm1hLkNvbmZpZy51eCA9PSBudWxsIHx8IHRoaXMuX3BsYXRhZm9ybWEuQ29uZmlnLnV4ID09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGxhdGFmb3JtYS5Db25maWcudXggPSAyO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGxhdGFmb3JtYS5Db25maWcudXggPT0gMilcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWVudU1pbiA9ICdmYWxzZSc7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybEVtYmVkZGVkID0gJy9hc3NldHMvZW1iZWRkZWQvdGVtYXMuY3NzJztcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBodHRwRW1iZWRkZWQgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcclxuICAgICAgICAgICAgICAgICAgICBodHRwRW1iZWRkZWQub3BlbignR0VUJywgdXJsRW1iZWRkZWQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICBodHRwRW1iZWRkZWQuc2VuZCgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoaHR0cEVtYmVkZGVkLnN0YXR1cyA+PSAyMDAgJiYgaHR0cEVtYmVkZGVkLnN0YXR1cyA8IDMwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjc3NUZXh0ID0gaHR0cEVtYmVkZGVkLnJlc3BvbnNlVGV4dCB8fCAnJztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjc3NUZXh0ICYmIGNzc1RleHQudHJpbSgpLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlLnNldEF0dHJpYnV0ZSgnZGF0YS1zb3VyY2UnLCB1cmxFbWJlZGRlZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZS50ZXh0Q29udGVudCA9IGNzc1RleHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZENTU0FQSSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkQ1NTQVBJKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9wbGF0YWZvcm1hLkNvbmZpZy5zdHlsZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjc3NDbGllbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzc0NsaWVudC5ocmVmID0gJy9hc3NldHMvJyArIHRoaXMuX3BsYXRhZm9ybWEuQ29uZmlnLnN0eWxlICsgJy9zdHlsZS5jc3MnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjc3NDbGllbnQudHlwZSA9ICd0ZXh0L2Nzcyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzc0NsaWVudC5yZWwgPSAnc3R5bGVzaGVldCc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoY3NzQ2xpZW50KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVUaGVtZSA9PSBudWxsIHx8IGFjdGl2ZVRoZW1lID09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVGhlbWUgPSBgXyR7dGhpcy5fcGxhdGFmb3JtYS5Db25maWcudGhlbWV9LXRoZW1lYDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGhlbWVTZXJ2aWNlLnNldFRoZW1lKGFjdGl2ZVRoZW1lIHx8ICdkZWZhdWx0LXRoZW1lJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGhlbWVTZXJ2aWNlLnNldE1lbnVNaW4obWVudU1pbiA9PSAndHJ1ZScpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RoZW1lU2VydmljZS5zZXRNb2RlUHJpbWUocHJpbWUgPT0gJ3RydWUnKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcihjb25maWcpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZENTU0FQSSgpIHtcclxuICAgICAgICBjb25zdCB4bWxodHRwID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgICAgICAgeG1saHR0cC5vcGVuKFwiR0VUXCIsIHRoaXMuX3BsYXRhZm9ybWEuQ29uZmlnLndlYmFwaVVybC5yZXBsYWNlKC9cXC9hcGlcXC8kL2lnLCAnJykgKyAnL2xheW91dC90ZW1hcy5jc3MnLCBmYWxzZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybWEuQ29uZmlnLmhlYWRlcnMgIT0gbnVsbClcclxuICAgICAgICAgICAgdGhpcy5fcGxhdGFmb3JtYS5Db25maWcuaGVhZGVycy5mb3JFYWNoKGhlYWRlciA9PiB4bWxodHRwLnNldFJlcXVlc3RIZWFkZXIoaGVhZGVyLmtleSwgaGVhZGVyLnZhbHVlKSk7XHJcbiAgICAgICAgeG1saHR0cC5zZW5kKCk7XHJcbiAgICAgICAgdmFyIGNzc0ZpbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xyXG4gICAgICAgIGNzc0ZpbGUuaW5uZXJIVE1MID0gdGhpcy5fdXRpbGl0aWVzLmRlc2NyaXB0b2dyYWZhcih4bWxodHRwLnJlc3BvbnNlVGV4dCk7ICAgXHJcbiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChjc3NGaWxlKTtcclxuICAgIH1cclxufSJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5mby1saWJyYXJ5L3NyYy9zZXJ2aWNlL2NvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0MsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFDOzs7Ozs7QUFLbEMsTUFBTSxPQUFPLHdCQUF3QjtJQUVqQyxZQUFvQixLQUFpQixFQUFVLFdBQThCLEVBQVUsYUFBK0IsRUFBVSxVQUFxQjtRQUFqSSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBVztJQUFJLENBQUM7SUFFMUosVUFBVTtRQUVOLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEtBQUs7aUJBQ0wsR0FBRyxDQUFxQixhQUFhLENBQUM7aUJBQ3RDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDaEIsSUFBSSxXQUFXLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM3RSxJQUFJLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pFLElBQUksS0FBSyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFdkUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7Z0JBRXRDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksU0FBUztvQkFDN0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFFbkMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQztvQkFDL0IsT0FBTyxHQUFHLE9BQU8sQ0FBQztnQkFFdEIsTUFBTSxXQUFXLEdBQUcsNEJBQTRCLENBQUM7Z0JBQ2pELE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQzFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDN0MsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUVwQixJQUFJLFlBQVksQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO29CQUN6RCxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztvQkFFaEQsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQ3RDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQzlDLEtBQUssQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO3dCQUMvQyxLQUFLLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQzt3QkFDNUIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ3BDO3lCQUFNO3dCQUNILElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztxQkFDckI7aUJBQ0o7cUJBQU07b0JBQ0gsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2lCQUNyQjtnQkFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7b0JBQ3ZDLElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQy9DLFNBQVMsQ0FBQyxJQUFJLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7b0JBQzNFLFNBQVMsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO29CQUM1QixTQUFTLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQztvQkFDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3hDO2dCQUVELElBQUksV0FBVyxJQUFJLElBQUksSUFBSSxXQUFXLElBQUksU0FBUztvQkFDL0MsV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxRQUFRLENBQUM7Z0JBRTVELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxlQUFlLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFFdkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2QsQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxVQUFVO1FBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsR0FBRyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5RyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJO1lBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMxRyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZixJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxlQUFlO1FBQ1gsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLElBQVMsRUFBRSxFQUFFO1lBRXZELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUU7Z0JBRXRCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxJQUFJO29CQUFFLE9BQU87Z0JBRWxCLE1BQU0sVUFBVSxHQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO29CQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFFL0IsSUFBSSxDQUFDLFVBQVU7b0JBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNqRDtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsNkRBQTZEO1FBQzdELDRGQUE0RjtRQUM1RixNQUFNO0lBQ1YsQ0FBQzs7bUhBL0ZRLHdCQUF3Qjs2R0FBeEIsd0JBQXdCLFdBQXhCLHdCQUF3QixtQkFGckIsTUFBTTt1RkFFVCx3QkFBd0I7Y0FIcEMsVUFBVTtlQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5mb1BsYXRmb3JtTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWwvcGxhdGZvcm0ubW9kZWxcIjtcclxuaW1wb3J0IHsgSW5mb0FwcENvbmZpZ01vZGVsIH0gZnJvbSBcIi4uL21vZGVsL2FwcC1jb25maWcubW9kZWxcIjtcclxuaW1wb3J0IHsgSW5mb1RoZW1lU2VydmljZSB9IGZyb20gXCIuL3RoZW1lLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVXRpbGl0aWVzIH0gZnJvbSBcIi4uL3V0aWxzL3V0aWxpdGllc1wiO1xyXG5pbXBvcnQgRE9NUHVyaWZ5IGZyb20gJ2RvbXB1cmlmeSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEluZm9Db25maWd1cmF0aW9uU2VydmljZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBfcGxhdGFmb3JtYTogSW5mb1BsYXRmb3JtTW9kZWwsIHByaXZhdGUgX3RoZW1lU2VydmljZTogSW5mb1RoZW1lU2VydmljZSwgcHJpdmF0ZSBfdXRpbGl0aWVzOiBVdGlsaXRpZXMpIHsgfVxyXG5cclxuICAgIGluaXRpYWxpemUoKTogUHJvbWlzZTxJbmZvQXBwQ29uZmlnTW9kZWw+IHtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyLCBlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2h0dHBcclxuICAgICAgICAgICAgICAgIC5nZXQ8SW5mb0FwcENvbmZpZ01vZGVsPignY29uZmlnLmpzb24nKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShjb25maWcgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBhY3RpdmVUaGVtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F0JykgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2F0Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1lbnVNaW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdtbScpIHx8IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtbScpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmltZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ21wJykgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21wJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BsYXRhZm9ybWEuQ29uZmlnID0gY29uZmlnOyBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wbGF0YWZvcm1hLkNvbmZpZ0lzTnVsbCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGxhdGFmb3JtYS5Db25maWcudXggPT0gbnVsbCB8fCB0aGlzLl9wbGF0YWZvcm1hLkNvbmZpZy51eCA9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3BsYXRhZm9ybWEuQ29uZmlnLnV4ID0gMjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybWEuQ29uZmlnLnV4ID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVNaW4gPSAnZmFsc2UnO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmxFbWJlZGRlZCA9ICcvYXNzZXRzL2VtYmVkZGVkL3RlbWFzLmNzcyc7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaHR0cEVtYmVkZGVkID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaHR0cEVtYmVkZGVkLm9wZW4oJ0dFVCcsIHVybEVtYmVkZGVkLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaHR0cEVtYmVkZGVkLnNlbmQoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGh0dHBFbWJlZGRlZC5zdGF0dXMgPj0gMjAwICYmIGh0dHBFbWJlZGRlZC5zdGF0dXMgPCAzMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3NzVGV4dCA9IGh0dHBFbWJlZGRlZC5yZXNwb25zZVRleHQgfHwgJyc7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3NzVGV4dCAmJiBjc3NUZXh0LnRyaW0oKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtc291cmNlJywgdXJsRW1iZWRkZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSBjc3NUZXh0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRDU1NBUEkoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZENTU0FQSSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGxhdGFmb3JtYS5Db25maWcuc3R5bGUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3NzQ2xpZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjc3NDbGllbnQuaHJlZiA9ICcvYXNzZXRzLycgKyB0aGlzLl9wbGF0YWZvcm1hLkNvbmZpZy5zdHlsZSArICcvc3R5bGUuY3NzJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3NzQ2xpZW50LnR5cGUgPSAndGV4dC9jc3MnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjc3NDbGllbnQucmVsID0gJ3N0eWxlc2hlZXQnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGNzc0NsaWVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aXZlVGhlbWUgPT0gbnVsbCB8fCBhY3RpdmVUaGVtZSA9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVRoZW1lID0gYF8ke3RoaXMuX3BsYXRhZm9ybWEuQ29uZmlnLnRoZW1lfS10aGVtZWA7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RoZW1lU2VydmljZS5zZXRUaGVtZShhY3RpdmVUaGVtZSB8fCAnZGVmYXVsdC10aGVtZScpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RoZW1lU2VydmljZS5zZXRNZW51TWluKG1lbnVNaW4gPT0gJ3RydWUnKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl90aGVtZVNlcnZpY2Uuc2V0TW9kZVByaW1lKHByaW1lID09ICd0cnVlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWdET01QdXJpZnkoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcihjb25maWcpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZENTU0FQSSgpIHtcclxuICAgICAgICBjb25zdCB4bWxodHRwID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgICAgICAgeG1saHR0cC5vcGVuKFwiR0VUXCIsIHRoaXMuX3BsYXRhZm9ybWEuQ29uZmlnLndlYmFwaVVybC5yZXBsYWNlKC9cXC9hcGlcXC8kL2lnLCAnJykgKyAnL2xheW91dC90ZW1hcy5jc3MnLCBmYWxzZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybWEuQ29uZmlnLmhlYWRlcnMgIT0gbnVsbClcclxuICAgICAgICAgICAgdGhpcy5fcGxhdGFmb3JtYS5Db25maWcuaGVhZGVycy5mb3JFYWNoKGhlYWRlciA9PiB4bWxodHRwLnNldFJlcXVlc3RIZWFkZXIoaGVhZGVyLmtleSwgaGVhZGVyLnZhbHVlKSk7XHJcbiAgICAgICAgeG1saHR0cC5zZW5kKCk7XHJcbiAgICAgICAgdmFyIGNzc0ZpbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xyXG4gICAgICAgIGNzc0ZpbGUuaW5uZXJIVE1MID0gdGhpcy5fdXRpbGl0aWVzLmRlc2NyaXB0b2dyYWZhcih4bWxodHRwLnJlc3BvbnNlVGV4dCk7ICAgXHJcbiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChjc3NGaWxlKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25maWdET01QdXJpZnkoKSB7XHJcbiAgICAgICAgRE9NUHVyaWZ5LmFkZEhvb2soJ2FmdGVyU2FuaXRpemVBdHRyaWJ1dGVzJywgKG5vZGU6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICAgICAgaWYgKG5vZGUudGFnTmFtZSA9PT0gJ0EnKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgaHJlZiA9IG5vZGUuZ2V0QXR0cmlidXRlKCdocmVmJyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWhyZWYpIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBpc0ludGVybmFsID1cclxuICAgICAgICAgICAgICAgICAgICBocmVmLnN0YXJ0c1dpdGgoJy8nKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIGhyZWYuc3RhcnRzV2l0aCgnIycpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgaHJlZi5zdGFydHNXaXRoKCdtYWlsdG86Jyk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCFpc0ludGVybmFsKSBub2RlLnJlbW92ZUF0dHJpYnV0ZSgnaHJlZicpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIERPTVB1cmlmeS5hZGRIb29rKCd1cG9uU2FuaXRpemVFbGVtZW50JywgKG5vZGUsIGRhdGEpID0+IHtcclxuICAgICAgICAvLyAgICAgaWYgKCFkYXRhLmFsbG93ZWRUYWdzW2RhdGEudGFnTmFtZV0pIGNvbnNvbGUud2FybignQmxvY2tlZCBIVE1MIHRhZzonLCBkYXRhLnRhZ05hbWUpO1xyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgfVxyXG59Il19