@wemake4u/form-player-se 1.0.27 → 1.0.28

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.
Files changed (66) hide show
  1. package/esm2022/lib/components/actionsCellRenderer/actionsCellRenderer.component.mjs +3 -3
  2. package/esm2022/lib/components/deleteRowRenderer/deleteRowRenderer.component.mjs +3 -3
  3. package/esm2022/lib/components/hostCellRenderer/hostCellRenderer.component.mjs +3 -3
  4. package/esm2022/lib/components/objectURLRenderer/objectURLRenderer.component.mjs +3 -3
  5. package/esm2022/lib/components/setFilter/setFilter.component.mjs +3 -3
  6. package/esm2022/lib/dialog/dialog.component.mjs +3 -3
  7. package/esm2022/lib/directives/accordion.directive.mjs +3 -3
  8. package/esm2022/lib/directives/accordionpanel.directive.mjs +3 -3
  9. package/esm2022/lib/directives/adorner.directive.mjs +3 -3
  10. package/esm2022/lib/directives/change.directive.mjs +3 -3
  11. package/esm2022/lib/directives/collapse.directive.mjs +3 -3
  12. package/esm2022/lib/directives/date.directive.mjs +3 -3
  13. package/esm2022/lib/directives/dialog.directive.mjs +3 -3
  14. package/esm2022/lib/directives/display.directive.mjs +3 -3
  15. package/esm2022/lib/directives/dropdown.directive.mjs +3 -3
  16. package/esm2022/lib/directives/formIndex.directive.mjs +3 -3
  17. package/esm2022/lib/directives/framesecurity.directive.mjs +3 -3
  18. package/esm2022/lib/directives/grid.directive.mjs +49 -13
  19. package/esm2022/lib/directives/number.directive.mjs +5 -8
  20. package/esm2022/lib/directives/readonly.directive.mjs +3 -3
  21. package/esm2022/lib/directives/refresh.directive.mjs +3 -3
  22. package/esm2022/lib/directives/register.directive.mjs +3 -3
  23. package/esm2022/lib/directives/repeat.directive.mjs +5 -4
  24. package/esm2022/lib/directives/tab.directive.mjs +3 -3
  25. package/esm2022/lib/directives/tabcontrol.directive.mjs +3 -3
  26. package/esm2022/lib/directives/text.directive.mjs +3 -3
  27. package/esm2022/lib/directives/updateblur.directive.mjs +3 -3
  28. package/esm2022/lib/directives/validationpatch.directive.mjs +34 -0
  29. package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +36 -16
  30. package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +15 -10
  31. package/esm2022/lib/dynamic-host/dynamic-host.component.mjs +3 -3
  32. package/esm2022/lib/interact/confirmation.mjs +3 -3
  33. package/esm2022/lib/interact/notification.mjs +3 -3
  34. package/esm2022/lib/interact/prompt.mjs +3 -3
  35. package/esm2022/lib/services/chart.service.mjs +3 -3
  36. package/esm2022/lib/services/data.service.mjs +3 -3
  37. package/esm2022/lib/services/dialog.service.mjs +3 -3
  38. package/esm2022/lib/services/event.service.mjs +3 -3
  39. package/esm2022/lib/services/feel.service.mjs +3 -3
  40. package/esm2022/lib/services/form.service.mjs +3 -3
  41. package/esm2022/lib/services/formatter.service.mjs +3 -3
  42. package/esm2022/lib/services/function.service.mjs +3 -3
  43. package/esm2022/lib/services/global.service.mjs +3 -3
  44. package/esm2022/lib/services/grid.service.mjs +3 -3
  45. package/esm2022/lib/services/markdown.service.mjs +3 -3
  46. package/esm2022/lib/services/metadata.service.mjs +3 -3
  47. package/esm2022/lib/services/mime.service.mjs +3 -3
  48. package/esm2022/lib/services/programmability.service.mjs +85 -35
  49. package/esm2022/lib/services/register.service.mjs +3 -3
  50. package/esm2022/lib/services/sanitize.service.mjs +3 -3
  51. package/esm2022/lib/services/scope.service.mjs +3 -3
  52. package/esm2022/lib/services/toast.service.mjs +3 -3
  53. package/esm2022/lib/services/weak.service.mjs +3 -3
  54. package/esm2022/lib/shared/template-wrapper/template-wrapper.component.mjs +3 -3
  55. package/esm2022/lib/utils/syncronize.mjs +34 -0
  56. package/esm2022/public-api.mjs +2 -1
  57. package/fesm2022/wemake4u-form-player-se.mjs +392 -222
  58. package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
  59. package/lib/directives/grid.directive.d.ts +2 -0
  60. package/lib/directives/validationpatch.directive.d.ts +7 -0
  61. package/lib/dynamic-fields/dynamic-fields.component.d.ts +5 -1
  62. package/lib/dynamic-form/dynamic-form.component.d.ts +2 -1
  63. package/lib/services/programmability.service.d.ts +3 -3
  64. package/lib/utils/syncronize.d.ts +1 -0
  65. package/package.json +1 -1
  66. package/public-api.d.ts +1 -0
@@ -172,6 +172,12 @@ export class DynamicFormComponent {
172
172
  strict: this.strict
173
173
  });
174
174
  }
175
+ isChanged() {
176
+ return this.formGroup.dirty;
177
+ }
178
+ isValid() {
179
+ return this.formGroup.valid;
180
+ }
175
181
  valueChangesSubscription = null;
176
182
  onCommandSubscription = null;
177
183
  _forms = [];
@@ -209,12 +215,13 @@ export class DynamicFormComponent {
209
215
  this.internalChange = false;
210
216
  }
211
217
  else {
212
- this.formGroup.reset(this.defaultValue, { emitEvent: true });
218
+ this.formGroup.reset(this.defaultValue, { emitEvent: false });
213
219
  this.clearFormArrays(this.formGroup);
214
220
  this.formService.patch(this.formGroup, this.value, {
215
- emitEvent: true,
221
+ emitEvent: false,
216
222
  strict: this.strict
217
223
  });
224
+ this.formGroup.updateValueAndValidity({ emitEvent: true });
218
225
  }
219
226
  }
220
227
  getNext() {
@@ -316,9 +323,10 @@ export class DynamicFormComponent {
316
323
  }
317
324
  else {
318
325
  let defaultValue = this.getDefaultValue(component);
319
- const [validators, watching] = this.programmability.validate(currentGroup, component.key, component?.validate?.required, this.getValidationRules(component));
326
+ const [validators, asyncValidators, watching] = this.programmability.validate(currentGroup, component.key, component?.validate?.required, this.getValidationRules(component));
320
327
  const options = {
321
328
  validators: validators,
329
+ asyncValidators: asyncValidators,
322
330
  updateOn: this.getUpdateOn(component) || "change",
323
331
  nonNullable: (defaultValue !== null && defaultValue !== undefined)
324
332
  };
@@ -547,11 +555,8 @@ export class DynamicFormComponent {
547
555
  .map(segment => segment.trim())
548
556
  .filter(segment => segment.length > 0);
549
557
  }
550
- hasValue(value) {
551
- return value != null && value.trim().length > 0;
552
- }
553
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicFormComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ProgrammabilityService }, { token: i3.EventService }, { token: i4.RegisterService }, { token: i5.LanguageService }, { token: i6.MetadataService }, { token: i7.FormService }, { token: i8.DialogService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
554
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DynamicFormComponent, isStandalone: true, selector: "app-dynamic-form", inputs: { schema: "schema", formGroup: "formGroup", value: "value", strict: "strict", showNav: "showNav", showNavButton: "showNavButton", showProgress: "showProgress", showFormTitle: "showFormTitle", progressStatus: "progressStatus", activeNav: "activeNav" }, outputs: { valueChange: "valueChange", initialized: "initialized", onCommand: "onCommand", activeNavChange: "activeNavChange" }, providers: [
558
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFormComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ProgrammabilityService }, { token: i3.EventService }, { token: i4.RegisterService }, { token: i5.LanguageService }, { token: i6.MetadataService }, { token: i7.FormService }, { token: i8.DialogService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
559
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DynamicFormComponent, isStandalone: true, selector: "app-dynamic-form", inputs: { schema: "schema", formGroup: "formGroup", value: "value", strict: "strict", showNav: "showNav", showNavButton: "showNavButton", showProgress: "showProgress", showFormTitle: "showFormTitle", progressStatus: "progressStatus", activeNav: "activeNav" }, outputs: { valueChange: "valueChange", initialized: "initialized", onCommand: "onCommand", activeNavChange: "activeNavChange" }, providers: [
555
560
  EventService,
556
561
  ProgrammabilityService,
557
562
  RegisterService,
@@ -559,7 +564,7 @@ export class DynamicFormComponent {
559
564
  FunctionService
560
565
  ], viewQueries: [{ propertyName: "formDiv", first: true, predicate: ["default"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"formGroup\" class=\"ngs\">\r\n\r\n <div class=\"container-fluid\">\r\n <div class=\"row\">\r\n\r\n <!-- #region progress -->\r\n <ngx-sirio-stepper-progress-bar *ngIf=\"showProgress\"\r\n (eventClick)=\"activateForm($event)\"\r\n [hasDropdown]=\"true\"\r\n [dropDownLabel]=\"locale(Texts, 'Show')\">\r\n <ng-container *ngFor=\"let form of forms, let formIndex = index\"> \r\n <ng-container *ngIf=\"!evaluateBoolean(form.disabled)\">\r\n <ng-container *ngIf=\"getFormStatus(form, formIndex) as status\">\r\n <ngx-sirio-stepper-progress-item [hasNavigation]=\"status !== 'inactive'\"\r\n [status]=\"status\"\r\n [label]=\"evaluateTemplate(locale(form, 'title'))\"\r\n #progressItem\r\n [componentRef]=\"progressItem\"\r\n [formIndex]=\"formIndex\"/>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ngx-sirio-stepper-progress-bar>\r\n <!-- #endregion -->\r\n\r\n <ng-container *ngIf=\"showNav\">\r\n\r\n <div class=\"col-md-4\">\r\n\r\n <!-- #region sidenav -->\r\n <ng-template #sidenavTemplate>\r\n <ngx-sirio-sidenav>\r\n <ng-container *ngFor=\"let form of forms, let formIndex = index\">\r\n <ng-container *ngIf=\"!evaluateBoolean(form.disabled)\">\r\n <ng-container *ngIf=\"getFormStatus(form, formIndex) as status\">\r\n <ng-container *ngIf=\"{ count: getErrors(form) } as errors\">\r\n <ngx-sirio-sidenav-item [isActive]=\"activeNav == formIndex\"\r\n (click)=\"activeNav = formIndex\"\r\n [disabledState]=\"status === 'inactive'\"\r\n (keydown.enter)=\"activeNav = formIndex\"\r\n [withTag]=\"errors.count > 0\"\r\n tagType=\"danger\"\r\n [tagValue]=\"errors.count\"\r\n tabindex=\"0\">\r\n {{ evaluateTemplate(locale(form, 'title')) }}\r\n </ngx-sirio-sidenav-item>\r\n </ng-container>\r\n </ng-container> \r\n </ng-container>\r\n </ng-container>\r\n </ngx-sirio-sidenav>\r\n </ng-template>\r\n\r\n <ngx-sirio-sidenav-mobile class=\"d-block d-lg-none\"\r\n [openMenuLabel]=\"locale(Texts, 'OpenMenu')\"\r\n [openMenuAriaLabel]=\"locale(Texts, 'OpenMenu')\"\r\n [closeMenuLabel]=\"locale(Texts, 'CloseMenu')\"\r\n closeMenuAriaLabel=\"locale(Texts, 'CloseMenu')\">\r\n <ng-container *ngTemplateOutlet=\"sidenavTemplate\"></ng-container>\r\n </ngx-sirio-sidenav-mobile>\r\n <div class=\"d-none d-lg-block\">\r\n <ng-container *ngTemplateOutlet=\"sidenavTemplate\"></ng-container>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n </div>\r\n\r\n <div class=\"col-md-1\">\r\n <div class=\"separator-horizontal\"></div>\r\n </div>\r\n\r\n </ng-container>\r\n\r\n <div class=\"content-element-form\" [ngClass]=\"showNav ? 'col-md-11' : 'col-md-16'\">\r\n\r\n <ng-container *ngFor=\"let form of forms, let sectionIndex = index\">\r\n <div *ngIf=\"activeNav == sectionIndex && !evaluateBoolean(form.disabled)\"\r\n #default\r\n [register]=\"form\"\r\n [componentRef]=\"default\">\r\n <h1 *ngIf=\"showFormTitle && form.title\" class=\"h3 form-title\">{{ evaluateTemplate(locale(form, 'title')) }}</h1>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(form.path)\"\r\n [rows]=\"form.rows\"\r\n [alignment]=\"form.verticalAlignment\"></app-dynamic-fields>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"showNavButton && (canNext() || canPrevious())\">\r\n\r\n <div class=\"row section-navs\">\r\n <div class=\"col-8 col-md-8\">\r\n <ngx-sirio-button [color]=\"null\" *ngIf=\"canNext()\" (click)=\"goNext()\" class=\"nextSection\">\r\n {{ locale(Texts, 'NextSection') }}\r\n <span class=\"fa-solid fa-chevron-right\" style=\"margin-left: 10px\"></span>\r\n </ngx-sirio-button>\r\n </div>\r\n <div class=\"col-8 col-md-8\">\r\n <ngx-sirio-button [color]=\"null\" *ngIf=\"canPrevious()\" (click)=\"goPrevious()\" class=\"prevSection\">\r\n <span class=\"fa-solid fa-chevron-left\" style=\"margin-right: 10px\"></span>\r\n {{ locale(Texts, 'PreviousSection') }}\r\n </ngx-sirio-button>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n</form>\r\n\r\n\r\n\r\n", styles: [".ngs .container,.ngs .container-fluid,.ngs .container-xxl,.ngs .container-xl,.ngs .container-lg,.ngs .container-md,.ngs .container-sm{--ngsgutter-x: 1.5rem;--ngsgutter-y: 0;width:100%;padding-right:calc(var(--ngsgutter-x) * .5);padding-left:calc(var(--ngsgutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.ngs .container-sm,.ngs .container{max-width:540px}}@media (min-width: 768px){.ngs .container-md,.ngs .container-sm,.ngs .container{max-width:720px}}@media (min-width: 992px){.ngs .container-lg,.ngs .container-md,.ngs .container-sm,.ngs .container{max-width:960px}}@media (min-width: 1200px){.ngs .container-xl,.ngs .container-lg,.ngs .container-md,.ngs .container-sm,.ngs .container{max-width:1140px}}@media (min-width: 1400px){.ngs .container-xxl,.ngs .container-xl,.ngs .container-lg,.ngs .container-md,.ngs .container-sm,.ngs .container{max-width:1320px}}.ngs :root{--ngsbreakpoint-xs: 0;--ngsbreakpoint-sm: 576px;--ngsbreakpoint-md: 768px;--ngsbreakpoint-lg: 992px;--ngsbreakpoint-xl: 1200px;--ngsbreakpoint-xxl: 1400px}.ngs .row{--ngsgutter-x: 1.5rem;--ngsgutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--ngsgutter-y));margin-right:calc(-.5 * var(--ngsgutter-x));margin-left:calc(-.5 * var(--ngsgutter-x))}.ngs .row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--ngsgutter-x) * .5);padding-left:calc(var(--ngsgutter-x) * .5);margin-top:var(--ngsgutter-y)}.ngs .col{flex:1 0 0%}.ngs .row-cols-auto>*{flex:0 0 auto;width:auto}.ngs .row-cols-1>*{flex:0 0 auto;width:100%}.ngs .row-cols-2>*{flex:0 0 auto;width:50%}.ngs .row-cols-3>*{flex:0 0 auto;width:33.33333333%}.ngs .row-cols-4>*{flex:0 0 auto;width:25%}.ngs .row-cols-5>*{flex:0 0 auto;width:20%}.ngs .row-cols-6>*{flex:0 0 auto;width:16.66666667%}.ngs .col-auto{flex:0 0 auto;width:auto}.ngs .col-1{flex:0 0 auto;width:6.25%}.ngs .col-2{flex:0 0 auto;width:12.5%}.ngs .col-3{flex:0 0 auto;width:18.75%}.ngs .col-4{flex:0 0 auto;width:25%}.ngs .col-5{flex:0 0 auto;width:31.25%}.ngs .col-6{flex:0 0 auto;width:37.5%}.ngs .col-7{flex:0 0 auto;width:43.75%}.ngs .col-8{flex:0 0 auto;width:50%}.ngs .col-9{flex:0 0 auto;width:56.25%}.ngs .col-10{flex:0 0 auto;width:62.5%}.ngs .col-11{flex:0 0 auto;width:68.75%}.ngs .col-12{flex:0 0 auto;width:75%}.ngs .col-13{flex:0 0 auto;width:81.25%}.ngs .col-14{flex:0 0 auto;width:87.5%}.ngs .col-15{flex:0 0 auto;width:93.75%}.ngs .col-16{flex:0 0 auto;width:100%}.ngs .offset-1{margin-left:6.25%}.ngs .offset-2{margin-left:12.5%}.ngs .offset-3{margin-left:18.75%}.ngs .offset-4{margin-left:25%}.ngs .offset-5{margin-left:31.25%}.ngs .offset-6{margin-left:37.5%}.ngs .offset-7{margin-left:43.75%}.ngs .offset-8{margin-left:50%}.ngs .offset-9{margin-left:56.25%}.ngs .offset-10{margin-left:62.5%}.ngs .offset-11{margin-left:68.75%}.ngs .offset-12{margin-left:75%}.ngs .offset-13{margin-left:81.25%}.ngs .offset-14{margin-left:87.5%}.ngs .offset-15{margin-left:93.75%}.ngs .g-0,.ngs .gx-0{--ngsgutter-x: 0}.ngs .g-0,.ngs .gy-0{--ngsgutter-y: 0}.ngs .g-1,.ngs .gx-1{--ngsgutter-x: .25rem}.ngs .g-1,.ngs .gy-1{--ngsgutter-y: .25rem}.ngs .g-2,.ngs .gx-2{--ngsgutter-x: .5rem}.ngs .g-2,.ngs .gy-2{--ngsgutter-y: .5rem}.ngs .g-3,.ngs .gx-3{--ngsgutter-x: 1rem}.ngs .g-3,.ngs .gy-3{--ngsgutter-y: 1rem}.ngs .g-4,.ngs .gx-4{--ngsgutter-x: 1.5rem}.ngs .g-4,.ngs .gy-4{--ngsgutter-y: 1.5rem}.ngs .g-5,.ngs .gx-5{--ngsgutter-x: 3rem}.ngs .g-5,.ngs .gy-5{--ngsgutter-y: 3rem}@media (min-width: 576px){.ngs .col-sm{flex:1 0 0%}.ngs .row-cols-sm-auto>*{flex:0 0 auto;width:auto}.ngs .row-cols-sm-1>*{flex:0 0 auto;width:100%}.ngs .row-cols-sm-2>*{flex:0 0 auto;width:50%}.ngs .row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.ngs .row-cols-sm-4>*{flex:0 0 auto;width:25%}.ngs .row-cols-sm-5>*{flex:0 0 auto;width:20%}.ngs .row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.ngs .col-sm-auto{flex:0 0 auto;width:auto}.ngs .col-sm-1{flex:0 0 auto;width:6.25%}.ngs .col-sm-2{flex:0 0 auto;width:12.5%}.ngs .col-sm-3{flex:0 0 auto;width:18.75%}.ngs .col-sm-4{flex:0 0 auto;width:25%}.ngs .col-sm-5{flex:0 0 auto;width:31.25%}.ngs .col-sm-6{flex:0 0 auto;width:37.5%}.ngs .col-sm-7{flex:0 0 auto;width:43.75%}.ngs .col-sm-8{flex:0 0 auto;width:50%}.ngs .col-sm-9{flex:0 0 auto;width:56.25%}.ngs .col-sm-10{flex:0 0 auto;width:62.5%}.ngs .col-sm-11{flex:0 0 auto;width:68.75%}.ngs .col-sm-12{flex:0 0 auto;width:75%}.ngs .col-sm-13{flex:0 0 auto;width:81.25%}.ngs .col-sm-14{flex:0 0 auto;width:87.5%}.ngs .col-sm-15{flex:0 0 auto;width:93.75%}.ngs .col-sm-16{flex:0 0 auto;width:100%}.ngs .offset-sm-0{margin-left:0}.ngs .offset-sm-1{margin-left:6.25%}.ngs .offset-sm-2{margin-left:12.5%}.ngs .offset-sm-3{margin-left:18.75%}.ngs .offset-sm-4{margin-left:25%}.ngs .offset-sm-5{margin-left:31.25%}.ngs .offset-sm-6{margin-left:37.5%}.ngs .offset-sm-7{margin-left:43.75%}.ngs .offset-sm-8{margin-left:50%}.ngs .offset-sm-9{margin-left:56.25%}.ngs .offset-sm-10{margin-left:62.5%}.ngs .offset-sm-11{margin-left:68.75%}.ngs .offset-sm-12{margin-left:75%}.ngs .offset-sm-13{margin-left:81.25%}.ngs .offset-sm-14{margin-left:87.5%}.ngs .offset-sm-15{margin-left:93.75%}.ngs .g-sm-0,.ngs .gx-sm-0{--ngsgutter-x: 0}.ngs .g-sm-0,.ngs .gy-sm-0{--ngsgutter-y: 0}.ngs .g-sm-1,.ngs .gx-sm-1{--ngsgutter-x: .25rem}.ngs .g-sm-1,.ngs .gy-sm-1{--ngsgutter-y: .25rem}.ngs .g-sm-2,.ngs .gx-sm-2{--ngsgutter-x: .5rem}.ngs .g-sm-2,.ngs .gy-sm-2{--ngsgutter-y: .5rem}.ngs .g-sm-3,.ngs .gx-sm-3{--ngsgutter-x: 1rem}.ngs .g-sm-3,.ngs .gy-sm-3{--ngsgutter-y: 1rem}.ngs .g-sm-4,.ngs .gx-sm-4{--ngsgutter-x: 1.5rem}.ngs .g-sm-4,.ngs .gy-sm-4{--ngsgutter-y: 1.5rem}.ngs .g-sm-5,.ngs .gx-sm-5{--ngsgutter-x: 3rem}.ngs .g-sm-5,.ngs .gy-sm-5{--ngsgutter-y: 3rem}}@media (min-width: 768px){.ngs .col-md{flex:1 0 0%}.ngs .row-cols-md-auto>*{flex:0 0 auto;width:auto}.ngs .row-cols-md-1>*{flex:0 0 auto;width:100%}.ngs .row-cols-md-2>*{flex:0 0 auto;width:50%}.ngs .row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.ngs .row-cols-md-4>*{flex:0 0 auto;width:25%}.ngs .row-cols-md-5>*{flex:0 0 auto;width:20%}.ngs .row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.ngs .col-md-auto{flex:0 0 auto;width:auto}.ngs .col-md-1{flex:0 0 auto;width:6.25%}.ngs .col-md-2{flex:0 0 auto;width:12.5%}.ngs .col-md-3{flex:0 0 auto;width:18.75%}.ngs .col-md-4{flex:0 0 auto;width:25%}.ngs .col-md-5{flex:0 0 auto;width:31.25%}.ngs .col-md-6{flex:0 0 auto;width:37.5%}.ngs .col-md-7{flex:0 0 auto;width:43.75%}.ngs .col-md-8{flex:0 0 auto;width:50%}.ngs .col-md-9{flex:0 0 auto;width:56.25%}.ngs .col-md-10{flex:0 0 auto;width:62.5%}.ngs .col-md-11{flex:0 0 auto;width:68.75%}.ngs .col-md-12{flex:0 0 auto;width:75%}.ngs .col-md-13{flex:0 0 auto;width:81.25%}.ngs .col-md-14{flex:0 0 auto;width:87.5%}.ngs .col-md-15{flex:0 0 auto;width:93.75%}.ngs .col-md-16{flex:0 0 auto;width:100%}.ngs .offset-md-0{margin-left:0}.ngs .offset-md-1{margin-left:6.25%}.ngs .offset-md-2{margin-left:12.5%}.ngs .offset-md-3{margin-left:18.75%}.ngs .offset-md-4{margin-left:25%}.ngs .offset-md-5{margin-left:31.25%}.ngs .offset-md-6{margin-left:37.5%}.ngs .offset-md-7{margin-left:43.75%}.ngs .offset-md-8{margin-left:50%}.ngs .offset-md-9{margin-left:56.25%}.ngs .offset-md-10{margin-left:62.5%}.ngs .offset-md-11{margin-left:68.75%}.ngs .offset-md-12{margin-left:75%}.ngs .offset-md-13{margin-left:81.25%}.ngs .offset-md-14{margin-left:87.5%}.ngs .offset-md-15{margin-left:93.75%}.ngs .g-md-0,.ngs .gx-md-0{--ngsgutter-x: 0}.ngs .g-md-0,.ngs .gy-md-0{--ngsgutter-y: 0}.ngs .g-md-1,.ngs .gx-md-1{--ngsgutter-x: .25rem}.ngs .g-md-1,.ngs .gy-md-1{--ngsgutter-y: .25rem}.ngs .g-md-2,.ngs .gx-md-2{--ngsgutter-x: .5rem}.ngs .g-md-2,.ngs .gy-md-2{--ngsgutter-y: .5rem}.ngs .g-md-3,.ngs .gx-md-3{--ngsgutter-x: 1rem}.ngs .g-md-3,.ngs .gy-md-3{--ngsgutter-y: 1rem}.ngs .g-md-4,.ngs .gx-md-4{--ngsgutter-x: 1.5rem}.ngs .g-md-4,.ngs .gy-md-4{--ngsgutter-y: 1.5rem}.ngs .g-md-5,.ngs .gx-md-5{--ngsgutter-x: 3rem}.ngs .g-md-5,.ngs .gy-md-5{--ngsgutter-y: 3rem}}@media (min-width: 992px){.ngs .col-lg{flex:1 0 0%}.ngs .row-cols-lg-auto>*{flex:0 0 auto;width:auto}.ngs .row-cols-lg-1>*{flex:0 0 auto;width:100%}.ngs .row-cols-lg-2>*{flex:0 0 auto;width:50%}.ngs .row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.ngs .row-cols-lg-4>*{flex:0 0 auto;width:25%}.ngs .row-cols-lg-5>*{flex:0 0 auto;width:20%}.ngs .row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.ngs .col-lg-auto{flex:0 0 auto;width:auto}.ngs .col-lg-1{flex:0 0 auto;width:6.25%}.ngs .col-lg-2{flex:0 0 auto;width:12.5%}.ngs .col-lg-3{flex:0 0 auto;width:18.75%}.ngs .col-lg-4{flex:0 0 auto;width:25%}.ngs .col-lg-5{flex:0 0 auto;width:31.25%}.ngs .col-lg-6{flex:0 0 auto;width:37.5%}.ngs .col-lg-7{flex:0 0 auto;width:43.75%}.ngs .col-lg-8{flex:0 0 auto;width:50%}.ngs .col-lg-9{flex:0 0 auto;width:56.25%}.ngs .col-lg-10{flex:0 0 auto;width:62.5%}.ngs .col-lg-11{flex:0 0 auto;width:68.75%}.ngs .col-lg-12{flex:0 0 auto;width:75%}.ngs .col-lg-13{flex:0 0 auto;width:81.25%}.ngs .col-lg-14{flex:0 0 auto;width:87.5%}.ngs .col-lg-15{flex:0 0 auto;width:93.75%}.ngs .col-lg-16{flex:0 0 auto;width:100%}.ngs .offset-lg-0{margin-left:0}.ngs .offset-lg-1{margin-left:6.25%}.ngs .offset-lg-2{margin-left:12.5%}.ngs .offset-lg-3{margin-left:18.75%}.ngs .offset-lg-4{margin-left:25%}.ngs .offset-lg-5{margin-left:31.25%}.ngs .offset-lg-6{margin-left:37.5%}.ngs .offset-lg-7{margin-left:43.75%}.ngs .offset-lg-8{margin-left:50%}.ngs .offset-lg-9{margin-left:56.25%}.ngs .offset-lg-10{margin-left:62.5%}.ngs .offset-lg-11{margin-left:68.75%}.ngs .offset-lg-12{margin-left:75%}.ngs .offset-lg-13{margin-left:81.25%}.ngs .offset-lg-14{margin-left:87.5%}.ngs .offset-lg-15{margin-left:93.75%}.ngs .g-lg-0,.ngs .gx-lg-0{--ngsgutter-x: 0}.ngs .g-lg-0,.ngs .gy-lg-0{--ngsgutter-y: 0}.ngs .g-lg-1,.ngs .gx-lg-1{--ngsgutter-x: .25rem}.ngs .g-lg-1,.ngs .gy-lg-1{--ngsgutter-y: .25rem}.ngs .g-lg-2,.ngs .gx-lg-2{--ngsgutter-x: .5rem}.ngs .g-lg-2,.ngs .gy-lg-2{--ngsgutter-y: .5rem}.ngs .g-lg-3,.ngs .gx-lg-3{--ngsgutter-x: 1rem}.ngs .g-lg-3,.ngs .gy-lg-3{--ngsgutter-y: 1rem}.ngs .g-lg-4,.ngs .gx-lg-4{--ngsgutter-x: 1.5rem}.ngs .g-lg-4,.ngs .gy-lg-4{--ngsgutter-y: 1.5rem}.ngs .g-lg-5,.ngs .gx-lg-5{--ngsgutter-x: 3rem}.ngs .g-lg-5,.ngs .gy-lg-5{--ngsgutter-y: 3rem}}@media (min-width: 1200px){.ngs .col-xl{flex:1 0 0%}.ngs .row-cols-xl-auto>*{flex:0 0 auto;width:auto}.ngs .row-cols-xl-1>*{flex:0 0 auto;width:100%}.ngs .row-cols-xl-2>*{flex:0 0 auto;width:50%}.ngs .row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.ngs .row-cols-xl-4>*{flex:0 0 auto;width:25%}.ngs .row-cols-xl-5>*{flex:0 0 auto;width:20%}.ngs .row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.ngs .col-xl-auto{flex:0 0 auto;width:auto}.ngs .col-xl-1{flex:0 0 auto;width:6.25%}.ngs .col-xl-2{flex:0 0 auto;width:12.5%}.ngs .col-xl-3{flex:0 0 auto;width:18.75%}.ngs .col-xl-4{flex:0 0 auto;width:25%}.ngs .col-xl-5{flex:0 0 auto;width:31.25%}.ngs .col-xl-6{flex:0 0 auto;width:37.5%}.ngs .col-xl-7{flex:0 0 auto;width:43.75%}.ngs .col-xl-8{flex:0 0 auto;width:50%}.ngs .col-xl-9{flex:0 0 auto;width:56.25%}.ngs .col-xl-10{flex:0 0 auto;width:62.5%}.ngs .col-xl-11{flex:0 0 auto;width:68.75%}.ngs .col-xl-12{flex:0 0 auto;width:75%}.ngs .col-xl-13{flex:0 0 auto;width:81.25%}.ngs .col-xl-14{flex:0 0 auto;width:87.5%}.ngs .col-xl-15{flex:0 0 auto;width:93.75%}.ngs .col-xl-16{flex:0 0 auto;width:100%}.ngs .offset-xl-0{margin-left:0}.ngs .offset-xl-1{margin-left:6.25%}.ngs .offset-xl-2{margin-left:12.5%}.ngs .offset-xl-3{margin-left:18.75%}.ngs .offset-xl-4{margin-left:25%}.ngs .offset-xl-5{margin-left:31.25%}.ngs .offset-xl-6{margin-left:37.5%}.ngs .offset-xl-7{margin-left:43.75%}.ngs .offset-xl-8{margin-left:50%}.ngs .offset-xl-9{margin-left:56.25%}.ngs .offset-xl-10{margin-left:62.5%}.ngs .offset-xl-11{margin-left:68.75%}.ngs .offset-xl-12{margin-left:75%}.ngs .offset-xl-13{margin-left:81.25%}.ngs .offset-xl-14{margin-left:87.5%}.ngs .offset-xl-15{margin-left:93.75%}.ngs .g-xl-0,.ngs .gx-xl-0{--ngsgutter-x: 0}.ngs .g-xl-0,.ngs .gy-xl-0{--ngsgutter-y: 0}.ngs .g-xl-1,.ngs .gx-xl-1{--ngsgutter-x: .25rem}.ngs .g-xl-1,.ngs .gy-xl-1{--ngsgutter-y: .25rem}.ngs .g-xl-2,.ngs .gx-xl-2{--ngsgutter-x: .5rem}.ngs .g-xl-2,.ngs .gy-xl-2{--ngsgutter-y: .5rem}.ngs .g-xl-3,.ngs .gx-xl-3{--ngsgutter-x: 1rem}.ngs .g-xl-3,.ngs .gy-xl-3{--ngsgutter-y: 1rem}.ngs .g-xl-4,.ngs .gx-xl-4{--ngsgutter-x: 1.5rem}.ngs .g-xl-4,.ngs .gy-xl-4{--ngsgutter-y: 1.5rem}.ngs .g-xl-5,.ngs .gx-xl-5{--ngsgutter-x: 3rem}.ngs .g-xl-5,.ngs .gy-xl-5{--ngsgutter-y: 3rem}}@media (min-width: 1400px){.ngs .col-xxl{flex:1 0 0%}.ngs .row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.ngs .row-cols-xxl-1>*{flex:0 0 auto;width:100%}.ngs .row-cols-xxl-2>*{flex:0 0 auto;width:50%}.ngs .row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.ngs .row-cols-xxl-4>*{flex:0 0 auto;width:25%}.ngs .row-cols-xxl-5>*{flex:0 0 auto;width:20%}.ngs .row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.ngs .col-xxl-auto{flex:0 0 auto;width:auto}.ngs .col-xxl-1{flex:0 0 auto;width:6.25%}.ngs .col-xxl-2{flex:0 0 auto;width:12.5%}.ngs .col-xxl-3{flex:0 0 auto;width:18.75%}.ngs .col-xxl-4{flex:0 0 auto;width:25%}.ngs .col-xxl-5{flex:0 0 auto;width:31.25%}.ngs .col-xxl-6{flex:0 0 auto;width:37.5%}.ngs .col-xxl-7{flex:0 0 auto;width:43.75%}.ngs .col-xxl-8{flex:0 0 auto;width:50%}.ngs .col-xxl-9{flex:0 0 auto;width:56.25%}.ngs .col-xxl-10{flex:0 0 auto;width:62.5%}.ngs .col-xxl-11{flex:0 0 auto;width:68.75%}.ngs .col-xxl-12{flex:0 0 auto;width:75%}.ngs .col-xxl-13{flex:0 0 auto;width:81.25%}.ngs .col-xxl-14{flex:0 0 auto;width:87.5%}.ngs .col-xxl-15{flex:0 0 auto;width:93.75%}.ngs .col-xxl-16{flex:0 0 auto;width:100%}.ngs .offset-xxl-0{margin-left:0}.ngs .offset-xxl-1{margin-left:6.25%}.ngs .offset-xxl-2{margin-left:12.5%}.ngs .offset-xxl-3{margin-left:18.75%}.ngs .offset-xxl-4{margin-left:25%}.ngs .offset-xxl-5{margin-left:31.25%}.ngs .offset-xxl-6{margin-left:37.5%}.ngs .offset-xxl-7{margin-left:43.75%}.ngs .offset-xxl-8{margin-left:50%}.ngs .offset-xxl-9{margin-left:56.25%}.ngs .offset-xxl-10{margin-left:62.5%}.ngs .offset-xxl-11{margin-left:68.75%}.ngs .offset-xxl-12{margin-left:75%}.ngs .offset-xxl-13{margin-left:81.25%}.ngs .offset-xxl-14{margin-left:87.5%}.ngs .offset-xxl-15{margin-left:93.75%}.ngs .g-xxl-0,.ngs .gx-xxl-0{--ngsgutter-x: 0}.ngs .g-xxl-0,.ngs .gy-xxl-0{--ngsgutter-y: 0}.ngs .g-xxl-1,.ngs .gx-xxl-1{--ngsgutter-x: .25rem}.ngs .g-xxl-1,.ngs .gy-xxl-1{--ngsgutter-y: .25rem}.ngs .g-xxl-2,.ngs .gx-xxl-2{--ngsgutter-x: .5rem}.ngs .g-xxl-2,.ngs .gy-xxl-2{--ngsgutter-y: .5rem}.ngs .g-xxl-3,.ngs .gx-xxl-3{--ngsgutter-x: 1rem}.ngs .g-xxl-3,.ngs .gy-xxl-3{--ngsgutter-y: 1rem}.ngs .g-xxl-4,.ngs .gx-xxl-4{--ngsgutter-x: 1.5rem}.ngs .g-xxl-4,.ngs .gy-xxl-4{--ngsgutter-y: 1.5rem}.ngs .g-xxl-5,.ngs .gx-xxl-5{--ngsgutter-x: 3rem}.ngs .g-xxl-5,.ngs .gy-xxl-5{--ngsgutter-y: 3rem}}.ngs .d-inline{display:inline!important}.ngs .d-inline-block{display:inline-block!important}.ngs .d-block{display:block!important}.ngs .d-grid{display:grid!important}.ngs .d-inline-grid{display:inline-grid!important}.ngs .d-table{display:table!important}.ngs .d-table-row{display:table-row!important}.ngs .d-table-cell{display:table-cell!important}.ngs .d-flex{display:flex!important}.ngs .d-inline-flex{display:inline-flex!important}.ngs .d-none{display:none!important}.ngs .flex-fill{flex:1 1 auto!important}.ngs .flex-row{flex-direction:row!important}.ngs .flex-column{flex-direction:column!important}.ngs .flex-row-reverse{flex-direction:row-reverse!important}.ngs .flex-column-reverse{flex-direction:column-reverse!important}.ngs .flex-grow-0{flex-grow:0!important}.ngs .flex-grow-1{flex-grow:1!important}.ngs .flex-shrink-0{flex-shrink:0!important}.ngs .flex-shrink-1{flex-shrink:1!important}.ngs .flex-wrap{flex-wrap:wrap!important}.ngs .flex-nowrap{flex-wrap:nowrap!important}.ngs .flex-wrap-reverse{flex-wrap:wrap-reverse!important}.ngs .justify-content-start{justify-content:flex-start!important}.ngs .justify-content-end{justify-content:flex-end!important}.ngs .justify-content-center{justify-content:center!important}.ngs .justify-content-between{justify-content:space-between!important}.ngs .justify-content-around{justify-content:space-around!important}.ngs .justify-content-evenly{justify-content:space-evenly!important}.ngs .align-items-start{align-items:flex-start!important}.ngs .align-items-end{align-items:flex-end!important}.ngs .align-items-center{align-items:center!important}.ngs .align-items-baseline{align-items:baseline!important}.ngs .align-items-stretch{align-items:stretch!important}.ngs .align-content-start{align-content:flex-start!important}.ngs .align-content-end{align-content:flex-end!important}.ngs .align-content-center{align-content:center!important}.ngs .align-content-between{align-content:space-between!important}.ngs .align-content-around{align-content:space-around!important}.ngs .align-content-stretch{align-content:stretch!important}.ngs .align-self-auto{align-self:auto!important}.ngs .align-self-start{align-self:flex-start!important}.ngs .align-self-end{align-self:flex-end!important}.ngs .align-self-center{align-self:center!important}.ngs .align-self-baseline{align-self:baseline!important}.ngs .align-self-stretch{align-self:stretch!important}.ngs .order-first{order:-1!important}.ngs .order-0{order:0!important}.ngs .order-1{order:1!important}.ngs .order-2{order:2!important}.ngs .order-3{order:3!important}.ngs .order-4{order:4!important}.ngs .order-5{order:5!important}.ngs .order-last{order:6!important}.ngs .m-0{margin:0!important}.ngs .m-1{margin:.25rem!important}.ngs .m-2{margin:.5rem!important}.ngs .m-3{margin:1rem!important}.ngs .m-4{margin:1.5rem!important}.ngs .m-5{margin:3rem!important}.ngs .m-auto{margin:auto!important}.ngs .mx-0{margin-right:0!important;margin-left:0!important}.ngs .mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.ngs .mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.ngs .mx-3{margin-right:1rem!important;margin-left:1rem!important}.ngs .mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.ngs .mx-5{margin-right:3rem!important;margin-left:3rem!important}.ngs .mx-auto{margin-right:auto!important;margin-left:auto!important}.ngs .my-0{margin-top:0!important;margin-bottom:0!important}.ngs .my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.ngs .my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.ngs .my-3{margin-top:1rem!important;margin-bottom:1rem!important}.ngs .my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.ngs .my-5{margin-top:3rem!important;margin-bottom:3rem!important}.ngs .my-auto{margin-top:auto!important;margin-bottom:auto!important}.ngs .mt-0{margin-top:0!important}.ngs .mt-1{margin-top:.25rem!important}.ngs .mt-2{margin-top:.5rem!important}.ngs .mt-3{margin-top:1rem!important}.ngs .mt-4{margin-top:1.5rem!important}.ngs .mt-5{margin-top:3rem!important}.ngs .mt-auto{margin-top:auto!important}.ngs .me-0{margin-right:0!important}.ngs .me-1{margin-right:.25rem!important}.ngs .me-2{margin-right:.5rem!important}.ngs .me-3{margin-right:1rem!important}.ngs .me-4{margin-right:1.5rem!important}.ngs .me-5{margin-right:3rem!important}.ngs .me-auto{margin-right:auto!important}.ngs .mb-0{margin-bottom:0!important}.ngs .mb-1{margin-bottom:.25rem!important}.ngs .mb-2{margin-bottom:.5rem!important}.ngs .mb-3{margin-bottom:1rem!important}.ngs .mb-4{margin-bottom:1.5rem!important}.ngs .mb-5{margin-bottom:3rem!important}.ngs .mb-auto{margin-bottom:auto!important}.ngs .ms-0{margin-left:0!important}.ngs .ms-1{margin-left:.25rem!important}.ngs .ms-2{margin-left:.5rem!important}.ngs .ms-3{margin-left:1rem!important}.ngs .ms-4{margin-left:1.5rem!important}.ngs .ms-5{margin-left:3rem!important}.ngs .ms-auto{margin-left:auto!important}.ngs .p-0{padding:0!important}.ngs .p-1{padding:.25rem!important}.ngs .p-2{padding:.5rem!important}.ngs .p-3{padding:1rem!important}.ngs .p-4{padding:1.5rem!important}.ngs .p-5{padding:3rem!important}.ngs .px-0{padding-right:0!important;padding-left:0!important}.ngs .px-1{padding-right:.25rem!important;padding-left:.25rem!important}.ngs .px-2{padding-right:.5rem!important;padding-left:.5rem!important}.ngs .px-3{padding-right:1rem!important;padding-left:1rem!important}.ngs .px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.ngs .px-5{padding-right:3rem!important;padding-left:3rem!important}.ngs .py-0{padding-top:0!important;padding-bottom:0!important}.ngs .py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.ngs .py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.ngs .py-3{padding-top:1rem!important;padding-bottom:1rem!important}.ngs .py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.ngs .py-5{padding-top:3rem!important;padding-bottom:3rem!important}.ngs .pt-0{padding-top:0!important}.ngs .pt-1{padding-top:.25rem!important}.ngs .pt-2{padding-top:.5rem!important}.ngs .pt-3{padding-top:1rem!important}.ngs .pt-4{padding-top:1.5rem!important}.ngs .pt-5{padding-top:3rem!important}.ngs .pe-0{padding-right:0!important}.ngs .pe-1{padding-right:.25rem!important}.ngs .pe-2{padding-right:.5rem!important}.ngs .pe-3{padding-right:1rem!important}.ngs .pe-4{padding-right:1.5rem!important}.ngs .pe-5{padding-right:3rem!important}.ngs .pb-0{padding-bottom:0!important}.ngs .pb-1{padding-bottom:.25rem!important}.ngs .pb-2{padding-bottom:.5rem!important}.ngs .pb-3{padding-bottom:1rem!important}.ngs .pb-4{padding-bottom:1.5rem!important}.ngs .pb-5{padding-bottom:3rem!important}.ngs .ps-0{padding-left:0!important}.ngs .ps-1{padding-left:.25rem!important}.ngs .ps-2{padding-left:.5rem!important}.ngs .ps-3{padding-left:1rem!important}.ngs .ps-4{padding-left:1.5rem!important}.ngs .ps-5{padding-left:3rem!important}@media (min-width: 576px){.ngs .d-sm-inline{display:inline!important}.ngs .d-sm-inline-block{display:inline-block!important}.ngs .d-sm-block{display:block!important}.ngs .d-sm-grid{display:grid!important}.ngs .d-sm-inline-grid{display:inline-grid!important}.ngs .d-sm-table{display:table!important}.ngs .d-sm-table-row{display:table-row!important}.ngs .d-sm-table-cell{display:table-cell!important}.ngs .d-sm-flex{display:flex!important}.ngs .d-sm-inline-flex{display:inline-flex!important}.ngs .d-sm-none{display:none!important}.ngs .flex-sm-fill{flex:1 1 auto!important}.ngs .flex-sm-row{flex-direction:row!important}.ngs .flex-sm-column{flex-direction:column!important}.ngs .flex-sm-row-reverse{flex-direction:row-reverse!important}.ngs .flex-sm-column-reverse{flex-direction:column-reverse!important}.ngs .flex-sm-grow-0{flex-grow:0!important}.ngs .flex-sm-grow-1{flex-grow:1!important}.ngs .flex-sm-shrink-0{flex-shrink:0!important}.ngs .flex-sm-shrink-1{flex-shrink:1!important}.ngs .flex-sm-wrap{flex-wrap:wrap!important}.ngs .flex-sm-nowrap{flex-wrap:nowrap!important}.ngs .flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.ngs .justify-content-sm-start{justify-content:flex-start!important}.ngs .justify-content-sm-end{justify-content:flex-end!important}.ngs .justify-content-sm-center{justify-content:center!important}.ngs .justify-content-sm-between{justify-content:space-between!important}.ngs .justify-content-sm-around{justify-content:space-around!important}.ngs .justify-content-sm-evenly{justify-content:space-evenly!important}.ngs .align-items-sm-start{align-items:flex-start!important}.ngs .align-items-sm-end{align-items:flex-end!important}.ngs .align-items-sm-center{align-items:center!important}.ngs .align-items-sm-baseline{align-items:baseline!important}.ngs .align-items-sm-stretch{align-items:stretch!important}.ngs .align-content-sm-start{align-content:flex-start!important}.ngs .align-content-sm-end{align-content:flex-end!important}.ngs .align-content-sm-center{align-content:center!important}.ngs .align-content-sm-between{align-content:space-between!important}.ngs .align-content-sm-around{align-content:space-around!important}.ngs .align-content-sm-stretch{align-content:stretch!important}.ngs .align-self-sm-auto{align-self:auto!important}.ngs .align-self-sm-start{align-self:flex-start!important}.ngs .align-self-sm-end{align-self:flex-end!important}.ngs .align-self-sm-center{align-self:center!important}.ngs .align-self-sm-baseline{align-self:baseline!important}.ngs .align-self-sm-stretch{align-self:stretch!important}.ngs .order-sm-first{order:-1!important}.ngs .order-sm-0{order:0!important}.ngs .order-sm-1{order:1!important}.ngs .order-sm-2{order:2!important}.ngs .order-sm-3{order:3!important}.ngs .order-sm-4{order:4!important}.ngs .order-sm-5{order:5!important}.ngs .order-sm-last{order:6!important}.ngs .m-sm-0{margin:0!important}.ngs .m-sm-1{margin:.25rem!important}.ngs .m-sm-2{margin:.5rem!important}.ngs .m-sm-3{margin:1rem!important}.ngs .m-sm-4{margin:1.5rem!important}.ngs .m-sm-5{margin:3rem!important}.ngs .m-sm-auto{margin:auto!important}.ngs .mx-sm-0{margin-right:0!important;margin-left:0!important}.ngs .mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.ngs .mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.ngs .mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.ngs .mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.ngs .mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.ngs .mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.ngs .my-sm-0{margin-top:0!important;margin-bottom:0!important}.ngs .my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.ngs .my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.ngs .my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.ngs .my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.ngs .my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.ngs .my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.ngs .mt-sm-0{margin-top:0!important}.ngs .mt-sm-1{margin-top:.25rem!important}.ngs .mt-sm-2{margin-top:.5rem!important}.ngs .mt-sm-3{margin-top:1rem!important}.ngs .mt-sm-4{margin-top:1.5rem!important}.ngs .mt-sm-5{margin-top:3rem!important}.ngs .mt-sm-auto{margin-top:auto!important}.ngs .me-sm-0{margin-right:0!important}.ngs .me-sm-1{margin-right:.25rem!important}.ngs .me-sm-2{margin-right:.5rem!important}.ngs .me-sm-3{margin-right:1rem!important}.ngs .me-sm-4{margin-right:1.5rem!important}.ngs .me-sm-5{margin-right:3rem!important}.ngs .me-sm-auto{margin-right:auto!important}.ngs .mb-sm-0{margin-bottom:0!important}.ngs .mb-sm-1{margin-bottom:.25rem!important}.ngs .mb-sm-2{margin-bottom:.5rem!important}.ngs .mb-sm-3{margin-bottom:1rem!important}.ngs .mb-sm-4{margin-bottom:1.5rem!important}.ngs .mb-sm-5{margin-bottom:3rem!important}.ngs .mb-sm-auto{margin-bottom:auto!important}.ngs .ms-sm-0{margin-left:0!important}.ngs .ms-sm-1{margin-left:.25rem!important}.ngs .ms-sm-2{margin-left:.5rem!important}.ngs .ms-sm-3{margin-left:1rem!important}.ngs .ms-sm-4{margin-left:1.5rem!important}.ngs .ms-sm-5{margin-left:3rem!important}.ngs .ms-sm-auto{margin-left:auto!important}.ngs .p-sm-0{padding:0!important}.ngs .p-sm-1{padding:.25rem!important}.ngs .p-sm-2{padding:.5rem!important}.ngs .p-sm-3{padding:1rem!important}.ngs .p-sm-4{padding:1.5rem!important}.ngs .p-sm-5{padding:3rem!important}.ngs .px-sm-0{padding-right:0!important;padding-left:0!important}.ngs .px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.ngs .px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.ngs .px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.ngs .px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.ngs .px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.ngs .py-sm-0{padding-top:0!important;padding-bottom:0!important}.ngs .py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.ngs .py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.ngs .py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.ngs .py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.ngs .py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.ngs .pt-sm-0{padding-top:0!important}.ngs .pt-sm-1{padding-top:.25rem!important}.ngs .pt-sm-2{padding-top:.5rem!important}.ngs .pt-sm-3{padding-top:1rem!important}.ngs .pt-sm-4{padding-top:1.5rem!important}.ngs .pt-sm-5{padding-top:3rem!important}.ngs .pe-sm-0{padding-right:0!important}.ngs .pe-sm-1{padding-right:.25rem!important}.ngs .pe-sm-2{padding-right:.5rem!important}.ngs .pe-sm-3{padding-right:1rem!important}.ngs .pe-sm-4{padding-right:1.5rem!important}.ngs .pe-sm-5{padding-right:3rem!important}.ngs .pb-sm-0{padding-bottom:0!important}.ngs .pb-sm-1{padding-bottom:.25rem!important}.ngs .pb-sm-2{padding-bottom:.5rem!important}.ngs .pb-sm-3{padding-bottom:1rem!important}.ngs .pb-sm-4{padding-bottom:1.5rem!important}.ngs .pb-sm-5{padding-bottom:3rem!important}.ngs .ps-sm-0{padding-left:0!important}.ngs .ps-sm-1{padding-left:.25rem!important}.ngs .ps-sm-2{padding-left:.5rem!important}.ngs .ps-sm-3{padding-left:1rem!important}.ngs .ps-sm-4{padding-left:1.5rem!important}.ngs .ps-sm-5{padding-left:3rem!important}}@media (min-width: 768px){.ngs .d-md-inline{display:inline!important}.ngs .d-md-inline-block{display:inline-block!important}.ngs .d-md-block{display:block!important}.ngs .d-md-grid{display:grid!important}.ngs .d-md-inline-grid{display:inline-grid!important}.ngs .d-md-table{display:table!important}.ngs .d-md-table-row{display:table-row!important}.ngs .d-md-table-cell{display:table-cell!important}.ngs .d-md-flex{display:flex!important}.ngs .d-md-inline-flex{display:inline-flex!important}.ngs .d-md-none{display:none!important}.ngs .flex-md-fill{flex:1 1 auto!important}.ngs .flex-md-row{flex-direction:row!important}.ngs .flex-md-column{flex-direction:column!important}.ngs .flex-md-row-reverse{flex-direction:row-reverse!important}.ngs .flex-md-column-reverse{flex-direction:column-reverse!important}.ngs .flex-md-grow-0{flex-grow:0!important}.ngs .flex-md-grow-1{flex-grow:1!important}.ngs .flex-md-shrink-0{flex-shrink:0!important}.ngs .flex-md-shrink-1{flex-shrink:1!important}.ngs .flex-md-wrap{flex-wrap:wrap!important}.ngs .flex-md-nowrap{flex-wrap:nowrap!important}.ngs .flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.ngs .justify-content-md-start{justify-content:flex-start!important}.ngs .justify-content-md-end{justify-content:flex-end!important}.ngs .justify-content-md-center{justify-content:center!important}.ngs .justify-content-md-between{justify-content:space-between!important}.ngs .justify-content-md-around{justify-content:space-around!important}.ngs .justify-content-md-evenly{justify-content:space-evenly!important}.ngs .align-items-md-start{align-items:flex-start!important}.ngs .align-items-md-end{align-items:flex-end!important}.ngs .align-items-md-center{align-items:center!important}.ngs .align-items-md-baseline{align-items:baseline!important}.ngs .align-items-md-stretch{align-items:stretch!important}.ngs .align-content-md-start{align-content:flex-start!important}.ngs .align-content-md-end{align-content:flex-end!important}.ngs .align-content-md-center{align-content:center!important}.ngs .align-content-md-between{align-content:space-between!important}.ngs .align-content-md-around{align-content:space-around!important}.ngs .align-content-md-stretch{align-content:stretch!important}.ngs .align-self-md-auto{align-self:auto!important}.ngs .align-self-md-start{align-self:flex-start!important}.ngs .align-self-md-end{align-self:flex-end!important}.ngs .align-self-md-center{align-self:center!important}.ngs .align-self-md-baseline{align-self:baseline!important}.ngs .align-self-md-stretch{align-self:stretch!important}.ngs .order-md-first{order:-1!important}.ngs .order-md-0{order:0!important}.ngs .order-md-1{order:1!important}.ngs .order-md-2{order:2!important}.ngs .order-md-3{order:3!important}.ngs .order-md-4{order:4!important}.ngs .order-md-5{order:5!important}.ngs .order-md-last{order:6!important}.ngs .m-md-0{margin:0!important}.ngs .m-md-1{margin:.25rem!important}.ngs .m-md-2{margin:.5rem!important}.ngs .m-md-3{margin:1rem!important}.ngs .m-md-4{margin:1.5rem!important}.ngs .m-md-5{margin:3rem!important}.ngs .m-md-auto{margin:auto!important}.ngs .mx-md-0{margin-right:0!important;margin-left:0!important}.ngs .mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.ngs .mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.ngs .mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.ngs .mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.ngs .mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.ngs .mx-md-auto{margin-right:auto!important;margin-left:auto!important}.ngs .my-md-0{margin-top:0!important;margin-bottom:0!important}.ngs .my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.ngs .my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.ngs .my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.ngs .my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.ngs .my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.ngs .my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.ngs .mt-md-0{margin-top:0!important}.ngs .mt-md-1{margin-top:.25rem!important}.ngs .mt-md-2{margin-top:.5rem!important}.ngs .mt-md-3{margin-top:1rem!important}.ngs .mt-md-4{margin-top:1.5rem!important}.ngs .mt-md-5{margin-top:3rem!important}.ngs .mt-md-auto{margin-top:auto!important}.ngs .me-md-0{margin-right:0!important}.ngs .me-md-1{margin-right:.25rem!important}.ngs .me-md-2{margin-right:.5rem!important}.ngs .me-md-3{margin-right:1rem!important}.ngs .me-md-4{margin-right:1.5rem!important}.ngs .me-md-5{margin-right:3rem!important}.ngs .me-md-auto{margin-right:auto!important}.ngs .mb-md-0{margin-bottom:0!important}.ngs .mb-md-1{margin-bottom:.25rem!important}.ngs .mb-md-2{margin-bottom:.5rem!important}.ngs .mb-md-3{margin-bottom:1rem!important}.ngs .mb-md-4{margin-bottom:1.5rem!important}.ngs .mb-md-5{margin-bottom:3rem!important}.ngs .mb-md-auto{margin-bottom:auto!important}.ngs .ms-md-0{margin-left:0!important}.ngs .ms-md-1{margin-left:.25rem!important}.ngs .ms-md-2{margin-left:.5rem!important}.ngs .ms-md-3{margin-left:1rem!important}.ngs .ms-md-4{margin-left:1.5rem!important}.ngs .ms-md-5{margin-left:3rem!important}.ngs .ms-md-auto{margin-left:auto!important}.ngs .p-md-0{padding:0!important}.ngs .p-md-1{padding:.25rem!important}.ngs .p-md-2{padding:.5rem!important}.ngs .p-md-3{padding:1rem!important}.ngs .p-md-4{padding:1.5rem!important}.ngs .p-md-5{padding:3rem!important}.ngs .px-md-0{padding-right:0!important;padding-left:0!important}.ngs .px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.ngs .px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.ngs .px-md-3{padding-right:1rem!important;padding-left:1rem!important}.ngs .px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.ngs .px-md-5{padding-right:3rem!important;padding-left:3rem!important}.ngs .py-md-0{padding-top:0!important;padding-bottom:0!important}.ngs .py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.ngs .py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.ngs .py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.ngs .py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.ngs .py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.ngs .pt-md-0{padding-top:0!important}.ngs .pt-md-1{padding-top:.25rem!important}.ngs .pt-md-2{padding-top:.5rem!important}.ngs .pt-md-3{padding-top:1rem!important}.ngs .pt-md-4{padding-top:1.5rem!important}.ngs .pt-md-5{padding-top:3rem!important}.ngs .pe-md-0{padding-right:0!important}.ngs .pe-md-1{padding-right:.25rem!important}.ngs .pe-md-2{padding-right:.5rem!important}.ngs .pe-md-3{padding-right:1rem!important}.ngs .pe-md-4{padding-right:1.5rem!important}.ngs .pe-md-5{padding-right:3rem!important}.ngs .pb-md-0{padding-bottom:0!important}.ngs .pb-md-1{padding-bottom:.25rem!important}.ngs .pb-md-2{padding-bottom:.5rem!important}.ngs .pb-md-3{padding-bottom:1rem!important}.ngs .pb-md-4{padding-bottom:1.5rem!important}.ngs .pb-md-5{padding-bottom:3rem!important}.ngs .ps-md-0{padding-left:0!important}.ngs .ps-md-1{padding-left:.25rem!important}.ngs .ps-md-2{padding-left:.5rem!important}.ngs .ps-md-3{padding-left:1rem!important}.ngs .ps-md-4{padding-left:1.5rem!important}.ngs .ps-md-5{padding-left:3rem!important}}@media (min-width: 992px){.ngs .d-lg-inline{display:inline!important}.ngs .d-lg-inline-block{display:inline-block!important}.ngs .d-lg-block{display:block!important}.ngs .d-lg-grid{display:grid!important}.ngs .d-lg-inline-grid{display:inline-grid!important}.ngs .d-lg-table{display:table!important}.ngs .d-lg-table-row{display:table-row!important}.ngs .d-lg-table-cell{display:table-cell!important}.ngs .d-lg-flex{display:flex!important}.ngs .d-lg-inline-flex{display:inline-flex!important}.ngs .d-lg-none{display:none!important}.ngs .flex-lg-fill{flex:1 1 auto!important}.ngs .flex-lg-row{flex-direction:row!important}.ngs .flex-lg-column{flex-direction:column!important}.ngs .flex-lg-row-reverse{flex-direction:row-reverse!important}.ngs .flex-lg-column-reverse{flex-direction:column-reverse!important}.ngs .flex-lg-grow-0{flex-grow:0!important}.ngs .flex-lg-grow-1{flex-grow:1!important}.ngs .flex-lg-shrink-0{flex-shrink:0!important}.ngs .flex-lg-shrink-1{flex-shrink:1!important}.ngs .flex-lg-wrap{flex-wrap:wrap!important}.ngs .flex-lg-nowrap{flex-wrap:nowrap!important}.ngs .flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.ngs .justify-content-lg-start{justify-content:flex-start!important}.ngs .justify-content-lg-end{justify-content:flex-end!important}.ngs .justify-content-lg-center{justify-content:center!important}.ngs .justify-content-lg-between{justify-content:space-between!important}.ngs .justify-content-lg-around{justify-content:space-around!important}.ngs .justify-content-lg-evenly{justify-content:space-evenly!important}.ngs .align-items-lg-start{align-items:flex-start!important}.ngs .align-items-lg-end{align-items:flex-end!important}.ngs .align-items-lg-center{align-items:center!important}.ngs .align-items-lg-baseline{align-items:baseline!important}.ngs .align-items-lg-stretch{align-items:stretch!important}.ngs .align-content-lg-start{align-content:flex-start!important}.ngs .align-content-lg-end{align-content:flex-end!important}.ngs .align-content-lg-center{align-content:center!important}.ngs .align-content-lg-between{align-content:space-between!important}.ngs .align-content-lg-around{align-content:space-around!important}.ngs .align-content-lg-stretch{align-content:stretch!important}.ngs .align-self-lg-auto{align-self:auto!important}.ngs .align-self-lg-start{align-self:flex-start!important}.ngs .align-self-lg-end{align-self:flex-end!important}.ngs .align-self-lg-center{align-self:center!important}.ngs .align-self-lg-baseline{align-self:baseline!important}.ngs .align-self-lg-stretch{align-self:stretch!important}.ngs .order-lg-first{order:-1!important}.ngs .order-lg-0{order:0!important}.ngs .order-lg-1{order:1!important}.ngs .order-lg-2{order:2!important}.ngs .order-lg-3{order:3!important}.ngs .order-lg-4{order:4!important}.ngs .order-lg-5{order:5!important}.ngs .order-lg-last{order:6!important}.ngs .m-lg-0{margin:0!important}.ngs .m-lg-1{margin:.25rem!important}.ngs .m-lg-2{margin:.5rem!important}.ngs .m-lg-3{margin:1rem!important}.ngs .m-lg-4{margin:1.5rem!important}.ngs .m-lg-5{margin:3rem!important}.ngs .m-lg-auto{margin:auto!important}.ngs .mx-lg-0{margin-right:0!important;margin-left:0!important}.ngs .mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.ngs .mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.ngs .mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.ngs .mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.ngs .mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.ngs .mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.ngs .my-lg-0{margin-top:0!important;margin-bottom:0!important}.ngs .my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.ngs .my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.ngs .my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.ngs .my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.ngs .my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.ngs .my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.ngs .mt-lg-0{margin-top:0!important}.ngs .mt-lg-1{margin-top:.25rem!important}.ngs .mt-lg-2{margin-top:.5rem!important}.ngs .mt-lg-3{margin-top:1rem!important}.ngs .mt-lg-4{margin-top:1.5rem!important}.ngs .mt-lg-5{margin-top:3rem!important}.ngs .mt-lg-auto{margin-top:auto!important}.ngs .me-lg-0{margin-right:0!important}.ngs .me-lg-1{margin-right:.25rem!important}.ngs .me-lg-2{margin-right:.5rem!important}.ngs .me-lg-3{margin-right:1rem!important}.ngs .me-lg-4{margin-right:1.5rem!important}.ngs .me-lg-5{margin-right:3rem!important}.ngs .me-lg-auto{margin-right:auto!important}.ngs .mb-lg-0{margin-bottom:0!important}.ngs .mb-lg-1{margin-bottom:.25rem!important}.ngs .mb-lg-2{margin-bottom:.5rem!important}.ngs .mb-lg-3{margin-bottom:1rem!important}.ngs .mb-lg-4{margin-bottom:1.5rem!important}.ngs .mb-lg-5{margin-bottom:3rem!important}.ngs .mb-lg-auto{margin-bottom:auto!important}.ngs .ms-lg-0{margin-left:0!important}.ngs .ms-lg-1{margin-left:.25rem!important}.ngs .ms-lg-2{margin-left:.5rem!important}.ngs .ms-lg-3{margin-left:1rem!important}.ngs .ms-lg-4{margin-left:1.5rem!important}.ngs .ms-lg-5{margin-left:3rem!important}.ngs .ms-lg-auto{margin-left:auto!important}.ngs .p-lg-0{padding:0!important}.ngs .p-lg-1{padding:.25rem!important}.ngs .p-lg-2{padding:.5rem!important}.ngs .p-lg-3{padding:1rem!important}.ngs .p-lg-4{padding:1.5rem!important}.ngs .p-lg-5{padding:3rem!important}.ngs .px-lg-0{padding-right:0!important;padding-left:0!important}.ngs .px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.ngs .px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.ngs .px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.ngs .px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.ngs .px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.ngs .py-lg-0{padding-top:0!important;padding-bottom:0!important}.ngs .py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.ngs .py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.ngs .py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.ngs .py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.ngs .py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.ngs .pt-lg-0{padding-top:0!important}.ngs .pt-lg-1{padding-top:.25rem!important}.ngs .pt-lg-2{padding-top:.5rem!important}.ngs .pt-lg-3{padding-top:1rem!important}.ngs .pt-lg-4{padding-top:1.5rem!important}.ngs .pt-lg-5{padding-top:3rem!important}.ngs .pe-lg-0{padding-right:0!important}.ngs .pe-lg-1{padding-right:.25rem!important}.ngs .pe-lg-2{padding-right:.5rem!important}.ngs .pe-lg-3{padding-right:1rem!important}.ngs .pe-lg-4{padding-right:1.5rem!important}.ngs .pe-lg-5{padding-right:3rem!important}.ngs .pb-lg-0{padding-bottom:0!important}.ngs .pb-lg-1{padding-bottom:.25rem!important}.ngs .pb-lg-2{padding-bottom:.5rem!important}.ngs .pb-lg-3{padding-bottom:1rem!important}.ngs .pb-lg-4{padding-bottom:1.5rem!important}.ngs .pb-lg-5{padding-bottom:3rem!important}.ngs .ps-lg-0{padding-left:0!important}.ngs .ps-lg-1{padding-left:.25rem!important}.ngs .ps-lg-2{padding-left:.5rem!important}.ngs .ps-lg-3{padding-left:1rem!important}.ngs .ps-lg-4{padding-left:1.5rem!important}.ngs .ps-lg-5{padding-left:3rem!important}}@media (min-width: 1200px){.ngs .d-xl-inline{display:inline!important}.ngs .d-xl-inline-block{display:inline-block!important}.ngs .d-xl-block{display:block!important}.ngs .d-xl-grid{display:grid!important}.ngs .d-xl-inline-grid{display:inline-grid!important}.ngs .d-xl-table{display:table!important}.ngs .d-xl-table-row{display:table-row!important}.ngs .d-xl-table-cell{display:table-cell!important}.ngs .d-xl-flex{display:flex!important}.ngs .d-xl-inline-flex{display:inline-flex!important}.ngs .d-xl-none{display:none!important}.ngs .flex-xl-fill{flex:1 1 auto!important}.ngs .flex-xl-row{flex-direction:row!important}.ngs .flex-xl-column{flex-direction:column!important}.ngs .flex-xl-row-reverse{flex-direction:row-reverse!important}.ngs .flex-xl-column-reverse{flex-direction:column-reverse!important}.ngs .flex-xl-grow-0{flex-grow:0!important}.ngs .flex-xl-grow-1{flex-grow:1!important}.ngs .flex-xl-shrink-0{flex-shrink:0!important}.ngs .flex-xl-shrink-1{flex-shrink:1!important}.ngs .flex-xl-wrap{flex-wrap:wrap!important}.ngs .flex-xl-nowrap{flex-wrap:nowrap!important}.ngs .flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.ngs .justify-content-xl-start{justify-content:flex-start!important}.ngs .justify-content-xl-end{justify-content:flex-end!important}.ngs .justify-content-xl-center{justify-content:center!important}.ngs .justify-content-xl-between{justify-content:space-between!important}.ngs .justify-content-xl-around{justify-content:space-around!important}.ngs .justify-content-xl-evenly{justify-content:space-evenly!important}.ngs .align-items-xl-start{align-items:flex-start!important}.ngs .align-items-xl-end{align-items:flex-end!important}.ngs .align-items-xl-center{align-items:center!important}.ngs .align-items-xl-baseline{align-items:baseline!important}.ngs .align-items-xl-stretch{align-items:stretch!important}.ngs .align-content-xl-start{align-content:flex-start!important}.ngs .align-content-xl-end{align-content:flex-end!important}.ngs .align-content-xl-center{align-content:center!important}.ngs .align-content-xl-between{align-content:space-between!important}.ngs .align-content-xl-around{align-content:space-around!important}.ngs .align-content-xl-stretch{align-content:stretch!important}.ngs .align-self-xl-auto{align-self:auto!important}.ngs .align-self-xl-start{align-self:flex-start!important}.ngs .align-self-xl-end{align-self:flex-end!important}.ngs .align-self-xl-center{align-self:center!important}.ngs .align-self-xl-baseline{align-self:baseline!important}.ngs .align-self-xl-stretch{align-self:stretch!important}.ngs .order-xl-first{order:-1!important}.ngs .order-xl-0{order:0!important}.ngs .order-xl-1{order:1!important}.ngs .order-xl-2{order:2!important}.ngs .order-xl-3{order:3!important}.ngs .order-xl-4{order:4!important}.ngs .order-xl-5{order:5!important}.ngs .order-xl-last{order:6!important}.ngs .m-xl-0{margin:0!important}.ngs .m-xl-1{margin:.25rem!important}.ngs .m-xl-2{margin:.5rem!important}.ngs .m-xl-3{margin:1rem!important}.ngs .m-xl-4{margin:1.5rem!important}.ngs .m-xl-5{margin:3rem!important}.ngs .m-xl-auto{margin:auto!important}.ngs .mx-xl-0{margin-right:0!important;margin-left:0!important}.ngs .mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.ngs .mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.ngs .mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.ngs .mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.ngs .mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.ngs .mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.ngs .my-xl-0{margin-top:0!important;margin-bottom:0!important}.ngs .my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.ngs .my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.ngs .my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.ngs .my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.ngs .my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.ngs .my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.ngs .mt-xl-0{margin-top:0!important}.ngs .mt-xl-1{margin-top:.25rem!important}.ngs .mt-xl-2{margin-top:.5rem!important}.ngs .mt-xl-3{margin-top:1rem!important}.ngs .mt-xl-4{margin-top:1.5rem!important}.ngs .mt-xl-5{margin-top:3rem!important}.ngs .mt-xl-auto{margin-top:auto!important}.ngs .me-xl-0{margin-right:0!important}.ngs .me-xl-1{margin-right:.25rem!important}.ngs .me-xl-2{margin-right:.5rem!important}.ngs .me-xl-3{margin-right:1rem!important}.ngs .me-xl-4{margin-right:1.5rem!important}.ngs .me-xl-5{margin-right:3rem!important}.ngs .me-xl-auto{margin-right:auto!important}.ngs .mb-xl-0{margin-bottom:0!important}.ngs .mb-xl-1{margin-bottom:.25rem!important}.ngs .mb-xl-2{margin-bottom:.5rem!important}.ngs .mb-xl-3{margin-bottom:1rem!important}.ngs .mb-xl-4{margin-bottom:1.5rem!important}.ngs .mb-xl-5{margin-bottom:3rem!important}.ngs .mb-xl-auto{margin-bottom:auto!important}.ngs .ms-xl-0{margin-left:0!important}.ngs .ms-xl-1{margin-left:.25rem!important}.ngs .ms-xl-2{margin-left:.5rem!important}.ngs .ms-xl-3{margin-left:1rem!important}.ngs .ms-xl-4{margin-left:1.5rem!important}.ngs .ms-xl-5{margin-left:3rem!important}.ngs .ms-xl-auto{margin-left:auto!important}.ngs .p-xl-0{padding:0!important}.ngs .p-xl-1{padding:.25rem!important}.ngs .p-xl-2{padding:.5rem!important}.ngs .p-xl-3{padding:1rem!important}.ngs .p-xl-4{padding:1.5rem!important}.ngs .p-xl-5{padding:3rem!important}.ngs .px-xl-0{padding-right:0!important;padding-left:0!important}.ngs .px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.ngs .px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.ngs .px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.ngs .px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.ngs .px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.ngs .py-xl-0{padding-top:0!important;padding-bottom:0!important}.ngs .py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.ngs .py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.ngs .py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.ngs .py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.ngs .py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.ngs .pt-xl-0{padding-top:0!important}.ngs .pt-xl-1{padding-top:.25rem!important}.ngs .pt-xl-2{padding-top:.5rem!important}.ngs .pt-xl-3{padding-top:1rem!important}.ngs .pt-xl-4{padding-top:1.5rem!important}.ngs .pt-xl-5{padding-top:3rem!important}.ngs .pe-xl-0{padding-right:0!important}.ngs .pe-xl-1{padding-right:.25rem!important}.ngs .pe-xl-2{padding-right:.5rem!important}.ngs .pe-xl-3{padding-right:1rem!important}.ngs .pe-xl-4{padding-right:1.5rem!important}.ngs .pe-xl-5{padding-right:3rem!important}.ngs .pb-xl-0{padding-bottom:0!important}.ngs .pb-xl-1{padding-bottom:.25rem!important}.ngs .pb-xl-2{padding-bottom:.5rem!important}.ngs .pb-xl-3{padding-bottom:1rem!important}.ngs .pb-xl-4{padding-bottom:1.5rem!important}.ngs .pb-xl-5{padding-bottom:3rem!important}.ngs .ps-xl-0{padding-left:0!important}.ngs .ps-xl-1{padding-left:.25rem!important}.ngs .ps-xl-2{padding-left:.5rem!important}.ngs .ps-xl-3{padding-left:1rem!important}.ngs .ps-xl-4{padding-left:1.5rem!important}.ngs .ps-xl-5{padding-left:3rem!important}}@media (min-width: 1400px){.ngs .d-xxl-inline{display:inline!important}.ngs .d-xxl-inline-block{display:inline-block!important}.ngs .d-xxl-block{display:block!important}.ngs .d-xxl-grid{display:grid!important}.ngs .d-xxl-inline-grid{display:inline-grid!important}.ngs .d-xxl-table{display:table!important}.ngs .d-xxl-table-row{display:table-row!important}.ngs .d-xxl-table-cell{display:table-cell!important}.ngs .d-xxl-flex{display:flex!important}.ngs .d-xxl-inline-flex{display:inline-flex!important}.ngs .d-xxl-none{display:none!important}.ngs .flex-xxl-fill{flex:1 1 auto!important}.ngs .flex-xxl-row{flex-direction:row!important}.ngs .flex-xxl-column{flex-direction:column!important}.ngs .flex-xxl-row-reverse{flex-direction:row-reverse!important}.ngs .flex-xxl-column-reverse{flex-direction:column-reverse!important}.ngs .flex-xxl-grow-0{flex-grow:0!important}.ngs .flex-xxl-grow-1{flex-grow:1!important}.ngs .flex-xxl-shrink-0{flex-shrink:0!important}.ngs .flex-xxl-shrink-1{flex-shrink:1!important}.ngs .flex-xxl-wrap{flex-wrap:wrap!important}.ngs .flex-xxl-nowrap{flex-wrap:nowrap!important}.ngs .flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.ngs .justify-content-xxl-start{justify-content:flex-start!important}.ngs .justify-content-xxl-end{justify-content:flex-end!important}.ngs .justify-content-xxl-center{justify-content:center!important}.ngs .justify-content-xxl-between{justify-content:space-between!important}.ngs .justify-content-xxl-around{justify-content:space-around!important}.ngs .justify-content-xxl-evenly{justify-content:space-evenly!important}.ngs .align-items-xxl-start{align-items:flex-start!important}.ngs .align-items-xxl-end{align-items:flex-end!important}.ngs .align-items-xxl-center{align-items:center!important}.ngs .align-items-xxl-baseline{align-items:baseline!important}.ngs .align-items-xxl-stretch{align-items:stretch!important}.ngs .align-content-xxl-start{align-content:flex-start!important}.ngs .align-content-xxl-end{align-content:flex-end!important}.ngs .align-content-xxl-center{align-content:center!important}.ngs .align-content-xxl-between{align-content:space-between!important}.ngs .align-content-xxl-around{align-content:space-around!important}.ngs .align-content-xxl-stretch{align-content:stretch!important}.ngs .align-self-xxl-auto{align-self:auto!important}.ngs .align-self-xxl-start{align-self:flex-start!important}.ngs .align-self-xxl-end{align-self:flex-end!important}.ngs .align-self-xxl-center{align-self:center!important}.ngs .align-self-xxl-baseline{align-self:baseline!important}.ngs .align-self-xxl-stretch{align-self:stretch!important}.ngs .order-xxl-first{order:-1!important}.ngs .order-xxl-0{order:0!important}.ngs .order-xxl-1{order:1!important}.ngs .order-xxl-2{order:2!important}.ngs .order-xxl-3{order:3!important}.ngs .order-xxl-4{order:4!important}.ngs .order-xxl-5{order:5!important}.ngs .order-xxl-last{order:6!important}.ngs .m-xxl-0{margin:0!important}.ngs .m-xxl-1{margin:.25rem!important}.ngs .m-xxl-2{margin:.5rem!important}.ngs .m-xxl-3{margin:1rem!important}.ngs .m-xxl-4{margin:1.5rem!important}.ngs .m-xxl-5{margin:3rem!important}.ngs .m-xxl-auto{margin:auto!important}.ngs .mx-xxl-0{margin-right:0!important;margin-left:0!important}.ngs .mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.ngs .mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.ngs .mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.ngs .mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.ngs .mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.ngs .mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.ngs .my-xxl-0{margin-top:0!important;margin-bottom:0!important}.ngs .my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.ngs .my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.ngs .my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.ngs .my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.ngs .my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.ngs .my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.ngs .mt-xxl-0{margin-top:0!important}.ngs .mt-xxl-1{margin-top:.25rem!important}.ngs .mt-xxl-2{margin-top:.5rem!important}.ngs .mt-xxl-3{margin-top:1rem!important}.ngs .mt-xxl-4{margin-top:1.5rem!important}.ngs .mt-xxl-5{margin-top:3rem!important}.ngs .mt-xxl-auto{margin-top:auto!important}.ngs .me-xxl-0{margin-right:0!important}.ngs .me-xxl-1{margin-right:.25rem!important}.ngs .me-xxl-2{margin-right:.5rem!important}.ngs .me-xxl-3{margin-right:1rem!important}.ngs .me-xxl-4{margin-right:1.5rem!important}.ngs .me-xxl-5{margin-right:3rem!important}.ngs .me-xxl-auto{margin-right:auto!important}.ngs .mb-xxl-0{margin-bottom:0!important}.ngs .mb-xxl-1{margin-bottom:.25rem!important}.ngs .mb-xxl-2{margin-bottom:.5rem!important}.ngs .mb-xxl-3{margin-bottom:1rem!important}.ngs .mb-xxl-4{margin-bottom:1.5rem!important}.ngs .mb-xxl-5{margin-bottom:3rem!important}.ngs .mb-xxl-auto{margin-bottom:auto!important}.ngs .ms-xxl-0{margin-left:0!important}.ngs .ms-xxl-1{margin-left:.25rem!important}.ngs .ms-xxl-2{margin-left:.5rem!important}.ngs .ms-xxl-3{margin-left:1rem!important}.ngs .ms-xxl-4{margin-left:1.5rem!important}.ngs .ms-xxl-5{margin-left:3rem!important}.ngs .ms-xxl-auto{margin-left:auto!important}.ngs .p-xxl-0{padding:0!important}.ngs .p-xxl-1{padding:.25rem!important}.ngs .p-xxl-2{padding:.5rem!important}.ngs .p-xxl-3{padding:1rem!important}.ngs .p-xxl-4{padding:1.5rem!important}.ngs .p-xxl-5{padding:3rem!important}.ngs .px-xxl-0{padding-right:0!important;padding-left:0!important}.ngs .px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.ngs .px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.ngs .px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.ngs .px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.ngs .px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.ngs .py-xxl-0{padding-top:0!important;padding-bottom:0!important}.ngs .py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.ngs .py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.ngs .py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.ngs .py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.ngs .py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.ngs .pt-xxl-0{padding-top:0!important}.ngs .pt-xxl-1{padding-top:.25rem!important}.ngs .pt-xxl-2{padding-top:.5rem!important}.ngs .pt-xxl-3{padding-top:1rem!important}.ngs .pt-xxl-4{padding-top:1.5rem!important}.ngs .pt-xxl-5{padding-top:3rem!important}.ngs .pe-xxl-0{padding-right:0!important}.ngs .pe-xxl-1{padding-right:.25rem!important}.ngs .pe-xxl-2{padding-right:.5rem!important}.ngs .pe-xxl-3{padding-right:1rem!important}.ngs .pe-xxl-4{padding-right:1.5rem!important}.ngs .pe-xxl-5{padding-right:3rem!important}.ngs .pb-xxl-0{padding-bottom:0!important}.ngs .pb-xxl-1{padding-bottom:.25rem!important}.ngs .pb-xxl-2{padding-bottom:.5rem!important}.ngs .pb-xxl-3{padding-bottom:1rem!important}.ngs .pb-xxl-4{padding-bottom:1.5rem!important}.ngs .pb-xxl-5{padding-bottom:3rem!important}.ngs .ps-xxl-0{padding-left:0!important}.ngs .ps-xxl-1{padding-left:.25rem!important}.ngs .ps-xxl-2{padding-left:.5rem!important}.ngs .ps-xxl-3{padding-left:1rem!important}.ngs .ps-xxl-4{padding-left:1.5rem!important}.ngs .ps-xxl-5{padding-left:3rem!important}}@media print{.ngs .d-print-inline{display:inline!important}.ngs .d-print-inline-block{display:inline-block!important}.ngs .d-print-block{display:block!important}.ngs .d-print-grid{display:grid!important}.ngs .d-print-inline-grid{display:inline-grid!important}.ngs .d-print-table{display:table!important}.ngs .d-print-table-row{display:table-row!important}.ngs .d-print-table-cell{display:table-cell!important}.ngs .d-print-flex{display:flex!important}.ngs .d-print-inline-flex{display:inline-flex!important}.ngs .d-print-none{display:none!important}}\n", ".prevSection button{padding:5px 10px;float:left;margin-left:0}.nextSection button{padding:5px 10px;float:right;margin-left:0}.separator-horizontal{width:1px;height:100%;background-color:#d6cece;margin:0 auto}.content-element-form .section-navs{width:100%;background-color:#f2f6fc;margin-left:0;margin-right:0;padding:10px;flex-direction:row-reverse}.sirio-nav-item a{cursor:pointer}.sirio-toast{width:auto;min-width:17rem;max-width:41rem}.form-title{margin-bottom:15px}.sirio-stepper-item:is(.is-success,.is-warning,.is-error) .sirio-stepper-title{font-weight:600;text-decoration:underline!important}@media (max-width: 991px){.content-element-form{width:100%!important}}ngx-sirio-input-chip{margin-right:.5rem}.feel-editor-container.feel-editor-standalone{border:1px solid #454d56!important;border-radius:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: RegisterDirective, selector: "[register]", inputs: ["register", "componentRef"] }, { kind: "directive", type: FormIndexDirective, selector: "[formIndex]", inputs: ["formIndex", "componentRef"] }, { kind: "component", type: SirioSidenavMobileComponent, selector: "ngx-sirio-sidenav-mobile", inputs: ["openMenuLabel", "openMenuLabelSubtitile", "openMenuAriaLabel", "closeMenuLabel", "closeMenuAriaLabel", "closeMenuLabelSubtitile", "userProfileLabel", "userProfileType", "userProfileName", "userProfileSurname", "showUserInfo", "opened"] }, { kind: "component", type: SirioSidenavComponent, selector: "ngx-sirio-sidenav", inputs: ["sidenavTitle", "ariaLabel"] }, { kind: "component", type: SirioSidenavItemComponent, selector: "ngx-sirio-sidenav-item", inputs: ["labelTrigger", "isCustomNavItem", "isTrigger", "routerLinkUrl", "routerLinkFragment", "routerLinkQueryParams", "routerLinkQueryParamsHandling", "routerLinkState", "routerLinkRelativeTo", "routerLinkPreserveFragment", "routerLinkReplaceUrl", "href", "hrefTarget", "ariaLabelDesc", "isOpen", "isActive", "withTag", "tagType", "tagValue", "disabledState"] }, { kind: "component", type: SirioButtonComponent, selector: "ngx-sirio-button", inputs: ["ariaExpanded", "ariaControls", "ariaActivedescendant", "ariaHaspopup", "ariaLabel", "ariaRequired", "ariaInvalid", "ariaDescribedby", "icon", "title", "role", "color", "isFloating", "isExtended", "isLight", "isSmall", "disabled", "isDropdown", "type", "dismissType", "isBtnBlock"], outputs: ["clickEvent", "focusEvent", "blurEvent"] }, { kind: "component", type: SirioStepperProgressBarComponent, selector: "ngx-sirio-stepper-progress-bar", inputs: ["ariaLabel", "hasDropdown", "dropDownLabel", "dropDownText"], outputs: ["eventClick"] }, { kind: "component", type: SirioStepperProgressItemComponent, selector: "ngx-sirio-stepper-progress-item", inputs: ["status", "hasNavigation", "screenReaderText", "label"] }, { kind: "component", type: DynamicFieldsComponent, selector: "app-dynamic-fields", inputs: ["rows", "formGroup", "alignment"] }], encapsulation: i0.ViewEncapsulation.None });
561
566
  }
562
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicFormComponent, decorators: [{
567
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFormComponent, decorators: [{
563
568
  type: Component,
564
569
  args: [{ selector: 'app-dynamic-form', standalone: true, imports: [CommonModule, ReactiveFormsModule,
565
570
  RegisterDirective, FormIndexDirective,
@@ -604,4 +609,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
604
609
  }], activeNav: [{
605
610
  type: Input
606
611
  }] } });
607
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFFOUMsT0FBTyxFQUNMLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUNQLGlCQUFpQixFQUFFLFlBQVksRUFDOUMsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWUsU0FBUyxFQUF1QyxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQWtCLE1BQU0scUNBQXFDLENBQUM7QUFDN0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBZ0IsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQ0wsMkJBQTJCLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLEVBQzNFLG9CQUFvQixFQUFFLGdDQUFnQyxFQUFFLGlDQUFpQyxFQUU1RixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUs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QkFBMkIsRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUI7d0JBQzdFLG9CQUFvQixFQUFFLGdDQUFnQyxFQUFFLGlDQUFpQzt3QkFDekYsc0JBQXNCLENBQUMsYUFDaEI7d0JBQ1QsWUFBWTt3QkFDVixzQkFBc0I7d0JBQ3RCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3FCQUNsQixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJO3VUQUc1QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ2UsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQXdFaEIsU0FBUztzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL3R5cGVzL3R5cGluZ3MuZC50c1wiIC8+XHJcblxyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kgXHJcbiAgLCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiwgRXZlbnRFbWl0dGVyXHJcbiAgLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEluamVjdG9yXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIEZvcm1Db250cm9sT3B0aW9ucywgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQcm9ncmFtbWFiaWxpdHlTZXJ2aWNlLCBWYWxpZGF0aW9uUnVsZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Byb2dyYW1tYWJpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZ3JvdXBCeVJvdyB9IGZyb20gJy4uL3V0aWxzL2dyb3VwQnlSb3cnO1xyXG5pbXBvcnQgeyBDb21tYW5kRXZlbnQsIEV2ZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2V2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNZXRhZGF0YVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tZXRhZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGdW5jdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mdW5jdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgRm9ybURpYWxvZ09wdGlvbnMgfSBmcm9tICcuLi9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IER5bmFtaWNGaWVsZHNDb21wb25lbnQgfSBmcm9tICcuLi9keW5hbWljLWZpZWxkcy9keW5hbWljLWZpZWxkcy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIFNpcmlvU2lkZW5hdk1vYmlsZUNvbXBvbmVudCwgU2lyaW9TaWRlbmF2Q29tcG9uZW50LCBTaXJpb1NpZGVuYXZJdGVtQ29tcG9uZW50XHJcbiAgLCBTaXJpb0J1dHRvbkNvbXBvbmVudCwgU2lyaW9TdGVwcGVyUHJvZ3Jlc3NCYXJDb21wb25lbnQsIFNpcmlvU3RlcHBlclByb2dyZXNzSXRlbUNvbXBvbmVudFxyXG4gICwgU2lyaW9TdGVwcGVyUHJvZ3Jlc3NTdGF0dXMsIE5neFNpcmlvRXZlbnRcclxufSBmcm9tICduZ3gtc2lyaW8tbGliJztcclxuaW1wb3J0IHsgUmVnaXN0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVnaXN0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlZ2lzdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9yZWdpc3Rlci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGb3JtSW5kZXhEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2Zvcm1JbmRleC5kaXJlY3RpdmUnO1xyXG5cclxuaW1wb3J0IHsgQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL2NvbnRyb2wnOyBcclxuaW1wb3J0IHsgc2V0Rm9jdXMgfSBmcm9tICcuLi91dGlscy9mb2N1c2FibGUnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQHdlbWFrZTR1L2ludGVyYWN0JztcclxuaW1wb3J0IHsgVGV4dHMgfSBmcm9tICcuLi9sb2NhbGUvbG9jYWxlJztcclxuaW1wb3J0IHsgbG9jYWxpemUgfSBmcm9tICcuLi9sb2NhbGUvbG9jYWxpemUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZHluYW1pYy1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuLi9zaGFyZWQvYm9vdHN0cmFwLWdyaWQuc2NzcycsXHJcbiAgICAnLi9keW5hbWljLWZvcm0uY29tcG9uZW50LmNzcydcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZVxyXG4gICAgLCBSZWdpc3RlckRpcmVjdGl2ZSwgRm9ybUluZGV4RGlyZWN0aXZlXHJcbiAgICAsIFNpcmlvU2lkZW5hdk1vYmlsZUNvbXBvbmVudCwgU2lyaW9TaWRlbmF2Q29tcG9uZW50LCBTaXJpb1NpZGVuYXZJdGVtQ29tcG9uZW50XHJcbiAgICAsIFNpcmlvQnV0dG9uQ29tcG9uZW50LCBTaXJpb1N0ZXBwZXJQcm9ncmVzc0JhckNvbXBvbmVudCwgU2lyaW9TdGVwcGVyUHJvZ3Jlc3NJdGVtQ29tcG9uZW50XHJcbiAgICAsIER5bmFtaWNGaWVsZHNDb21wb25lbnRdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgRXZlbnRTZXJ2aWNlXHJcbiAgICAsIFByb2dyYW1tYWJpbGl0eVNlcnZpY2VcclxuICAgICwgUmVnaXN0ZXJTZXJ2aWNlXHJcbiAgICAsIE1ldGFkYXRhU2VydmljZVxyXG4gICAgLCBGdW5jdGlvblNlcnZpY2VcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHNjaGVtYTogYW55O1xyXG4gIEBJbnB1dCgpIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSB2YWx1ZTogYW55ID0ge307XHJcbiAgQElucHV0KCkgc3RyaWN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd05hdjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd05hdkJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd1Byb2dyZXNzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0Zvcm1UaXRsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHByb2dyZXNzU3RhdHVzOiBib29sZWFuID0gdHJ1ZTtcclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgaW5pdGlhbGl6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Hcm91cD4oKTtcclxuICBAT3V0cHV0KCkgb25Db21tYW5kID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tYW5kRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGFjdGl2ZU5hdkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoJ2RlZmF1bHQnKSBmb3JtRGl2ITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXHJcbiAgICAsIHByaXZhdGUgcHJvZ3JhbW1hYmlsaXR5OiBQcm9ncmFtbWFiaWxpdHlTZXJ2aWNlXHJcbiAgICAsIHByaXZhdGUgZXZlbnRzOiBFdmVudFNlcnZpY2VcclxuICAgICwgcHJpdmF0ZSByZWdpc3RlclNlcnZpY2U6IFJlZ2lzdGVyU2VydmljZVxyXG4gICAgLCBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlXHJcbiAgICAsIHByaXZhdGUgbWV0YWRhdGE6IE1ldGFkYXRhU2VydmljZVxyXG4gICAgLCBwcml2YXRlIGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZVxyXG4gICAgLCBwcml2YXRlIGRpYWxvZzogRGlhbG9nU2VydmljZVxyXG4gICAgLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxyXG4gICkgeyB9XHJcblxyXG4gIFRleHRzID0gVGV4dHM7XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhckhhbmRsZXJzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGludGVybmFsQ2hhbmdlID0gZmFsc2U7XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydzY2hlbWEnXSkge1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlU2NoZW1hKCk7ICAgXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXNbJ3ZhbHVlJ10pIHtcclxuICAgICAgdGhpcy5vbkNoYW5nZVZhbHVlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZm9ybXMoKTogQXJyYXk8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybXM7XHJcbiAgfVxyXG5cclxuICBsb2NhbGUoY29tcG9uZW50OiBhbnksIGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBsb2NhbGl6ZSh0aGlzLmxhbmd1YWdlLCBjb21wb25lbnQsIGtleSk7XHJcbiAgfVxyXG5cclxuICBjYW5QcmV2aW91cygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmdldFByZXZpb3VzKCkgIT0gLTE7IFxyXG4gIH1cclxuXHJcbiAgZ29QcmV2aW91cygpIHtcclxuICAgIGlmICh0aGlzLmNhblByZXZpb3VzKCkpIHtcclxuICAgICAgdGhpcy5hY3RpdmVOYXYgPSB0aGlzLmdldFByZXZpb3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYW5OZXh0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0TmV4dCgpICE9IC0xOyAgICBcclxuICB9XHJcblxyXG4gIGdvTmV4dCgpIHtcclxuICAgIGlmICh0aGlzLmNhbk5leHQoKSkgeyBcclxuICAgICAgdGhpcy5hY3RpdmVOYXYgPSB0aGlzLmdldE5leHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENvbnRyb2wobmFtZTogc3RyaW5nKTogQ29udHJvbCB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMucmVnaXN0ZXJTZXJ2aWNlLmdldENvbnRyb2wobmFtZSk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250cm9sQXM8VCBleHRlbmRzIENvbnRyb2w+KG5hbWU6IHN0cmluZywgdHlwZTogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFQgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyU2VydmljZS5nZXRDb250cm9sQXMobmFtZSwgdHlwZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgYWN0aXZlTmF2KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTmF2O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgYWN0aXZlTmF2KHZhbHVlOiBudW1iZXIpIHtcclxuICAgIGlmICh2YWx1ZSA+PSAwICYmIHZhbHVlIDwgdGhpcy5nZXRNYXhOYXYoKSkge1xyXG4gICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKHZhbHVlKSB8fCB0aGlzLmlzSW5hY3RpdmUodmFsdWUpKVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgdGhpcy5fYWN0aXZlTmF2ID0gdmFsdWU7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1EaXY/Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgIHNldEZvY3VzKHRoaXMuZm9ybURpdi5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hY3RpdmVOYXZDaGFuZ2UuZW1pdCh0aGlzLl9hY3RpdmVOYXYpO1xyXG4gICAgICB9KTtcclxuICAgIH0gICAgICAgIFxyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybUdyb3VwKHBhdGg6IHN0cmluZyB8IG51bGwpOiBGb3JtR3JvdXAge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHBhdGggPyB0aGlzLmZvcm1Hcm91cC5nZXQocGF0aCkgOiB0aGlzLmZvcm1Hcm91cDtcclxuICAgIGlmICghKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29udHJvbCBpcyBub3QgYSBGb3JtR3JvdXAnKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjb250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybVN0YXR1cyhmb3JtOiBhbnksIGluZGV4OiBudW1iZXIpOiBTaXJpb1N0ZXBwZXJQcm9ncmVzc1N0YXR1cyB7XHJcblxyXG4gICAgY29uc3QgY3VycmVudCA9IGluZGV4ID09IHRoaXMuYWN0aXZlTmF2O1xyXG5cclxuICAgIGlmICh0aGlzLmlzSW5hY3RpdmUoaW5kZXgpKSB7XHJcbiAgICAgIHJldHVybiBcImluYWN0aXZlXCI7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnByb2dyZXNzU3RhdHVzICYmICFjdXJyZW50KSB7XHJcbiAgICAgIGNvbnN0IGVycm9ycyA9IHRoaXMuZ2V0RXJyb3JzKGZvcm0pO1xyXG4gICAgICByZXR1cm4gZXJyb3JzID4gMCA/IFwiZXJyb3JcIiA6IFwic3VjY2Vzc1wiO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBcImFjdGl2ZVwiO1xyXG4gICAgfSAgICBcclxuICB9XHJcblxyXG4gIGdldEVycm9ycyhmb3JtOiBhbnkpOiBudW1iZXIge1xyXG4gICAgY29uc3QgY29udHJvbHMgPSB0aGlzLmNvbnRyb2xNYXAuZ2V0KGZvcm0pO1xyXG4gICAgaWYgKCFjb250cm9scykge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmZvcm1TZXJ2aWNlLmVycm9ycyhjb250cm9scyk7XHJcbiAgfVxyXG5cclxuICBhY3RpdmF0ZUZvcm0oZXZlbnQ6IE5neFNpcmlvRXZlbnQ8U2lyaW9TdGVwcGVyUHJvZ3Jlc3NCYXJDb21wb25lbnQ+KSB7XHJcbiAgICBjb25zdCBmb3JtSW5kZXggPSAoZXZlbnQuY29tcG9uZW50IGFzIGFueSkuZm9ybUluZGV4O1xyXG4gICAgaWYgKHR5cGVvZiBmb3JtSW5kZXggPT09ICdudW1iZXInKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlTmF2ID0gZm9ybUluZGV4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXZhbHVhdGVCb29sZWFuKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLnByb2dyYW1tYWJpbGl0eS5ldmFsdWF0ZUJvb2xlYW4odGhpcy5mb3JtR3JvdXAsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGV2YWx1YXRlVGVtcGxhdGUodmFsdWU6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucHJvZ3JhbW1hYmlsaXR5LmV2YWx1YXRlVGVtcGxhdGUodGhpcy5mb3JtR3JvdXAsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9wZW5Gb3JtKHRlbXBsYXRlOiBzdHJpbmcsIG9wdGlvbnM6IEZvcm1EaWFsb2dPcHRpb25zKSB7XHJcbiAgICBjb25zdCBmb3JtU2NoZW1hID0gdGhpcy5tZXRhZGF0YS5nZXRUZW1wbGF0ZUJ5TmFtZSh0ZW1wbGF0ZSk7XHJcbiAgICBpZiAoZm9ybVNjaGVtYSkge1xyXG4gICAgICBvcHRpb25zID0ge1xyXG4gICAgICAgIC4uLm9wdGlvbnMsXHJcbiAgICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3JcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5kaWFsb2cub3BlbkRpYWxvZyhmb3JtU2NoZW1hLCBvcHRpb25zKTtcclxuICAgIH0gICAgICAgIFxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIHRoaXMuZm9ybVNlcnZpY2UucGF0Y2godGhpcy5mb3JtR3JvdXAsIHRoaXMudmFsdWUsIHtcclxuICAgICAgc3RyaWN0OiB0aGlzLnN0cmljdFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBcclxuICBwcml2YXRlIHZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBvbkNvbW1hbmRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIF9mb3JtczogQXJyYXk8YW55PiA9IFtdO1xyXG5cclxuICBwcml2YXRlIF9hY3RpdmVOYXY6IG51bWJlciA9IDA7XHJcblxyXG4gIHByaXZhdGUgZGVmYXVsdFZhbHVlOiBhbnkgPSB7IH07XHJcblxyXG4gIHByaXZhdGUgY29udHJvbE1hcCA9IG5ldyBNYXA8YW55LCBTZXQ8QWJzdHJhY3RDb250cm9sPj4oKTtcclxuXHJcbiAgcHJpdmF0ZSBnZXQgbGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlU2VydmljZS5nZXRMYW5ndWFnZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZVNjaGVtYSgpIHtcclxuICAgIGlmICghdGhpcy5mb3JtR3JvdXApIHtcclxuICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNsZWFyQ29udHJvbHMoKTtcclxuXHJcbiAgICB0aGlzLmNsZWFySGFuZGxlcnMoKTtcclxuXHJcbiAgICBjb25zdCBzY2hlbWEgPSB0aGlzLnNjaGVtYTtcclxuXHJcbiAgICBjb25zdCBhbGxGb3JtcyA9IGdyb3VwQnlSb3coc2NoZW1hLmZvcm1zID8/IFtdKTtcclxuXHJcbiAgICB0aGlzLm1ldGFkYXRhLnNldFNjaGVtYShzY2hlbWEpO1xyXG5cclxuICAgIHRoaXMubWV0YWRhdGEuc2V0Rm9ybXMoYWxsRm9ybXMpO1xyXG5cclxuICAgIHRoaXMuX2Zvcm1zID0gYWxsRm9ybXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pc1RlbXBsYXRlICE9PSB0cnVlKTs7XHJcblxyXG4gICAgdGhpcy5idWlsZEZvcm0oKTtcclxuXHJcbiAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlO1xyXG5cclxuICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZm9ybVNlcnZpY2UucGF0Y2godGhpcy5mb3JtR3JvdXAsIHRoaXMudmFsdWUsIHtcclxuICAgICAgICBzdHJpY3Q6IHRoaXMuc3RyaWN0XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmluaXRpYWxpemVkKVxyXG4gICAgICB0aGlzLmluaXRpYWxpemVkLmVtaXQodGhpcy5mb3JtR3JvdXApO1xyXG5cclxuICAgIHRoaXMucmVnaXN0ZXJIYW5kbGVycygpOyAgXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlVmFsdWUoKSB7XHJcbiAgICBpZiAodGhpcy5pbnRlcm5hbENoYW5nZSkge1xyXG4gICAgICB0aGlzLmludGVybmFsQ2hhbmdlID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCh0aGlzLmRlZmF1bHRWYWx1ZSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgIHRoaXMuY2xlYXJGb3JtQXJyYXlzKHRoaXMuZm9ybUdyb3VwKTtcclxuICAgICAgdGhpcy5mb3JtU2VydmljZS5wYXRjaCh0aGlzLmZvcm1Hcm91cCwgdGhpcy52YWx1ZSwge1xyXG4gICAgICAgIGVtaXRFdmVudDogdHJ1ZSxcclxuICAgICAgICBzdHJpY3Q6IHRoaXMuc3RyaWN0XHJcbiAgICAgIH0pOyAgICAgIFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXROZXh0KCk6IG51bWJlciB7XHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLmFjdGl2ZU5hdiArIDE7XHJcbiAgICBjb25zdCBtYXggPSB0aGlzLmdldE1heE5hdigpO1xyXG5cclxuICAgIHdoaWxlIChpbmRleCA8IG1heCkge1xyXG4gICAgICBpZiAoIXRoaXMuaXNEaXNhYmxlZChpbmRleCkgJiYgIXRoaXMuaXNJbmFjdGl2ZShpbmRleCkpIHtcclxuICAgICAgICByZXR1cm4gaW5kZXg7XHJcbiAgICAgIH1cclxuICAgICAgaW5kZXgrKztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gLTE7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFByZXZpb3VzKCk6IG51bWJlciB7XHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLmFjdGl2ZU5hdiAtIDE7XHJcblxyXG4gICAgd2hpbGUgKGluZGV4ID49IDApIHtcclxuICAgICAgaWYgKCF0aGlzLmlzRGlzYWJsZWQoaW5kZXgpICYmICF0aGlzLmlzSW5hY3RpdmUoaW5kZXgpKSB7XHJcbiAgICAgICAgcmV0dXJuIGluZGV4O1xyXG4gICAgICB9XHJcbiAgICAgIGluZGV4LS07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIC0xO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRNYXhOYXYoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3Jtcy5sZW5ndGggPz8gMDsgICAgXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBpc0Rpc2FibGVkKGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHZhciBmb3JtID0gdGhpcy5fZm9ybXNbaW5kZXhdO1xyXG5cclxuICAgIGlmICghZm9ybSlcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmV2YWx1YXRlQm9vbGVhbihmb3JtLmRpc2FibGVkKSA/PyBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNJbmFjdGl2ZShpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICB2YXIgZm9ybSA9IHRoaXMuX2Zvcm1zW2luZGV4XTtcclxuXHJcbiAgICBpZiAoIWZvcm0pXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5ldmFsdWF0ZUJvb2xlYW4oZm9ybS5pbmFjdGl2ZSkgPz8gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyQ29udHJvbHMoKTogdm9pZCB7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5yZW1vdmVDb250cm9sKGtleSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJGb3JtQXJyYXlzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHZvaWQge1xyXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkgJiYgY29udHJvbC5jb250cm9scy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnRyb2wuY2xlYXIoKTtcclxuICAgICAgY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgICBjb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xyXG4gICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XHJcbiAgICAgIE9iamVjdC52YWx1ZXMoY29udHJvbC5jb250cm9scykuZm9yRWFjaChjaGlsZENvbnRyb2wgPT4ge1xyXG4gICAgICAgIHRoaXMuY2xlYXJGb3JtQXJyYXlzKGNoaWxkQ29udHJvbCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWdpc3RlckhhbmRsZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICB0aGlzLmludGVybmFsQ2hhbmdlID0gdHJ1ZTtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMub25Db21tYW5kU3Vic2NyaXB0aW9uID0gdGhpcy5ldmVudHMub25Db21tYW5kLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5vbkNvbW1hbmQpXHJcbiAgICAgICAgdGhpcy5vbkNvbW1hbmQuZW1pdChkYXRhKTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgY2xlYXJIYW5kbGVycygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm9uQ29tbWFuZFN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLm9uQ29tbWFuZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZEZvcm0oKSB7XHJcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPGFueSwgU2V0PEFic3RyYWN0Q29udHJvbD4+KCk7XHJcbiAgICB0aGlzLmZvcm1zLmZvckVhY2goKGZvcm06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBzZXQgPSBuZXcgU2V0PEFic3RyYWN0Q29udHJvbD4oKTtcclxuICAgICAgY29uc3QgY3VycmVudEdyb3VwID0gdGhpcy5hcHBseVBhdGgodGhpcy5mYiwgdGhpcy5mb3JtR3JvdXAsIGZvcm0ucGF0aCk7XHJcbiAgICAgIGlmICh0aGlzLmhhc1BhdGgoZm9ybS5wYXRoKSkge1xyXG4gICAgICAgIHRoaXMucHJvZ3JhbW1hYmlsaXR5LmRpc2FibGUodGhpcy5mb3JtR3JvdXAsIGN1cnJlbnRHcm91cCwgZm9ybS5kaXNhYmxlZCk7XHJcbiAgICAgIH1cclxuICAgICAgZm9ybS5yb3dzPy5mb3JFYWNoKChyb3c6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWRkQ29udHJvbHModGhpcy5mYiwgY3VycmVudEdyb3VwLCByb3cuY29tcG9uZW50cywgc2V0LmFkZC5iaW5kKHNldCkpO1xyXG4gICAgICB9KTtcclxuICAgICAgbWFwLnNldChmb3JtLCBzZXQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNvbnRyb2xNYXAgPSBtYXA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZENvbnRyb2xzKGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbXBvbmVudHM6IEFycmF5PGFueT4sIHVzZTogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gdm9pZCkge1xyXG4gICAgbGV0IGZvcm1Db21wb25lbnQgPSB0aGlzO1xyXG5cclxuICAgIGNvbXBvbmVudHM/LmZvckVhY2goKGNvbXBvbmVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzRm9ybUNvbXBvbmVudChjb21wb25lbnQpKSB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEdyb3VwID0gdGhpcy5hcHBseVBhdGgodGhpcy5mYiwgZm9ybUdyb3VwLCBjb21wb25lbnQucGF0aCk7XHJcbiAgICAgICAgaWYgKGN1cnJlbnRHcm91cC5jb250YWlucyhjb21wb25lbnQua2V5KSkge1xyXG4gICAgICAgICAgdXNlKGN1cnJlbnRHcm91cC5nZXQoY29tcG9uZW50LmtleSkgYXMgQWJzdHJhY3RDb250cm9sKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxldCBkZWZhdWx0VmFsdWUgPSB0aGlzLmdldERlZmF1bHRWYWx1ZShjb21wb25lbnQpO1xyXG4gICAgICAgICAgY29uc3QgW3ZhbGlkYXRvcnMsIHdhdGNoaW5nXSA9IHRoaXMucHJvZ3JhbW1hYmlsaXR5LnZhbGlkYXRlKGN1cnJlbnRHcm91cCwgY29tcG9uZW50LmtleVxyXG4gICAgICAgICAgICAsIGNvbXBvbmVudD8udmFsaWRhdGU/LnJlcXVpcmVkLCB0aGlzLmdldFZhbGlkYXRpb25SdWxlcyhjb21wb25lbnQpKTtcclxuICAgICAgICAgIGNvbnN0IG9wdGlvbnM6IEZvcm1Db250cm9sT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgdmFsaWRhdG9yczogdmFsaWRhdG9ycyxcclxuICAgICAgICAgICAgdXBkYXRlT246IHRoaXMuZ2V0VXBkYXRlT24oY29tcG9uZW50KSB8fCBcImNoYW5nZVwiLFxyXG4gICAgICAgICAgICBub25OdWxsYWJsZTogKGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUJ1aWxkZXIuY29udHJvbChkZWZhdWx0VmFsdWUsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgd2F0Y2hpbmcoY29udHJvbCk7XHJcbiAgICAgICAgICB0aGlzLnByb2dyYW1tYWJpbGl0eS5kaXNhYmxlKGZvcm1Hcm91cCwgY29udHJvbCwgY29tcG9uZW50LmRpc2FibGVkKTtcclxuICAgICAgICAgIGN1cnJlbnRHcm91cC5hZGRDb250cm9sKGNvbXBvbmVudC5rZXksIGNvbnRyb2wpO1xyXG4gICAgICAgICAgdXNlKGNvbnRyb2wpO1xyXG4gICAgICAgIH0gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuaXNDb250YWluZXJDb21wb25lbnQoY29tcG9uZW50KSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcnMgPSB0aGlzLmdldENvbnRhaW5lcnMoY29tcG9uZW50KTtcclxuICAgICAgICBjb250YWluZXJzPy5mb3JFYWNoKChjb250YWluZXIpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGN1cnJlbnRHcm91cCA9IHRoaXMuYXBwbHlQYXRoKGZvcm1CdWlsZGVyLCBmb3JtR3JvdXAsIGNvbnRhaW5lci5wYXRoKTtcclxuICAgICAgICAgIGlmICh0aGlzLmhhc1BhdGgoY29udGFpbmVyLnBhdGgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJvZ3JhbW1hYmlsaXR5LmRpc2FibGUoZm9ybUdyb3VwLCBjdXJyZW50R3JvdXAsIGNvbnRhaW5lci5kaXNhYmxlZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250YWluZXIucm93cz8uZm9yRWFjaCgocm93OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgZm9ybUNvbXBvbmVudC5hZGRDb250cm9scyhmb3JtQnVpbGRlciwgY3VycmVudEdyb3VwLCByb3cuY29tcG9uZW50cywgdXNlKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuaXNBcnJheUNvbXBvbmVudChjb21wb25lbnQpKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbUNvbXBvbmVudCA9IHRoaXMuZ2V0QXJyYXlJdGVtKGNvbXBvbmVudCk7XHJcbiAgICAgICAgaWYgKGl0ZW1Db21wb25lbnQua2V5KSB7XHJcbiAgICAgICAgICBjb25zdCBjdXJyZW50R3JvdXAgPSB0aGlzLmFwcGx5UGF0aChmb3JtQnVpbGRlciwgZm9ybUdyb3VwLCBpdGVtQ29tcG9uZW50LnBhdGgpO1xyXG4gICAgICAgICAgY29uc3QgZm9ybUFycmF5ID0gdGhpcy5jcmVhdGVGb3JtQXJyYXkoZm9ybUJ1aWxkZXIsIGN1cnJlbnRHcm91cCwgaXRlbUNvbXBvbmVudCk7XHJcbiAgICAgICAgICB1c2UoZm9ybUFycmF5KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5pc0NvbXBvbmVudFdpdGhJbnB1dChjb21wb25lbnQpKSB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEdyb3VwID0gdGhpcy5hcHBseVBhdGgodGhpcy5mYiwgZm9ybUdyb3VwLCBjb21wb25lbnQucGF0aCk7XHJcbiAgICAgICAgaWYgKGN1cnJlbnRHcm91cC5jb250YWlucyhjb21wb25lbnQua2V5KSkge1xyXG4gICAgICAgICAgdXNlKGN1cnJlbnRHcm91cC5nZXQoY29tcG9uZW50LmtleSkgYXMgQWJzdHJhY3RDb250cm9sKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUJ1aWxkZXIuY29udHJvbChudWxsKTtcclxuICAgICAgICAgIGN1cnJlbnRHcm91cC5hZGRDb250cm9sKGNvbXBvbmVudC5rZXksIGNvbnRyb2wpO1xyXG4gICAgICAgICAgdXNlKGNvbnRyb2wpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFZhbGlkYXRpb25SdWxlcyhjb21wb25lbnQ6IGFueSk6IFZhbGlkYXRpb25SdWxlW10ge1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbXBvbmVudC52YWxpZGF0aW9ucykpIHJldHVybiBbXTtcclxuICAgIHJldHVybiBjb21wb25lbnQudmFsaWRhdGlvbnM/Lm1hcCgocnVsZTogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZXhwcmVzc2lvbjogcnVsZS5leHByZXNzaW9uLFxyXG4gICAgICAgIHR5cGU6IHJ1bGUudHlwZSxcclxuICAgICAgICBtZXNzYWdlOiB0aGlzLmxvY2FsZShydWxlLCAnbWVzc2FnZScpXHJcbiAgICAgIH0gYXMgVmFsaWRhdGlvblJ1bGU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRm9ybUFycmF5KGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGl0ZW1Db21wb25lbnQ6IGFueSk6IEZvcm1BcnJheSB7XHJcbiAgICBjb25zdCBmb3JtQ29tcG9uZW50ID0gdGhpcztcclxuXHJcbiAgICBjb25zdCBmb3JtQXJyYXkgPSBmb3JtQnVpbGRlci5hcnJheTxGb3JtR3JvdXA+KFtdKTtcclxuXHJcbiAgICBmb3JtR3JvdXAuYWRkQ29udHJvbChpdGVtQ29tcG9uZW50LmtleSwgZm9ybUFycmF5KTtcclxuXHJcbiAgICBjb25zdCBjcmVhdGVJdGVtID0gZnVuY3Rpb24gKCk6IEZvcm1Hcm91cCB7XHJcbiAgICAgIGxldCBuZXdHcm91cCA9IGZvcm1CdWlsZGVyLmdyb3VwKHt9KTtcclxuICAgICAgaXRlbUNvbXBvbmVudC5yb3dzPy5mb3JFYWNoKChyb3c6IGFueSkgPT4ge1xyXG4gICAgICAgIGZvcm1Db21wb25lbnQuYWRkQ29udHJvbHMoZm9ybUJ1aWxkZXIsIG5ld0dyb3VwLCByb3cuY29tcG9uZW50cywgKCkgPT4geyB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBuZXdHcm91cDtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgcmVzaXplRm9ybUFycmF5ID0gdGhpcy5yZXNpemVGb3JtQXJyYXk7XHJcblxyXG4gICAgY29uc3QgYWRkSXRlbSA9IGZ1bmN0aW9uICh0aGlzOiBGb3JtQXJyYXkpIHtcclxuICAgICAgbGV0IG5ld0dyb3VwID0gY3JlYXRlSXRlbSgpO1xyXG4gICAgICB0aGlzLnB1c2gobmV3R3JvdXApO1xyXG4gICAgICByZXR1cm4gbmV3R3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHByZXBhcmVBcnJheSA9IChhcnJheTogYW55KSA9PiB7XHJcbiAgICAgIGFycmF5LmFkZEl0ZW0gPSBhZGRJdGVtO1xyXG4gICAgICBhcnJheS5jcmVhdGVJdGVtID0gY3JlYXRlSXRlbTtcclxuICAgICAgYXJyYXkucmVzaXplID0gcmVzaXplO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlc2l6ZSA9IGZ1bmN0aW9uICh0aGlzOiBGb3JtQXJyYXksIHNpemU6IG51bWJlcikge1xyXG4gICAgICBjb25zdCBuZXdBcnJheSA9IHJlc2l6ZUZvcm1BcnJheSh0aGlzLCBzaXplLCBjcmVhdGVJdGVtKTtcclxuICAgICAgcHJlcGFyZUFycmF5KG5ld0FycmF5KTtcclxuICAgICAgZm9ybUdyb3VwLnNldENvbnRyb2woaXRlbUNvbXBvbmVudC5rZXksIG5ld0FycmF5KTtcclxuICAgIH07XHJcblxyXG4gICAgcHJlcGFyZUFycmF5KGZvcm1BcnJheSk7XHJcblxyXG4gICAgcmV0dXJuIGZvcm1BcnJheTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzaXplRm9ybUFycmF5KGZvcm1BcnJheTogRm9ybUFycmF5LCBzaXplOiBudW1iZXIsIGNyZWF0ZUl0ZW06ICgpID0+IEZvcm1Hcm91cCkgOiBGb3JtQXJyYXkge1xyXG4gICAgaWYgKGZvcm1BcnJheS5sZW5ndGggPCBzaXplKSB7XHJcbiAgICAgIGNvbnN0IG5ld0FycmF5ID0gbmV3IEZvcm1BcnJheShmb3JtQXJyYXkuY29udHJvbHMpO1xyXG4gICAgICB3aGlsZSAoZm9ybUFycmF5Lmxlbmd0aCA8IHNpemUpIHtcclxuICAgICAgICBuZXdBcnJheS5wdXNoKGNyZWF0ZUl0ZW0oKSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5ld0FycmF5O1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZm9ybUFycmF5Lmxlbmd0aCA+IHNpemUpIHtcclxuICAgICAgcmV0dXJuIG5ldyBGb3JtQXJyYXkoZm9ybUFycmF5LmNvbnRyb2xzLnNsaWNlKDAsIHNpemUpKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gZm9ybUFycmF5O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNQYXRoKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB2YWx1ZS50cmltKCkubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlQYXRoKGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgZm9ybUdyb3VwOiBGb3JtR3JvdXAsIHBhdGg6IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLmhhc1BhdGgocGF0aCkpIHtcclxuICAgICAgcmV0dXJuIGZvcm1Hcm91cDtcclxuICAgIH1cclxuICAgIGxldCBjdXJyZW50R3JvdXA6IEZvcm1Hcm91cCA9IGZvcm1Hcm91cDtcclxuICAgIHRoaXMuc3BsaXRQYXRoKHBhdGgpLmZvckVhY2goKHNlZ21lbnQpID0+IHtcclxuICAgICAgY29uc3QgZXhpc3RHcm91cCA9IGN1cnJlbnRHcm91cC5nZXQoc2VnbWVudCk7XHJcbiAgICAgIGlmIChleGlzdEdyb3VwIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgY3VycmVudEdyb3VwID0gZXhpc3RHcm91cDtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoZXhpc3RHcm91cCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGNyZWF0ZSBmb3JtIGdyb3VwIGJlY2F1c2UgYW4gZWxlbWVudCB3aXRoIHBhdGggJHtzZWdtZW50fSBhbHJlYWR5IGV4aXN0c2ApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHNlZ21lbnRHcm91cCA9IGZvcm1CdWlsZGVyLmdyb3VwKHt9KTtcclxuICAgICAgICBjdXJyZW50R3JvdXAuYWRkQ29udHJvbChzZWdtZW50LCBzZWdtZW50R3JvdXApO1xyXG4gICAgICAgIGN1cnJlbnRHcm91cCA9IHNlZ21lbnRHcm91cDtcclxuICAgICAgfSBcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGN1cnJlbnRHcm91cDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNGb3JtQ29tcG9uZW50KGNvbXBvbmVudDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBzd2l0Y2ggKGNvbXBvbmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgXCJjaGVja2JveFwiOlxyXG4gICAgICBjYXNlIFwiY2hlY2tsaXN0XCI6XHJcbiAgICAgIGNhc2UgXCJkYXRldGltZVwiOlxyXG4gICAgICBjYXNlIFwiZmlsZXBpY2tlclwiOlxyXG4gICAgICBjYXNlIFwibnVtYmVyXCI6XHJcbiAgICAgIGNhc2UgXCJyYWRpb1wiOlxyXG4gICAgICBjYXNlIFwic2VsZWN0XCI6XHJcbiAgICAgIGNhc2UgXCJ0YWdsaXN0XCI6XHJcbiAgICAgIGNhc2UgXCJ0ZXh0YXJlYVwiOlxyXG4gICAgICBjYXNlIFwidGV4dGZpZWxkXCI6XHJcbiAgICAgIGNhc2UgXCJyYW5nZVwiOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNDb250YWluZXJDb21wb25lbnQoY29tcG9uZW50OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHN3aXRjaCAoY29tcG9uZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBcImdyb3VwXCI6XHJcbiAgICAgIGNhc2UgXCJ0YWJcIjpcclxuICAgICAgY2FzZSBcImFjY29yZGlvblwiOlxyXG4gICAgICAgIHJldHVybiB0cnVlOyAgICAgIFxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNDb21wb25lbnRXaXRoSW5wdXQoY29tcG9uZW50OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBjb21wb25lbnQudHlwZSA9PT0gXCJjb21wb25lbnRcIlxyXG4gICAgICAmJiBjb21wb25lbnQuaXNJbnB1dCA9PT0gdHJ1ZVxyXG4gICAgICAmJiBjb21wb25lbnQua2V5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0FycmF5Q29tcG9uZW50KGNvbXBvbmVudDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBzd2l0Y2ggKGNvbXBvbmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgXCJkeW5hbWljbGlzdFwiOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgcHJpdmF0ZSBnZXRBcnJheUl0ZW0oY29tcG9uZW50OiBhbnkpOiB7IGtleTogYW55OyBwYXRoOiBhbnk7IHJvd3M6IGFueSB9IHtcclxuICAgIGlmIChjb21wb25lbnQudHlwZSA9PT0gJ2R5bmFtaWNsaXN0Jykge1xyXG4gICAgICByZXR1cm4geyBrZXk6IGNvbXBvbmVudC5rZXksIHBhdGg6IGNvbXBvbmVudC5wYXRoLCByb3dzOiBjb21wb25lbnQucm93cyB9O1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiB7IGtleTogbnVsbCwgcGF0aDogbnVsbCwgcm93czogW10gfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q29udGFpbmVycyhjb21wb25lbnQ6IGFueSk6IHsgcGF0aDogYW55OyByb3dzOiBhbnksIGRpc2FibGVkOiBhbnkgfVtdIHtcclxuICAgIGlmIChjb21wb25lbnQudHlwZSA9PT0gJ2dyb3VwJykge1xyXG4gICAgICByZXR1cm4gW3tcclxuICAgICAgICBwYXRoOiBjb21wb25lbnQucGF0aCxcclxuICAgICAgICByb3dzOiBjb21wb25lbnQucm93cyxcclxuICAgICAgICBkaXNhYmxlZDogY29tcG9uZW50LmRpc2FibGVkXHJcbiAgICAgIH1dO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoY29tcG9uZW50LnR5cGUgPT09ICd0YWInXHJcbiAgICAgIHx8IGNvbXBvbmVudC50eXBlID09PSAnYWNjb3JkaW9uJykge1xyXG4gICAgICByZXR1cm4gY29tcG9uZW50LnBhbmVscy5tYXAoKHBhbmVsOiBhbnkpID0+ICh7XHJcbiAgICAgICAgcGF0aDogcGFuZWwucGF0aCxcclxuICAgICAgICByb3dzOiB0aGlzLm1ldGFkYXRhLmdldEZvcm1CeU5hbWUocGFuZWwudGVtcGxhdGUpPy5yb3dzID8/IFtdLFxyXG4gICAgICAgIGRpc2FibGVkOiBwYW5lbC5kaXNhYmxlZFxyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRVcGRhdGVPbihjb21wb25lbnQ6IGFueSk6IGFueSB7XHJcbiAgICBzd2l0Y2ggKGNvbXBvbmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgXCJudW1iZXJcIjpcclxuICAgICAgY2FzZSBcInRleHRhcmVhXCI6XHJcbiAgICAgIGNhc2UgXCJ0ZXh0ZmllbGRcIjpcclxuICAgICAgICByZXR1cm4gXCJibHVyXCI7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldERlZmF1bHRWYWx1ZShjb21wb25lbnQ6IGFueSk6IGFueSB7XHJcbiAgICBzd2l0Y2ggKGNvbXBvbmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgXCJ0ZXh0YXJlYVwiOlxyXG4gICAgICBjYXNlIFwidGV4dGZpZWxkXCI6XHJcbiAgICAgIGNhc2UgXCJyYWRpb1wiOlxyXG4gICAgICBjYXNlIFwic2VsZWN0XCI6XHJcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudC5kZWZhdWx0VmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICBjYXNlIFwibnVtYmVyXCI6XHJcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudC5kZWZhdWx0VmFsdWUgYXMgbnVtYmVyO1xyXG4gICAgICBjYXNlIFwiY2hlY2tib3hcIjpcclxuICAgICAgICByZXR1cm4gY29tcG9uZW50LmRlZmF1bHRWYWx1ZSBhcyBib29sZWFuO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzcGxpdFBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gICAgaWYgKCFwYXRoKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYXRoXHJcbiAgICAgIC5zcGxpdCgnLicpXHJcbiAgICAgIC5tYXAoc2VnbWVudCA9PiBzZWdtZW50LnRyaW0oKSlcclxuICAgICAgLmZpbHRlcihzZWdtZW50ID0+IHNlZ21lbnQubGVuZ3RoID4gMCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1ZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB2YWx1ZS50cmltKCkubGVuZ3RoID4gMDtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBjbGFzcz1cIm5nc1wiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcblxyXG4gICAgICA8IS0tICNyZWdpb24gcHJvZ3Jlc3MgLS0+XHJcbiAgICAgIDxuZ3gtc2lyaW8tc3RlcHBlci1wcm9ncmVzcy1iYXIgKm5nSWY9XCJzaG93UHJvZ3Jlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChldmVudENsaWNrKT1cImFjdGl2YXRlRm9ybSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGFzRHJvcGRvd25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Ryb3BEb3duTGFiZWxdPVwibG9jYWxlKFRleHRzLCAnU2hvdycpXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZm9ybSBvZiBmb3JtcywgbGV0IGZvcm1JbmRleCA9IGluZGV4XCI+ICAgICAgICAgIFxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFldmFsdWF0ZUJvb2xlYW4oZm9ybS5kaXNhYmxlZClcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldEZvcm1TdGF0dXMoZm9ybSwgZm9ybUluZGV4KSBhcyBzdGF0dXNcIj5cclxuICAgICAgICAgICAgICA8bmd4LXNpcmlvLXN0ZXBwZXItcHJvZ3Jlc3MtaXRlbSBbaGFzTmF2aWdhdGlvbl09XCJzdGF0dXMgIT09ICdpbmFjdGl2ZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwic3RhdHVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiZXZhbHVhdGVUZW1wbGF0ZShsb2NhbGUoZm9ybSwgJ3RpdGxlJykpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjcHJvZ3Jlc3NJdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudFJlZl09XCJwcm9ncmVzc0l0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtSW5kZXhdPVwiZm9ybUluZGV4XCIvPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25neC1zaXJpby1zdGVwcGVyLXByb2dyZXNzLWJhcj5cclxuICAgICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dOYXZcIj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcblxyXG4gICAgICAgICAgPCEtLSAjcmVnaW9uIHNpZGVuYXYgLS0+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3NpZGVuYXZUZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5neC1zaXJpby1zaWRlbmF2PlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZvcm0gb2YgZm9ybXMsIGxldCBmb3JtSW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFldmFsdWF0ZUJvb2xlYW4oZm9ybS5kaXNhYmxlZClcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldEZvcm1TdGF0dXMoZm9ybSwgZm9ybUluZGV4KSBhcyBzdGF0dXNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwieyBjb3VudDogZ2V0RXJyb3JzKGZvcm0pIH0gYXMgZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNpcmlvLXNpZGVuYXYtaXRlbSBbaXNBY3RpdmVdPVwiYWN0aXZlTmF2ID09IGZvcm1JbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZlTmF2ID0gZm9ybUluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZFN0YXRlXT1cInN0YXR1cyA9PT0gJ2luYWN0aXZlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJhY3RpdmVOYXYgPSBmb3JtSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3dpdGhUYWddPVwiZXJyb3JzLmNvdW50ID4gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdUeXBlPVwiZGFuZ2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWdWYWx1ZV09XCJlcnJvcnMuY291bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGV2YWx1YXRlVGVtcGxhdGUobG9jYWxlKGZvcm0sICd0aXRsZScpKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtc2lyaW8tc2lkZW5hdi1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25neC1zaXJpby1zaWRlbmF2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICA8bmd4LXNpcmlvLXNpZGVuYXYtbW9iaWxlIGNsYXNzPVwiZC1ibG9jayBkLWxnLW5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3Blbk1lbnVMYWJlbF09XCJsb2NhbGUoVGV4dHMsICdPcGVuTWVudScpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wZW5NZW51QXJpYUxhYmVsXT1cImxvY2FsZShUZXh0cywgJ09wZW5NZW51JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xvc2VNZW51TGFiZWxdPVwibG9jYWxlKFRleHRzLCAnQ2xvc2VNZW51JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZU1lbnVBcmlhTGFiZWw9XCJsb2NhbGUoVGV4dHMsICdDbG9zZU1lbnUnKVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2lkZW5hdlRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25neC1zaXJpby1zaWRlbmF2LW1vYmlsZT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLW5vbmUgZC1sZy1ibG9ja1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2lkZW5hdlRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvci1ob3Jpem9udGFsXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWVsZW1lbnQtZm9ybVwiIFtuZ0NsYXNzXT1cInNob3dOYXYgPyAnY29sLW1kLTExJyA6ICdjb2wtbWQtMTYnXCI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZvcm0gb2YgZm9ybXMsIGxldCBzZWN0aW9uSW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImFjdGl2ZU5hdiA9PSBzZWN0aW9uSW5kZXggJiYgIWV2YWx1YXRlQm9vbGVhbihmb3JtLmRpc2FibGVkKVwiXHJcbiAgICAgICAgICAgICAgICNkZWZhdWx0XHJcbiAgICAgICAgICAgICAgIFtyZWdpc3Rlcl09XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgW2NvbXBvbmVudFJlZl09XCJkZWZhdWx0XCI+XHJcbiAgICAgICAgICAgIDxoMSAqbmdJZj1cInNob3dGb3JtVGl0bGUgJiYgZm9ybS50aXRsZVwiIGNsYXNzPVwiaDMgZm9ybS10aXRsZVwiPnt7IGV2YWx1YXRlVGVtcGxhdGUobG9jYWxlKGZvcm0sICd0aXRsZScpKSB9fTwvaDE+XHJcbiAgICAgICAgICAgIDxhcHAtZHluYW1pYy1maWVsZHMgW2Zvcm1Hcm91cF09XCJnZXRGb3JtR3JvdXAoZm9ybS5wYXRoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvd3NdPVwiZm9ybS5yb3dzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWxpZ25tZW50XT1cImZvcm0udmVydGljYWxBbGlnbm1lbnRcIj48L2FwcC1keW5hbWljLWZpZWxkcz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd05hdkJ1dHRvbiAmJiAoY2FuTmV4dCgpIHx8IGNhblByZXZpb3VzKCkpXCI+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBzZWN0aW9uLW5hdnNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC04IGNvbC1tZC04XCI+XHJcbiAgICAgICAgICAgICAgPG5neC1zaXJpby1idXR0b24gW2NvbG9yXT1cIm51bGxcIiAqbmdJZj1cImNhbk5leHQoKVwiIChjbGljayk9XCJnb05leHQoKVwiIGNsYXNzPVwibmV4dFNlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgIHt7IGxvY2FsZShUZXh0cywgJ05leHRTZWN0aW9uJykgfX1cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEtc29saWQgZmEtY2hldnJvbi1yaWdodFwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDEwcHhcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9uZ3gtc2lyaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC04IGNvbC1tZC04XCI+XHJcbiAgICAgICAgICAgICAgPG5neC1zaXJpby1idXR0b24gW2NvbG9yXT1cIm51bGxcIiAqbmdJZj1cImNhblByZXZpb3VzKClcIiAoY2xpY2spPVwiZ29QcmV2aW91cygpXCIgY2xhc3M9XCJwcmV2U2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYS1zb2xpZCBmYS1jaGV2cm9uLWxlZnRcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7IGxvY2FsZShUZXh0cywgJ1ByZXZpb3VzU2VjdGlvbicpIH19XHJcbiAgICAgICAgICAgICAgPC9uZ3gtc2lyaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPC9mb3JtPlxyXG5cclxuXHJcblxyXG4iXX0=
612
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFFOUMsT0FBTyxFQUNMLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUNQLGlCQUFpQixFQUFFLFlBQVksRUFDOUMsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWUsU0FBUyxFQUF1QyxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQWtCLE1BQU0scUNBQXFDLENBQUM7QUFDN0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBZ0IsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQ0wsMkJBQTJCLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLEVBQzNFLG9CQUFvQixFQUFFLGdDQUFnQyxFQUFFLGlDQUFpQyxFQUU1RixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUs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LHNCQUFzQjs7NEZBVWYsb0JBQW9CO2tCQXRCaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FNaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQjt3QkFDdkMsaUJBQWlCLEVBQUUsa0JBQWtCO3dCQUNyQywyQkFBMkIsRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUI7d0JBQzdFLG9CQUFvQixFQUFFLGdDQUFnQyxFQUFFLGlDQUFpQzt3QkFDekYsc0JBQXNCLENBQUMsYUFDaEI7d0JBQ1QsWUFBWTt3QkFDVixzQkFBc0I7d0JBQ3RCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3FCQUNsQixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJO3VUQUc1QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ2UsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQXdFaEIsU0FBUztzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL3R5cGVzL3R5cGluZ3MuZC50c1wiIC8+XHJcblxyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kgXHJcbiAgLCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiwgRXZlbnRFbWl0dGVyXHJcbiAgLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEluamVjdG9yXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIEZvcm1Db250cm9sT3B0aW9ucywgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQcm9ncmFtbWFiaWxpdHlTZXJ2aWNlLCBWYWxpZGF0aW9uUnVsZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Byb2dyYW1tYWJpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZ3JvdXBCeVJvdyB9IGZyb20gJy4uL3V0aWxzL2dyb3VwQnlSb3cnO1xyXG5pbXBvcnQgeyBDb21tYW5kRXZlbnQsIEV2ZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2V2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNZXRhZGF0YVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tZXRhZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGdW5jdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mdW5jdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgRm9ybURpYWxvZ09wdGlvbnMgfSBmcm9tICcuLi9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IER5bmFtaWNGaWVsZHNDb21wb25lbnQgfSBmcm9tICcuLi9keW5hbWljLWZpZWxkcy9keW5hbWljLWZpZWxkcy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIFNpcmlvU2lkZW5hdk1vYmlsZUNvbXBvbmVudCwgU2lyaW9TaWRlbmF2Q29tcG9uZW50LCBTaXJpb1NpZGVuYXZJdGVtQ29tcG9uZW50XHJcbiAgLCBTaXJpb0J1dHRvbkNvbXBvbmVudCwgU2lyaW9TdGVwcGVyUHJvZ3Jlc3NCYXJDb21wb25lbnQsIFNpcmlvU3RlcHBlclByb2dyZXNzSXRlbUNvbXBvbmVudFxyXG4gICwgU2lyaW9TdGVwcGVyUHJvZ3Jlc3NTdGF0dXMsIE5neFNpcmlvRXZlbnRcclxufSBmcm9tICduZ3gtc2lyaW8tbGliJztcclxuaW1wb3J0IHsgUmVnaXN0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVnaXN0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlZ2lzdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9yZWdpc3Rlci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGb3JtSW5kZXhEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2Zvcm1JbmRleC5kaXJlY3RpdmUnO1xyXG5cclxuaW1wb3J0IHsgQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL2NvbnRyb2wnOyBcclxuaW1wb3J0IHsgc2V0Rm9jdXMgfSBmcm9tICcuLi91dGlscy9mb2N1c2FibGUnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQHdlbWFrZTR1L2ludGVyYWN0JztcclxuaW1wb3J0IHsgVGV4dHMgfSBmcm9tICcuLi9sb2NhbGUvbG9jYWxlJztcclxuaW1wb3J0IHsgbG9jYWxpemUgfSBmcm9tICcuLi9sb2NhbGUvbG9jYWxpemUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZHluYW1pYy1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuLi9zaGFyZWQvYm9vdHN0cmFwLWdyaWQuc2NzcycsXHJcbiAgICAnLi9keW5hbWljLWZvcm0uY29tcG9uZW50LmNzcydcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZVxyXG4gICAgLCBSZWdpc3RlckRpcmVjdGl2ZSwgRm9ybUluZGV4RGlyZWN0aXZlXHJcbiAgICAsIFNpcmlvU2lkZW5hdk1vYmlsZUNvbXBvbmVudCwgU2lyaW9TaWRlbmF2Q29tcG9uZW50LCBTaXJpb1NpZGVuYXZJdGVtQ29tcG9uZW50XHJcbiAgICAsIFNpcmlvQnV0dG9uQ29tcG9uZW50LCBTaXJpb1N0ZXBwZXJQcm9ncmVzc0JhckNvbXBvbmVudCwgU2lyaW9TdGVwcGVyUHJvZ3Jlc3NJdGVtQ29tcG9uZW50XHJcbiAgICAsIER5bmFtaWNGaWVsZHNDb21wb25lbnRdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgRXZlbnRTZXJ2aWNlXHJcbiAgICAsIFByb2dyYW1tYWJpbGl0eVNlcnZpY2VcclxuICAgICwgUmVnaXN0ZXJTZXJ2aWNlXHJcbiAgICAsIE1ldGFkYXRhU2VydmljZVxyXG4gICAgLCBGdW5jdGlvblNlcnZpY2VcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHNjaGVtYTogYW55O1xyXG4gIEBJbnB1dCgpIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSB2YWx1ZTogYW55ID0ge307XHJcbiAgQElucHV0KCkgc3RyaWN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd05hdjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd05hdkJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd1Byb2dyZXNzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0Zvcm1UaXRsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHByb2dyZXNzU3RhdHVzOiBib29sZWFuID0gdHJ1ZTtcclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgaW5pdGlhbGl6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Hcm91cD4oKTtcclxuICBAT3V0cHV0KCkgb25Db21tYW5kID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tYW5kRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGFjdGl2ZU5hdkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoJ2RlZmF1bHQnKSBmb3JtRGl2ITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXHJcbiAgICAsIHByaXZhdGUgcHJvZ3JhbW1hYmlsaXR5OiBQcm9ncmFtbWFiaWxpdHlTZXJ2aWNlXHJcbiAgICAsIHByaXZhdGUgZXZlbnRzOiBFdmVudFNlcnZpY2VcclxuICAgICwgcHJpdmF0ZSByZWdpc3RlclNlcnZpY2U6IFJlZ2lzdGVyU2VydmljZVxyXG4gICAgLCBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlXHJcbiAgICAsIHByaXZhdGUgbWV0YWRhdGE6IE1ldGFkYXRhU2VydmljZVxyXG4gICAgLCBwcml2YXRlIGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZVxyXG4gICAgLCBwcml2YXRlIGRpYWxvZzogRGlhbG9nU2VydmljZVxyXG4gICAgLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxyXG4gICkgeyB9XHJcblxyXG4gIFRleHRzID0gVGV4dHM7XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhckhhbmRsZXJzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGludGVybmFsQ2hhbmdlID0gZmFsc2U7XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydzY2hlbWEnXSkge1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlU2NoZW1hKCk7ICAgXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXNbJ3ZhbHVlJ10pIHtcclxuICAgICAgdGhpcy5vbkNoYW5nZVZhbHVlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZm9ybXMoKTogQXJyYXk8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybXM7XHJcbiAgfVxyXG5cclxuICBsb2NhbGUoY29tcG9uZW50OiBhbnksIGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBsb2NhbGl6ZSh0aGlzLmxhbmd1YWdlLCBjb21wb25lbnQsIGtleSk7XHJcbiAgfVxyXG5cclxuICBjYW5QcmV2aW91cygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmdldFByZXZpb3VzKCkgIT0gLTE7IFxyXG4gIH1cclxuXHJcbiAgZ29QcmV2aW91cygpIHtcclxuICAgIGlmICh0aGlzLmNhblByZXZpb3VzKCkpIHtcclxuICAgICAgdGhpcy5hY3RpdmVOYXYgPSB0aGlzLmdldFByZXZpb3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYW5OZXh0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0TmV4dCgpICE9IC0xOyAgICBcclxuICB9XHJcblxyXG4gIGdvTmV4dCgpIHtcclxuICAgIGlmICh0aGlzLmNhbk5leHQoKSkgeyBcclxuICAgICAgdGhpcy5hY3RpdmVOYXYgPSB0aGlzLmdldE5leHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENvbnRyb2wobmFtZTogc3RyaW5nKTogQ29udHJvbCB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMucmVnaXN0ZXJTZXJ2aWNlLmdldENvbnRyb2wobmFtZSk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250cm9sQXM8VCBleHRlbmRzIENvbnRyb2w+KG5hbWU6IHN0cmluZywgdHlwZTogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFQgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyU2VydmljZS5nZXRDb250cm9sQXMobmFtZSwgdHlwZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgYWN0aXZlTmF2KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTmF2O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgYWN0aXZlTmF2KHZhbHVlOiBudW1iZXIpIHtcclxuICAgIGlmICh2YWx1ZSA+PSAwICYmIHZhbHVlIDwgdGhpcy5nZXRNYXhOYXYoKSkge1xyXG4gICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKHZhbHVlKSB8fCB0aGlzLmlzSW5hY3RpdmUodmFsdWUpKVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgdGhpcy5fYWN0aXZlTmF2ID0gdmFsdWU7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1EaXY/Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgIHNldEZvY3VzKHRoaXMuZm9ybURpdi5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hY3RpdmVOYXZDaGFuZ2UuZW1pdCh0aGlzLl9hY3RpdmVOYXYpO1xyXG4gICAgICB9KTtcclxuICAgIH0gICAgICAgIFxyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybUdyb3VwKHBhdGg6IHN0cmluZyB8IG51bGwpOiBGb3JtR3JvdXAge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHBhdGggPyB0aGlzLmZvcm1Hcm91cC5nZXQocGF0aCkgOiB0aGlzLmZvcm1Hcm91cDtcclxuICAgIGlmICghKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29udHJvbCBpcyBub3QgYSBGb3JtR3JvdXAnKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjb250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybVN0YXR1cyhmb3JtOiBhbnksIGluZGV4OiBudW1iZXIpOiBTaXJpb1N0ZXBwZXJQcm9ncmVzc1N0YXR1cyB7XHJcblxyXG4gICAgY29uc3QgY3VycmVudCA9IGluZGV4ID09IHRoaXMuYWN0aXZlTmF2O1xyXG5cclxuICAgIGlmICh0aGlzLmlzSW5hY3RpdmUoaW5kZXgpKSB7XHJcbiAgICAgIHJldHVybiBcImluYWN0aXZlXCI7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnByb2dyZXNzU3RhdHVzICYmICFjdXJyZW50KSB7XHJcbiAgICAgIGNvbnN0IGVycm9ycyA9IHRoaXMuZ2V0RXJyb3JzKGZvcm0pO1xyXG4gICAgICByZXR1cm4gZXJyb3JzID4gMCA/IFwiZXJyb3JcIiA6IFwic3VjY2Vzc1wiO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBcImFjdGl2ZVwiO1xyXG4gICAgfSAgICBcclxuICB9XHJcblxyXG4gIGdldEVycm9ycyhmb3JtOiBhbnkpOiBudW1iZXIge1xyXG4gICAgY29uc3QgY29udHJvbHMgPSB0aGlzLmNvbnRyb2xNYXAuZ2V0KGZvcm0pO1xyXG4gICAgaWYgKCFjb250cm9scykge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmZvcm1TZXJ2aWNlLmVycm9ycyhjb250cm9scyk7XHJcbiAgfVxyXG5cclxuICBhY3RpdmF0ZUZvcm0oZXZlbnQ6IE5neFNpcmlvRXZlbnQ8U2lyaW9TdGVwcGVyUHJvZ3Jlc3NCYXJDb21wb25lbnQ+KSB7XHJcbiAgICBjb25zdCBmb3JtSW5kZXggPSAoZXZlbnQuY29tcG9uZW50IGFzIGFueSkuZm9ybUluZGV4O1xyXG4gICAgaWYgKHR5cGVvZiBmb3JtSW5kZXggPT09ICdudW1iZXInKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlTmF2ID0gZm9ybUluZGV4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXZhbHVhdGVCb29sZWFuKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLnByb2dyYW1tYWJpbGl0eS5ldmFsdWF0ZUJvb2xlYW4odGhpcy5mb3JtR3JvdXAsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGV2YWx1YXRlVGVtcGxhdGUodmFsdWU6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucHJvZ3JhbW1hYmlsaXR5LmV2YWx1YXRlVGVtcGxhdGUodGhpcy5mb3JtR3JvdXAsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9wZW5Gb3JtKHRlbXBsYXRlOiBzdHJpbmcsIG9wdGlvbnM6IEZvcm1EaWFsb2dPcHRpb25zKSB7XHJcbiAgICBjb25zdCBmb3JtU2NoZW1hID0gdGhpcy5tZXRhZGF0YS5nZXRUZW1wbGF0ZUJ5TmFtZSh0ZW1wbGF0ZSk7XHJcbiAgICBpZiAoZm9ybVNjaGVtYSkge1xyXG4gICAgICBvcHRpb25zID0ge1xyXG4gICAgICAgIC4uLm9wdGlvbnMsXHJcbiAgICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3JcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5kaWFsb2cub3BlbkRpYWxvZyhmb3JtU2NoZW1hLCBvcHRpb25zKTtcclxuICAgIH0gICAgICAgIFxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIHRoaXMuZm9ybVNlcnZpY2UucGF0Y2godGhpcy5mb3JtR3JvdXAsIHRoaXMudmFsdWUsIHtcclxuICAgICAgc3RyaWN0OiB0aGlzLnN0cmljdFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpc0NoYW5nZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZGlydHk7XHJcbiAgfVxyXG5cclxuICBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLnZhbGlkO1xyXG4gIH1cclxuICBcclxuICBwcml2YXRlIHZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBvbkNvbW1hbmRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIF9mb3JtczogQXJyYXk8YW55PiA9IFtdO1xyXG5cclxuICBwcml2YXRlIF9hY3RpdmVOYXY6IG51bWJlciA9IDA7XHJcblxyXG4gIHByaXZhdGUgZGVmYXVsdFZhbHVlOiBhbnkgPSB7IH07XHJcblxyXG4gIHByaXZhdGUgY29udHJvbE1hcCA9IG5ldyBNYXA8YW55LCBTZXQ8QWJzdHJhY3RDb250cm9sPj4oKTtcclxuXHJcbiAgcHJpdmF0ZSBnZXQgbGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlU2VydmljZS5nZXRMYW5ndWFnZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZVNjaGVtYSgpIHtcclxuICAgIGlmICghdGhpcy5mb3JtR3JvdXApIHtcclxuICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNsZWFyQ29udHJvbHMoKTtcclxuXHJcbiAgICB0aGlzLmNsZWFySGFuZGxlcnMoKTtcclxuXHJcbiAgICBjb25zdCBzY2hlbWEgPSB0aGlzLnNjaGVtYTtcclxuXHJcbiAgICBjb25zdCBhbGxGb3JtcyA9IGdyb3VwQnlSb3coc2NoZW1hLmZvcm1zID8/IFtdKTtcclxuXHJcbiAgICB0aGlzLm1ldGFkYXRhLnNldFNjaGVtYShzY2hlbWEpO1xyXG5cclxuICAgIHRoaXMubWV0YWRhdGEuc2V0Rm9ybXMoYWxsRm9ybXMpO1xyXG5cclxuICAgIHRoaXMuX2Zvcm1zID0gYWxsRm9ybXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pc1RlbXBsYXRlICE9PSB0cnVlKTs7XHJcblxyXG4gICAgdGhpcy5idWlsZEZvcm0oKTtcclxuXHJcbiAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlO1xyXG5cclxuICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZm9ybVNlcnZpY2UucGF0Y2godGhpcy5mb3JtR3JvdXAsIHRoaXMudmFsdWUsIHtcclxuICAgICAgICBzdHJpY3Q6IHRoaXMuc3RyaWN0XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmluaXRpYWxpemVkKVxyXG4gICAgICB0aGlzLmluaXRpYWxpemVkLmVtaXQodGhpcy5mb3JtR3JvdXApO1xyXG5cclxuICAgIHRoaXMucmVnaXN0ZXJIYW5kbGVycygpOyAgXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlVmFsdWUoKSB7XHJcbiAgICBpZiAodGhpcy5pbnRlcm5hbENoYW5nZSkge1xyXG4gICAgICB0aGlzLmludGVybmFsQ2hhbmdlID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCh0aGlzLmRlZmF1bHRWYWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICB0aGlzLmNsZWFyRm9ybUFycmF5cyh0aGlzLmZvcm1Hcm91cCk7XHJcbiAgICAgIHRoaXMuZm9ybVNlcnZpY2UucGF0Y2godGhpcy5mb3JtR3JvdXAsIHRoaXMudmFsdWUsIHtcclxuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxyXG4gICAgICAgIHN0cmljdDogdGhpcy5zdHJpY3RcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE5leHQoKTogbnVtYmVyIHtcclxuICAgIGxldCBpbmRleCA9IHRoaXMuYWN0aXZlTmF2ICsgMTtcclxuICAgIGNvbnN0IG1heCA9IHRoaXMuZ2V0TWF4TmF2KCk7XHJcblxyXG4gICAgd2hpbGUgKGluZGV4IDwgbWF4KSB7XHJcbiAgICAgIGlmICghdGhpcy5pc0Rpc2FibGVkKGluZGV4KSAmJiAhdGhpcy5pc0luYWN0aXZlKGluZGV4KSkge1xyXG4gICAgICAgIHJldHVybiBpbmRleDtcclxuICAgICAgfVxyXG4gICAgICBpbmRleCsrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAtMTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UHJldmlvdXMoKTogbnVtYmVyIHtcclxuICAgIGxldCBpbmRleCA9IHRoaXMuYWN0aXZlTmF2IC0gMTtcclxuXHJcbiAgICB3aGlsZSAoaW5kZXggPj0gMCkge1xyXG4gICAgICBpZiAoIXRoaXMuaXNEaXNhYmxlZChpbmRleCkgJiYgIXRoaXMuaXNJbmFjdGl2ZShpbmRleCkpIHtcclxuICAgICAgICByZXR1cm4gaW5kZXg7XHJcbiAgICAgIH1cclxuICAgICAgaW5kZXgtLTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gLTE7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE1heE5hdigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1zLmxlbmd0aCA/PyAwOyAgICBcclxuICB9O1xyXG5cclxuICBwcml2YXRlIGlzRGlzYWJsZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgdmFyIGZvcm0gPSB0aGlzLl9mb3Jtc1tpbmRleF07XHJcblxyXG4gICAgaWYgKCFmb3JtKVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVCb29sZWFuKGZvcm0uZGlzYWJsZWQpID8/IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0luYWN0aXZlKGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHZhciBmb3JtID0gdGhpcy5fZm9ybXNbaW5kZXhdO1xyXG5cclxuICAgIGlmICghZm9ybSlcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmV2YWx1YXRlQm9vbGVhbihmb3JtLmluYWN0aXZlKSA/PyBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJDb250cm9scygpOiB2b2lkIHtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woa2V5KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhckZvcm1BcnJheXMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogdm9pZCB7XHJcbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSAmJiBjb250cm9sLmNvbnRyb2xzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29udHJvbC5jbGVhcigpO1xyXG4gICAgICBjb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICAgIGNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XHJcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcclxuICAgICAgT2JqZWN0LnZhbHVlcyhjb250cm9sLmNvbnRyb2xzKS5mb3JFYWNoKGNoaWxkQ29udHJvbCA9PiB7XHJcbiAgICAgICAgdGhpcy5jbGVhckZvcm1BcnJheXMoY2hpbGRDb250cm9sKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlZ2lzdGVySGFuZGxlcnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIHRoaXMuaW50ZXJuYWxDaGFuZ2UgPSB0cnVlO1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5vbkNvbW1hbmRTdWJzY3JpcHRpb24gPSB0aGlzLmV2ZW50cy5vbkNvbW1hbmQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm9uQ29tbWFuZClcclxuICAgICAgICB0aGlzLm9uQ29tbWFuZC5lbWl0KGRhdGEpO1xyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBjbGVhckhhbmRsZXJzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMub25Db21tYW5kU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMub25Db21tYW5kU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkRm9ybSgpIHtcclxuICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8YW55LCBTZXQ8QWJzdHJhY3RDb250cm9sPj4oKTtcclxuICAgIHRoaXMuZm9ybXMuZm9yRWFjaCgoZm9ybTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHNldCA9IG5ldyBTZXQ8QWJzdHJhY3RDb250cm9sPigpO1xyXG4gICAgICBjb25zdCBjdXJyZW50R3JvdXAgPSB0aGlzLmFwcGx5UGF0aCh0aGlzLmZiLCB0aGlzLmZvcm1Hcm91cCwgZm9ybS5wYXRoKTtcclxuICAgICAgaWYgKHRoaXMuaGFzUGF0aChmb3JtLnBhdGgpKSB7XHJcbiAgICAgICAgdGhpcy5wcm9ncmFtbWFiaWxpdHkuZGlzYWJsZSh0aGlzLmZvcm1Hcm91cCwgY3VycmVudEdyb3VwLCBmb3JtLmRpc2FibGVkKTtcclxuICAgICAgfVxyXG4gICAgICBmb3JtLnJvd3M/LmZvckVhY2goKHJvdzogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5hZGRDb250cm9scyh0aGlzLmZiLCBjdXJyZW50R3JvdXAsIHJvdy5jb21wb25lbnRzLCBzZXQuYWRkLmJpbmQoc2V0KSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBtYXAuc2V0KGZvcm0sIHNldCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY29udHJvbE1hcCA9IG1hcDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQ29udHJvbHMoZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY29tcG9uZW50czogQXJyYXk8YW55PiwgdXNlOiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB2b2lkKSB7XHJcbiAgICBsZXQgZm9ybUNvbXBvbmVudCA9IHRoaXM7XHJcblxyXG4gICAgY29tcG9uZW50cz8uZm9yRWFjaCgoY29tcG9uZW50OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHRoaXMuaXNGb3JtQ29tcG9uZW50KGNvbXBvbmVudCkpIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50R3JvdXAgPSB0aGlzLmFwcGx5UGF0aCh0aGlzLmZiLCBmb3JtR3JvdXAsIGNvbXBvbmVudC5wYXRoKTtcclxuICAgICAgICBpZiAoY3VycmVudEdyb3VwLmNvbnRhaW5zKGNvbXBvbmVudC5rZXkpKSB7XHJcbiAgICAgICAgICB1c2UoY3VycmVudEdyb3VwLmdldChjb21wb25lbnQua2V5KSBhcyBBYnN0cmFjdENvbnRyb2wpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGV0IGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKGNvbXBvbmVudCk7XHJcbiAgICAgICAgICBjb25zdCBbdmFsaWRhdG9ycywgYXN5bmNWYWxpZGF0b3JzLCB3YXRjaGluZ10gPSB0aGlzLnByb2dyYW1tYWJpbGl0eS52YWxpZGF0ZShjdXJyZW50R3JvdXAsIGNvbXBvbmVudC5rZXlcclxuICAgICAgICAgICAgLCBjb21wb25lbnQ/LnZhbGlkYXRlPy5yZXF1aXJlZCwgdGhpcy5nZXRWYWxpZGF0aW9uUnVsZXMoY29tcG9uZW50KSk7XHJcbiAgICAgICAgICBjb25zdCBvcHRpb25zOiBGb3JtQ29udHJvbE9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IHZhbGlkYXRvcnMsXHJcbiAgICAgICAgICAgIGFzeW5jVmFsaWRhdG9yczogYXN5bmNWYWxpZGF0b3JzLFxyXG4gICAgICAgICAgICB1cGRhdGVPbjogdGhpcy5nZXRVcGRhdGVPbihjb21wb25lbnQpIHx8IFwiY2hhbmdlXCIsXHJcbiAgICAgICAgICAgIG5vbk51bGxhYmxlOiAoZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtQnVpbGRlci5jb250cm9sKGRlZmF1bHRWYWx1ZSwgb3B0aW9ucyk7XHJcbiAgICAgICAgICB3YXRjaGluZyhjb250cm9sKTtcclxuICAgICAgICAgIHRoaXMucHJvZ3JhbW1hYmlsaXR5LmRpc2FibGUoZm9ybUdyb3VwLCBjb250cm9sLCBjb21wb25lbnQuZGlzYWJsZWQpO1xyXG4gICAgICAgICAgY3VycmVudEdyb3VwLmFkZENvbnRyb2woY29tcG9uZW50LmtleSwgY29udHJvbCk7XHJcbiAgICAgICAgICB1c2UoY29udHJvbCk7XHJcbiAgICAgICAgfSAgICAgICAgXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5pc0NvbnRhaW5lckNvbXBvbmVudChjb21wb25lbnQpKSB7XHJcbiAgICAgICAgY29uc3QgY29udGFpbmVycyA9IHRoaXMuZ2V0Q29udGFpbmVycyhjb21wb25lbnQpO1xyXG4gICAgICAgIGNvbnRhaW5lcnM/LmZvckVhY2goKGNvbnRhaW5lcikgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY3VycmVudEdyb3VwID0gdGhpcy5hcHBseVBhdGgoZm9ybUJ1aWxkZXIsIGZvcm1Hcm91cCwgY29udGFpbmVyLnBhdGgpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuaGFzUGF0aChjb250YWluZXIucGF0aCkpIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9ncmFtbWFiaWxpdHkuZGlzYWJsZShmb3JtR3JvdXAsIGN1cnJlbnRHcm91cCwgY29udGFpbmVyLmRpc2FibGVkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRhaW5lci5yb3dzPy5mb3JFYWNoKChyb3c6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBmb3JtQ29tcG9uZW50LmFkZENvbnRyb2xzKGZvcm1CdWlsZGVyLCBjdXJyZW50R3JvdXAsIHJvdy5jb21wb25lbnRzLCB1c2UpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5pc0FycmF5Q29tcG9uZW50KGNvbXBvbmVudCkpIHtcclxuICAgICAgICBjb25zdCBpdGVtQ29tcG9uZW50ID0gdGhpcy5nZXRBcnJheUl0ZW0oY29tcG9uZW50KTtcclxuICAgICAgICBpZiAoaXRlbUNvbXBvbmVudC5rZXkpIHtcclxuICAgICAgICAgIGNvbnN0IGN1cnJlbnRHcm91cCA9IHRoaXMuYXBwbHlQYXRoKGZvcm1CdWlsZGVyLCBmb3JtR3JvdXAsIGl0ZW1Db21wb25lbnQucGF0aCk7XHJcbiAgICAgICAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmNyZWF0ZUZvcm1BcnJheShmb3JtQnVpbGRlciwgY3VycmVudEdyb3VwLCBpdGVtQ29tcG9uZW50KTtcclxuICAgICAgICAgIHVzZShmb3JtQXJyYXkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLmlzQ29tcG9uZW50V2l0aElucHV0KGNvbXBvbmVudCkpIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50R3JvdXAgPSB0aGlzLmFwcGx5UGF0aCh0aGlzLmZiLCBmb3JtR3JvdXAsIGNvbXBvbmVudC5wYXRoKTtcclxuICAgICAgICBpZiAoY3VycmVudEdyb3VwLmNvbnRhaW5zKGNvbXBvbmVudC5rZXkpKSB7XHJcbiAgICAgICAgICB1c2UoY3VycmVudEdyb3VwLmdldChjb21wb25lbnQua2V5KSBhcyBBYnN0cmFjdENvbnRyb2wpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtQnVpbGRlci5jb250cm9sKG51bGwpO1xyXG4gICAgICAgICAgY3VycmVudEdyb3VwLmFkZENvbnRyb2woY29tcG9uZW50LmtleSwgY29udHJvbCk7XHJcbiAgICAgICAgICB1c2UoY29udHJvbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VmFsaWRhdGlvblJ1bGVzKGNvbXBvbmVudDogYW55KTogVmFsaWRhdGlvblJ1bGVbXSB7XHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoY29tcG9uZW50LnZhbGlkYXRpb25zKSkgcmV0dXJuIFtdO1xyXG4gICAgcmV0dXJuIGNvbXBvbmVudC52YWxpZGF0aW9ucz8ubWFwKChydWxlOiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBleHByZXNzaW9uOiBydWxlLmV4cHJlc3Npb24sXHJcbiAgICAgICAgdHlwZTogcnVsZS50eXBlLFxyXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMubG9jYWxlKHJ1bGUsICdtZXNzYWdlJylcclxuICAgICAgfSBhcyBWYWxpZGF0aW9uUnVsZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVGb3JtQXJyYXkoZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBmb3JtR3JvdXA6IEZvcm1Hcm91cCwgaXRlbUNvbXBvbmVudDogYW55KTogRm9ybUFycmF5IHtcclxuICAgIGNvbnN0IGZvcm1Db21wb25lbnQgPSB0aGlzO1xyXG5cclxuICAgIGNvbnN0IGZvcm1BcnJheSA9IGZvcm1CdWlsZGVyLmFycmF5PEZvcm1Hcm91cD4oW10pO1xyXG5cclxuICAgIGZvcm1Hcm91cC5hZGRDb250cm9sKGl0ZW1Db21wb25lbnQua2V5LCBmb3JtQXJyYXkpO1xyXG5cclxuICAgIGNvbnN0IGNyZWF0ZUl0ZW0gPSBmdW5jdGlvbiAoKTogRm9ybUdyb3VwIHtcclxuICAgICAgbGV0IG5ld0dyb3VwID0gZm9ybUJ1aWxkZXIuZ3JvdXAoe30pO1xyXG4gICAgICBpdGVtQ29tcG9uZW50LnJvd3M/LmZvckVhY2goKHJvdzogYW55KSA9PiB7XHJcbiAgICAgICAgZm9ybUNvbXBvbmVudC5hZGRDb250cm9scyhmb3JtQnVpbGRlciwgbmV3R3JvdXAsIHJvdy5jb21wb25lbnRzLCAoKSA9PiB7IH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIG5ld0dyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCByZXNpemVGb3JtQXJyYXkgPSB0aGlzLnJlc2l6ZUZvcm1BcnJheTtcclxuXHJcbiAgICBjb25zdCBhZGRJdGVtID0gZnVuY3Rpb24gKHRoaXM6IEZvcm1BcnJheSkge1xyXG4gICAgICBsZXQgbmV3R3JvdXAgPSBjcmVhdGVJdGVtKCk7XHJcbiAgICAgIHRoaXMucHVzaChuZXdHcm91cCk7XHJcbiAgICAgIHJldHVybiBuZXdHcm91cDtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgcHJlcGFyZUFycmF5ID0gKGFycmF5OiBhbnkpID0+IHtcclxuICAgICAgYXJyYXkuYWRkSXRlbSA9IGFkZEl0ZW07XHJcbiAgICAgIGFycmF5LmNyZWF0ZUl0ZW0gPSBjcmVhdGVJdGVtO1xyXG4gICAgICBhcnJheS5yZXNpemUgPSByZXNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVzaXplID0gZnVuY3Rpb24gKHRoaXM6IEZvcm1BcnJheSwgc2l6ZTogbnVtYmVyKSB7XHJcbiAgICAgIGNvbnN0IG5ld0FycmF5ID0gcmVzaXplRm9ybUFycmF5KHRoaXMsIHNpemUsIGNyZWF0ZUl0ZW0pO1xyXG4gICAgICBwcmVwYXJlQXJyYXkobmV3QXJyYXkpO1xyXG4gICAgICBmb3JtR3JvdXAuc2V0Q29udHJvbChpdGVtQ29tcG9uZW50LmtleSwgbmV3QXJyYXkpO1xyXG4gICAgfTtcclxuXHJcbiAgICBwcmVwYXJlQXJyYXkoZm9ybUFycmF5KTtcclxuXHJcbiAgICByZXR1cm4gZm9ybUFycmF5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNpemVGb3JtQXJyYXkoZm9ybUFycmF5OiBGb3JtQXJyYXksIHNpemU6IG51bWJlciwgY3JlYXRlSXRlbTogKCkgPT4gRm9ybUdyb3VwKSA6IEZvcm1BcnJheSB7XHJcbiAgICBpZiAoZm9ybUFycmF5Lmxlbmd0aCA8IHNpemUpIHtcclxuICAgICAgY29uc3QgbmV3QXJyYXkgPSBuZXcgRm9ybUFycmF5KGZvcm1BcnJheS5jb250cm9scyk7XHJcbiAgICAgIHdoaWxlIChmb3JtQXJyYXkubGVuZ3RoIDwgc2l6ZSkge1xyXG4gICAgICAgIG5ld0FycmF5LnB1c2goY3JlYXRlSXRlbSgpKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmV3QXJyYXk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChmb3JtQXJyYXkubGVuZ3RoID4gc2l6ZSkge1xyXG4gICAgICByZXR1cm4gbmV3IEZvcm1BcnJheShmb3JtQXJyYXkuY29udHJvbHMuc2xpY2UoMCwgc2l6ZSkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBmb3JtQXJyYXk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1BhdGgodmFsdWU6IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIHZhbHVlLnRyaW0oKS5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseVBhdGgoZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLCBmb3JtR3JvdXA6IEZvcm1Hcm91cCwgcGF0aDogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXRoaXMuaGFzUGF0aChwYXRoKSkge1xyXG4gICAgICByZXR1cm4gZm9ybUdyb3VwO1xyXG4gICAgfVxyXG4gICAgbGV0IGN1cnJlbnRHcm91cDogRm9ybUdyb3VwID0gZm9ybUdyb3VwO1xyXG4gICAgdGhpcy5zcGxpdFBhdGgocGF0aCkuZm9yRWFjaCgoc2VnbWVudCkgPT4ge1xyXG4gICAgICBjb25zdCBleGlzdEdyb3VwID0gY3VycmVudEdyb3VwLmdldChzZWdtZW50KTtcclxuICAgICAgaWYgKGV4aXN0R3JvdXAgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcclxuICAgICAgICBjdXJyZW50R3JvdXAgPSBleGlzdEdyb3VwO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChleGlzdEdyb3VwKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgY3JlYXRlIGZvcm0gZ3JvdXAgYmVjYXVzZSBhbiBlbGVtZW50IHdpdGggcGF0aCAke3NlZ21lbnR9IGFscmVhZHkgZXhpc3RzYCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc3Qgc2VnbWVudEdyb3VwID0gZm9ybUJ1aWxkZXIuZ3JvdXAoe30pO1xyXG4gICAgICAgIGN1cnJlbnRHcm91cC5hZGRDb250cm9sKHNlZ21lbnQsIHNlZ21lbnRHcm91cCk7XHJcbiAgICAgICAgY3VycmVudEdyb3VwID0gc2VnbWVudEdyb3VwO1xyXG4gICAgICB9IFxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY3VycmVudEdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0Zvcm1Db21wb25lbnQoY29tcG9uZW50OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHN3aXRjaCAoY29tcG9uZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBcImNoZWNrYm94XCI6XHJcbiAgICAgIGNhc2UgXCJjaGVja2xpc3RcIjpcclxuICAgICAgY2FzZSBcImRhdGV0aW1lXCI6XHJcbiAgICAgIGNhc2UgXCJmaWxlcGlja2VyXCI6XHJcbiAgICAgIGNhc2UgXCJudW1iZXJcIjpcclxuICAgICAgY2FzZSBcInJhZGlvXCI6XHJcbiAgICAgIGNhc2UgXCJzZWxlY3RcIjpcclxuICAgICAgY2FzZSBcInRhZ2xpc3RcIjpcclxuICAgICAgY2FzZSBcInRleHRhcmVhXCI6XHJcbiAgICAgIGNhc2UgXCJ0ZXh0ZmllbGRcIjpcclxuICAgICAgY2FzZSBcInJhbmdlXCI6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0NvbnRhaW5lckNvbXBvbmVudChjb21wb25lbnQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgc3dpdGNoIChjb21wb25lbnQudHlwZSkge1xyXG4gICAgICBjYXNlIFwiZ3JvdXBcIjpcclxuICAgICAgY2FzZSBcInRhYlwiOlxyXG4gICAgICBjYXNlIFwiYWNjb3JkaW9uXCI6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7ICAgICAgXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0NvbXBvbmVudFdpdGhJbnB1dChjb21wb25lbnQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGNvbXBvbmVudC50eXBlID09PSBcImNvbXBvbmVudFwiXHJcbiAgICAgICYmIGNvbXBvbmVudC5pc0lucHV0ID09PSB0cnVlXHJcbiAgICAgICYmIGNvbXBvbmVudC5rZXk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQXJyYXlDb21wb25lbnQoY29tcG9uZW50OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHN3aXRjaCAoY29tcG9uZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBcImR5bmFtaWNsaXN0XCI6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBwcml2YXRlIGdldEFycmF5SXRlbShjb21wb25lbnQ6IGFueSk6IHsga2V5OiBhbnk7IHBhdGg6IGFueTsgcm93czogYW55IH0ge1xyXG4gICAgaWYgKGNvbXBvbmVudC50eXBlID09PSAnZHluYW1pY2xpc3QnKSB7XHJcbiAgICAgIHJldHVybiB7IGtleTogY29tcG9uZW50LmtleSwgcGF0aDogY29tcG9uZW50LnBhdGgsIHJvd3M6IGNvbXBvbmVudC5yb3dzIH07XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIHsga2V5OiBudWxsLCBwYXRoOiBudWxsLCByb3dzOiBbXSB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDb250YWluZXJzKGNvbXBvbmVudDogYW55KTogeyBwYXRoOiBhbnk7IHJvd3M6IGFueSwgZGlzYWJsZWQ6IGFueSB9W10ge1xyXG4gICAgaWYgKGNvbXBvbmVudC50eXBlID09PSAnZ3JvdXAnKSB7XHJcbiAgICAgIHJldHVybiBbe1xyXG4gICAgICAgIHBhdGg6IGNvbXBvbmVudC5wYXRoLFxyXG4gICAgICAgIHJvd3M6IGNvbXBvbmVudC5yb3dzLFxyXG4gICAgICAgIGRpc2FibGVkOiBjb21wb25lbnQuZGlzYWJsZWRcclxuICAgICAgfV07XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChjb21wb25lbnQudHlwZSA9PT0gJ3RhYidcclxuICAgICAgfHwgY29tcG9uZW50LnR5cGUgPT09ICdhY2NvcmRpb24nKSB7XHJcbiAgICAgIHJldHVybiBjb21wb25lbnQucGFuZWxzLm1hcCgocGFuZWw6IGFueSkgPT4gKHtcclxuICAgICAgICBwYXRoOiBwYW5lbC5wYXRoLFxyXG4gICAgICAgIHJvd3M6IHRoaXMubWV0YWRhdGEuZ2V0Rm9ybUJ5TmFtZShwYW5lbC50ZW1wbGF0ZSk/LnJvd3MgPz8gW10sXHJcbiAgICAgICAgZGlzYWJsZWQ6IHBhbmVsLmRpc2FibGVkXHJcbiAgICAgIH0pKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFVwZGF0ZU9uKGNvbXBvbmVudDogYW55KTogYW55IHtcclxuICAgIHN3aXRjaCAoY29tcG9uZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBcIm51bWJlclwiOlxyXG4gICAgICBjYXNlIFwidGV4dGFyZWFcIjpcclxuICAgICAgY2FzZSBcInRleHRmaWVsZFwiOlxyXG4gICAgICAgIHJldHVybiBcImJsdXJcIjtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGVmYXVsdFZhbHVlKGNvbXBvbmVudDogYW55KTogYW55IHtcclxuICAgIHN3aXRjaCAoY29tcG9uZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBcInRleHRhcmVhXCI6XHJcbiAgICAgIGNhc2UgXCJ0ZXh0ZmllbGRcIjpcclxuICAgICAgY2FzZSBcInJhZGlvXCI6XHJcbiAgICAgIGNhc2UgXCJzZWxlY3RcIjpcclxuICAgICAgICByZXR1cm4gY29tcG9uZW50LmRlZmF1bHRWYWx1ZSBhcyBzdHJpbmc7XHJcbiAgICAgIGNhc2UgXCJudW1iZXJcIjpcclxuICAgICAgICByZXR1cm4gY29tcG9uZW50LmRlZmF1bHRWYWx1ZSBhcyBudW1iZXI7XHJcbiAgICAgIGNhc2UgXCJjaGVja2JveFwiOlxyXG4gICAgICAgIHJldHVybiBjb21wb25lbnQuZGVmYXVsdFZhbHVlIGFzIGJvb2xlYW47XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNwbGl0UGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICBpZiAoIXBhdGgpIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhdGhcclxuICAgICAgLnNwbGl0KCcuJylcclxuICAgICAgLm1hcChzZWdtZW50ID0+IHNlZ21lbnQudHJpbSgpKVxyXG4gICAgICAuZmlsdGVyKHNlZ21lbnQgPT4gc2VnbWVudC5sZW5ndGggPiAwKTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBjbGFzcz1cIm5nc1wiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcblxyXG4gICAgICA8IS0tICNyZWdpb24gcHJvZ3Jlc3MgLS0+XHJcbiAgICAgIDxuZ3gtc2lyaW8tc3RlcHBlci1wcm9ncmVzcy1iYXIgKm5nSWY9XCJzaG93UHJvZ3Jlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChldmVudENsaWNrKT1cImFjdGl2YXRlRm9ybSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGFzRHJvcGRvd25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Ryb3BEb3duTGFiZWxdPVwibG9jYWxlKFRleHRzLCAnU2hvdycpXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZm9ybSBvZiBmb3JtcywgbGV0IGZvcm1JbmRleCA9IGluZGV4XCI+ICAgICAgICAgIFxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFldmFsdWF0ZUJvb2xlYW4oZm9ybS5kaXNhYmxlZClcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldEZvcm1TdGF0dXMoZm9ybSwgZm9ybUluZGV4KSBhcyBzdGF0dXNcIj5cclxuICAgICAgICAgICAgICA8bmd4LXNpcmlvLXN0ZXBwZXItcHJvZ3Jlc3MtaXRlbSBbaGFzTmF2aWdhdGlvbl09XCJzdGF0dXMgIT09ICdpbmFjdGl2ZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwic3RhdHVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiZXZhbHVhdGVUZW1wbGF0ZShsb2NhbGUoZm9ybSwgJ3RpdGxlJykpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjcHJvZ3Jlc3NJdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudFJlZl09XCJwcm9ncmVzc0l0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtSW5kZXhdPVwiZm9ybUluZGV4XCIvPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25neC1zaXJpby1zdGVwcGVyLXByb2dyZXNzLWJhcj5cclxuICAgICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dOYXZcIj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcblxyXG4gICAgICAgICAgPCEtLSAjcmVnaW9uIHNpZGVuYXYgLS0+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3NpZGVuYXZUZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5neC1zaXJpby1zaWRlbmF2PlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZvcm0gb2YgZm9ybXMsIGxldCBmb3JtSW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFldmFsdWF0ZUJvb2xlYW4oZm9ybS5kaXNhYmxlZClcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldEZvcm1TdGF0dXMoZm9ybSwgZm9ybUluZGV4KSBhcyBzdGF0dXNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwieyBjb3VudDogZ2V0RXJyb3JzKGZvcm0pIH0gYXMgZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNpcmlvLXNpZGVuYXYtaXRlbSBbaXNBY3RpdmVdPVwiYWN0aXZlTmF2ID09IGZvcm1JbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZlTmF2ID0gZm9ybUluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZFN0YXRlXT1cInN0YXR1cyA9PT0gJ2luYWN0aXZlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJhY3RpdmVOYXYgPSBmb3JtSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3dpdGhUYWddPVwiZXJyb3JzLmNvdW50ID4gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdUeXBlPVwiZGFuZ2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWdWYWx1ZV09XCJlcnJvcnMuY291bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGV2YWx1YXRlVGVtcGxhdGUobG9jYWxlKGZvcm0sICd0aXRsZScpKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtc2lyaW8tc2lkZW5hdi1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25neC1zaXJpby1zaWRlbmF2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICA8bmd4LXNpcmlvLXNpZGVuYXYtbW9iaWxlIGNsYXNzPVwiZC1ibG9jayBkLWxnLW5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3Blbk1lbnVMYWJlbF09XCJsb2NhbGUoVGV4dHMsICdPcGVuTWVudScpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wZW5NZW51QXJpYUxhYmVsXT1cImxvY2FsZShUZXh0cywgJ09wZW5NZW51JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xvc2VNZW51TGFiZWxdPVwibG9jYWxlKFRleHRzLCAnQ2xvc2VNZW51JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZU1lbnVBcmlhTGFiZWw9XCJsb2NhbGUoVGV4dHMsICdDbG9zZU1lbnUnKVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2lkZW5hdlRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25neC1zaXJpby1zaWRlbmF2LW1vYmlsZT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLW5vbmUgZC1sZy1ibG9ja1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2lkZW5hdlRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvci1ob3Jpem9udGFsXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWVsZW1lbnQtZm9ybVwiIFtuZ0NsYXNzXT1cInNob3dOYXYgPyAnY29sLW1kLTExJyA6ICdjb2wtbWQtMTYnXCI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZvcm0gb2YgZm9ybXMsIGxldCBzZWN0aW9uSW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImFjdGl2ZU5hdiA9PSBzZWN0aW9uSW5kZXggJiYgIWV2YWx1YXRlQm9vbGVhbihmb3JtLmRpc2FibGVkKVwiXHJcbiAgICAgICAgICAgICAgICNkZWZhdWx0XHJcbiAgICAgICAgICAgICAgIFtyZWdpc3Rlcl09XCJmb3JtXCJcclxuICAgICAgICAgICAgICAgW2NvbXBvbmVudFJlZl09XCJkZWZhdWx0XCI+XHJcbiAgICAgICAgICAgIDxoMSAqbmdJZj1cInNob3dGb3JtVGl0bGUgJiYgZm9ybS50aXRsZVwiIGNsYXNzPVwiaDMgZm9ybS10aXRsZVwiPnt7IGV2YWx1YXRlVGVtcGxhdGUobG9jYWxlKGZvcm0sICd0aXRsZScpKSB9fTwvaDE+XHJcbiAgICAgICAgICAgIDxhcHAtZHluYW1pYy1maWVsZHMgW2Zvcm1Hcm91cF09XCJnZXRGb3JtR3JvdXAoZm9ybS5wYXRoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvd3NdPVwiZm9ybS5yb3dzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWxpZ25tZW50XT1cImZvcm0udmVydGljYWxBbGlnbm1lbnRcIj48L2FwcC1keW5hbWljLWZpZWxkcz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd05hdkJ1dHRvbiAmJiAoY2FuTmV4dCgpIHx8IGNhblByZXZpb3VzKCkpXCI+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBzZWN0aW9uLW5hdnNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC04IGNvbC1tZC04XCI+XHJcbiAgICAgICAgICAgICAgPG5neC1zaXJpby1idXR0b24gW2NvbG9yXT1cIm51bGxcIiAqbmdJZj1cImNhbk5leHQoKVwiIChjbGljayk9XCJnb05leHQoKVwiIGNsYXNzPVwibmV4dFNlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgIHt7IGxvY2FsZShUZXh0cywgJ05leHRTZWN0aW9uJykgfX1cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEtc29saWQgZmEtY2hldnJvbi1yaWdodFwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDEwcHhcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9uZ3gtc2lyaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC04IGNvbC1tZC04XCI+XHJcbiAgICAgICAgICAgICAgPG5neC1zaXJpby1idXR0b24gW2NvbG9yXT1cIm51bGxcIiAqbmdJZj1cImNhblByZXZpb3VzKClcIiAoY2xpY2spPVwiZ29QcmV2aW91cygpXCIgY2xhc3M9XCJwcmV2U2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYS1zb2xpZCBmYS1jaGV2cm9uLWxlZnRcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7IGxvY2FsZShUZXh0cywgJ1ByZXZpb3VzU2VjdGlvbicpIH19XHJcbiAgICAgICAgICAgICAgPC9uZ3gtc2lyaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPC9mb3JtPlxyXG5cclxuXHJcblxyXG4iXX0=
@@ -101,10 +101,10 @@ export class DynamicHostComponent {
101
101
  validProperties(value) {
102
102
  return typeof value === 'object' && value !== null && !Array.isArray(value);
103
103
  }
104
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicHostComponent, deps: [{ token: i0.Injector }, { token: i1.GlobalService }], target: i0.ɵɵFactoryTarget.Component });
105
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DynamicHostComponent, isStandalone: true, selector: "app-dynamic-host", inputs: { component: ["register", "component"], properties: "properties", formGroup: "formGroup" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container #container></ng-container>\r\n", styles: [""] });
104
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicHostComponent, deps: [{ token: i0.Injector }, { token: i1.GlobalService }], target: i0.ɵɵFactoryTarget.Component });
105
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DynamicHostComponent, isStandalone: true, selector: "app-dynamic-host", inputs: { component: ["register", "component"], properties: "properties", formGroup: "formGroup" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container #container></ng-container>\r\n", styles: [""] });
106
106
  }
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicHostComponent, decorators: [{
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicHostComponent, decorators: [{
108
108
  type: Component,
109
109
  args: [{ selector: 'app-dynamic-host', standalone: true, template: "<ng-container #container></ng-container>\r\n" }]
110
110
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.GlobalService }], propDecorators: { component: [{
@@ -25,10 +25,10 @@ export class DefaultConfirmationController {
25
25
  this.dialogService.confirm(message ?? "", options);
26
26
  });
27
27
  }
28
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultConfirmationController, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Injectable });
29
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultConfirmationController, providedIn: 'root' });
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultConfirmationController, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Injectable });
29
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultConfirmationController, providedIn: 'root' });
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultConfirmationController, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultConfirmationController, decorators: [{
32
32
  type: Injectable,
33
33
  args: [{
34
34
  providedIn: 'root'
@@ -24,10 +24,10 @@ export class DefaultNotificationController {
24
24
  default: break;
25
25
  }
26
26
  }
27
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultNotificationController, deps: [{ token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Injectable });
28
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultNotificationController, providedIn: 'root' });
27
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultNotificationController, deps: [{ token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Injectable });
28
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultNotificationController, providedIn: 'root' });
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultNotificationController, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultNotificationController, decorators: [{
31
31
  type: Injectable,
32
32
  args: [{
33
33
  providedIn: 'root'
@@ -22,10 +22,10 @@ export class DefaultPromptController {
22
22
  this.dialogService.prompt(message ?? "Prompt", defaultValue, options);
23
23
  });
24
24
  }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultPromptController, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Injectable });
26
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultPromptController, providedIn: 'root' });
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultPromptController, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Injectable });
26
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultPromptController, providedIn: 'root' });
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultPromptController, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultPromptController, decorators: [{
29
29
  type: Injectable,
30
30
  args: [{
31
31
  providedIn: 'root'