@seniorsistemas/data-seniorx-core 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/core/config/dynamic-view-builder.config.d.ts +3 -0
  2. package/core/constants/dynamic-view-builder.const.d.ts +15 -0
  3. package/core/constants/picklist.const.d.ts +4 -0
  4. package/core/constants/timeline.const.d.ts +6 -0
  5. package/core/types/confirm.type.d.ts +1 -0
  6. package/core/types/dynamic-view-builder.type.d.ts +130 -0
  7. package/core/types/row-card.type.d.ts +10 -0
  8. package/core/types/timeline.type.d.ts +22 -0
  9. package/esm2022/core/config/dynamic-view-builder.config.mjs +396 -0
  10. package/esm2022/core/config/row-card.type.config.mjs +2 -1
  11. package/esm2022/core/constants/dynamic-view-builder.const.mjs +24 -0
  12. package/esm2022/core/constants/picklist.const.mjs +5 -1
  13. package/esm2022/core/constants/timeline.const.mjs +6 -0
  14. package/esm2022/core/handlers/sqlFormatter.mjs +3 -2
  15. package/esm2022/core/types/confirm.type.mjs +1 -1
  16. package/esm2022/core/types/dynamic-view-builder.type.mjs +2 -0
  17. package/esm2022/core/types/row-card.type.mjs +1 -1
  18. package/esm2022/core/types/timeline.type.mjs +2 -0
  19. package/esm2022/core/utils/layout.util.mjs +4 -4
  20. package/esm2022/core/utils/number-input.util.mjs +2 -2
  21. package/esm2022/features/breadcrumb/breadcrumb.component.mjs +21 -3
  22. package/esm2022/features/button/button.component.mjs +5 -5
  23. package/esm2022/features/card-list/card/card.component.mjs +4 -6
  24. package/esm2022/features/card-list/card-list.component.mjs +4 -7
  25. package/esm2022/features/code-editor/code-editor.component.mjs +5 -5
  26. package/esm2022/features/color-picker/color-picker.component.mjs +4 -4
  27. package/esm2022/features/combobox/combobox.component.mjs +8 -8
  28. package/esm2022/features/confirm/confirm.component.mjs +8 -4
  29. package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +6 -8
  30. package/esm2022/features/empty-state/empty-state.component.mjs +3 -3
  31. package/esm2022/features/hyperlink/hyperlink.component.mjs +10 -12
  32. package/esm2022/features/icon-picker/icon-picker.component.mjs +3 -3
  33. package/esm2022/features/info-sign/info-sign.component.mjs +3 -3
  34. package/esm2022/features/list/list.component.mjs +1 -1
  35. package/esm2022/features/loading-state/loading-state.component.mjs +20 -25
  36. package/esm2022/features/localized-number-input/localized-number-input.component.mjs +4 -4
  37. package/esm2022/features/mask/mask.component.mjs +4 -4
  38. package/esm2022/features/modal/modal.component.mjs +5 -5
  39. package/esm2022/features/modalc/modalc.component.mjs +1 -1
  40. package/esm2022/features/number-input/number-input.component.mjs +4 -4
  41. package/esm2022/features/numeric/numeric.component.mjs +4 -6
  42. package/esm2022/features/paginator/paginator.component.mjs +2 -2
  43. package/esm2022/features/password-strength/password-strength.component.mjs +3 -3
  44. package/esm2022/features/picklist/picklist.component.mjs +50 -9
  45. package/esm2022/features/radio/radio.component.mjs +12 -12
  46. package/esm2022/features/row-card-list/row-card/row-card.component.mjs +32 -9
  47. package/esm2022/features/row-card-list/row-card-list.component.mjs +3 -3
  48. package/esm2022/features/searchbox/searchbox.component.mjs +1 -1
  49. package/esm2022/features/sidebar/sidebar.component.mjs +7 -3
  50. package/esm2022/features/switch/switch.component.mjs +3 -3
  51. package/esm2022/features/table/table.component.mjs +3 -3
  52. package/esm2022/features/textarea/textarea.component.mjs +4 -4
  53. package/esm2022/features/textbox/textbox.component.mjs +4 -4
  54. package/esm2022/features/timeline/timeline.component.mjs +90 -0
  55. package/esm2022/features/toast/toast.component.mjs +4 -6
  56. package/esm2022/features/tooltip/tooltip.component.mjs +3 -3
  57. package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2810 -0
  58. package/esm2022/locales/en.json +202 -1
  59. package/esm2022/locales/es-CO.json +202 -1
  60. package/esm2022/locales/pt.json +202 -1
  61. package/esm2022/public-api.mjs +6 -1
  62. package/features/breadcrumb/breadcrumb.component.d.ts +2 -0
  63. package/features/button/button.component.d.ts +2 -2
  64. package/features/code-editor/code-editor.component.d.ts +2 -2
  65. package/features/hyperlink/hyperlink.component.d.ts +3 -3
  66. package/features/loading-state/loading-state.component.d.ts +3 -4
  67. package/features/modal/modal.component.d.ts +2 -2
  68. package/features/picklist/picklist.component.d.ts +10 -1
  69. package/features/radio/radio.component.d.ts +4 -4
  70. package/features/row-card-list/row-card/row-card.component.d.ts +8 -1
  71. package/features/sidebar/sidebar.component.d.ts +2 -1
  72. package/features/timeline/timeline.component.d.ts +27 -0
  73. package/features/visual-sql-editor/visual-sql-editor.component.d.ts +560 -0
  74. package/fesm2022/seniorsistemas-data-seniorx-core.mjs +4161 -176
  75. package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
  76. package/package.json +2 -2
  77. package/public-api.d.ts +7 -0
  78. package/src/locales/en.json +211 -1
  79. package/src/locales/es-CO.json +211 -1
  80. package/src/locales/pt.json +211 -1
  81. package/styles.css +1 -1
@@ -336,7 +336,7 @@ export class IconPickerComponent {
336
336
  useExisting: forwardRef(() => IconPickerComponent),
337
337
  multi: true
338
338
  }
339
- ], ngImport: i0, template: "<div\n class=\"sdc-icon-picker\"\n [class.sdc-icon-picker--disabled]=\"disabled\"\n [class.sdc-icon-picker--invalid]=\"invalid\"\n>\n @if (resolvedLabel) {\n <div class=\"sdc-icon-picker__label-row\">\n <label class=\"sdc-icon-picker__label\" [for]=\"triggerId\" [attr.aria-required]=\"required || null\">\n {{ resolvedLabel }}\n @if (required) {\n <span class=\"sdc-icon-picker__required\" aria-hidden=\"true\">*</span>\n }\n </label>\n\n @if (resolvedTooltip) {\n <sdc-tooltip [pTooltip]=\"resolvedTooltip\" [tooltipEvent]=\"'both'\">\n <button type=\"button\" class=\"sdc-icon-picker__info-icon\" [attr.aria-label]=\"resolvedTooltip\">\n <i class=\"fas fa-info-circle\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n }\n </div>\n }\n\n <button\n [id]=\"triggerId\"\n type=\"button\"\n class=\"sdc-icon-picker__trigger\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.aria-required]=\"required || null\"\n [attr.aria-invalid]=\"invalid || null\"\n (click)=\"openModal()\"\n >\n <span class=\"sdc-icon-picker__trigger-swatch\">\n @if (value) {\n <i [class]=\"'fas ' + value\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-chevron-down sdc-icon-picker__trigger-swatch-placeholder\" aria-hidden=\"true\"></i>\n }\n </span>\n\n <span class=\"sdc-icon-picker__trigger-sep\" aria-hidden=\"true\"></span>\n\n <span class=\"sdc-icon-picker__trigger-text\">\n @if (value && selectedIconLabel) {\n {{ selectedIconLabel }}\n } @else {\n <span class=\"sdc-icon-picker__placeholder\">{{ resolvedPlaceholder }}</span>\n }\n </span>\n </button>\n\n @if (invalid && resolvedErrorMessage) {\n <small class=\"sdc-icon-picker__error\">{{ resolvedErrorMessage }}</small>\n }\n</div>\n\n<sdc-modal\n [header]=\"resolvedModalTitle\"\n [visible]=\"modalOpen\"\n [width]=\"660\"\n [closable]=\"true\"\n styleClass=\"sdc-modal--icon-picker\"\n [appendToBody]=\"true\"\n (visibleChange)=\"onModalVisibleChange($event)\"\n>\n <div class=\"sdc-icon-picker__modal-body\">\n <div class=\"sdc-icon-picker__search-row\">\n <sdc-searchbox\n [value]=\"searchTerm\"\n [placeholder]=\"resolvedSearchPlaceholder\"\n [debounceTimeMs]=\"250\"\n (debouncedValueChange)=\"onSearch($event)\"\n (onClear)=\"onSearch('')\"\n ></sdc-searchbox>\n </div>\n\n @if (pendingValue) {\n <div class=\"sdc-icon-picker__preview-bar\">\n <i [class]=\"'fas ' + pendingValue\" class=\"sdc-icon-picker__preview-icon\" aria-hidden=\"true\"></i>\n <div class=\"sdc-icon-picker__preview-info\">\n <span class=\"sdc-icon-picker__preview-label\">{{ pendingIconLabel }}</span>\n <span class=\"sdc-icon-picker__preview-class\">{{ pendingValue }}</span>\n </div>\n </div>\n }\n\n <div class=\"sdc-icon-picker__counter\">\n @if (filteredIcons.length > 0) {\n <span>{{ iconsFoundCount }} {{ iconsFoundText }}</span>\n } @else if (!isLoading) {\n <span>{{ noIconsFoundText }}</span>\n }\n </div>\n\n @if (isLoading) {\n <div class=\"sdc-icon-picker__loading\">\n <i class=\"fas fa-spinner fa-spin\" aria-hidden=\"true\"></i>\n </div>\n } @else {\n <!-- NOSONAR: this picker needs a custom ARIA listbox/grid experience that a native select cannot provide -->\n <div\n #iconGrid\n class=\"sdc-icon-picker__grid\"\n [attr.role]=\"'listbox'\"\n [attr.aria-label]=\"resolvedModalTitle\"\n (scroll)=\"onGridScroll($event)\"\n >\n @for (icon of visibleIcons; track icon.name) {\n <!-- NOSONAR -->\n <!-- the custom icon grid keeps option semantics on the focusable card for keyboard and SR support -->\n <button\n type=\"button\"\n class=\"sdc-icon-picker__card\"\n [class.sdc-icon-picker__card--selected]=\"isIconSelected(icon)\"\n [attr.role]=\"'option'\"\n [attr.aria-selected]=\"isIconSelected(icon) ? 'true' : 'false'\"\n [attr.aria-label]=\"\n icon.label + ' - ' + icon.name\n \"\n (click)=\"selectIcon(icon)\"\n >\n <i [class]=\"'fas ' + icon.name\" class=\"sdc-icon-picker__card-icon\" aria-hidden=\"true\"></i>\n <span class=\"sdc-icon-picker__card-name\">{{ icon.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n\n <div footer class=\"sdc-icon-picker__footer\">\n <sdc-button\n [label]=\"cancelText\"\n priority=\"secondary\"\n (onClick)=\"cancelSelection()\"\n ></sdc-button>\n <sdc-button\n [label]=\"confirmText\"\n priority=\"primary\"\n [disabled]=\"pendingValue === null && value === null\"\n (onClick)=\"confirmSelection()\"\n ></sdc-button>\n </div>\n</sdc-modal>\n", styles: ["::ng-deep .sdc-modal--icon-picker .sdc-modal__content{overflow:hidden;display:flex;flex-direction:column;min-height:0}.sdc-icon-picker{display:flex;flex-direction:column}.sdc-icon-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap, .35rem);margin-bottom:var(--sdc-form-label-row-mb, .15rem)}.sdc-icon-picker__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:var(--sdc-form-label-lh, 1);padding-top:var(--sdc-form-label-py, 7px);padding-bottom:var(--sdc-form-label-py, 7px);min-width:0}.sdc-icon-picker__required{margin-left:var(--sdc-form-required-ml, .25rem);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:var(--sdc-form-required-weight, 400)}.sdc-icon-picker__info-icon{background:none;border:none;padding:0;cursor:pointer;color:var(--sdc-form-tooltip-color, #6c757d);display:flex;align-items:center;font-size:.9rem}.sdc-icon-picker__trigger{display:flex;align-items:stretch;height:var(--sdc-formfield-default-height, 34px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-formfield-default-border, #cccccc);border-radius:var(--sdc-formfield-border-radius, 4px);cursor:pointer;width:100%;text-align:left;transition:border-color .15s ease,box-shadow .15s ease;padding:0;overflow:hidden}.sdc-icon-picker__trigger:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, #428bca);box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 3px rgba(0, 123, 255, .15))}.sdc-icon-picker__trigger:disabled{cursor:not-allowed;opacity:.6;background:var(--sdc-formfield-disabled-bg, transparent)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger{border-color:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger:focus-visible{box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-icon-picker__trigger:hover:not(:disabled){border-color:var(--sdc-formfield-focus-color, #428bca)}.sdc-icon-picker__trigger-swatch{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:2.7rem;background:var(--sdc-color-picker-trigger-bg, #f8fafc);color:var(--sdc-color-picker-trigger-color, var(--sdc-text-default, #111827));font-size:var(--sdc-icon-picker-icon-size, 1.1rem);transition:background .15s ease}.sdc-icon-picker__trigger:hover:not(:disabled) .sdc-icon-picker__trigger-swatch{background:var(--sdc-color-picker-trigger-hover-bg, #eef2f7)}.sdc-icon-picker__trigger-swatch-placeholder{font-size:.75rem;opacity:.45}.sdc-icon-picker__trigger-sep{width:1px;background:var(--sdc-formfield-default-border, #cccccc);flex-shrink:0;align-self:stretch}.sdc-icon-picker__trigger-text{display:flex;align-items:center;flex:1;min-width:0;padding:0 var(--sdc-form-input-padding-x, .75rem);font:inherit;color:var(--p-text-color, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__placeholder{color:var(--sdc-formfield-placeholder-color, #9ca3af);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__error{font-size:.78rem;color:var(--sdc-formfield-invalid-border, #d98888);margin-top:2px}.sdc-icon-picker--invalid .sdc-icon-picker__trigger-sep{background:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--disabled .sdc-icon-picker__label{opacity:.6}.sdc-icon-picker__modal-body{display:flex;flex-direction:column;gap:12px;flex:1 1 auto;height:var(--sdc-icon-picker-modal-body-height, 520px);max-height:calc(100vh - 190px);min-height:0;overflow:hidden}.sdc-icon-picker__search-row{flex-shrink:0}.sdc-icon-picker__search-row sdc-searchbox{display:block;width:100%}.sdc-icon-picker__preview-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--sdc-picklist-selected-bg, #eeebf2);border:1px solid var(--sdc-picklist-selected-border, #dedce5);border-radius:var(--sdc-icon-picker-card-radius, 6px);flex-shrink:0}.sdc-icon-picker__preview-icon{font-size:1.75rem;color:var(--sdc-tab-primary, #428bca);flex-shrink:0;width:2rem;text-align:center}.sdc-icon-picker__preview-info{display:flex;flex-direction:column;gap:2px;min-width:0}.sdc-icon-picker__preview-label{font-size:.875rem;font-weight:600;color:var(--sdc-text-default, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__preview-class{font-size:.75rem;color:var(--sdc-text-muted, #6b7280);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__counter{font-size:.8rem;color:var(--sdc-text-muted, #6b7280);min-height:1.2em;flex-shrink:0;padding-bottom:4px}.sdc-icon-picker__loading{display:flex;justify-content:center;align-items:center;padding:32px;color:var(--sdc-tab-primary, #428bca);font-size:1.5rem}.sdc-icon-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--sdc-icon-picker-card-size, 90px),1fr));gap:var(--sdc-icon-picker-card-gap, 8px);flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px;align-content:start}.sdc-icon-picker__card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 6px;height:var(--sdc-icon-picker-card-height, 80px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-border-strong, #e2e8f0);border-radius:var(--sdc-icon-picker-card-radius, 6px);cursor:pointer;overflow:hidden;transition:background .12s ease,border-color .12s ease;width:100%}.sdc-icon-picker__card:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:1px}.sdc-icon-picker__card--selected{background:var(--sdc-tab-primary, #428bca);border-color:var(--sdc-tab-primary, #428bca);color:#fff}.sdc-icon-picker__card:hover:not(.sdc-icon-picker__card--selected){background:var(--sdc-picklist-hover-bg, #f7f7f7);border-color:var(--sdc-tab-primary, #428bca)}.sdc-icon-picker__card-icon{font-size:var(--sdc-icon-picker-icon-size, 1.25rem);flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sdc-icon-picker__card-name{font-size:.65rem;line-height:1.2;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;max-width:100%}.sdc-icon-picker__footer{display:flex;justify-content:flex-end;gap:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: ModalComponent, selector: "sdc-modal", inputs: ["footerButtons", "header", "height", "maximizable", "maximize", "resizable", "responsive", "width", "zIndex", "closable", "styleClass", "appendToBody", "visible"], outputs: ["onHide", "visibleChange"] }, { kind: "component", type: SearchboxComponent, selector: "sdc-searchbox", inputs: ["triggerMode", "debounceTimeMs", "ariaLabel", "inputRole", "inputAriaControls", "inputAriaDescribedBy", "inputAriaActiveDescendant", "inputAriaHaspopup", "inputAriaExpanded", "inputAutocomplete", "submitOnEnter", "clearOnEscape"], outputs: ["debouncedValueChange", "onSearch", "onClear"] }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled"] }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
339
+ ], ngImport: i0, template: "<div\n class=\"sdc-icon-picker\"\n [class.sdc-icon-picker--disabled]=\"disabled\"\n [class.sdc-icon-picker--invalid]=\"invalid\"\n>\n @if (resolvedLabel) {\n <div class=\"sdc-icon-picker__label-row\">\n <label class=\"sdc-icon-picker__label\" [for]=\"triggerId\" [attr.aria-required]=\"required || null\">\n {{ resolvedLabel }}\n @if (required) {\n <span class=\"sdc-icon-picker__required\" aria-hidden=\"true\">*</span>\n }\n </label>\n\n @if (resolvedTooltip) {\n <sdc-tooltip [pTooltip]=\"resolvedTooltip\" [tooltipEvent]=\"'both'\">\n <button type=\"button\" class=\"sdc-icon-picker__info-icon\" [attr.aria-label]=\"resolvedTooltip\">\n <i class=\"fas fa-info-circle\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n }\n </div>\n }\n\n <button\n [id]=\"triggerId\"\n type=\"button\"\n class=\"sdc-icon-picker__trigger\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.aria-required]=\"required || null\"\n [attr.aria-invalid]=\"invalid || null\"\n (click)=\"openModal()\"\n >\n <span class=\"sdc-icon-picker__trigger-swatch\">\n @if (value) {\n <i [class]=\"'fas ' + value\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-chevron-down sdc-icon-picker__trigger-swatch-placeholder\" aria-hidden=\"true\"></i>\n }\n </span>\n\n <span class=\"sdc-icon-picker__trigger-sep\" aria-hidden=\"true\"></span>\n\n <span class=\"sdc-icon-picker__trigger-text\">\n @if (value && selectedIconLabel) {\n {{ selectedIconLabel }}\n } @else {\n <span class=\"sdc-icon-picker__placeholder\">{{ resolvedPlaceholder }}</span>\n }\n </span>\n </button>\n\n @if (invalid && resolvedErrorMessage) {\n <small class=\"sdc-icon-picker__error\">{{ resolvedErrorMessage }}</small>\n }\n</div>\n\n<sdc-modal\n [header]=\"resolvedModalTitle\"\n [visible]=\"modalOpen\"\n [width]=\"660\"\n [closable]=\"true\"\n styleClass=\"sdc-modal--icon-picker\"\n [appendToBody]=\"true\"\n (visibleChange)=\"onModalVisibleChange($event)\"\n>\n <div class=\"sdc-icon-picker__modal-body\">\n <div class=\"sdc-icon-picker__search-row\">\n <sdc-searchbox\n [value]=\"searchTerm\"\n [placeholder]=\"resolvedSearchPlaceholder\"\n [debounceTimeMs]=\"250\"\n (debouncedValueChange)=\"onSearch($event)\"\n (onClear)=\"onSearch('')\"\n ></sdc-searchbox>\n </div>\n\n @if (pendingValue) {\n <div class=\"sdc-icon-picker__preview-bar\">\n <i [class]=\"'fas ' + pendingValue\" class=\"sdc-icon-picker__preview-icon\" aria-hidden=\"true\"></i>\n <div class=\"sdc-icon-picker__preview-info\">\n <span class=\"sdc-icon-picker__preview-label\">{{ pendingIconLabel }}</span>\n <span class=\"sdc-icon-picker__preview-class\">{{ pendingValue }}</span>\n </div>\n </div>\n }\n\n <div class=\"sdc-icon-picker__counter\">\n @if (filteredIcons.length > 0) {\n <span>{{ iconsFoundCount }} {{ iconsFoundText }}</span>\n } @else if (!isLoading) {\n <span>{{ noIconsFoundText }}</span>\n }\n </div>\n\n @if (isLoading) {\n <div class=\"sdc-icon-picker__loading\">\n <i class=\"fas fa-spinner fa-spin\" aria-hidden=\"true\"></i>\n </div>\n } @else {\n <!-- NOSONAR: this picker needs a custom ARIA listbox/grid experience that a native select cannot provide -->\n <div\n #iconGrid\n class=\"sdc-icon-picker__grid\"\n [attr.role]=\"'listbox'\"\n [attr.aria-label]=\"resolvedModalTitle\"\n (scroll)=\"onGridScroll($event)\"\n >\n @for (icon of visibleIcons; track icon.name) {\n <!-- NOSONAR -->\n <!-- the custom icon grid keeps option semantics on the focusable card for keyboard and SR support -->\n <button\n type=\"button\"\n class=\"sdc-icon-picker__card\"\n [class.sdc-icon-picker__card--selected]=\"isIconSelected(icon)\"\n [attr.role]=\"'option'\"\n [attr.aria-selected]=\"isIconSelected(icon) ? 'true' : 'false'\"\n [attr.aria-label]=\"\n icon.label + ' - ' + icon.name\n \"\n (click)=\"selectIcon(icon)\"\n >\n <i [class]=\"'fas ' + icon.name\" class=\"sdc-icon-picker__card-icon\" aria-hidden=\"true\"></i>\n <span class=\"sdc-icon-picker__card-name\">{{ icon.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n\n <div footer class=\"sdc-icon-picker__footer\">\n <sdc-button\n [label]=\"cancelText\"\n priority=\"secondary\"\n (clicked)=\"cancelSelection()\"\n ></sdc-button>\n <sdc-button\n [label]=\"confirmText\"\n priority=\"primary\"\n [disabled]=\"pendingValue === null && value === null\"\n (clicked)=\"confirmSelection()\"\n ></sdc-button>\n </div>\n</sdc-modal>\n", styles: ["::ng-deep .sdc-modal--icon-picker .sdc-modal__content{overflow:hidden;display:flex;flex-direction:column;min-height:0}.sdc-icon-picker{display:flex;flex-direction:column}.sdc-icon-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap, .35rem);margin-bottom:var(--sdc-form-label-row-mb, .15rem)}.sdc-icon-picker__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:var(--sdc-form-label-lh, 1);padding-top:var(--sdc-form-label-py, 7px);padding-bottom:var(--sdc-form-label-py, 7px);min-width:0}.sdc-icon-picker__required{margin-left:var(--sdc-form-required-ml, .25rem);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:var(--sdc-form-required-weight, 400)}.sdc-icon-picker__info-icon{background:none;border:none;padding:0;cursor:pointer;color:var(--sdc-form-tooltip-color, #6c757d);display:flex;align-items:center;font-size:.9rem}.sdc-icon-picker__trigger{display:flex;align-items:stretch;height:var(--sdc-formfield-default-height, 34px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-formfield-default-border, #cccccc);border-radius:var(--sdc-formfield-border-radius, 4px);cursor:pointer;width:100%;text-align:left;transition:border-color .15s ease,box-shadow .15s ease;padding:0;overflow:hidden}.sdc-icon-picker__trigger:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, #428bca);box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 3px rgba(0, 123, 255, .15))}.sdc-icon-picker__trigger:disabled{cursor:not-allowed;opacity:.6;background:var(--sdc-formfield-disabled-bg, transparent)}.sdc-icon-picker__trigger:hover:not(:disabled){border-color:var(--sdc-formfield-focus-color, #428bca)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger{border-color:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger:focus-visible{box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-icon-picker__trigger-swatch{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:2.7rem;background:var(--sdc-color-picker-trigger-bg, #f8fafc);color:var(--sdc-color-picker-trigger-color, var(--sdc-text-default, #111827));font-size:var(--sdc-icon-picker-icon-size, 1.1rem);transition:background .15s ease}.sdc-icon-picker__trigger:hover:not(:disabled) .sdc-icon-picker__trigger-swatch{background:var(--sdc-color-picker-trigger-hover-bg, #eef2f7)}.sdc-icon-picker__trigger-swatch-placeholder{font-size:.75rem;opacity:.45}.sdc-icon-picker__trigger-sep{width:1px;background:var(--sdc-formfield-default-border, #cccccc);flex-shrink:0;align-self:stretch}.sdc-icon-picker__trigger-text{display:flex;align-items:center;flex:1;min-width:0;padding:0 var(--sdc-form-input-padding-x, .75rem);font:inherit;color:var(--p-text-color, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__placeholder{color:var(--sdc-formfield-placeholder-color, #9ca3af);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__error{font-size:.78rem;color:var(--sdc-formfield-invalid-border, #d98888);margin-top:2px}.sdc-icon-picker--invalid .sdc-icon-picker__trigger-sep{background:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--disabled .sdc-icon-picker__label{opacity:.6}.sdc-icon-picker__modal-body{display:flex;flex-direction:column;gap:12px;flex:1 1 auto;height:var(--sdc-icon-picker-modal-body-height, 520px);max-height:calc(100vh - 190px);min-height:0;overflow:hidden}.sdc-icon-picker__search-row{flex-shrink:0}.sdc-icon-picker__search-row sdc-searchbox{display:block;width:100%}.sdc-icon-picker__preview-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--sdc-picklist-selected-bg, #eeebf2);border:1px solid var(--sdc-picklist-selected-border, #dedce5);border-radius:var(--sdc-icon-picker-card-radius, 6px);flex-shrink:0}.sdc-icon-picker__preview-icon{font-size:1.75rem;color:var(--sdc-tab-primary, #428bca);flex-shrink:0;width:2rem;text-align:center}.sdc-icon-picker__preview-info{display:flex;flex-direction:column;gap:2px;min-width:0}.sdc-icon-picker__preview-label{font-size:.875rem;font-weight:600;color:var(--sdc-text-default, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__preview-class{font-size:.75rem;color:var(--sdc-text-muted, #6b7280);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__counter{font-size:.8rem;color:var(--sdc-text-muted, #6b7280);min-height:1.2em;flex-shrink:0;padding-bottom:4px}.sdc-icon-picker__loading{display:flex;justify-content:center;align-items:center;padding:32px;color:var(--sdc-tab-primary, #428bca);font-size:1.5rem}.sdc-icon-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--sdc-icon-picker-card-size, 90px),1fr));gap:var(--sdc-icon-picker-card-gap, 8px);flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px;align-content:start}.sdc-icon-picker__card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 6px;height:var(--sdc-icon-picker-card-height, 80px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-border-strong, #e2e8f0);border-radius:var(--sdc-icon-picker-card-radius, 6px);cursor:pointer;overflow:hidden;transition:background .12s ease,border-color .12s ease;width:100%}.sdc-icon-picker__card:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:1px}.sdc-icon-picker__card--selected{background:var(--sdc-tab-primary, #428bca);border-color:var(--sdc-tab-primary, #428bca);color:#fff}.sdc-icon-picker__card:hover:not(.sdc-icon-picker__card--selected){background:var(--sdc-picklist-hover-bg, #f7f7f7);border-color:var(--sdc-tab-primary, #428bca)}.sdc-icon-picker__card-icon{font-size:var(--sdc-icon-picker-icon-size, 1.25rem);flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sdc-icon-picker__card-name{font-size:.65rem;line-height:1.2;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;max-width:100%}.sdc-icon-picker__footer{display:flex;justify-content:flex-end;gap:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: ModalComponent, selector: "sdc-modal", inputs: ["footerButtons", "header", "height", "maximizable", "maximize", "resizable", "responsive", "width", "zIndex", "closable", "styleClass", "appendToBody", "visible"], outputs: ["hidden", "visibleChange"] }, { kind: "component", type: SearchboxComponent, selector: "sdc-searchbox", inputs: ["triggerMode", "debounceTimeMs", "ariaLabel", "inputRole", "inputAriaControls", "inputAriaDescribedBy", "inputAriaActiveDescendant", "inputAriaHaspopup", "inputAriaExpanded", "inputAutocomplete", "submitOnEnter", "clearOnEscape"], outputs: ["debouncedValueChange", "onSearch", "onClear"] }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled"] }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
340
340
  }
341
341
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconPickerComponent, decorators: [{
342
342
  type: Component,
@@ -354,7 +354,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
354
354
  useExisting: forwardRef(() => IconPickerComponent),
355
355
  multi: true
356
356
  }
357
- ], template: "<div\n class=\"sdc-icon-picker\"\n [class.sdc-icon-picker--disabled]=\"disabled\"\n [class.sdc-icon-picker--invalid]=\"invalid\"\n>\n @if (resolvedLabel) {\n <div class=\"sdc-icon-picker__label-row\">\n <label class=\"sdc-icon-picker__label\" [for]=\"triggerId\" [attr.aria-required]=\"required || null\">\n {{ resolvedLabel }}\n @if (required) {\n <span class=\"sdc-icon-picker__required\" aria-hidden=\"true\">*</span>\n }\n </label>\n\n @if (resolvedTooltip) {\n <sdc-tooltip [pTooltip]=\"resolvedTooltip\" [tooltipEvent]=\"'both'\">\n <button type=\"button\" class=\"sdc-icon-picker__info-icon\" [attr.aria-label]=\"resolvedTooltip\">\n <i class=\"fas fa-info-circle\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n }\n </div>\n }\n\n <button\n [id]=\"triggerId\"\n type=\"button\"\n class=\"sdc-icon-picker__trigger\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.aria-required]=\"required || null\"\n [attr.aria-invalid]=\"invalid || null\"\n (click)=\"openModal()\"\n >\n <span class=\"sdc-icon-picker__trigger-swatch\">\n @if (value) {\n <i [class]=\"'fas ' + value\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-chevron-down sdc-icon-picker__trigger-swatch-placeholder\" aria-hidden=\"true\"></i>\n }\n </span>\n\n <span class=\"sdc-icon-picker__trigger-sep\" aria-hidden=\"true\"></span>\n\n <span class=\"sdc-icon-picker__trigger-text\">\n @if (value && selectedIconLabel) {\n {{ selectedIconLabel }}\n } @else {\n <span class=\"sdc-icon-picker__placeholder\">{{ resolvedPlaceholder }}</span>\n }\n </span>\n </button>\n\n @if (invalid && resolvedErrorMessage) {\n <small class=\"sdc-icon-picker__error\">{{ resolvedErrorMessage }}</small>\n }\n</div>\n\n<sdc-modal\n [header]=\"resolvedModalTitle\"\n [visible]=\"modalOpen\"\n [width]=\"660\"\n [closable]=\"true\"\n styleClass=\"sdc-modal--icon-picker\"\n [appendToBody]=\"true\"\n (visibleChange)=\"onModalVisibleChange($event)\"\n>\n <div class=\"sdc-icon-picker__modal-body\">\n <div class=\"sdc-icon-picker__search-row\">\n <sdc-searchbox\n [value]=\"searchTerm\"\n [placeholder]=\"resolvedSearchPlaceholder\"\n [debounceTimeMs]=\"250\"\n (debouncedValueChange)=\"onSearch($event)\"\n (onClear)=\"onSearch('')\"\n ></sdc-searchbox>\n </div>\n\n @if (pendingValue) {\n <div class=\"sdc-icon-picker__preview-bar\">\n <i [class]=\"'fas ' + pendingValue\" class=\"sdc-icon-picker__preview-icon\" aria-hidden=\"true\"></i>\n <div class=\"sdc-icon-picker__preview-info\">\n <span class=\"sdc-icon-picker__preview-label\">{{ pendingIconLabel }}</span>\n <span class=\"sdc-icon-picker__preview-class\">{{ pendingValue }}</span>\n </div>\n </div>\n }\n\n <div class=\"sdc-icon-picker__counter\">\n @if (filteredIcons.length > 0) {\n <span>{{ iconsFoundCount }} {{ iconsFoundText }}</span>\n } @else if (!isLoading) {\n <span>{{ noIconsFoundText }}</span>\n }\n </div>\n\n @if (isLoading) {\n <div class=\"sdc-icon-picker__loading\">\n <i class=\"fas fa-spinner fa-spin\" aria-hidden=\"true\"></i>\n </div>\n } @else {\n <!-- NOSONAR: this picker needs a custom ARIA listbox/grid experience that a native select cannot provide -->\n <div\n #iconGrid\n class=\"sdc-icon-picker__grid\"\n [attr.role]=\"'listbox'\"\n [attr.aria-label]=\"resolvedModalTitle\"\n (scroll)=\"onGridScroll($event)\"\n >\n @for (icon of visibleIcons; track icon.name) {\n <!-- NOSONAR -->\n <!-- the custom icon grid keeps option semantics on the focusable card for keyboard and SR support -->\n <button\n type=\"button\"\n class=\"sdc-icon-picker__card\"\n [class.sdc-icon-picker__card--selected]=\"isIconSelected(icon)\"\n [attr.role]=\"'option'\"\n [attr.aria-selected]=\"isIconSelected(icon) ? 'true' : 'false'\"\n [attr.aria-label]=\"\n icon.label + ' - ' + icon.name\n \"\n (click)=\"selectIcon(icon)\"\n >\n <i [class]=\"'fas ' + icon.name\" class=\"sdc-icon-picker__card-icon\" aria-hidden=\"true\"></i>\n <span class=\"sdc-icon-picker__card-name\">{{ icon.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n\n <div footer class=\"sdc-icon-picker__footer\">\n <sdc-button\n [label]=\"cancelText\"\n priority=\"secondary\"\n (onClick)=\"cancelSelection()\"\n ></sdc-button>\n <sdc-button\n [label]=\"confirmText\"\n priority=\"primary\"\n [disabled]=\"pendingValue === null && value === null\"\n (onClick)=\"confirmSelection()\"\n ></sdc-button>\n </div>\n</sdc-modal>\n", styles: ["::ng-deep .sdc-modal--icon-picker .sdc-modal__content{overflow:hidden;display:flex;flex-direction:column;min-height:0}.sdc-icon-picker{display:flex;flex-direction:column}.sdc-icon-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap, .35rem);margin-bottom:var(--sdc-form-label-row-mb, .15rem)}.sdc-icon-picker__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:var(--sdc-form-label-lh, 1);padding-top:var(--sdc-form-label-py, 7px);padding-bottom:var(--sdc-form-label-py, 7px);min-width:0}.sdc-icon-picker__required{margin-left:var(--sdc-form-required-ml, .25rem);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:var(--sdc-form-required-weight, 400)}.sdc-icon-picker__info-icon{background:none;border:none;padding:0;cursor:pointer;color:var(--sdc-form-tooltip-color, #6c757d);display:flex;align-items:center;font-size:.9rem}.sdc-icon-picker__trigger{display:flex;align-items:stretch;height:var(--sdc-formfield-default-height, 34px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-formfield-default-border, #cccccc);border-radius:var(--sdc-formfield-border-radius, 4px);cursor:pointer;width:100%;text-align:left;transition:border-color .15s ease,box-shadow .15s ease;padding:0;overflow:hidden}.sdc-icon-picker__trigger:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, #428bca);box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 3px rgba(0, 123, 255, .15))}.sdc-icon-picker__trigger:disabled{cursor:not-allowed;opacity:.6;background:var(--sdc-formfield-disabled-bg, transparent)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger{border-color:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger:focus-visible{box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-icon-picker__trigger:hover:not(:disabled){border-color:var(--sdc-formfield-focus-color, #428bca)}.sdc-icon-picker__trigger-swatch{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:2.7rem;background:var(--sdc-color-picker-trigger-bg, #f8fafc);color:var(--sdc-color-picker-trigger-color, var(--sdc-text-default, #111827));font-size:var(--sdc-icon-picker-icon-size, 1.1rem);transition:background .15s ease}.sdc-icon-picker__trigger:hover:not(:disabled) .sdc-icon-picker__trigger-swatch{background:var(--sdc-color-picker-trigger-hover-bg, #eef2f7)}.sdc-icon-picker__trigger-swatch-placeholder{font-size:.75rem;opacity:.45}.sdc-icon-picker__trigger-sep{width:1px;background:var(--sdc-formfield-default-border, #cccccc);flex-shrink:0;align-self:stretch}.sdc-icon-picker__trigger-text{display:flex;align-items:center;flex:1;min-width:0;padding:0 var(--sdc-form-input-padding-x, .75rem);font:inherit;color:var(--p-text-color, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__placeholder{color:var(--sdc-formfield-placeholder-color, #9ca3af);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__error{font-size:.78rem;color:var(--sdc-formfield-invalid-border, #d98888);margin-top:2px}.sdc-icon-picker--invalid .sdc-icon-picker__trigger-sep{background:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--disabled .sdc-icon-picker__label{opacity:.6}.sdc-icon-picker__modal-body{display:flex;flex-direction:column;gap:12px;flex:1 1 auto;height:var(--sdc-icon-picker-modal-body-height, 520px);max-height:calc(100vh - 190px);min-height:0;overflow:hidden}.sdc-icon-picker__search-row{flex-shrink:0}.sdc-icon-picker__search-row sdc-searchbox{display:block;width:100%}.sdc-icon-picker__preview-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--sdc-picklist-selected-bg, #eeebf2);border:1px solid var(--sdc-picklist-selected-border, #dedce5);border-radius:var(--sdc-icon-picker-card-radius, 6px);flex-shrink:0}.sdc-icon-picker__preview-icon{font-size:1.75rem;color:var(--sdc-tab-primary, #428bca);flex-shrink:0;width:2rem;text-align:center}.sdc-icon-picker__preview-info{display:flex;flex-direction:column;gap:2px;min-width:0}.sdc-icon-picker__preview-label{font-size:.875rem;font-weight:600;color:var(--sdc-text-default, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__preview-class{font-size:.75rem;color:var(--sdc-text-muted, #6b7280);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__counter{font-size:.8rem;color:var(--sdc-text-muted, #6b7280);min-height:1.2em;flex-shrink:0;padding-bottom:4px}.sdc-icon-picker__loading{display:flex;justify-content:center;align-items:center;padding:32px;color:var(--sdc-tab-primary, #428bca);font-size:1.5rem}.sdc-icon-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--sdc-icon-picker-card-size, 90px),1fr));gap:var(--sdc-icon-picker-card-gap, 8px);flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px;align-content:start}.sdc-icon-picker__card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 6px;height:var(--sdc-icon-picker-card-height, 80px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-border-strong, #e2e8f0);border-radius:var(--sdc-icon-picker-card-radius, 6px);cursor:pointer;overflow:hidden;transition:background .12s ease,border-color .12s ease;width:100%}.sdc-icon-picker__card:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:1px}.sdc-icon-picker__card--selected{background:var(--sdc-tab-primary, #428bca);border-color:var(--sdc-tab-primary, #428bca);color:#fff}.sdc-icon-picker__card:hover:not(.sdc-icon-picker__card--selected){background:var(--sdc-picklist-hover-bg, #f7f7f7);border-color:var(--sdc-tab-primary, #428bca)}.sdc-icon-picker__card-icon{font-size:var(--sdc-icon-picker-icon-size, 1.25rem);flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sdc-icon-picker__card-name{font-size:.65rem;line-height:1.2;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;max-width:100%}.sdc-icon-picker__footer{display:flex;justify-content:flex-end;gap:8px}\n"] }]
357
+ ], template: "<div\n class=\"sdc-icon-picker\"\n [class.sdc-icon-picker--disabled]=\"disabled\"\n [class.sdc-icon-picker--invalid]=\"invalid\"\n>\n @if (resolvedLabel) {\n <div class=\"sdc-icon-picker__label-row\">\n <label class=\"sdc-icon-picker__label\" [for]=\"triggerId\" [attr.aria-required]=\"required || null\">\n {{ resolvedLabel }}\n @if (required) {\n <span class=\"sdc-icon-picker__required\" aria-hidden=\"true\">*</span>\n }\n </label>\n\n @if (resolvedTooltip) {\n <sdc-tooltip [pTooltip]=\"resolvedTooltip\" [tooltipEvent]=\"'both'\">\n <button type=\"button\" class=\"sdc-icon-picker__info-icon\" [attr.aria-label]=\"resolvedTooltip\">\n <i class=\"fas fa-info-circle\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n }\n </div>\n }\n\n <button\n [id]=\"triggerId\"\n type=\"button\"\n class=\"sdc-icon-picker__trigger\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.aria-required]=\"required || null\"\n [attr.aria-invalid]=\"invalid || null\"\n (click)=\"openModal()\"\n >\n <span class=\"sdc-icon-picker__trigger-swatch\">\n @if (value) {\n <i [class]=\"'fas ' + value\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-chevron-down sdc-icon-picker__trigger-swatch-placeholder\" aria-hidden=\"true\"></i>\n }\n </span>\n\n <span class=\"sdc-icon-picker__trigger-sep\" aria-hidden=\"true\"></span>\n\n <span class=\"sdc-icon-picker__trigger-text\">\n @if (value && selectedIconLabel) {\n {{ selectedIconLabel }}\n } @else {\n <span class=\"sdc-icon-picker__placeholder\">{{ resolvedPlaceholder }}</span>\n }\n </span>\n </button>\n\n @if (invalid && resolvedErrorMessage) {\n <small class=\"sdc-icon-picker__error\">{{ resolvedErrorMessage }}</small>\n }\n</div>\n\n<sdc-modal\n [header]=\"resolvedModalTitle\"\n [visible]=\"modalOpen\"\n [width]=\"660\"\n [closable]=\"true\"\n styleClass=\"sdc-modal--icon-picker\"\n [appendToBody]=\"true\"\n (visibleChange)=\"onModalVisibleChange($event)\"\n>\n <div class=\"sdc-icon-picker__modal-body\">\n <div class=\"sdc-icon-picker__search-row\">\n <sdc-searchbox\n [value]=\"searchTerm\"\n [placeholder]=\"resolvedSearchPlaceholder\"\n [debounceTimeMs]=\"250\"\n (debouncedValueChange)=\"onSearch($event)\"\n (onClear)=\"onSearch('')\"\n ></sdc-searchbox>\n </div>\n\n @if (pendingValue) {\n <div class=\"sdc-icon-picker__preview-bar\">\n <i [class]=\"'fas ' + pendingValue\" class=\"sdc-icon-picker__preview-icon\" aria-hidden=\"true\"></i>\n <div class=\"sdc-icon-picker__preview-info\">\n <span class=\"sdc-icon-picker__preview-label\">{{ pendingIconLabel }}</span>\n <span class=\"sdc-icon-picker__preview-class\">{{ pendingValue }}</span>\n </div>\n </div>\n }\n\n <div class=\"sdc-icon-picker__counter\">\n @if (filteredIcons.length > 0) {\n <span>{{ iconsFoundCount }} {{ iconsFoundText }}</span>\n } @else if (!isLoading) {\n <span>{{ noIconsFoundText }}</span>\n }\n </div>\n\n @if (isLoading) {\n <div class=\"sdc-icon-picker__loading\">\n <i class=\"fas fa-spinner fa-spin\" aria-hidden=\"true\"></i>\n </div>\n } @else {\n <!-- NOSONAR: this picker needs a custom ARIA listbox/grid experience that a native select cannot provide -->\n <div\n #iconGrid\n class=\"sdc-icon-picker__grid\"\n [attr.role]=\"'listbox'\"\n [attr.aria-label]=\"resolvedModalTitle\"\n (scroll)=\"onGridScroll($event)\"\n >\n @for (icon of visibleIcons; track icon.name) {\n <!-- NOSONAR -->\n <!-- the custom icon grid keeps option semantics on the focusable card for keyboard and SR support -->\n <button\n type=\"button\"\n class=\"sdc-icon-picker__card\"\n [class.sdc-icon-picker__card--selected]=\"isIconSelected(icon)\"\n [attr.role]=\"'option'\"\n [attr.aria-selected]=\"isIconSelected(icon) ? 'true' : 'false'\"\n [attr.aria-label]=\"\n icon.label + ' - ' + icon.name\n \"\n (click)=\"selectIcon(icon)\"\n >\n <i [class]=\"'fas ' + icon.name\" class=\"sdc-icon-picker__card-icon\" aria-hidden=\"true\"></i>\n <span class=\"sdc-icon-picker__card-name\">{{ icon.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n\n <div footer class=\"sdc-icon-picker__footer\">\n <sdc-button\n [label]=\"cancelText\"\n priority=\"secondary\"\n (clicked)=\"cancelSelection()\"\n ></sdc-button>\n <sdc-button\n [label]=\"confirmText\"\n priority=\"primary\"\n [disabled]=\"pendingValue === null && value === null\"\n (clicked)=\"confirmSelection()\"\n ></sdc-button>\n </div>\n</sdc-modal>\n", styles: ["::ng-deep .sdc-modal--icon-picker .sdc-modal__content{overflow:hidden;display:flex;flex-direction:column;min-height:0}.sdc-icon-picker{display:flex;flex-direction:column}.sdc-icon-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap, .35rem);margin-bottom:var(--sdc-form-label-row-mb, .15rem)}.sdc-icon-picker__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:var(--sdc-form-label-lh, 1);padding-top:var(--sdc-form-label-py, 7px);padding-bottom:var(--sdc-form-label-py, 7px);min-width:0}.sdc-icon-picker__required{margin-left:var(--sdc-form-required-ml, .25rem);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:var(--sdc-form-required-weight, 400)}.sdc-icon-picker__info-icon{background:none;border:none;padding:0;cursor:pointer;color:var(--sdc-form-tooltip-color, #6c757d);display:flex;align-items:center;font-size:.9rem}.sdc-icon-picker__trigger{display:flex;align-items:stretch;height:var(--sdc-formfield-default-height, 34px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-formfield-default-border, #cccccc);border-radius:var(--sdc-formfield-border-radius, 4px);cursor:pointer;width:100%;text-align:left;transition:border-color .15s ease,box-shadow .15s ease;padding:0;overflow:hidden}.sdc-icon-picker__trigger:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, #428bca);box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 3px rgba(0, 123, 255, .15))}.sdc-icon-picker__trigger:disabled{cursor:not-allowed;opacity:.6;background:var(--sdc-formfield-disabled-bg, transparent)}.sdc-icon-picker__trigger:hover:not(:disabled){border-color:var(--sdc-formfield-focus-color, #428bca)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger{border-color:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger:focus-visible{box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-icon-picker__trigger-swatch{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:2.7rem;background:var(--sdc-color-picker-trigger-bg, #f8fafc);color:var(--sdc-color-picker-trigger-color, var(--sdc-text-default, #111827));font-size:var(--sdc-icon-picker-icon-size, 1.1rem);transition:background .15s ease}.sdc-icon-picker__trigger:hover:not(:disabled) .sdc-icon-picker__trigger-swatch{background:var(--sdc-color-picker-trigger-hover-bg, #eef2f7)}.sdc-icon-picker__trigger-swatch-placeholder{font-size:.75rem;opacity:.45}.sdc-icon-picker__trigger-sep{width:1px;background:var(--sdc-formfield-default-border, #cccccc);flex-shrink:0;align-self:stretch}.sdc-icon-picker__trigger-text{display:flex;align-items:center;flex:1;min-width:0;padding:0 var(--sdc-form-input-padding-x, .75rem);font:inherit;color:var(--p-text-color, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__placeholder{color:var(--sdc-formfield-placeholder-color, #9ca3af);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__error{font-size:.78rem;color:var(--sdc-formfield-invalid-border, #d98888);margin-top:2px}.sdc-icon-picker--invalid .sdc-icon-picker__trigger-sep{background:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--disabled .sdc-icon-picker__label{opacity:.6}.sdc-icon-picker__modal-body{display:flex;flex-direction:column;gap:12px;flex:1 1 auto;height:var(--sdc-icon-picker-modal-body-height, 520px);max-height:calc(100vh - 190px);min-height:0;overflow:hidden}.sdc-icon-picker__search-row{flex-shrink:0}.sdc-icon-picker__search-row sdc-searchbox{display:block;width:100%}.sdc-icon-picker__preview-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--sdc-picklist-selected-bg, #eeebf2);border:1px solid var(--sdc-picklist-selected-border, #dedce5);border-radius:var(--sdc-icon-picker-card-radius, 6px);flex-shrink:0}.sdc-icon-picker__preview-icon{font-size:1.75rem;color:var(--sdc-tab-primary, #428bca);flex-shrink:0;width:2rem;text-align:center}.sdc-icon-picker__preview-info{display:flex;flex-direction:column;gap:2px;min-width:0}.sdc-icon-picker__preview-label{font-size:.875rem;font-weight:600;color:var(--sdc-text-default, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__preview-class{font-size:.75rem;color:var(--sdc-text-muted, #6b7280);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__counter{font-size:.8rem;color:var(--sdc-text-muted, #6b7280);min-height:1.2em;flex-shrink:0;padding-bottom:4px}.sdc-icon-picker__loading{display:flex;justify-content:center;align-items:center;padding:32px;color:var(--sdc-tab-primary, #428bca);font-size:1.5rem}.sdc-icon-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--sdc-icon-picker-card-size, 90px),1fr));gap:var(--sdc-icon-picker-card-gap, 8px);flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px;align-content:start}.sdc-icon-picker__card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 6px;height:var(--sdc-icon-picker-card-height, 80px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-border-strong, #e2e8f0);border-radius:var(--sdc-icon-picker-card-radius, 6px);cursor:pointer;overflow:hidden;transition:background .12s ease,border-color .12s ease;width:100%}.sdc-icon-picker__card:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:1px}.sdc-icon-picker__card--selected{background:var(--sdc-tab-primary, #428bca);border-color:var(--sdc-tab-primary, #428bca);color:#fff}.sdc-icon-picker__card:hover:not(.sdc-icon-picker__card--selected){background:var(--sdc-picklist-hover-bg, #f7f7f7);border-color:var(--sdc-tab-primary, #428bca)}.sdc-icon-picker__card-icon{font-size:var(--sdc-icon-picker-icon-size, 1.25rem);flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sdc-icon-picker__card-name{font-size:.65rem;line-height:1.2;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;max-width:100%}.sdc-icon-picker__footer{display:flex;justify-content:flex-end;gap:8px}\n"] }]
358
358
  }], ctorParameters: () => [], propDecorators: { label: [{
359
359
  type: Input
360
360
  }], placeholder: [{
@@ -374,4 +374,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
374
374
  }], valueChange: [{
375
375
  type: Output
376
376
  }] } });
377
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9pY29uLXBpY2tlci9pY29uLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2ljb24tcGlja2VyL2ljb24tcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpGLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsNkJBQTZCLEVBQzdCLHlCQUF5QixFQUMxQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR3pGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENB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QixDQUFDO2dCQUNsRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDbkhILG81SkFnSkEscXJNRC9DSSxZQUFZLDhCQUNaLFdBQVcsOEJBQ1gsZUFBZSwrQkFDZixjQUFjLHlRQUNkLGtCQUFrQixvV0FDbEIsZ0JBQWdCLGtKQUNoQixlQUFlOzs0RkFjTixtQkFBbUI7a0JBeEIvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUSxhQUM5Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0RBVVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIFNEQ19JQ09OX1BJQ0tFUl9CTE9DS0VEX05BTUVTLFxuICBTRENfSUNPTl9QSUNLRVJfQkxPQ0tFRF9URVJNUyxcbiAgU0RDX0lDT05fUElDS0VSX1BBR0VfU0laRVxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9pY29uLXBpY2tlci5jb25zdCc7XG5pbXBvcnQgeyBJY29uU2VsZWN0b3JEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvaWNvbi1zZWxlY3Rvci1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHR5cGUgeyBJY29uU2VsZWN0b3JJdGVtIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9pY29uLXNlbGVjdG9yLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBJY29uUGlja2VySXRlbSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvaWNvbi1waWNrZXIudHlwZSc7XG5pbXBvcnQgeyByZXNvbHZlTnVsbGFibGVUcmFuc2xhdGFibGVUZXh0LCByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvaTE4bi51dGlsJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuaW1wb3J0IHsgaHVtYW5pemVUZXh0IH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9zdHJpbmcudXRpbCc7XG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hib3hDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2hib3gvc2VhcmNoYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgZW5UcmFuc2xhdGlvbnMgZnJvbSAnLi4vLi4vbG9jYWxlcy9lbi5qc29uJztcbmltcG9ydCBlc1RyYW5zbGF0aW9ucyBmcm9tICcuLi8uLi9sb2NhbGVzL2VzLUNPLmpzb24nO1xuaW1wb3J0IHB0VHJhbnNsYXRpb25zIGZyb20gJy4uLy4uL2xvY2FsZXMvcHQuanNvbic7XG5cbmNvbnN0IFNFQVJDSF9OT1JNQUxJWkFUSU9OX1JFR0VYID0gL1tcXHUwMzAwLVxcdTAzNmZdL2c7XG5jb25zdCBTRUFSQ0hfREVCT1VOQ0VfTVMgPSAyNTA7XG5jb25zdCBTQ1JPTExfVEhSRVNIT0xEX1BYID0gMTIwO1xuY29uc3QgRU1QVFlfSUNPTl9QSUNLRVJfVkFMVUUgPSAnJztcbmNvbnN0IElDT05fUElDS0VSX0tFWV9QUkVGSVggPSAncGxhdGZvcm0uZGF0YWNvcmUuaWNvblBpY2tlci4nO1xuY29uc3QgSUNPTl9UUkFOU0xBVElPTl9LRVlfUFJFRklYID0gJ3BsYXRmb3JtLmRhdGFjb3JlLmljb25zLic7XG5jb25zdCBGT05UX0FXRVNPTUVfQ0xBU1NfUkVHRVggPSAvXFxiZmFbc3JibGRdP1xcYnxcXGJmYVxcYi9nO1xuY29uc3QgRk9OVF9BV0VTT01FX1BSRUZJWF9SRUdFWCA9IC9cXGJmYS0vZztcbmNvbnN0IElDT05fUElDS0VSX1RSQU5TTEFUSU9OUyA9IHtcbiAgZW46IGVuVHJhbnNsYXRpb25zLFxuICBlczogZXNUcmFuc2xhdGlvbnMsXG4gIHB0OiBwdFRyYW5zbGF0aW9uc1xufSBhcyBSZWNvcmQ8U3VwcG9ydGVkSWNvblBpY2tlckxhbmd1YWdlLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcbmNvbnN0IElDT05fUElDS0VSX0RFRkFVTFRfVEVYVFMgPSB7XG4gIGNhbmNlbDoge1xuICAgIGVuOiAnQ2FuY2VsJyxcbiAgICBlczogJ0NhbmNlbGFyJyxcbiAgICBwdDogJ0NhbmNlbGFyJ1xuICB9LFxuICBjb25maXJtOiB7XG4gICAgZW46ICdDb25maXJtJyxcbiAgICBlczogJ0NvbmZpcm1hcicsXG4gICAgcHQ6ICdDb25maXJtYXInXG4gIH0sXG4gIGljb25zRm91bmQ6IHtcbiAgICBlbjogJ2ljb25zIGZvdW5kJyxcbiAgICBlczogJ1xcdTAwZWRjb25vcyBlbmNvbnRyYWRvcycsXG4gICAgcHQ6ICdcXHUwMGVkY29uZXMgZW5jb250cmFkb3MnXG4gIH0sXG4gIG1vZGFsVGl0bGU6IHtcbiAgICBlbjogJ1NlbGVjdCBpY29uJyxcbiAgICBlczogJ1NlbGVjY2lvbmFyIFxcdTAwZWRjb25vJyxcbiAgICBwdDogJ1NlbGVjaW9uYXIgXFx1MDBlZGNvbmUnXG4gIH0sXG4gIG5vSWNvbnNGb3VuZDoge1xuICAgIGVuOiAnTm8gaWNvbnMgZm91bmQnLFxuICAgIGVzOiAnTmluZ1xcdTAwZmFuIFxcdTAwZWRjb25vIGVuY29udHJhZG8nLFxuICAgIHB0OiAnTmVuaHVtIFxcdTAwZWRjb25lIGVuY29udHJhZG8nXG4gIH0sXG4gIHNlYXJjaFBsYWNlaG9sZGVyOiB7XG4gICAgZW46ICdUeXBlIHRoZSBpY29uIG5hbWUuLi4nLFxuICAgIGVzOiAnRXNjcmliYSBlbCBub21icmUgZGVsIFxcdTAwZWRjb25vLi4uJyxcbiAgICBwdDogJ0RpZ2l0ZSBvIG5vbWUgZG8gXFx1MDBlZGNvbmUuLi4nXG4gIH1cbn0gYXMgY29uc3Q7XG5cbnR5cGUgSWNvblBpY2tlclRleHRLZXkgPSBrZXlvZiB0eXBlb2YgSUNPTl9QSUNLRVJfREVGQVVMVF9URVhUUztcbnR5cGUgU3VwcG9ydGVkSWNvblBpY2tlckxhbmd1YWdlID0gJ2VuJyB8ICdlcycgfCAncHQnO1xuXG5mdW5jdGlvbiBub3JtYWxpemVUZXh0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdmFsdWVcbiAgICAubm9ybWFsaXplKCdORkQnKVxuICAgIC5yZXBsYWNlKFNFQVJDSF9OT1JNQUxJWkFUSU9OX1JFR0VYLCAnJylcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC50cmltKCk7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1pY29uLXBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1vZGFsQ29tcG9uZW50LFxuICAgIFNlYXJjaGJveENvbXBvbmVudCxcbiAgICBUb29sdGlwQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaWNvbi1waWNrZXIuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSWNvblBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJY29uUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgaWNvblNlbGVjdG9yRGF0YSA9IGluamVjdChJY29uU2VsZWN0b3JEYXRhU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWFyY2hJbnB1dCQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ2VuZXJhdGVkSWQgPSBuZXh0U2VxdWVudGlhbElkKCdzZGMtaWNvbi1waWNrZXInKTtcblxuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSB0b29sdGlwOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2UgPSAnJztcbiAgQElucHV0KCkgbW9kYWxUaXRsZSA9ICcnO1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKTtcblxuICB2YWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHBlbmRpbmdWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIG1vZGFsT3BlbiA9IGZhbHNlO1xuICBzZWFyY2hUZXJtID0gJyc7XG4gIGRpc3BsYXllZENvdW50ID0gU0RDX0lDT05fUElDS0VSX1BBR0VfU0laRTtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgYWxsSWNvbnM6IEljb25QaWNrZXJJdGVtW10gPSBbXTtcbiAgZmlsdGVyZWRJY29uczogSWNvblBpY2tlckl0ZW1bXSA9IFtdO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnNlYXJjaElucHV0JFxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoU0VBUkNIX0RFQk9VTkNFX01TKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgICAgLnN1YnNjcmliZSgodGVybSkgPT4ge1xuICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIodGVybSk7XG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNlYXJjaElucHV0JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkTGFiZWwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMubGFiZWwpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlclxuICAgICAgPyByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5wbGFjZWhvbGRlcilcbiAgICAgIDogdGhpcy5yZXNvbHZlSWNvblBpY2tlclRleHQoJ3NlYXJjaFBsYWNlaG9sZGVyJyk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRTZWFyY2hQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVJY29uUGlja2VyVGV4dCgnc2VhcmNoUGxhY2Vob2xkZXInKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZFRvb2x0aXAoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMudG9vbHRpcCk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRFcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMuZXJyb3JNZXNzYWdlKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZE1vZGFsVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tb2RhbFRpdGxlXG4gICAgICA/IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLm1vZGFsVGl0bGUpXG4gICAgICA6IHRoaXMucmVzb2x2ZUljb25QaWNrZXJUZXh0KCdtb2RhbFRpdGxlJyk7XG4gIH1cblxuICBnZXQgdHJpZ2dlcklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVkSWQ7XG4gIH1cblxuICBnZXQgdmlzaWJsZUljb25zKCk6IEljb25QaWNrZXJJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkSWNvbnMuc2xpY2UoMCwgdGhpcy5kaXNwbGF5ZWRDb3VudCk7XG4gIH1cblxuICBnZXQgaWNvbnNGb3VuZENvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRJY29ucy5sZW5ndGg7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRJY29uTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHJldHVybiBFTVBUWV9JQ09OX1BJQ0tFUl9WQUxVRTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuYWxsSWNvbnMuZmluZCgoaWNvbikgPT4gaWNvbi5uYW1lID09PSB0aGlzLnZhbHVlKTtcbiAgICByZXR1cm4gZm91bmQ/LmxhYmVsID8/IHRoaXMudmFsdWU7XG4gIH1cblxuICBnZXQgcGVuZGluZ0ljb25MYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5wZW5kaW5nVmFsdWUpIHtcbiAgICAgIHJldHVybiBFTVBUWV9JQ09OX1BJQ0tFUl9WQUxVRTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuYWxsSWNvbnMuZmluZCgoaWNvbikgPT4gaWNvbi5uYW1lID09PSB0aGlzLnBlbmRpbmdWYWx1ZSk7XG4gICAgcmV0dXJuIGZvdW5kPy5sYWJlbCA/PyB0aGlzLnBlbmRpbmdWYWx1ZTtcbiAgfVxuXG4gIGdldCBjb25maXJtVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVJY29uUGlja2VyVGV4dCgnY29uZmlybScpO1xuICB9XG5cbiAgZ2V0IGNhbmNlbFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlSWNvblBpY2tlclRleHQoJ2NhbmNlbCcpO1xuICB9XG5cbiAgZ2V0IGljb25zRm91bmRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUljb25QaWNrZXJUZXh0KCdpY29uc0ZvdW5kJyk7XG4gIH1cblxuICBnZXQgbm9JY29uc0ZvdW5kVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVJY29uUGlja2VyVGV4dCgnbm9JY29uc0ZvdW5kJyk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlID8/IG51bGw7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZyB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucGVuZGluZ1ZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSAnJztcbiAgICB0aGlzLmRpc3BsYXllZENvdW50ID0gU0RDX0lDT05fUElDS0VSX1BBR0VfU0laRTtcbiAgICB0aGlzLm1vZGFsT3BlbiA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cbiAgICB0aGlzLmxvYWRJY29uc0lmTmVlZGVkKCk7XG4gIH1cblxuICBvbk1vZGFsVmlzaWJsZUNoYW5nZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKCF2aXNpYmxlKSB7XG4gICAgICB0aGlzLm1vZGFsT3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5wZW5kaW5nVmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgb25TZWFyY2godGVybTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hUZXJtID0gdGVybTtcbiAgICB0aGlzLmRpc3BsYXllZENvdW50ID0gU0RDX0lDT05fUElDS0VSX1BBR0VfU0laRTtcbiAgICB0aGlzLnNlYXJjaElucHV0JC5uZXh0KHRlcm0pO1xuICB9XG5cbiAgb25HcmlkU2Nyb2xsKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IG5lYXJCb3R0b20gPSBlbC5zY3JvbGxIZWlnaHQgLSBlbC5zY3JvbGxUb3AgLSBlbC5jbGllbnRIZWlnaHQgPCBTQ1JPTExfVEhSRVNIT0xEX1BYO1xuXG4gICAgaWYgKG5lYXJCb3R0b20gJiYgdGhpcy5kaXNwbGF5ZWRDb3VudCA8IHRoaXMuZmlsdGVyZWRJY29ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZGlzcGxheWVkQ291bnQgKz0gU0RDX0lDT05fUElDS0VSX1BBR0VfU0laRTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEljb24oaWNvbjogSWNvblBpY2tlckl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLnBlbmRpbmdWYWx1ZSA9IHRoaXMucGVuZGluZ1ZhbHVlID09PSBpY29uLm5hbWUgPyBudWxsIDogaWNvbi5uYW1lO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgY29uZmlybVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5wZW5kaW5nVmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm1vZGFsT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMucGVuZGluZ1ZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGNhbmNlbFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMucGVuZGluZ1ZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGlzSWNvblNlbGVjdGVkKGljb246IEljb25QaWNrZXJJdGVtKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGVuZGluZ1ZhbHVlID09PSBpY29uLm5hbWU7XG4gIH1cblxuICBwcml2YXRlIGxvYWRJY29uc0lmTmVlZGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFsbEljb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXIodGhpcy5zZWFyY2hUZXJtKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cbiAgICB0aGlzLmljb25TZWxlY3RvckRhdGFcbiAgICAgIC5sb2FkRm9udEF3ZXNvbWVWNVNvbGlkSWNvbnMoKVxuICAgICAgLnRoZW4oKGljb25zKSA9PiB7XG4gICAgICAgIHRoaXMuYWxsSWNvbnMgPSB0aGlzLmJ1aWxkSWNvbkxpc3QoaWNvbnMpO1xuICAgICAgICB0aGlzLmFwcGx5RmlsdGVyKHRoaXMuc2VhcmNoVGVybSk7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkSWNvbkxpc3QoaWNvbnM6IFJlYWRvbmx5QXJyYXk8SWNvblNlbGVjdG9ySXRlbT4pOiBJY29uUGlja2VySXRlbVtdIHtcbiAgICByZXR1cm4gaWNvbnMucmVkdWNlPEljb25QaWNrZXJJdGVtW10+KChyZXN1bHQsIGljb24pID0+IHtcbiAgICAgIGlmICghdGhpcy5zaG91bGRJbmNsdWRlSWNvbihpY29uKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsYWJlbCA9IHRoaXMucmVzb2x2ZUljb25MYWJlbChpY29uKTtcblxuICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICBsYWJlbCxcbiAgICAgICAgbmFtZTogaWNvbi5jbGFzc05hbWUsXG4gICAgICAgIG5vcm1hbGl6ZWRMYWJlbDogbm9ybWFsaXplVGV4dChsYWJlbClcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGaWx0ZXIodGVybTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZVRleHQodGVybSk7XG5cbiAgICBpZiAoIW5vcm1hbGl6ZWQpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRJY29ucyA9IHRoaXMuYWxsSWNvbnMuc2xpY2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJlZEljb25zID0gdGhpcy5hbGxJY29ucy5maWx0ZXIoXG4gICAgICAgIChpY29uKSA9PlxuICAgICAgICAgIGljb24ubm9ybWFsaXplZExhYmVsLmluY2x1ZGVzKG5vcm1hbGl6ZWQpIHx8XG4gICAgICAgICAgbm9ybWFsaXplVGV4dChpY29uLm5hbWUpLmluY2x1ZGVzKG5vcm1hbGl6ZWQpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkSW5jbHVkZUljb24oaWNvbjogSWNvblNlbGVjdG9ySXRlbSk6IGJvb2xlYW4ge1xuICAgIGlmIChTRENfSUNPTl9QSUNLRVJfQkxPQ0tFRF9OQU1FUy5oYXMoaWNvbi5jbGFzc05hbWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLnJlc29sdmVJY29uTGFiZWwoaWNvbik7XG4gICAgY29uc3Qgbm9ybWFsaXplZExhYmVsID0gbm9ybWFsaXplVGV4dChsYWJlbCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVUZXh0KGljb24uY2xhc3NOYW1lKTtcblxuICAgIHJldHVybiAhU0RDX0lDT05fUElDS0VSX0JMT0NLRURfVEVSTVMuc29tZShcbiAgICAgICh0ZXJtKSA9PiBub3JtYWxpemVkTGFiZWwuaW5jbHVkZXModGVybSkgfHwgbm9ybWFsaXplZE5hbWUuaW5jbHVkZXModGVybSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlSWNvblBpY2tlclRleHQoa2V5OiBJY29uUGlja2VyVGV4dEtleSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSBgJHtJQ09OX1BJQ0tFUl9LRVlfUFJFRklYfSR7a2V5fWA7XG4gICAgY29uc3QgdHJhbnNsYXRlZCA9IHRoaXMucmVzb2x2ZVRyYW5zbGF0ZWRWYWx1ZSh0cmFuc2xhdGlvbktleSk7XG5cbiAgICBpZiAodHJhbnNsYXRlZCkge1xuICAgICAgcmV0dXJuIHRyYW5zbGF0ZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIElDT05fUElDS0VSX0RFRkFVTFRfVEVYVFNba2V5XVt0aGlzLmN1cnJlbnRMYW5ndWFnZV07XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVJY29uTGFiZWwoaWNvbjogSWNvblNlbGVjdG9ySXRlbSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSBpY29uLnRyYW5zbGF0aW9uS2V5Py50cmltKCkgPz8gJyc7XG4gICAgY29uc3QgdHJhbnNsYXRlZCA9IHRoaXMucmVzb2x2ZVRyYW5zbGF0ZWRWYWx1ZSh0cmFuc2xhdGlvbktleSk7XG5cbiAgICBpZiAodHJhbnNsYXRlZCkge1xuICAgICAgcmV0dXJuIHRyYW5zbGF0ZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRyYW5zbGF0aW9uS2V5ICYmICF0cmFuc2xhdGlvbktleS5zdGFydHNXaXRoKElDT05fVFJBTlNMQVRJT05fS0VZX1BSRUZJWCkpIHtcbiAgICAgIHJldHVybiB0cmFuc2xhdGlvbktleTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odW1hbml6ZUljb25DbGFzcyhpY29uLmNsYXNzTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVUcmFuc2xhdGVkVmFsdWUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICgha2V5KSB7XG4gICAgICByZXR1cm4gRU1QVFlfSUNPTl9QSUNLRVJfVkFMVUU7XG4gICAgfVxuXG4gICAgY29uc3QgdHJhbnNsYXRlZCA9IFN0cmluZyh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGtleSkgPz8gJycpLnRyaW0oKTtcblxuICAgIGlmICh0cmFuc2xhdGVkICYmIHRyYW5zbGF0ZWQgIT09IGtleSkge1xuICAgICAgcmV0dXJuIHRyYW5zbGF0ZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIElDT05fUElDS0VSX1RSQU5TTEFUSU9OU1t0aGlzLmN1cnJlbnRMYW5ndWFnZV1ba2V5XSA/PyBFTVBUWV9JQ09OX1BJQ0tFUl9WQUxVRTtcbiAgfVxuXG4gIHByaXZhdGUgaHVtYW5pemVJY29uQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBodW1hbml6ZVRleHQoXG4gICAgICBjbGFzc05hbWVcbiAgICAgICAgLnJlcGxhY2UoRk9OVF9BV0VTT01FX0NMQVNTX1JFR0VYLCAnJylcbiAgICAgICAgLnJlcGxhY2UoRk9OVF9BV0VTT01FX1BSRUZJWF9SRUdFWCwgJyAnKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldCBjdXJyZW50TGFuZ3VhZ2UoKTogU3VwcG9ydGVkSWNvblBpY2tlckxhbmd1YWdlIHtcbiAgICBjb25zdCBsYW5nID0gKHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nID8/ICcnKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKGxhbmcuc3RhcnRzV2l0aCgnZW4nKSkge1xuICAgICAgcmV0dXJuICdlbic7XG4gICAgfVxuXG4gICAgaWYgKGxhbmcuc3RhcnRzV2l0aCgnZXMnKSkge1xuICAgICAgcmV0dXJuICdlcyc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdwdCc7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJcIlxuICBbY2xhc3Muc2RjLWljb24tcGlja2VyLS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5zZGMtaWNvbi1waWNrZXItLWludmFsaWRdPVwiaW52YWxpZFwiXG4+XG4gIEBpZiAocmVzb2x2ZWRMYWJlbCkge1xuICAgIDxkaXYgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2xhYmVsLXJvd1wiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19sYWJlbFwiIFtmb3JdPVwidHJpZ2dlcklkXCIgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZCB8fCBudWxsXCI+XG4gICAgICAgIHt7IHJlc29sdmVkTGFiZWwgfX1cbiAgICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19yZXF1aXJlZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPio8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvbGFiZWw+XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRUb29sdGlwKSB7XG4gICAgICAgIDxzZGMtdG9vbHRpcCBbcFRvb2x0aXBdPVwicmVzb2x2ZWRUb29sdGlwXCIgW3Rvb2x0aXBFdmVudF09XCInYm90aCdcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9faW5mby1pY29uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZFRvb2x0aXBcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWluZm8tY2lyY2xlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NkYy10b29sdGlwPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG5cbiAgPGJ1dHRvblxuICAgIFtpZF09XCJ0cmlnZ2VySWRcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwic2RjLWljb24tcGlja2VyX190cmlnZ2VyXCJcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkIHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkIHx8IG51bGxcIlxuICAgIChjbGljayk9XCJvcGVuTW9kYWwoKVwiXG4gID5cbiAgICA8c3BhbiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fdHJpZ2dlci1zd2F0Y2hcIj5cbiAgICAgIEBpZiAodmFsdWUpIHtcbiAgICAgICAgPGkgW2NsYXNzXT1cIidmYXMgJyArIHZhbHVlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tZG93biBzZGMtaWNvbi1waWNrZXJfX3RyaWdnZXItc3dhdGNoLXBsYWNlaG9sZGVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cblxuICAgIDxzcGFuIGNsYXNzPVwic2RjLWljb24tcGlja2VyX190cmlnZ2VyLXNlcFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cblxuICAgIDxzcGFuIGNsYXNzPVwic2RjLWljb24tcGlja2VyX190cmlnZ2VyLXRleHRcIj5cbiAgICAgIEBpZiAodmFsdWUgJiYgc2VsZWN0ZWRJY29uTGFiZWwpIHtcbiAgICAgICAge3sgc2VsZWN0ZWRJY29uTGFiZWwgfX1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fcGxhY2Vob2xkZXJcIj57eyByZXNvbHZlZFBsYWNlaG9sZGVyIH19PC9zcGFuPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgPC9idXR0b24+XG5cbiAgQGlmIChpbnZhbGlkICYmIHJlc29sdmVkRXJyb3JNZXNzYWdlKSB7XG4gICAgPHNtYWxsIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19lcnJvclwiPnt7IHJlc29sdmVkRXJyb3JNZXNzYWdlIH19PC9zbWFsbD5cbiAgfVxuPC9kaXY+XG5cbjxzZGMtbW9kYWxcbiAgW2hlYWRlcl09XCJyZXNvbHZlZE1vZGFsVGl0bGVcIlxuICBbdmlzaWJsZV09XCJtb2RhbE9wZW5cIlxuICBbd2lkdGhdPVwiNjYwXCJcbiAgW2Nsb3NhYmxlXT1cInRydWVcIlxuICBzdHlsZUNsYXNzPVwic2RjLW1vZGFsLS1pY29uLXBpY2tlclwiXG4gIFthcHBlbmRUb0JvZHldPVwidHJ1ZVwiXG4gICh2aXNpYmxlQ2hhbmdlKT1cIm9uTW9kYWxWaXNpYmxlQ2hhbmdlKCRldmVudClcIlxuPlxuICA8ZGl2IGNsYXNzPVwic2RjLWljb24tcGlja2VyX19tb2RhbC1ib2R5XCI+XG4gICAgPGRpdiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fc2VhcmNoLXJvd1wiPlxuICAgICAgPHNkYy1zZWFyY2hib3hcbiAgICAgICAgW3ZhbHVlXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicmVzb2x2ZWRTZWFyY2hQbGFjZWhvbGRlclwiXG4gICAgICAgIFtkZWJvdW5jZVRpbWVNc109XCIyNTBcIlxuICAgICAgICAoZGVib3VuY2VkVmFsdWVDaGFuZ2UpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gICAgICAgIChvbkNsZWFyKT1cIm9uU2VhcmNoKCcnKVwiXG4gICAgICA+PC9zZGMtc2VhcmNoYm94PlxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChwZW5kaW5nVmFsdWUpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX3ByZXZpZXctYmFyXCI+XG4gICAgICAgIDxpIFtjbGFzc109XCInZmFzICcgKyBwZW5kaW5nVmFsdWVcIiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fcHJldmlldy1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLWljb24tcGlja2VyX19wcmV2aWV3LWluZm9cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fcHJldmlldy1sYWJlbFwiPnt7IHBlbmRpbmdJY29uTGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX3ByZXZpZXctY2xhc3NcIj57eyBwZW5kaW5nVmFsdWUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPGRpdiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fY291bnRlclwiPlxuICAgICAgQGlmIChmaWx0ZXJlZEljb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgPHNwYW4+e3sgaWNvbnNGb3VuZENvdW50IH19IHt7IGljb25zRm91bmRUZXh0IH19PC9zcGFuPlxuICAgICAgfSBAZWxzZSBpZiAoIWlzTG9hZGluZykge1xuICAgICAgICA8c3Bhbj57eyBub0ljb25zRm91bmRUZXh0IH19PC9zcGFuPlxuICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChpc0xvYWRpbmcpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2xvYWRpbmdcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtc3Bpbm5lciBmYS1zcGluXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8IS0tIE5PU09OQVI6IHRoaXMgcGlja2VyIG5lZWRzIGEgY3VzdG9tIEFSSUEgbGlzdGJveC9ncmlkIGV4cGVyaWVuY2UgdGhhdCBhIG5hdGl2ZSBzZWxlY3QgY2Fubm90IHByb3ZpZGUgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgICNpY29uR3JpZFxuICAgICAgICBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fZ3JpZFwiXG4gICAgICAgIFthdHRyLnJvbGVdPVwiJ2xpc3Rib3gnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZE1vZGFsVGl0bGVcIlxuICAgICAgICAoc2Nyb2xsKT1cIm9uR3JpZFNjcm9sbCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgQGZvciAoaWNvbiBvZiB2aXNpYmxlSWNvbnM7IHRyYWNrIGljb24ubmFtZSkge1xuICAgICAgICAgIDwhLS0gTk9TT05BUiAtLT5cbiAgICAgICAgICA8IS0tIHRoZSBjdXN0b20gaWNvbiBncmlkIGtlZXBzIG9wdGlvbiBzZW1hbnRpY3Mgb24gdGhlIGZvY3VzYWJsZSBjYXJkIGZvciBrZXlib2FyZCBhbmQgU1Igc3VwcG9ydCAtLT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19jYXJkXCJcbiAgICAgICAgICAgIFtjbGFzcy5zZGMtaWNvbi1waWNrZXJfX2NhcmQtLXNlbGVjdGVkXT1cImlzSWNvblNlbGVjdGVkKGljb24pXCJcbiAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiJ29wdGlvbidcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0ljb25TZWxlY3RlZChpY29uKSA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgaWNvbi5sYWJlbCArICcgLSAnICsgaWNvbi5uYW1lXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEljb24oaWNvbilcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIFtjbGFzc109XCInZmFzICcgKyBpY29uLm5hbWVcIiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fY2FyZC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2NhcmQtbmFtZVwiPnt7IGljb24ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPGRpdiBmb290ZXIgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2Zvb3RlclwiPlxuICAgIDxzZGMtYnV0dG9uXG4gICAgICBbbGFiZWxdPVwiY2FuY2VsVGV4dFwiXG4gICAgICBwcmlvcml0eT1cInNlY29uZGFyeVwiXG4gICAgICAob25DbGljayk9XCJjYW5jZWxTZWxlY3Rpb24oKVwiXG4gICAgPjwvc2RjLWJ1dHRvbj5cbiAgICA8c2RjLWJ1dHRvblxuICAgICAgW2xhYmVsXT1cImNvbmZpcm1UZXh0XCJcbiAgICAgIHByaW9yaXR5PVwicHJpbWFyeVwiXG4gICAgICBbZGlzYWJsZWRdPVwicGVuZGluZ1ZhbHVlID09PSBudWxsICYmIHZhbHVlID09PSBudWxsXCJcbiAgICAgIChvbkNsaWNrKT1cImNvbmZpcm1TZWxlY3Rpb24oKVwiXG4gICAgPjwvc2RjLWJ1dHRvbj5cbiAgPC9kaXY+XG48L3NkYy1tb2RhbD5cbiJdfQ==
377
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9pY29uLXBpY2tlci9pY29uLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2ljb24tcGlja2VyL2ljb24tcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpGLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsNkJBQTZCLEVBQzdCLHlCQUF5QixFQUMxQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR3pGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sY0FBYyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sY0FBYyxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sY0FBYyxNQUFNLHVCQUF1QixDQUFDOztBQUVuRCxNQUFNLDBCQUEwQixHQUFHLGtCQUFrQixDQUFDO0FBQ3RELE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBQ2hDLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBQ25DLE1BQU0sc0JBQXNCLEdBQUcsK0JBQStCLENBQUM7QUFDL0QsTUFBTSwyQkFBMkIsR0FBRywwQkFBMEIsQ0FBQztBQUMvRCxNQUFNLHdCQUF3QixHQUFHLHdCQUF3QixDQUFDO0FBQzFELE1BQU0seUJBQXlCLEdBQUcsUUFBUSxDQUFDO0FBQzNDLE1BQU0sd0JBQXdCLEdBQUc7SUFDL0IsRUFBRSxFQUFFLGNBQWM7SUFDbEIsRUFBRSxFQUFFLGNBQWM7SUFDbEIsRUFBRSxFQUFFLGNBQWM7Q0FDNEMsQ0FBQztBQUNqRSxNQUFNLHlCQUF5QixHQUFHO0lBQ2hDLE1BQU0sRUFBRTtRQUNOLEVBQUUsRUFBRSxRQUFRO1FBQ1osRUFBRSxFQUFFLFVBQVU7UUFDZCxFQUFFLEVBQUUsVUFBVTtLQUNmO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsRUFBRSxFQUFFLFNBQVM7UUFDYixFQUFFLEVBQUUsV0FBVztRQUNmLEVBQUUsRUFBRSxXQUFXO0tBQ2hCO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsRUFBRSxFQUFFLGFBQWE7UUFDakIsRUFBRSxFQUFFLHlCQUF5QjtRQUM3QixFQUFFLEVBQUUseUJBQXlCO0tBQzlCO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsRUFBRSxFQUFFLGFBQWE7UUFDakIsRUFBRSxFQUFFLHdCQUF3QjtRQUM1QixFQUFFLEVBQUUsdUJBQXVCO0tBQzVCO0lBQ0QsWUFBWSxFQUFFO1FBQ1osRUFBRSxFQUFFLGdCQUFnQjtRQUNwQixFQUFFLEVBQUUsbUNBQW1DO1FBQ3ZDLEVBQUUsRUFBRSw4QkFBOEI7S0FDbkM7SUFDRCxpQkFBaUIsRUFBRTtRQUNqQixFQUFFLEVBQUUsdUJBQXVCO1FBQzNCLEVBQUUsRUFBRSxxQ0FBcUM7UUFDekMsRUFBRSxFQUFFLGdDQUFnQztLQUNyQztDQUNPLENBQUM7QUFLWCxTQUFTLGFBQWEsQ0FBQyxLQUFhO0lBQ2xDLE9BQU8sS0FBSztTQUNULFNBQVMsQ0FBQyxLQUFLLENBQUM7U0FDaEIsT0FBTyxDQUFDLDBCQUEwQixFQUFFLEVBQUUsQ0FBQztTQUN2QyxXQUFXLEVBQUU7U0FDYixJQUFJLEVBQUUsQ0FBQztBQUNaLENBQUM7QUEwQkQsTUFBTSxPQUFPLG1CQUFtQjtJQUNiLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNyQyxHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDbkQsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDbkMsWUFBWSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7SUFDckMsV0FBVyxHQUFHLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFMUQsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDakIsT0FBTyxHQUFrQixJQUFJLENBQUM7SUFDOUIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUNsQixVQUFVLEdBQUcsRUFBRSxDQUFDO0lBRWYsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0lBRTFELEtBQUssR0FBa0IsSUFBSSxDQUFDO0lBQzVCLFlBQVksR0FBa0IsSUFBSSxDQUFDO0lBQ25DLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUNoQixjQUFjLEdBQUcseUJBQXlCLENBQUM7SUFDM0MsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUVsQixRQUFRLEdBQXFCLEVBQUUsQ0FBQztJQUNoQyxhQUFhLEdBQXFCLEVBQUUsQ0FBQztJQUU3QixRQUFRLEdBQW1DLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUNwRCxTQUFTLEdBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRXpDO1FBQ0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxZQUFZO2FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUM7YUFDOUQsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVztZQUNyQixDQUFDLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQzNELENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBSSx5QkFBeUI7UUFDM0IsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sK0JBQStCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sK0JBQStCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFVBQVU7WUFDcEIsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUMxRCxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsT0FBTyx1QkFBdUIsQ0FBQztRQUNqQyxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sdUJBQXVCLENBQUM7UUFDakMsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1RSxPQUFPLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxVQUFVLENBQUMsS0FBb0I7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQWtDO1FBQ2pELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyx5QkFBeUIsQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxPQUFnQjtRQUNuQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVk7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyx5QkFBeUIsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVk7UUFDdkIsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFDdkMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxZQUFZLEdBQUcsbUJBQW1CLENBQUM7UUFFMUYsSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xFLElBQUksQ0FBQyxjQUFjLElBQUkseUJBQXlCLENBQUM7WUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFvQjtRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBb0I7UUFDakMsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDekMsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsZ0JBQWdCO2FBQ2xCLDJCQUEyQixFQUFFO2FBQzdCLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQXNDO1FBQzFELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBbUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ1YsS0FBSztnQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3BCLGVBQWUsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDO2FBQ3RDLENBQUMsQ0FBQztZQUVILE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7SUFFTyxXQUFXLENBQUMsSUFBWTtRQUM5QixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQ3ZDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDUCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7Z0JBQ3pDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUNoRCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUFzQjtRQUM5QyxJQUFJLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFckQsT0FBTyxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FDeEMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FDMUUsQ0FBQztJQUNKLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxHQUFzQjtRQUNsRCxNQUFNLGNBQWMsR0FBRyxHQUFHLHNCQUFzQixHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ3pELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUUvRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUVELE9BQU8seUJBQXlCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFzQjtRQUM3QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN6RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFL0QsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFFRCxJQUFJLGNBQWMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDO1lBQzlFLE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEdBQVc7UUFDeEMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsT0FBTyx1QkFBdUIsQ0FBQztRQUNqQyxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXBFLElBQUksVUFBVSxJQUFJLFVBQVUsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNyQyxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDO1FBRUQsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksdUJBQXVCLENBQUM7SUFDeEYsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFNBQWlCO1FBQ3pDLE9BQU8sWUFBWSxDQUNqQixTQUFTO2FBQ04sT0FBTyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsQ0FBQzthQUNyQyxPQUFPLENBQUMseUJBQXlCLEVBQUUsR0FBRyxDQUFDLENBQzNDLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBWSxlQUFlO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFOUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO3dHQWxWVSxtQkFBbUI7NEZBQW5CLG1CQUFtQiwyU0FSbkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUNsRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDbkhILG81SkFnSkEscXJNRC9DSSxZQUFZLDhCQUNaLFdBQVcsOEJBQ1gsZUFBZSwrQkFDZixjQUFjLHlRQUNkLGtCQUFrQixvV0FDbEIsZ0JBQWdCLGtKQUNoQixlQUFlOzs0RkFjTixtQkFBbUI7a0JBeEIvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUSxhQUM5Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0RBVVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIFNEQ19JQ09OX1BJQ0tFUl9CTE9DS0VEX05BTUVTLFxuICBTRENfSUNPTl9QSUNLRVJfQkxPQ0tFRF9URVJNUyxcbiAgU0RDX0lDT05fUElDS0VSX1BBR0VfU0laRVxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9pY29uLXBpY2tlci5jb25zdCc7XG5pbXBvcnQgeyBJY29uU2VsZWN0b3JEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvaWNvbi1zZWxlY3Rvci1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHR5cGUgeyBJY29uU2VsZWN0b3JJdGVtIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9pY29uLXNlbGVjdG9yLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBJY29uUGlja2VySXRlbSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvaWNvbi1waWNrZXIudHlwZSc7XG5pbXBvcnQgeyByZXNvbHZlTnVsbGFibGVUcmFuc2xhdGFibGVUZXh0LCByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvaTE4bi51dGlsJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuaW1wb3J0IHsgaHVtYW5pemVUZXh0IH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9zdHJpbmcudXRpbCc7XG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hib3hDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2hib3gvc2VhcmNoYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgZW5UcmFuc2xhdGlvbnMgZnJvbSAnLi4vLi4vbG9jYWxlcy9lbi5qc29uJztcbmltcG9ydCBlc1RyYW5zbGF0aW9ucyBmcm9tICcuLi8uLi9sb2NhbGVzL2VzLUNPLmpzb24nO1xuaW1wb3J0IHB0VHJhbnNsYXRpb25zIGZyb20gJy4uLy4uL2xvY2FsZXMvcHQuanNvbic7XG5cbmNvbnN0IFNFQVJDSF9OT1JNQUxJWkFUSU9OX1JFR0VYID0gL1tcXHUwMzAwLVxcdTAzNmZdL2c7XG5jb25zdCBTRUFSQ0hfREVCT1VOQ0VfTVMgPSAyNTA7XG5jb25zdCBTQ1JPTExfVEhSRVNIT0xEX1BYID0gMTIwO1xuY29uc3QgRU1QVFlfSUNPTl9QSUNLRVJfVkFMVUUgPSAnJztcbmNvbnN0IElDT05fUElDS0VSX0tFWV9QUkVGSVggPSAncGxhdGZvcm0uZGF0YWNvcmUuaWNvblBpY2tlci4nO1xuY29uc3QgSUNPTl9UUkFOU0xBVElPTl9LRVlfUFJFRklYID0gJ3BsYXRmb3JtLmRhdGFjb3JlLmljb25zLic7XG5jb25zdCBGT05UX0FXRVNPTUVfQ0xBU1NfUkVHRVggPSAvXFxiZmFbc3JibGRdP1xcYnxcXGJmYVxcYi9nO1xuY29uc3QgRk9OVF9BV0VTT01FX1BSRUZJWF9SRUdFWCA9IC9cXGJmYS0vZztcbmNvbnN0IElDT05fUElDS0VSX1RSQU5TTEFUSU9OUyA9IHtcbiAgZW46IGVuVHJhbnNsYXRpb25zLFxuICBlczogZXNUcmFuc2xhdGlvbnMsXG4gIHB0OiBwdFRyYW5zbGF0aW9uc1xufSBhcyBSZWNvcmQ8U3VwcG9ydGVkSWNvblBpY2tlckxhbmd1YWdlLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcbmNvbnN0IElDT05fUElDS0VSX0RFRkFVTFRfVEVYVFMgPSB7XG4gIGNhbmNlbDoge1xuICAgIGVuOiAnQ2FuY2VsJyxcbiAgICBlczogJ0NhbmNlbGFyJyxcbiAgICBwdDogJ0NhbmNlbGFyJ1xuICB9LFxuICBjb25maXJtOiB7XG4gICAgZW46ICdDb25maXJtJyxcbiAgICBlczogJ0NvbmZpcm1hcicsXG4gICAgcHQ6ICdDb25maXJtYXInXG4gIH0sXG4gIGljb25zRm91bmQ6IHtcbiAgICBlbjogJ2ljb25zIGZvdW5kJyxcbiAgICBlczogJ1xcdTAwZWRjb25vcyBlbmNvbnRyYWRvcycsXG4gICAgcHQ6ICdcXHUwMGVkY29uZXMgZW5jb250cmFkb3MnXG4gIH0sXG4gIG1vZGFsVGl0bGU6IHtcbiAgICBlbjogJ1NlbGVjdCBpY29uJyxcbiAgICBlczogJ1NlbGVjY2lvbmFyIFxcdTAwZWRjb25vJyxcbiAgICBwdDogJ1NlbGVjaW9uYXIgXFx1MDBlZGNvbmUnXG4gIH0sXG4gIG5vSWNvbnNGb3VuZDoge1xuICAgIGVuOiAnTm8gaWNvbnMgZm91bmQnLFxuICAgIGVzOiAnTmluZ1xcdTAwZmFuIFxcdTAwZWRjb25vIGVuY29udHJhZG8nLFxuICAgIHB0OiAnTmVuaHVtIFxcdTAwZWRjb25lIGVuY29udHJhZG8nXG4gIH0sXG4gIHNlYXJjaFBsYWNlaG9sZGVyOiB7XG4gICAgZW46ICdUeXBlIHRoZSBpY29uIG5hbWUuLi4nLFxuICAgIGVzOiAnRXNjcmliYSBlbCBub21icmUgZGVsIFxcdTAwZWRjb25vLi4uJyxcbiAgICBwdDogJ0RpZ2l0ZSBvIG5vbWUgZG8gXFx1MDBlZGNvbmUuLi4nXG4gIH1cbn0gYXMgY29uc3Q7XG5cbnR5cGUgSWNvblBpY2tlclRleHRLZXkgPSBrZXlvZiB0eXBlb2YgSUNPTl9QSUNLRVJfREVGQVVMVF9URVhUUztcbnR5cGUgU3VwcG9ydGVkSWNvblBpY2tlckxhbmd1YWdlID0gJ2VuJyB8ICdlcycgfCAncHQnO1xuXG5mdW5jdGlvbiBub3JtYWxpemVUZXh0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdmFsdWVcbiAgICAubm9ybWFsaXplKCdORkQnKVxuICAgIC5yZXBsYWNlKFNFQVJDSF9OT1JNQUxJWkFUSU9OX1JFR0VYLCAnJylcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC50cmltKCk7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1pY29uLXBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1vZGFsQ29tcG9uZW50LFxuICAgIFNlYXJjaGJveENvbXBvbmVudCxcbiAgICBUb29sdGlwQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaWNvbi1waWNrZXIuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSWNvblBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJY29uUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgaWNvblNlbGVjdG9yRGF0YSA9IGluamVjdChJY29uU2VsZWN0b3JEYXRhU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWFyY2hJbnB1dCQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ2VuZXJhdGVkSWQgPSBuZXh0U2VxdWVudGlhbElkKCdzZGMtaWNvbi1waWNrZXInKTtcblxuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSB0b29sdGlwOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2UgPSAnJztcbiAgQElucHV0KCkgbW9kYWxUaXRsZSA9ICcnO1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKTtcblxuICB2YWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHBlbmRpbmdWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIG1vZGFsT3BlbiA9IGZhbHNlO1xuICBzZWFyY2hUZXJtID0gJyc7XG4gIGRpc3BsYXllZENvdW50ID0gU0RDX0lDT05fUElDS0VSX1BBR0VfU0laRTtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgYWxsSWNvbnM6IEljb25QaWNrZXJJdGVtW10gPSBbXTtcbiAgZmlsdGVyZWRJY29uczogSWNvblBpY2tlckl0ZW1bXSA9IFtdO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnNlYXJjaElucHV0JFxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoU0VBUkNIX0RFQk9VTkNFX01TKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgICAgLnN1YnNjcmliZSgodGVybSkgPT4ge1xuICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIodGVybSk7XG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNlYXJjaElucHV0JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkTGFiZWwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMubGFiZWwpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlclxuICAgICAgPyByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5wbGFjZWhvbGRlcilcbiAgICAgIDogdGhpcy5yZXNvbHZlSWNvblBpY2tlclRleHQoJ3NlYXJjaFBsYWNlaG9sZGVyJyk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRTZWFyY2hQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVJY29uUGlja2VyVGV4dCgnc2VhcmNoUGxhY2Vob2xkZXInKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZFRvb2x0aXAoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMudG9vbHRpcCk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRFcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMuZXJyb3JNZXNzYWdlKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZE1vZGFsVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tb2RhbFRpdGxlXG4gICAgICA/IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLm1vZGFsVGl0bGUpXG4gICAgICA6IHRoaXMucmVzb2x2ZUljb25QaWNrZXJUZXh0KCdtb2RhbFRpdGxlJyk7XG4gIH1cblxuICBnZXQgdHJpZ2dlcklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVkSWQ7XG4gIH1cblxuICBnZXQgdmlzaWJsZUljb25zKCk6IEljb25QaWNrZXJJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkSWNvbnMuc2xpY2UoMCwgdGhpcy5kaXNwbGF5ZWRDb3VudCk7XG4gIH1cblxuICBnZXQgaWNvbnNGb3VuZENvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRJY29ucy5sZW5ndGg7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRJY29uTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHJldHVybiBFTVBUWV9JQ09OX1BJQ0tFUl9WQUxVRTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuYWxsSWNvbnMuZmluZCgoaWNvbikgPT4gaWNvbi5uYW1lID09PSB0aGlzLnZhbHVlKTtcbiAgICByZXR1cm4gZm91bmQ/LmxhYmVsID8/IHRoaXMudmFsdWU7XG4gIH1cblxuICBnZXQgcGVuZGluZ0ljb25MYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5wZW5kaW5nVmFsdWUpIHtcbiAgICAgIHJldHVybiBFTVBUWV9JQ09OX1BJQ0tFUl9WQUxVRTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuYWxsSWNvbnMuZmluZCgoaWNvbikgPT4gaWNvbi5uYW1lID09PSB0aGlzLnBlbmRpbmdWYWx1ZSk7XG4gICAgcmV0dXJuIGZvdW5kPy5sYWJlbCA/PyB0aGlzLnBlbmRpbmdWYWx1ZTtcbiAgfVxuXG4gIGdldCBjb25maXJtVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVJY29uUGlja2VyVGV4dCgnY29uZmlybScpO1xuICB9XG5cbiAgZ2V0IGNhbmNlbFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlSWNvblBpY2tlclRleHQoJ2NhbmNlbCcpO1xuICB9XG5cbiAgZ2V0IGljb25zRm91bmRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUljb25QaWNrZXJUZXh0KCdpY29uc0ZvdW5kJyk7XG4gIH1cblxuICBnZXQgbm9JY29uc0ZvdW5kVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVJY29uUGlja2VyVGV4dCgnbm9JY29uc0ZvdW5kJyk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlID8/IG51bGw7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZyB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucGVuZGluZ1ZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSAnJztcbiAgICB0aGlzLmRpc3BsYXllZENvdW50ID0gU0RDX0lDT05fUElDS0VSX1BBR0VfU0laRTtcbiAgICB0aGlzLm1vZGFsT3BlbiA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cbiAgICB0aGlzLmxvYWRJY29uc0lmTmVlZGVkKCk7XG4gIH1cblxuICBvbk1vZGFsVmlzaWJsZUNoYW5nZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKCF2aXNpYmxlKSB7XG4gICAgICB0aGlzLm1vZGFsT3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5wZW5kaW5nVmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgb25TZWFyY2godGVybTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hUZXJtID0gdGVybTtcbiAgICB0aGlzLmRpc3BsYXllZENvdW50ID0gU0RDX0lDT05fUElDS0VSX1BBR0VfU0laRTtcbiAgICB0aGlzLnNlYXJjaElucHV0JC5uZXh0KHRlcm0pO1xuICB9XG5cbiAgb25HcmlkU2Nyb2xsKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IG5lYXJCb3R0b20gPSBlbC5zY3JvbGxIZWlnaHQgLSBlbC5zY3JvbGxUb3AgLSBlbC5jbGllbnRIZWlnaHQgPCBTQ1JPTExfVEhSRVNIT0xEX1BYO1xuXG4gICAgaWYgKG5lYXJCb3R0b20gJiYgdGhpcy5kaXNwbGF5ZWRDb3VudCA8IHRoaXMuZmlsdGVyZWRJY29ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZGlzcGxheWVkQ291bnQgKz0gU0RDX0lDT05fUElDS0VSX1BBR0VfU0laRTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEljb24oaWNvbjogSWNvblBpY2tlckl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLnBlbmRpbmdWYWx1ZSA9IHRoaXMucGVuZGluZ1ZhbHVlID09PSBpY29uLm5hbWUgPyBudWxsIDogaWNvbi5uYW1lO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgY29uZmlybVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5wZW5kaW5nVmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm1vZGFsT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMucGVuZGluZ1ZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGNhbmNlbFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMucGVuZGluZ1ZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGlzSWNvblNlbGVjdGVkKGljb246IEljb25QaWNrZXJJdGVtKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGVuZGluZ1ZhbHVlID09PSBpY29uLm5hbWU7XG4gIH1cblxuICBwcml2YXRlIGxvYWRJY29uc0lmTmVlZGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFsbEljb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXIodGhpcy5zZWFyY2hUZXJtKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cbiAgICB0aGlzLmljb25TZWxlY3RvckRhdGFcbiAgICAgIC5sb2FkRm9udEF3ZXNvbWVWNVNvbGlkSWNvbnMoKVxuICAgICAgLnRoZW4oKGljb25zKSA9PiB7XG4gICAgICAgIHRoaXMuYWxsSWNvbnMgPSB0aGlzLmJ1aWxkSWNvbkxpc3QoaWNvbnMpO1xuICAgICAgICB0aGlzLmFwcGx5RmlsdGVyKHRoaXMuc2VhcmNoVGVybSk7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkSWNvbkxpc3QoaWNvbnM6IFJlYWRvbmx5QXJyYXk8SWNvblNlbGVjdG9ySXRlbT4pOiBJY29uUGlja2VySXRlbVtdIHtcbiAgICByZXR1cm4gaWNvbnMucmVkdWNlPEljb25QaWNrZXJJdGVtW10+KChyZXN1bHQsIGljb24pID0+IHtcbiAgICAgIGlmICghdGhpcy5zaG91bGRJbmNsdWRlSWNvbihpY29uKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsYWJlbCA9IHRoaXMucmVzb2x2ZUljb25MYWJlbChpY29uKTtcblxuICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICBsYWJlbCxcbiAgICAgICAgbmFtZTogaWNvbi5jbGFzc05hbWUsXG4gICAgICAgIG5vcm1hbGl6ZWRMYWJlbDogbm9ybWFsaXplVGV4dChsYWJlbClcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGaWx0ZXIodGVybTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZVRleHQodGVybSk7XG5cbiAgICBpZiAoIW5vcm1hbGl6ZWQpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRJY29ucyA9IHRoaXMuYWxsSWNvbnMuc2xpY2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJlZEljb25zID0gdGhpcy5hbGxJY29ucy5maWx0ZXIoXG4gICAgICAgIChpY29uKSA9PlxuICAgICAgICAgIGljb24ubm9ybWFsaXplZExhYmVsLmluY2x1ZGVzKG5vcm1hbGl6ZWQpIHx8XG4gICAgICAgICAgbm9ybWFsaXplVGV4dChpY29uLm5hbWUpLmluY2x1ZGVzKG5vcm1hbGl6ZWQpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkSW5jbHVkZUljb24oaWNvbjogSWNvblNlbGVjdG9ySXRlbSk6IGJvb2xlYW4ge1xuICAgIGlmIChTRENfSUNPTl9QSUNLRVJfQkxPQ0tFRF9OQU1FUy5oYXMoaWNvbi5jbGFzc05hbWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLnJlc29sdmVJY29uTGFiZWwoaWNvbik7XG4gICAgY29uc3Qgbm9ybWFsaXplZExhYmVsID0gbm9ybWFsaXplVGV4dChsYWJlbCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVUZXh0KGljb24uY2xhc3NOYW1lKTtcblxuICAgIHJldHVybiAhU0RDX0lDT05fUElDS0VSX0JMT0NLRURfVEVSTVMuc29tZShcbiAgICAgICh0ZXJtKSA9PiBub3JtYWxpemVkTGFiZWwuaW5jbHVkZXModGVybSkgfHwgbm9ybWFsaXplZE5hbWUuaW5jbHVkZXModGVybSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlSWNvblBpY2tlclRleHQoa2V5OiBJY29uUGlja2VyVGV4dEtleSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSBgJHtJQ09OX1BJQ0tFUl9LRVlfUFJFRklYfSR7a2V5fWA7XG4gICAgY29uc3QgdHJhbnNsYXRlZCA9IHRoaXMucmVzb2x2ZVRyYW5zbGF0ZWRWYWx1ZSh0cmFuc2xhdGlvbktleSk7XG5cbiAgICBpZiAodHJhbnNsYXRlZCkge1xuICAgICAgcmV0dXJuIHRyYW5zbGF0ZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIElDT05fUElDS0VSX0RFRkFVTFRfVEVYVFNba2V5XVt0aGlzLmN1cnJlbnRMYW5ndWFnZV07XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVJY29uTGFiZWwoaWNvbjogSWNvblNlbGVjdG9ySXRlbSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSBpY29uLnRyYW5zbGF0aW9uS2V5Py50cmltKCkgPz8gJyc7XG4gICAgY29uc3QgdHJhbnNsYXRlZCA9IHRoaXMucmVzb2x2ZVRyYW5zbGF0ZWRWYWx1ZSh0cmFuc2xhdGlvbktleSk7XG5cbiAgICBpZiAodHJhbnNsYXRlZCkge1xuICAgICAgcmV0dXJuIHRyYW5zbGF0ZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRyYW5zbGF0aW9uS2V5ICYmICF0cmFuc2xhdGlvbktleS5zdGFydHNXaXRoKElDT05fVFJBTlNMQVRJT05fS0VZX1BSRUZJWCkpIHtcbiAgICAgIHJldHVybiB0cmFuc2xhdGlvbktleTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odW1hbml6ZUljb25DbGFzcyhpY29uLmNsYXNzTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVUcmFuc2xhdGVkVmFsdWUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICgha2V5KSB7XG4gICAgICByZXR1cm4gRU1QVFlfSUNPTl9QSUNLRVJfVkFMVUU7XG4gICAgfVxuXG4gICAgY29uc3QgdHJhbnNsYXRlZCA9IFN0cmluZyh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGtleSkgPz8gJycpLnRyaW0oKTtcblxuICAgIGlmICh0cmFuc2xhdGVkICYmIHRyYW5zbGF0ZWQgIT09IGtleSkge1xuICAgICAgcmV0dXJuIHRyYW5zbGF0ZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIElDT05fUElDS0VSX1RSQU5TTEFUSU9OU1t0aGlzLmN1cnJlbnRMYW5ndWFnZV1ba2V5XSA/PyBFTVBUWV9JQ09OX1BJQ0tFUl9WQUxVRTtcbiAgfVxuXG4gIHByaXZhdGUgaHVtYW5pemVJY29uQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBodW1hbml6ZVRleHQoXG4gICAgICBjbGFzc05hbWVcbiAgICAgICAgLnJlcGxhY2UoRk9OVF9BV0VTT01FX0NMQVNTX1JFR0VYLCAnJylcbiAgICAgICAgLnJlcGxhY2UoRk9OVF9BV0VTT01FX1BSRUZJWF9SRUdFWCwgJyAnKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldCBjdXJyZW50TGFuZ3VhZ2UoKTogU3VwcG9ydGVkSWNvblBpY2tlckxhbmd1YWdlIHtcbiAgICBjb25zdCBsYW5nID0gKHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nID8/ICcnKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKGxhbmcuc3RhcnRzV2l0aCgnZW4nKSkge1xuICAgICAgcmV0dXJuICdlbic7XG4gICAgfVxuXG4gICAgaWYgKGxhbmcuc3RhcnRzV2l0aCgnZXMnKSkge1xuICAgICAgcmV0dXJuICdlcyc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdwdCc7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJcIlxuICBbY2xhc3Muc2RjLWljb24tcGlja2VyLS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5zZGMtaWNvbi1waWNrZXItLWludmFsaWRdPVwiaW52YWxpZFwiXG4+XG4gIEBpZiAocmVzb2x2ZWRMYWJlbCkge1xuICAgIDxkaXYgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2xhYmVsLXJvd1wiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19sYWJlbFwiIFtmb3JdPVwidHJpZ2dlcklkXCIgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZCB8fCBudWxsXCI+XG4gICAgICAgIHt7IHJlc29sdmVkTGFiZWwgfX1cbiAgICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19yZXF1aXJlZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPio8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvbGFiZWw+XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRUb29sdGlwKSB7XG4gICAgICAgIDxzZGMtdG9vbHRpcCBbcFRvb2x0aXBdPVwicmVzb2x2ZWRUb29sdGlwXCIgW3Rvb2x0aXBFdmVudF09XCInYm90aCdcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9faW5mby1pY29uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZFRvb2x0aXBcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWluZm8tY2lyY2xlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NkYy10b29sdGlwPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG5cbiAgPGJ1dHRvblxuICAgIFtpZF09XCJ0cmlnZ2VySWRcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwic2RjLWljb24tcGlja2VyX190cmlnZ2VyXCJcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkIHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkIHx8IG51bGxcIlxuICAgIChjbGljayk9XCJvcGVuTW9kYWwoKVwiXG4gID5cbiAgICA8c3BhbiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fdHJpZ2dlci1zd2F0Y2hcIj5cbiAgICAgIEBpZiAodmFsdWUpIHtcbiAgICAgICAgPGkgW2NsYXNzXT1cIidmYXMgJyArIHZhbHVlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tZG93biBzZGMtaWNvbi1waWNrZXJfX3RyaWdnZXItc3dhdGNoLXBsYWNlaG9sZGVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cblxuICAgIDxzcGFuIGNsYXNzPVwic2RjLWljb24tcGlja2VyX190cmlnZ2VyLXNlcFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cblxuICAgIDxzcGFuIGNsYXNzPVwic2RjLWljb24tcGlja2VyX190cmlnZ2VyLXRleHRcIj5cbiAgICAgIEBpZiAodmFsdWUgJiYgc2VsZWN0ZWRJY29uTGFiZWwpIHtcbiAgICAgICAge3sgc2VsZWN0ZWRJY29uTGFiZWwgfX1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fcGxhY2Vob2xkZXJcIj57eyByZXNvbHZlZFBsYWNlaG9sZGVyIH19PC9zcGFuPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgPC9idXR0b24+XG5cbiAgQGlmIChpbnZhbGlkICYmIHJlc29sdmVkRXJyb3JNZXNzYWdlKSB7XG4gICAgPHNtYWxsIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19lcnJvclwiPnt7IHJlc29sdmVkRXJyb3JNZXNzYWdlIH19PC9zbWFsbD5cbiAgfVxuPC9kaXY+XG5cbjxzZGMtbW9kYWxcbiAgW2hlYWRlcl09XCJyZXNvbHZlZE1vZGFsVGl0bGVcIlxuICBbdmlzaWJsZV09XCJtb2RhbE9wZW5cIlxuICBbd2lkdGhdPVwiNjYwXCJcbiAgW2Nsb3NhYmxlXT1cInRydWVcIlxuICBzdHlsZUNsYXNzPVwic2RjLW1vZGFsLS1pY29uLXBpY2tlclwiXG4gIFthcHBlbmRUb0JvZHldPVwidHJ1ZVwiXG4gICh2aXNpYmxlQ2hhbmdlKT1cIm9uTW9kYWxWaXNpYmxlQ2hhbmdlKCRldmVudClcIlxuPlxuICA8ZGl2IGNsYXNzPVwic2RjLWljb24tcGlja2VyX19tb2RhbC1ib2R5XCI+XG4gICAgPGRpdiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fc2VhcmNoLXJvd1wiPlxuICAgICAgPHNkYy1zZWFyY2hib3hcbiAgICAgICAgW3ZhbHVlXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicmVzb2x2ZWRTZWFyY2hQbGFjZWhvbGRlclwiXG4gICAgICAgIFtkZWJvdW5jZVRpbWVNc109XCIyNTBcIlxuICAgICAgICAoZGVib3VuY2VkVmFsdWVDaGFuZ2UpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gICAgICAgIChvbkNsZWFyKT1cIm9uU2VhcmNoKCcnKVwiXG4gICAgICA+PC9zZGMtc2VhcmNoYm94PlxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChwZW5kaW5nVmFsdWUpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX3ByZXZpZXctYmFyXCI+XG4gICAgICAgIDxpIFtjbGFzc109XCInZmFzICcgKyBwZW5kaW5nVmFsdWVcIiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fcHJldmlldy1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLWljb24tcGlja2VyX19wcmV2aWV3LWluZm9cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fcHJldmlldy1sYWJlbFwiPnt7IHBlbmRpbmdJY29uTGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX3ByZXZpZXctY2xhc3NcIj57eyBwZW5kaW5nVmFsdWUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPGRpdiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fY291bnRlclwiPlxuICAgICAgQGlmIChmaWx0ZXJlZEljb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgPHNwYW4+e3sgaWNvbnNGb3VuZENvdW50IH19IHt7IGljb25zRm91bmRUZXh0IH19PC9zcGFuPlxuICAgICAgfSBAZWxzZSBpZiAoIWlzTG9hZGluZykge1xuICAgICAgICA8c3Bhbj57eyBub0ljb25zRm91bmRUZXh0IH19PC9zcGFuPlxuICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChpc0xvYWRpbmcpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2xvYWRpbmdcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtc3Bpbm5lciBmYS1zcGluXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8IS0tIE5PU09OQVI6IHRoaXMgcGlja2VyIG5lZWRzIGEgY3VzdG9tIEFSSUEgbGlzdGJveC9ncmlkIGV4cGVyaWVuY2UgdGhhdCBhIG5hdGl2ZSBzZWxlY3QgY2Fubm90IHByb3ZpZGUgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgICNpY29uR3JpZFxuICAgICAgICBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fZ3JpZFwiXG4gICAgICAgIFthdHRyLnJvbGVdPVwiJ2xpc3Rib3gnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZE1vZGFsVGl0bGVcIlxuICAgICAgICAoc2Nyb2xsKT1cIm9uR3JpZFNjcm9sbCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgQGZvciAoaWNvbiBvZiB2aXNpYmxlSWNvbnM7IHRyYWNrIGljb24ubmFtZSkge1xuICAgICAgICAgIDwhLS0gTk9TT05BUiAtLT5cbiAgICAgICAgICA8IS0tIHRoZSBjdXN0b20gaWNvbiBncmlkIGtlZXBzIG9wdGlvbiBzZW1hbnRpY3Mgb24gdGhlIGZvY3VzYWJsZSBjYXJkIGZvciBrZXlib2FyZCBhbmQgU1Igc3VwcG9ydCAtLT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19jYXJkXCJcbiAgICAgICAgICAgIFtjbGFzcy5zZGMtaWNvbi1waWNrZXJfX2NhcmQtLXNlbGVjdGVkXT1cImlzSWNvblNlbGVjdGVkKGljb24pXCJcbiAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiJ29wdGlvbidcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0ljb25TZWxlY3RlZChpY29uKSA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgaWNvbi5sYWJlbCArICcgLSAnICsgaWNvbi5uYW1lXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEljb24oaWNvbilcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIFtjbGFzc109XCInZmFzICcgKyBpY29uLm5hbWVcIiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fY2FyZC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2NhcmQtbmFtZVwiPnt7IGljb24ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPGRpdiBmb290ZXIgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2Zvb3RlclwiPlxuICAgIDxzZGMtYnV0dG9uXG4gICAgICBbbGFiZWxdPVwiY2FuY2VsVGV4dFwiXG4gICAgICBwcmlvcml0eT1cInNlY29uZGFyeVwiXG4gICAgICAoY2xpY2tlZCk9XCJjYW5jZWxTZWxlY3Rpb24oKVwiXG4gICAgPjwvc2RjLWJ1dHRvbj5cbiAgICA8c2RjLWJ1dHRvblxuICAgICAgW2xhYmVsXT1cImNvbmZpcm1UZXh0XCJcbiAgICAgIHByaW9yaXR5PVwicHJpbWFyeVwiXG4gICAgICBbZGlzYWJsZWRdPVwicGVuZGluZ1ZhbHVlID09PSBudWxsICYmIHZhbHVlID09PSBudWxsXCJcbiAgICAgIChjbGlja2VkKT1cImNvbmZpcm1TZWxlY3Rpb24oKVwiXG4gICAgPjwvc2RjLWJ1dHRvbj5cbiAgPC9kaXY+XG48L3NkYy1tb2RhbD5cbiJdfQ==
@@ -27,11 +27,11 @@ export class InfoSignComponent {
27
27
  return template.replace('{text}', this.resolvedTooltip);
28
28
  }
29
29
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InfoSignComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: InfoSignComponent, isStandalone: true, selector: "sdc-info-sign", inputs: { label: "label", labelParams: "labelParams", tooltip: "tooltip", tooltipParams: "tooltipParams", iconClass: "iconClass", iconAriaLabel: "iconAriaLabel", tooltipPosition: "tooltipPosition", tooltipEvent: "tooltipEvent", inline: "inline" }, ngImport: i0, template: "<span class=\"sdc-info-sign\" [class.sdc-info-sign--inline]=\"inline\">\n @if (resolvedLabel) {\n <span class=\"sdc-info-sign__label\">{{ resolvedLabel }}</span>\n } @else {\n <ng-content></ng-content>\n }\n\n <sdc-tooltip [pTooltip]=\"resolvedTooltip\" [tooltipPosition]=\"tooltipPosition\" [tooltipEvent]=\"tooltipEvent\">\n <button type=\"button\" class=\"sdc-info-sign__icon\" [attr.aria-label]=\"resolvedAriaLabel\">\n <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n</span>\n", styles: [":host{display:inline-flex}.sdc-info-sign{align-items:center;color:inherit;display:inline-flex;gap:.375rem}.sdc-info-sign__label{min-width:0}.sdc-info-sign__icon{align-items:center;background:transparent;border:0;color:var(--sdc-form-tooltip-color, #090909);cursor:help;display:inline-flex;font-size:.95rem;justify-content:center;min-height:1.25rem;min-width:1.25rem;padding:0}.sdc-info-sign__icon:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: InfoSignComponent, isStandalone: true, selector: "sdc-info-sign", inputs: { label: "label", labelParams: "labelParams", tooltip: "tooltip", tooltipParams: "tooltipParams", iconClass: "iconClass", iconAriaLabel: "iconAriaLabel", tooltipPosition: "tooltipPosition", tooltipEvent: "tooltipEvent", inline: "inline" }, ngImport: i0, template: "<span class=\"sdc-info-sign\" [class.sdc-info-sign--inline]=\"inline\">\n @if (resolvedLabel) {\n <span class=\"sdc-info-sign__label\">{{ resolvedLabel }}</span>\n } @else {\n <ng-content></ng-content>\n }\n\n <sdc-tooltip [pTooltip]=\"resolvedTooltip\" [tooltipPosition]=\"tooltipPosition\" [tooltipEvent]=\"tooltipEvent\">\n <button type=\"button\" class=\"sdc-info-sign__icon\" [attr.aria-label]=\"resolvedAriaLabel\">\n <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n</span>\n", styles: [":host{display:inline-flex}.sdc-info-sign{align-items:center;color:inherit;display:inline-flex;gap:.375rem}.sdc-info-sign__label{min-width:0}.sdc-info-sign__icon{align-items:center;background:transparent;border:0;color:var(--sdc-info-sign-icon-color, var(--sdc-form-tooltip-color, #090909));cursor:help;display:inline-flex;font-size:var(--sdc-info-sign-icon-size, .95rem);justify-content:center;min-height:var(--sdc-info-sign-button-height, 1.25rem);min-width:var(--sdc-info-sign-button-width, 1.25rem);padding:0}.sdc-info-sign__icon:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
31
  }
32
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InfoSignComponent, decorators: [{
33
33
  type: Component,
34
- args: [{ selector: 'sdc-info-sign', standalone: true, imports: [CommonModule, TranslateModule, TooltipComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<span class=\"sdc-info-sign\" [class.sdc-info-sign--inline]=\"inline\">\n @if (resolvedLabel) {\n <span class=\"sdc-info-sign__label\">{{ resolvedLabel }}</span>\n } @else {\n <ng-content></ng-content>\n }\n\n <sdc-tooltip [pTooltip]=\"resolvedTooltip\" [tooltipPosition]=\"tooltipPosition\" [tooltipEvent]=\"tooltipEvent\">\n <button type=\"button\" class=\"sdc-info-sign__icon\" [attr.aria-label]=\"resolvedAriaLabel\">\n <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n</span>\n", styles: [":host{display:inline-flex}.sdc-info-sign{align-items:center;color:inherit;display:inline-flex;gap:.375rem}.sdc-info-sign__label{min-width:0}.sdc-info-sign__icon{align-items:center;background:transparent;border:0;color:var(--sdc-form-tooltip-color, #090909);cursor:help;display:inline-flex;font-size:.95rem;justify-content:center;min-height:1.25rem;min-width:1.25rem;padding:0}.sdc-info-sign__icon:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}\n"] }]
34
+ args: [{ selector: 'sdc-info-sign', standalone: true, imports: [CommonModule, TranslateModule, TooltipComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<span class=\"sdc-info-sign\" [class.sdc-info-sign--inline]=\"inline\">\n @if (resolvedLabel) {\n <span class=\"sdc-info-sign__label\">{{ resolvedLabel }}</span>\n } @else {\n <ng-content></ng-content>\n }\n\n <sdc-tooltip [pTooltip]=\"resolvedTooltip\" [tooltipPosition]=\"tooltipPosition\" [tooltipEvent]=\"tooltipEvent\">\n <button type=\"button\" class=\"sdc-info-sign__icon\" [attr.aria-label]=\"resolvedAriaLabel\">\n <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n</span>\n", styles: [":host{display:inline-flex}.sdc-info-sign{align-items:center;color:inherit;display:inline-flex;gap:.375rem}.sdc-info-sign__label{min-width:0}.sdc-info-sign__icon{align-items:center;background:transparent;border:0;color:var(--sdc-info-sign-icon-color, var(--sdc-form-tooltip-color, #090909));cursor:help;display:inline-flex;font-size:var(--sdc-info-sign-icon-size, .95rem);justify-content:center;min-height:var(--sdc-info-sign-button-height, 1.25rem);min-width:var(--sdc-info-sign-button-width, 1.25rem);padding:0}.sdc-info-sign__icon:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}\n"] }]
35
35
  }], propDecorators: { label: [{
36
36
  type: Input
37
37
  }], labelParams: [{
@@ -52,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
52
52
  }], inline: [{
53
53
  type: Input
54
54
  }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1zaWduLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvaW5mby1zaWduL2luZm8tc2lnbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2luZm8tc2lnbi9pbmZvLXNpZ24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHbEgsT0FBTyxFQUFFLCtCQUErQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBV2hFLE1BQU0sT0FBTyxpQkFBaUI7SUFDWCxTQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFN0MsS0FBSyxDQUFVO0lBQ2YsV0FBVyxDQUEyQjtJQUNwQixPQUFPLENBQVU7SUFDbkMsYUFBYSxDQUEyQjtJQUN4QyxTQUFTLEdBQUcsNEJBQTRCLENBQUM7SUFDekMsYUFBYSxHQUFHLDRCQUE0QixDQUFDO0lBQzdDLGVBQWUsR0FBb0IsT0FBTyxDQUFDO0lBQzNDLFlBQVksR0FBaUIsTUFBTSxDQUFDO0lBQ3BDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFFdkIsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sK0JBQStCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE1BQU0sUUFBUSxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdFLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFELENBQUM7d0dBeEJVLGlCQUFpQjs0RkFBakIsaUJBQWlCLGlVQ25COUIsMGhCQWFBLDZoQkRBWSxZQUFZLDhCQUFFLGVBQWUsK0JBQUUsZ0JBQWdCOzs0RkFNOUMsaUJBQWlCO2tCQVQ3QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLG1CQUd6Qyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFROzhCQUtoQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDcUIsT0FBTztzQkFBakMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBJTkZPX1NJR05fREVGQVVMVF9BUklBX0xBQkVMLCBJTkZPX1NJR05fREVGQVVMVF9JQ09OX0NMQVNTIH0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvaW5mby1zaWduLmNvbnN0JztcbmltcG9ydCB0eXBlIHsgSW5mb1NpZ25UcmFuc2xhdGVQYXJhbXMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2luZm8tc2lnbi50eXBlJztcbmltcG9ydCB0eXBlIHsgVG9vbHRpcEV2ZW50LCBUb29sdGlwUG9zaXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3Rvb2x0aXAudHlwZSc7XG5pbXBvcnQgeyByZXNvbHZlTnVsbGFibGVUcmFuc2xhdGFibGVUZXh0LCByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvaTE4bi51dGlsJztcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLWluZm8tc2lnbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgVG9vbHRpcENvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmZvLXNpZ24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaW5mby1zaWduLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIEluZm9TaWduQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsUGFyYW1zPzogSW5mb1NpZ25UcmFuc2xhdGVQYXJhbXM7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHRvb2x0aXAhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRvb2x0aXBQYXJhbXM/OiBJbmZvU2lnblRyYW5zbGF0ZVBhcmFtcztcbiAgQElucHV0KCkgaWNvbkNsYXNzID0gSU5GT19TSUdOX0RFRkFVTFRfSUNPTl9DTEFTUztcbiAgQElucHV0KCkgaWNvbkFyaWFMYWJlbCA9IElORk9fU0lHTl9ERUZBVUxUX0FSSUFfTEFCRUw7XG4gIEBJbnB1dCgpIHRvb2x0aXBQb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0gJ3JpZ2h0JztcbiAgQElucHV0KCkgdG9vbHRpcEV2ZW50OiBUb29sdGlwRXZlbnQgPSAnYm90aCc7XG4gIEBJbnB1dCgpIGlubGluZSA9IHRydWU7XG5cbiAgZ2V0IHJlc29sdmVkVG9vbHRpcCgpOiBzdHJpbmcge1xuICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy50b29sdGlwLCAnJywgdGhpcy50b29sdGlwUGFyYW1zKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZExhYmVsKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiByZXNvbHZlTnVsbGFibGVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmxhYmVsLCAnJywgdGhpcy5sYWJlbFBhcmFtcyk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRBcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmljb25BcmlhTGFiZWwpO1xuICAgIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKCd7dGV4dH0nLCB0aGlzLnJlc29sdmVkVG9vbHRpcCk7XG4gIH1cbn1cbiIsIjxzcGFuIGNsYXNzPVwic2RjLWluZm8tc2lnblwiIFtjbGFzcy5zZGMtaW5mby1zaWduLS1pbmxpbmVdPVwiaW5saW5lXCI+XG4gIEBpZiAocmVzb2x2ZWRMYWJlbCkge1xuICAgIDxzcGFuIGNsYXNzPVwic2RjLWluZm8tc2lnbl9fbGFiZWxcIj57eyByZXNvbHZlZExhYmVsIH19PC9zcGFuPlxuICB9IEBlbHNlIHtcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIH1cblxuICA8c2RjLXRvb2x0aXAgW3BUb29sdGlwXT1cInJlc29sdmVkVG9vbHRpcFwiIFt0b29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uXCIgW3Rvb2x0aXBFdmVudF09XCJ0b29sdGlwRXZlbnRcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNkYy1pbmZvLXNpZ25fX2ljb25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkQXJpYUxhYmVsXCI+XG4gICAgICA8aSBbY2xhc3NdPVwiaWNvbkNsYXNzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICA8L3NkYy10b29sdGlwPlxuPC9zcGFuPlxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1zaWduLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvaW5mby1zaWduL2luZm8tc2lnbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2luZm8tc2lnbi9pbmZvLXNpZ24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHbEgsT0FBTyxFQUFFLCtCQUErQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBV2hFLE1BQU0sT0FBTyxpQkFBaUI7SUFDWCxTQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFN0MsS0FBSyxDQUFVO0lBQ2YsV0FBVyxDQUEyQjtJQUNwQixPQUFPLENBQVU7SUFDbkMsYUFBYSxDQUEyQjtJQUN4QyxTQUFTLEdBQUcsNEJBQTRCLENBQUM7SUFDekMsYUFBYSxHQUFHLDRCQUE0QixDQUFDO0lBQzdDLGVBQWUsR0FBb0IsT0FBTyxDQUFDO0lBQzNDLFlBQVksR0FBaUIsTUFBTSxDQUFDO0lBQ3BDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFFdkIsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sK0JBQStCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE1BQU0sUUFBUSxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdFLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFELENBQUM7d0dBeEJVLGlCQUFpQjs0RkFBakIsaUJBQWlCLGlVQ25COUIsMGhCQWFBLHFxQkRBWSxZQUFZLDhCQUFFLGVBQWUsK0JBQUUsZ0JBQWdCOzs0RkFNOUMsaUJBQWlCO2tCQVQ3QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLG1CQUd6Qyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFROzhCQUtoQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDcUIsT0FBTztzQkFBakMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBJTkZPX1NJR05fREVGQVVMVF9BUklBX0xBQkVMLCBJTkZPX1NJR05fREVGQVVMVF9JQ09OX0NMQVNTIH0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvaW5mby1zaWduLmNvbnN0JztcbmltcG9ydCB0eXBlIHsgSW5mb1NpZ25UcmFuc2xhdGVQYXJhbXMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2luZm8tc2lnbi50eXBlJztcbmltcG9ydCB0eXBlIHsgVG9vbHRpcEV2ZW50LCBUb29sdGlwUG9zaXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3Rvb2x0aXAudHlwZSc7XG5pbXBvcnQgeyByZXNvbHZlTnVsbGFibGVUcmFuc2xhdGFibGVUZXh0LCByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvaTE4bi51dGlsJztcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLWluZm8tc2lnbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgVG9vbHRpcENvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmZvLXNpZ24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaW5mby1zaWduLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIEluZm9TaWduQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsUGFyYW1zPzogSW5mb1NpZ25UcmFuc2xhdGVQYXJhbXM7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHRvb2x0aXAhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRvb2x0aXBQYXJhbXM/OiBJbmZvU2lnblRyYW5zbGF0ZVBhcmFtcztcbiAgQElucHV0KCkgaWNvbkNsYXNzID0gSU5GT19TSUdOX0RFRkFVTFRfSUNPTl9DTEFTUztcbiAgQElucHV0KCkgaWNvbkFyaWFMYWJlbCA9IElORk9fU0lHTl9ERUZBVUxUX0FSSUFfTEFCRUw7XG4gIEBJbnB1dCgpIHRvb2x0aXBQb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0gJ3JpZ2h0JztcbiAgQElucHV0KCkgdG9vbHRpcEV2ZW50OiBUb29sdGlwRXZlbnQgPSAnYm90aCc7XG4gIEBJbnB1dCgpIGlubGluZSA9IHRydWU7XG5cbiAgZ2V0IHJlc29sdmVkVG9vbHRpcCgpOiBzdHJpbmcge1xuICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy50b29sdGlwLCAnJywgdGhpcy50b29sdGlwUGFyYW1zKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZExhYmVsKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiByZXNvbHZlTnVsbGFibGVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmxhYmVsLCAnJywgdGhpcy5sYWJlbFBhcmFtcyk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRBcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmljb25BcmlhTGFiZWwpO1xuICAgIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKCd7dGV4dH0nLCB0aGlzLnJlc29sdmVkVG9vbHRpcCk7XG4gIH1cbn1cbiIsIjxzcGFuIGNsYXNzPVwic2RjLWluZm8tc2lnblwiIFtjbGFzcy5zZGMtaW5mby1zaWduLS1pbmxpbmVdPVwiaW5saW5lXCI+XG4gIEBpZiAocmVzb2x2ZWRMYWJlbCkge1xuICAgIDxzcGFuIGNsYXNzPVwic2RjLWluZm8tc2lnbl9fbGFiZWxcIj57eyByZXNvbHZlZExhYmVsIH19PC9zcGFuPlxuICB9IEBlbHNlIHtcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIH1cblxuICA8c2RjLXRvb2x0aXAgW3BUb29sdGlwXT1cInJlc29sdmVkVG9vbHRpcFwiIFt0b29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uXCIgW3Rvb2x0aXBFdmVudF09XCJ0b29sdGlwRXZlbnRcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNkYy1pbmZvLXNpZ25fX2ljb25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkQXJpYUxhYmVsXCI+XG4gICAgICA8aSBbY2xhc3NdPVwiaWNvbkNsYXNzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICA8L3NkYy10b29sdGlwPlxuPC9zcGFuPlxuIl19
@@ -180,7 +180,7 @@ export class ListComponent {
180
180
  return [];
181
181
  }
182
182
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
183
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ListComponent, isStandalone: true, selector: "sdc-list", inputs: { loading: "loading", items: "items", data: "data", actions: "actions", buttons: "buttons" }, outputs: { action: "action" }, ngImport: i0, template: "<section\n class=\"sdc-list\"\n [attr.aria-label]=\"'platform.datacore.accessibility.list_view' | translate\"\n [attr.aria-busy]=\"isLoading()\"\n>\n <sdc-loading-state\n class=\"sdc-list-loading-state\"\n [loading]=\"isLoading()\"\n [blockWindow]=\"false\"\n [indicator]=\"'dots'\"\n [blockDelayMs]=\"0\"\n [unblockDelayMs]=\"0\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading_items' | translate\"\n >\n @if (!hasItems()) {\n <output\n class=\"sdc-list-hidden\"\n [attr.aria-label]=\"\n isLoading()\n ? ('platform.datacore.accessibility.loading_items' | translate)\n : ('platform.datacore.accessibility.no_items_found' | translate)\n \"\n ></output>\n }\n\n @if (showSkeleton()) {\n <ul class=\"sdc-list-items\" [attr.aria-label]=\"'platform.datacore.accessibility.loading_items' | translate\">\n @for (i of skeletonRows(); track i) {\n <li class=\"sdc-list-row sdc-list-row--skeleton\">\n <article class=\"sdc-list-skeleton\" aria-hidden=\"true\"></article>\n </li>\n }\n </ul>\n } @else if (hasItems()) {\n <ul class=\"sdc-list-items\">\n @for (item of dataItems(); track item.id) {\n <li class=\"sdc-list-row\">\n <div class=\"sdc-list-content\">\n <h3 class=\"sdc-list-title\">{{ itemTitle(item) | translate }}</h3>\n <p class=\"sdc-list-subtitle\">{{ itemSubtitle(item) | translate }}</p>\n </div>\n\n @if (dataActions().length > 0) {\n <div\n class=\"sdc-list-actions\"\n [attr.aria-label]=\"\n ('platform.datacore.accessibility.item_actions' | translate) + ': ' + (itemTitle(item) | translate)\n \"\n >\n @for (action of dataActions(); track actionKey(action)) {\n <sdc-button\n (onClick)=\"onActionClick(action, item)\"\n [disabled]=\"actionDisabled(action)\"\n [icon]=\"actionIcon(action)\"\n [label]=\"actionLabel(action)\"\n [priority]=\"actionPriority(action)\"\n [attr.aria-label]=\"(actionLabel(action) | translate) + ' - ' + (itemTitle(item) | translate)\"\n [attr.disabled]=\"actionDisabledAttr(action)\"\n [attr.icon]=\"actionIcon(action) || null\"\n [attr.label]=\"actionLabel(action)\"\n [attr.priority]=\"actionPriorityAttr(action)\"\n [attr.severity]=\"actionPriorityAttr(action)\"\n [attr.data-key]=\"actionKey(action)\"\n >\n </sdc-button>\n }\n </div>\n }\n </li>\n }\n </ul>\n } @else {\n <div class=\"sdc-list-empty-wrap\">\n <sdc-empty-state\n id=\"my-empty-state\"\n iconClass=\"fa fa-inbox\"\n [title]=\"'platform.datacore.empty_title'\"\n [description]=\"'platform.datacore.empty_message'\"\n >\n </sdc-empty-state>\n </div>\n }\n </sdc-loading-state>\n</section>\n", styles: [":host{display:block}.sdc-list,.sdc-list-loading-state{display:block;width:100%}.sdc-list-items{list-style:none;margin:0;padding:0}.sdc-list-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--sdc-list-row-height, 5.25rem);padding:1rem;background:var(--p-surface-0, #fff);border-inline:1px solid var(--sdc-formfield-default-border);border-block:0;border-radius:0;box-sizing:border-box}.sdc-list-row:first-child{border-block-start:1px solid var(--sdc-formfield-default-border);border-start-start-radius:var(--sdc-formfield-border-radius);border-start-end-radius:var(--sdc-formfield-border-radius)}.sdc-list-row:not(:last-child){border-block-end:1px solid var(--sdc-formfield-default-border)}.sdc-list-row:last-child{border-block-end:1px solid var(--sdc-formfield-default-border);border-end-end-radius:var(--sdc-formfield-border-radius);border-end-start-radius:var(--sdc-formfield-border-radius)}.sdc-list-row:only-child{border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius)}.sdc-list-row--skeleton{padding:1rem}.sdc-list-skeleton{width:100%;height:calc(var(--sdc-list-row-height, 5.25rem) - 2rem);background:transparent;border:0;box-sizing:border-box}.sdc-list-content{flex:1 1 auto;min-width:0}.sdc-list-title{font-weight:600;font-size:1rem;line-height:1.25;color:#1f2937;margin:0 0 .25rem}.sdc-list-subtitle{font-size:.75rem;color:#6b7280;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-list-actions{display:flex;align-items:center;gap:.5rem;margin-left:1rem;flex-shrink:0}::ng-deep .sdc-list-actions sdc-button,::ng-deep .sdc-list-actions button{min-width:24px;min-height:24px}.sdc-list-empty-wrap{width:100%;min-height:var(--sdc-list-empty-min-height, 12rem);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--p-surface-0, #fff)}@supports selector(:focus-visible){.sdc-list-row:has(:focus-visible){outline:2px solid currentColor;outline-offset:2px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["onClick"] }, { kind: "component", type: EmptyStateComponent, selector: "sdc-empty-state", inputs: ["id", "title", "variant", "titleParams", "iconClass", "description", "descriptionParams", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "primaryActionLabelParams", "secondaryActionLabel", "secondaryActionLabelParams", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "component", type: LoadingStateComponent, selector: "sdc-loading-state", inputs: ["indicator", "id", "blockWindow", "blockDelayMs", "unblockDelayMs", "loading"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
183
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ListComponent, isStandalone: true, selector: "sdc-list", inputs: { loading: "loading", items: "items", data: "data", actions: "actions", buttons: "buttons" }, outputs: { action: "action" }, ngImport: i0, template: "<section\n class=\"sdc-list\"\n [attr.aria-label]=\"'platform.datacore.accessibility.list_view' | translate\"\n [attr.aria-busy]=\"isLoading()\"\n>\n <sdc-loading-state\n class=\"sdc-list-loading-state\"\n [loading]=\"isLoading()\"\n [blockWindow]=\"false\"\n [indicator]=\"'dots'\"\n [blockDelayMs]=\"0\"\n [unblockDelayMs]=\"0\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading_items' | translate\"\n >\n @if (!hasItems()) {\n <output\n class=\"sdc-list-hidden\"\n [attr.aria-label]=\"\n isLoading()\n ? ('platform.datacore.accessibility.loading_items' | translate)\n : ('platform.datacore.accessibility.no_items_found' | translate)\n \"\n ></output>\n }\n\n @if (showSkeleton()) {\n <ul class=\"sdc-list-items\" [attr.aria-label]=\"'platform.datacore.accessibility.loading_items' | translate\">\n @for (i of skeletonRows(); track i) {\n <li class=\"sdc-list-row sdc-list-row--skeleton\">\n <article class=\"sdc-list-skeleton\" aria-hidden=\"true\"></article>\n </li>\n }\n </ul>\n } @else if (hasItems()) {\n <ul class=\"sdc-list-items\">\n @for (item of dataItems(); track item.id) {\n <li class=\"sdc-list-row\">\n <div class=\"sdc-list-content\">\n <h3 class=\"sdc-list-title\">{{ itemTitle(item) | translate }}</h3>\n <p class=\"sdc-list-subtitle\">{{ itemSubtitle(item) | translate }}</p>\n </div>\n\n @if (dataActions().length > 0) {\n <div\n class=\"sdc-list-actions\"\n [attr.aria-label]=\"\n ('platform.datacore.accessibility.item_actions' | translate) + ': ' + (itemTitle(item) | translate)\n \"\n >\n @for (action of dataActions(); track actionKey(action)) {\n <sdc-button\n (onClick)=\"onActionClick(action, item)\"\n [disabled]=\"actionDisabled(action)\"\n [icon]=\"actionIcon(action)\"\n [label]=\"actionLabel(action)\"\n [priority]=\"actionPriority(action)\"\n [attr.aria-label]=\"(actionLabel(action) | translate) + ' - ' + (itemTitle(item) | translate)\"\n [attr.disabled]=\"actionDisabledAttr(action)\"\n [attr.icon]=\"actionIcon(action) || null\"\n [attr.label]=\"actionLabel(action)\"\n [attr.priority]=\"actionPriorityAttr(action)\"\n [attr.severity]=\"actionPriorityAttr(action)\"\n [attr.data-key]=\"actionKey(action)\"\n >\n </sdc-button>\n }\n </div>\n }\n </li>\n }\n </ul>\n } @else {\n <div class=\"sdc-list-empty-wrap\">\n <sdc-empty-state\n id=\"my-empty-state\"\n iconClass=\"fa fa-inbox\"\n [title]=\"'platform.datacore.empty_title'\"\n [description]=\"'platform.datacore.empty_message'\"\n >\n </sdc-empty-state>\n </div>\n }\n </sdc-loading-state>\n</section>\n", styles: [":host{display:block}.sdc-list,.sdc-list-loading-state{display:block;width:100%}.sdc-list-items{list-style:none;margin:0;padding:0}.sdc-list-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--sdc-list-row-height, 5.25rem);padding:1rem;background:var(--p-surface-0, #fff);border-inline:1px solid var(--sdc-formfield-default-border);border-block:0;border-radius:0;box-sizing:border-box}.sdc-list-row:first-child{border-block-start:1px solid var(--sdc-formfield-default-border);border-start-start-radius:var(--sdc-formfield-border-radius);border-start-end-radius:var(--sdc-formfield-border-radius)}.sdc-list-row:not(:last-child){border-block-end:1px solid var(--sdc-formfield-default-border)}.sdc-list-row:last-child{border-block-end:1px solid var(--sdc-formfield-default-border);border-end-end-radius:var(--sdc-formfield-border-radius);border-end-start-radius:var(--sdc-formfield-border-radius)}.sdc-list-row:only-child{border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius)}.sdc-list-row--skeleton{padding:1rem}.sdc-list-skeleton{width:100%;height:calc(var(--sdc-list-row-height, 5.25rem) - 2rem);background:transparent;border:0;box-sizing:border-box}.sdc-list-content{flex:1 1 auto;min-width:0}.sdc-list-title{font-weight:600;font-size:1rem;line-height:1.25;color:#1f2937;margin:0 0 .25rem}.sdc-list-subtitle{font-size:.75rem;color:#6b7280;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-list-actions{display:flex;align-items:center;gap:.5rem;margin-left:1rem;flex-shrink:0}::ng-deep .sdc-list-actions sdc-button,::ng-deep .sdc-list-actions button{min-width:24px;min-height:24px}.sdc-list-empty-wrap{width:100%;min-height:var(--sdc-list-empty-min-height, 12rem);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--p-surface-0, #fff)}@supports selector(:focus-visible){.sdc-list-row:has(:focus-visible){outline:2px solid currentColor;outline-offset:2px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: EmptyStateComponent, selector: "sdc-empty-state", inputs: ["id", "title", "variant", "titleParams", "iconClass", "description", "descriptionParams", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "primaryActionLabelParams", "secondaryActionLabel", "secondaryActionLabelParams", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "component", type: LoadingStateComponent, selector: "sdc-loading-state", inputs: ["indicator", "id", "blockWindow", "blockDelayMs", "unblockDelayMs", "loading"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
184
184
  }
185
185
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListComponent, decorators: [{
186
186
  type: Component,