@seniorsistemas/data-seniorx-core 3.1.0 → 3.2.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.
- package/core/constants/accordion.const.d.ts +4 -4
- package/core/constants/alert.const.d.ts +1 -1
- package/core/constants/autocomplete.const.d.ts +2 -2
- package/core/constants/badge.const.d.ts +1 -1
- package/core/constants/card.const.d.ts +8 -8
- package/core/constants/chips.const.d.ts +2 -2
- package/core/constants/code-editor.const.d.ts +4 -4
- package/core/constants/collapse-link.const.d.ts +2 -2
- package/core/constants/color-picker.const.d.ts +2 -2
- package/core/constants/combobox.const.d.ts +3 -3
- package/core/constants/context-selector.const.d.ts +1 -1
- package/core/constants/editable-overlay.const.d.ts +4 -4
- package/core/constants/fileupload.const.d.ts +3 -3
- package/core/constants/gantt.const.d.ts +1 -1
- package/core/constants/help-popover.const.d.ts +2 -2
- package/core/constants/hyperlink.const.d.ts +2 -2
- package/core/constants/info-sign.const.d.ts +1 -1
- package/core/constants/inline-edit.const.d.ts +4 -4
- package/core/constants/kanban.const.d.ts +2 -2
- package/core/constants/list.const.d.ts +1 -1
- package/core/constants/modalc.const.d.ts +1 -1
- package/core/constants/navigation-button.const.d.ts +3 -3
- package/core/constants/object-card.const.d.ts +2 -2
- package/core/constants/picklist.const.d.ts +2 -2
- package/core/constants/pin-code-field.const.d.ts +3 -3
- package/core/constants/popover.const.d.ts +1 -1
- package/core/constants/progressbar.const.d.ts +1 -1
- package/core/constants/radio.const.d.ts +2 -2
- package/core/constants/rating-scale.const.d.ts +1 -1
- package/core/constants/sidebar.const.d.ts +1 -1
- package/core/constants/slider.const.d.ts +1 -1
- package/core/constants/split-button.const.d.ts +2 -2
- package/core/constants/spotlight.const.d.ts +8 -8
- package/core/constants/star-rating.const.d.ts +2 -2
- package/core/constants/tab.const.d.ts +3 -3
- package/core/constants/table.const.d.ts +1 -0
- package/core/constants/thumbnails.const.d.ts +4 -4
- package/core/constants/token-list.const.d.ts +1 -1
- package/core/types/table-column.type.d.ts +4 -0
- package/core/types/table-options.type.d.ts +3 -0
- package/core/types/table-shared.type.d.ts +1 -1
- package/core/types/tile-select.type.d.ts +17 -0
- package/esm2022/core/constants/accordion.const.mjs +5 -5
- package/esm2022/core/constants/alert.const.mjs +2 -2
- package/esm2022/core/constants/autocomplete.const.mjs +3 -3
- package/esm2022/core/constants/badge.const.mjs +2 -2
- package/esm2022/core/constants/card.const.mjs +9 -9
- package/esm2022/core/constants/chips.const.mjs +3 -3
- package/esm2022/core/constants/code-editor.const.mjs +5 -5
- package/esm2022/core/constants/collapse-link.const.mjs +3 -3
- package/esm2022/core/constants/color-picker.const.mjs +3 -3
- package/esm2022/core/constants/combobox.const.mjs +7 -4
- package/esm2022/core/constants/context-selector.const.mjs +2 -2
- package/esm2022/core/constants/editable-overlay.const.mjs +5 -5
- package/esm2022/core/constants/fileupload.const.mjs +4 -4
- package/esm2022/core/constants/gantt.const.mjs +2 -2
- package/esm2022/core/constants/help-popover.const.mjs +3 -3
- package/esm2022/core/constants/hyperlink.const.mjs +3 -3
- package/esm2022/core/constants/info-sign.const.mjs +2 -2
- package/esm2022/core/constants/inline-edit.const.mjs +5 -5
- package/esm2022/core/constants/kanban.const.mjs +3 -3
- package/esm2022/core/constants/list.const.mjs +2 -2
- package/esm2022/core/constants/loading-state.const.mjs +2 -2
- package/esm2022/core/constants/modalc.const.mjs +2 -2
- package/esm2022/core/constants/navigation-button.const.mjs +4 -4
- package/esm2022/core/constants/object-card.const.mjs +3 -3
- package/esm2022/core/constants/picklist.const.mjs +3 -3
- package/esm2022/core/constants/pin-code-field.const.mjs +4 -4
- package/esm2022/core/constants/popover.const.mjs +8 -2
- package/esm2022/core/constants/progressbar.const.mjs +2 -2
- package/esm2022/core/constants/radio.const.mjs +3 -3
- package/esm2022/core/constants/rating-scale.const.mjs +2 -2
- package/esm2022/core/constants/sidebar.const.mjs +2 -2
- package/esm2022/core/constants/slider.const.mjs +2 -2
- package/esm2022/core/constants/split-button.const.mjs +3 -3
- package/esm2022/core/constants/spotlight.const.mjs +9 -9
- package/esm2022/core/constants/star-rating.const.mjs +3 -3
- package/esm2022/core/constants/tab.const.mjs +4 -4
- package/esm2022/core/constants/table.const.mjs +4 -3
- package/esm2022/core/constants/thumbnails.const.mjs +5 -5
- package/esm2022/core/constants/token-list.const.mjs +2 -2
- package/esm2022/core/data/fontawesome-v5-solid-icons.data.mjs +2 -2
- package/esm2022/core/types/table-column.type.mjs +1 -1
- package/esm2022/core/types/table-options.type.mjs +1 -1
- package/esm2022/core/types/table-shared.type.mjs +1 -1
- package/esm2022/core/types/tile-select.type.mjs +8 -0
- package/esm2022/core/utils/combobox.util.mjs +6 -6
- package/esm2022/features/accordion/components/accordion-item/accordion-item.component.mjs +3 -3
- package/esm2022/features/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2022/features/bignumber-input/bignumber-input.component.mjs +1 -1
- package/esm2022/features/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/features/button/button.component.mjs +7 -3
- package/esm2022/features/card-list/card/card.component.mjs +2 -2
- package/esm2022/features/card-list/card-list.component.mjs +7 -3
- package/esm2022/features/chat/chat.component.mjs +4 -4
- package/esm2022/features/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/features/checkbox-list/checkbox-list.component.mjs +3 -3
- package/esm2022/features/chips/chips.component.mjs +3 -3
- package/esm2022/features/code-editor/code-editor.component.mjs +23 -5
- package/esm2022/features/color-picker/color-picker.component.mjs +3 -3
- package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +3 -3
- package/esm2022/features/currency/currency.component.mjs +1 -1
- package/esm2022/features/editable-overlay/editable-overlay.component.mjs +3 -3
- package/esm2022/features/empty-state/empty-state.component.mjs +1 -1
- package/esm2022/features/fileupload/fileupload.component.mjs +4 -4
- package/esm2022/features/filters/filters.component.mjs +3 -3
- package/esm2022/features/help-popover/help-popover.component.mjs +2 -2
- package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
- package/esm2022/features/icon-picker/icon-picker.component.mjs +1 -1
- package/esm2022/features/image-cropper/image-cropper.component.mjs +9 -9
- package/esm2022/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
- package/esm2022/features/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +2 -2
- package/esm2022/features/list/list.component.mjs +7 -3
- package/esm2022/features/loading-state/loading-state.component.mjs +5 -5
- package/esm2022/features/localized-number-input/localized-number-input.component.mjs +4 -4
- package/esm2022/features/lookup/lookup.component.mjs +5 -5
- package/esm2022/features/mask/mask.component.mjs +4 -4
- package/esm2022/features/modal/modal.component.mjs +3 -3
- package/esm2022/features/modalc/modalc.component.mjs +3 -3
- package/esm2022/features/number-input/number-input.component.mjs +32 -5
- package/esm2022/features/object-card/components/object-card-field/object-card-field.component.mjs +1 -1
- package/esm2022/features/object-card/components/object-card-main/object-card-main.component.mjs +1 -1
- package/esm2022/features/object-card/object-card.component.mjs +2 -2
- package/esm2022/features/paginator/paginator.component.mjs +3 -3
- package/esm2022/features/panel/panel.component.mjs +6 -6
- package/esm2022/features/password-strength/password-strength.component.mjs +6 -6
- package/esm2022/features/picklist/picklist.component.mjs +6 -4
- package/esm2022/features/pin-code-field/pin-code-field.component.mjs +3 -3
- package/esm2022/features/profile-picture-picker/profile-picture-picker.component.mjs +11 -11
- package/esm2022/features/rating-scale/rating-scale.component.mjs +3 -3
- package/esm2022/features/row-card-list/row-card/row-card.component.mjs +100 -7
- package/esm2022/features/row-card-list/row-card-list.component.mjs +7 -3
- package/esm2022/features/scaffold/scaffold.component.mjs +3 -3
- package/esm2022/features/searchbox/searchbox.component.mjs +4 -4
- package/esm2022/features/select-button/select-button.component.mjs +5 -5
- package/esm2022/features/sidebar/sidebar.component.mjs +3 -3
- package/esm2022/features/slider/slider.component.mjs +3 -3
- package/esm2022/features/speech-recognition/speech-recognition.component.mjs +12 -12
- package/esm2022/features/spotlight/spotlight.component.mjs +2 -2
- package/esm2022/features/star-rating/star-rating.component.mjs +3 -3
- package/esm2022/features/switch/switch.component.mjs +4 -4
- package/esm2022/features/table/components/table-actions-menu.component.mjs +2 -2
- package/esm2022/features/table/components/table-cell-content.component.mjs +16 -10
- package/esm2022/features/table/table.component.mjs +46 -16
- package/esm2022/features/table/utils/table-visual.util.mjs +25 -7
- package/esm2022/features/textarea/textarea.component.mjs +3 -3
- package/esm2022/features/textbox/textbox.component.mjs +3 -3
- package/esm2022/features/tile-select/tile-select.component.mjs +80 -0
- package/esm2022/features/toast/toast.component.mjs +3 -3
- package/esm2022/features/tree/components/tree-node-item/tree-node-item.component.mjs +6 -6
- package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2 -2
- package/esm2022/locales/en.json +4760 -4749
- package/esm2022/locales/es-CO.json +4760 -4749
- package/esm2022/locales/pt.json +4760 -4749
- package/esm2022/providers/features.provider.mjs +3 -1
- package/esm2022/public-api.mjs +3 -1
- package/features/button/button.component.d.ts +2 -1
- package/features/card-list/card-list.component.d.ts +3 -1
- package/features/code-editor/code-editor.component.d.ts +2 -1
- package/features/help-popover/help-popover.component.d.ts +1 -1
- package/features/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +4 -4
- package/features/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +2 -2
- package/features/list/list.component.d.ts +3 -1
- package/features/navigation-button/navigation-button.component.d.ts +3 -3
- package/features/number-input/number-input.component.d.ts +7 -1
- package/features/panel/panel.component.d.ts +1 -1
- package/features/picklist/picklist.component.d.ts +3 -2
- package/features/pin-code-field/pin-code-field.component.d.ts +3 -3
- package/features/row-card-list/row-card/row-card.component.d.ts +15 -2
- package/features/row-card-list/row-card-list.component.d.ts +3 -1
- package/features/spotlight/spotlight.component.d.ts +8 -8
- package/features/table/components/table-cell-content.component.d.ts +4 -1
- package/features/table/table.component.d.ts +9 -2
- package/features/table/utils/table-visual.util.d.ts +5 -0
- package/features/textarea/textarea.component.d.ts +1 -1
- package/features/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +3 -3
- package/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +1 -1
- package/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +1 -1
- package/features/tile-select/tile-select.component.d.ts +21 -0
- package/fesm2022/seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-fK3MF8KJ.mjs +4 -0
- package/fesm2022/{seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-B7opbaVg.mjs.map → seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-fK3MF8KJ.mjs.map} +1 -1
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs +14859 -14534
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
- package/package.json +57 -22
- package/public-api.d.ts +3 -0
- package/src/locales/en.json +4760 -4749
- package/src/locales/es-CO.json +4760 -4749
- package/src/locales/pt.json +4760 -4749
- package/styles/sdc-global-variables.scss +2 -2
- package/styles.css +2 -2
- package/fesm2022/seniorsistemas-data-seniorx-core-fontawesome-v5-solid-icons.data-B7opbaVg.mjs +0 -4
|
@@ -29,6 +29,10 @@ export class NumberInputComponent extends InputsComponent {
|
|
|
29
29
|
infoTooltipEvent = 'both';
|
|
30
30
|
addonLeft = null;
|
|
31
31
|
addonRight = null;
|
|
32
|
+
// Opt-in (default false, preserva o visual atual dos consumidores existentes) - setas de
|
|
33
|
+
// incremento/decremento ao lado direito do input, pedido explicitamente para os campos
|
|
34
|
+
// numéricos do Sara Studio (mínimo/máximo do medidor, limites, itens por página).
|
|
35
|
+
showSpinners = false;
|
|
32
36
|
pasteRejected = new EventEmitter();
|
|
33
37
|
displayValue = '';
|
|
34
38
|
separators = resolveNumberInputSeparators(this.translate.currentLang);
|
|
@@ -67,7 +71,7 @@ export class NumberInputComponent extends InputsComponent {
|
|
|
67
71
|
if (this.placeholder) {
|
|
68
72
|
return this.resolvedPlaceholder;
|
|
69
73
|
}
|
|
70
|
-
return resolveTranslatableText(this.translate, 'platform.datacore.
|
|
74
|
+
return resolveTranslatableText(this.translate, 'platform.datacore.accessibility_number_input');
|
|
71
75
|
}
|
|
72
76
|
get resolvedPlaceholder() {
|
|
73
77
|
if (this.placeholder) {
|
|
@@ -156,6 +160,27 @@ export class NumberInputComponent extends InputsComponent {
|
|
|
156
160
|
this.pasteRejected.emit(pastedText);
|
|
157
161
|
}
|
|
158
162
|
}
|
|
163
|
+
get canIncrement() {
|
|
164
|
+
return !this.disabled && (this.max === undefined || (this.value ?? 0) < this.max);
|
|
165
|
+
}
|
|
166
|
+
get canDecrement() {
|
|
167
|
+
return !this.disabled && (this.min === undefined || (this.value ?? 0) > this.min);
|
|
168
|
+
}
|
|
169
|
+
increment() {
|
|
170
|
+
this.applyStep(1);
|
|
171
|
+
}
|
|
172
|
+
decrement() {
|
|
173
|
+
this.applyStep(-1);
|
|
174
|
+
}
|
|
175
|
+
applyStep(direction) {
|
|
176
|
+
if (this.disabled) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
const stepAmount = Number(this.resolvedStep) || 1;
|
|
180
|
+
this.commitValue(this.normalizeExternalValue((this.value ?? 0) + direction * stepAmount));
|
|
181
|
+
this.syncDisplayValue();
|
|
182
|
+
this.onTouched();
|
|
183
|
+
}
|
|
159
184
|
normalizeExternalValue(value) {
|
|
160
185
|
if (typeof value !== 'number' || !Number.isFinite(value)) {
|
|
161
186
|
return null;
|
|
@@ -177,13 +202,13 @@ export class NumberInputComponent extends InputsComponent {
|
|
|
177
202
|
this.cdr.markForCheck();
|
|
178
203
|
}
|
|
179
204
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
180
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: NumberInputComponent, isStandalone: true, selector: "sdc-number-input", inputs: { precision: "precision", scale: "scale", decimalSeparator: "decimalSeparator", thousandsSeparator: "thousandsSeparator", alignTo: "alignTo", allowNegative: "allowNegative", min: "min", max: "max", step: "step", infoTooltip: "infoTooltip", infoTooltipPosition: "infoTooltipPosition", infoTooltipEvent: "infoTooltipEvent", addonLeft: "addonLeft", addonRight: "addonRight" }, outputs: { pasteRejected: "pasteRejected" }, providers: [
|
|
205
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: NumberInputComponent, isStandalone: true, selector: "sdc-number-input", inputs: { precision: "precision", scale: "scale", decimalSeparator: "decimalSeparator", thousandsSeparator: "thousandsSeparator", alignTo: "alignTo", allowNegative: "allowNegative", min: "min", max: "max", step: "step", infoTooltip: "infoTooltip", infoTooltipPosition: "infoTooltipPosition", infoTooltipEvent: "infoTooltipEvent", addonLeft: "addonLeft", addonRight: "addonRight", showSpinners: "showSpinners" }, outputs: { pasteRejected: "pasteRejected" }, providers: [
|
|
181
206
|
{
|
|
182
207
|
provide: NG_VALUE_ACCESSOR,
|
|
183
208
|
useExisting: forwardRef(() => NumberInputComponent),
|
|
184
209
|
multi: true
|
|
185
210
|
}
|
|
186
|
-
], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"sdc-number-input\">\n @if (labelKey() || hasTooltip) {\n <div class=\"sdc-number-input__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-number-input__label\">\n <span class=\"sdc-number-input__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sr-only\">\n {{ 'platform.datacore.
|
|
211
|
+
], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"sdc-number-input\">\n @if (labelKey() || hasTooltip) {\n <div class=\"sdc-number-input__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-number-input__label\">\n <span class=\"sdc-number-input__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sr-only\">\n {{ 'platform.datacore.accessibility_required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n @if (hasTooltip) {\n <sdc-tooltip\n class=\"sdc-number-input__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-number-input__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n }\n </div>\n }\n\n <div\n class=\"sdc-number-input__control\"\n [class.sdc-number-input__control--invalid]=\"invalid\"\n [class.sdc-number-input__control--disabled]=\"disabled\"\n >\n @if (addonLeft) {\n <span class=\"sdc-number-input__addon sdc-number-input__addon--left\">{{ addonLeft }}</span>\n }\n\n <input\n class=\"sdc-number-input__input\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n (input)=\"onNativeInput($event)\"\n (paste)=\"onPaste($event)\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [ngStyle]=\"getInputStyle()\"\n [class.sdc-number-input__input--align-right]=\"alignTo === 'right'\"\n [class.sdc-number-input__input--invalid]=\"invalid\"\n [placeholder]=\"resolvedPlaceholder\"\n [required]=\"required\"\n [value]=\"displayValue\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.inputmode]=\"inputMode\"\n [attr.maxlength]=\"resolvedMaxLength\"\n [attr.min]=\"min ?? null\"\n [attr.max]=\"max ?? null\"\n [attr.step]=\"resolvedStep\"\n [attr.role]=\"'spinbutton'\"\n [attr.aria-label]=\"resolvedAriaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-valuenow]=\"value ?? null\"\n [attr.aria-valuemin]=\"min ?? null\"\n [attr.aria-valuemax]=\"max ?? null\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n />\n\n @if (showSpinners) {\n <div class=\"sdc-number-input__spinners\">\n <button\n type=\"button\"\n class=\"sdc-number-input__spinner sdc-number-input__spinner--up\"\n tabindex=\"-1\"\n [disabled]=\"!canIncrement\"\n [attr.aria-label]=\"'platform.datacore.accessibility_number_input_increment' | translate\"\n (click)=\"increment()\"\n >\n <i class=\"fas fa-chevron-up\" aria-hidden=\"true\"></i>\n </button>\n <button\n type=\"button\"\n class=\"sdc-number-input__spinner sdc-number-input__spinner--down\"\n tabindex=\"-1\"\n [disabled]=\"!canDecrement\"\n [attr.aria-label]=\"'platform.datacore.accessibility_number_input_decrement' | translate\"\n (click)=\"decrement()\"\n >\n <i class=\"fas fa-chevron-down\" aria-hidden=\"true\"></i>\n </button>\n </div>\n }\n\n @if (addonRight) {\n <span class=\"sdc-number-input__addon sdc-number-input__addon--right\">{{ addonRight }}</span>\n }\n </div>\n\n @if (messageKey()) {\n <small\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n </div>\n", styles: [".sdc-number-input__control .sdc-number-input__input{flex:1 1 auto;min-width:0}.sdc-number-input .sdc-number-input__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-number-input .sdc-number-input__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-number-input .sdc-number-input__label-text{display:inline-flex;align-items:center}.sdc-number-input .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-number-input .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-number-input .sdc-number-input__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-number-input .sdc-number-input__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-number-input .sdc-number-input__input{width:100%;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important;padding:0 var(--sdc-form-input-padding-x)!important;color:var(--p-text-color, #111827)!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important;box-sizing:border-box!important;border:0!important;border-radius:0!important;background-color:transparent!important}.sdc-number-input .sdc-number-input__input--align-right{text-align:right}.sdc-number-input .sdc-number-input__input:focus,.sdc-number-input .sdc-number-input__input:focus-visible{outline:none}.sdc-number-input .sdc-number-input__input:disabled{cursor:not-allowed!important}.sdc-number-input__control{display:flex;align-items:stretch;border:1px solid var(--sdc-formfield-default-border, #ced4da);border-radius:var(--sdc-formfield-border-radius, 4px);background-color:var(--sdc-formfield-default-bg, #fff);box-sizing:border-box;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-number-input__control:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-number-input__control--invalid{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))}.sdc-number-input__control--invalid:focus-within{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-number-input__control--disabled{background-color:var(--sdc-formfield-disabled-bg, #e9ecef);cursor:not-allowed}.sdc-number-input__addon{display:flex;align-items:center;justify-content:center;padding:0 .75rem;background:var(--sdc-formfield-addon-bg, #f8f9fa);color:var(--sdc-button-icon-default, #333333);font-size:.875rem;white-space:nowrap;min-width:2.5rem;box-sizing:border-box;flex:0 0 auto}.sdc-number-input__addon--left{border-right:1px solid var(--sdc-formfield-default-border, #ced4da);border-radius:var(--sdc-formfield-border-radius, 4px) 0 0 var(--sdc-formfield-border-radius, 4px)}.sdc-number-input__addon--right{border-left:1px solid var(--sdc-formfield-default-border, #ced4da);border-radius:0 var(--sdc-formfield-border-radius, 4px) var(--sdc-formfield-border-radius, 4px) 0}.sdc-number-input__spinners{display:flex;flex-direction:column;flex:0 0 auto;border-left:1px solid var(--sdc-formfield-default-border, #ced4da)}.sdc-number-input__spinner{display:flex;align-items:center;justify-content:center;flex:1 1 50%;width:1.75rem;padding:0;border:0;background:transparent;color:var(--sdc-button-icon-default, #333333);font-size:.625rem;cursor:pointer}.sdc-number-input__spinner--up{border-bottom:1px solid var(--sdc-formfield-default-border, #ced4da)}.sdc-number-input__spinner:disabled{cursor:not-allowed;color:var(--sdc-text-muted, #9ca3af)}.sdc-number-input__spinner:hover:not(:disabled){background:var(--sdc-formfield-addon-bg, #f8f9fa)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled", "allowHtml"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
187
212
|
}
|
|
188
213
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputComponent, decorators: [{
|
|
189
214
|
type: Component,
|
|
@@ -193,7 +218,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
193
218
|
useExisting: forwardRef(() => NumberInputComponent),
|
|
194
219
|
multi: true
|
|
195
220
|
}
|
|
196
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-number-input\">\n @if (labelKey() || hasTooltip) {\n <div class=\"sdc-number-input__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-number-input__label\">\n <span class=\"sdc-number-input__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sr-only\">\n {{ 'platform.datacore.
|
|
221
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-number-input\">\n @if (labelKey() || hasTooltip) {\n <div class=\"sdc-number-input__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-number-input__label\">\n <span class=\"sdc-number-input__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sr-only\">\n {{ 'platform.datacore.accessibility_required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n @if (hasTooltip) {\n <sdc-tooltip\n class=\"sdc-number-input__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-number-input__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n }\n </div>\n }\n\n <div\n class=\"sdc-number-input__control\"\n [class.sdc-number-input__control--invalid]=\"invalid\"\n [class.sdc-number-input__control--disabled]=\"disabled\"\n >\n @if (addonLeft) {\n <span class=\"sdc-number-input__addon sdc-number-input__addon--left\">{{ addonLeft }}</span>\n }\n\n <input\n class=\"sdc-number-input__input\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n (input)=\"onNativeInput($event)\"\n (paste)=\"onPaste($event)\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [ngStyle]=\"getInputStyle()\"\n [class.sdc-number-input__input--align-right]=\"alignTo === 'right'\"\n [class.sdc-number-input__input--invalid]=\"invalid\"\n [placeholder]=\"resolvedPlaceholder\"\n [required]=\"required\"\n [value]=\"displayValue\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.inputmode]=\"inputMode\"\n [attr.maxlength]=\"resolvedMaxLength\"\n [attr.min]=\"min ?? null\"\n [attr.max]=\"max ?? null\"\n [attr.step]=\"resolvedStep\"\n [attr.role]=\"'spinbutton'\"\n [attr.aria-label]=\"resolvedAriaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n [attr.aria-valuenow]=\"value ?? null\"\n [attr.aria-valuemin]=\"min ?? null\"\n [attr.aria-valuemax]=\"max ?? null\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n />\n\n @if (showSpinners) {\n <div class=\"sdc-number-input__spinners\">\n <button\n type=\"button\"\n class=\"sdc-number-input__spinner sdc-number-input__spinner--up\"\n tabindex=\"-1\"\n [disabled]=\"!canIncrement\"\n [attr.aria-label]=\"'platform.datacore.accessibility_number_input_increment' | translate\"\n (click)=\"increment()\"\n >\n <i class=\"fas fa-chevron-up\" aria-hidden=\"true\"></i>\n </button>\n <button\n type=\"button\"\n class=\"sdc-number-input__spinner sdc-number-input__spinner--down\"\n tabindex=\"-1\"\n [disabled]=\"!canDecrement\"\n [attr.aria-label]=\"'platform.datacore.accessibility_number_input_decrement' | translate\"\n (click)=\"decrement()\"\n >\n <i class=\"fas fa-chevron-down\" aria-hidden=\"true\"></i>\n </button>\n </div>\n }\n\n @if (addonRight) {\n <span class=\"sdc-number-input__addon sdc-number-input__addon--right\">{{ addonRight }}</span>\n }\n </div>\n\n @if (messageKey()) {\n <small\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n </div>\n", styles: [".sdc-number-input__control .sdc-number-input__input{flex:1 1 auto;min-width:0}.sdc-number-input .sdc-number-input__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-number-input .sdc-number-input__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-number-input .sdc-number-input__label-text{display:inline-flex;align-items:center}.sdc-number-input .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-number-input .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-number-input .sdc-number-input__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-number-input .sdc-number-input__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-number-input .sdc-number-input__input{width:100%;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important;padding:0 var(--sdc-form-input-padding-x)!important;color:var(--p-text-color, #111827)!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important;box-sizing:border-box!important;border:0!important;border-radius:0!important;background-color:transparent!important}.sdc-number-input .sdc-number-input__input--align-right{text-align:right}.sdc-number-input .sdc-number-input__input:focus,.sdc-number-input .sdc-number-input__input:focus-visible{outline:none}.sdc-number-input .sdc-number-input__input:disabled{cursor:not-allowed!important}.sdc-number-input__control{display:flex;align-items:stretch;border:1px solid var(--sdc-formfield-default-border, #ced4da);border-radius:var(--sdc-formfield-border-radius, 4px);background-color:var(--sdc-formfield-default-bg, #fff);box-sizing:border-box;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-number-input__control:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-number-input__control--invalid{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))}.sdc-number-input__control--invalid:focus-within{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-number-input__control--disabled{background-color:var(--sdc-formfield-disabled-bg, #e9ecef);cursor:not-allowed}.sdc-number-input__addon{display:flex;align-items:center;justify-content:center;padding:0 .75rem;background:var(--sdc-formfield-addon-bg, #f8f9fa);color:var(--sdc-button-icon-default, #333333);font-size:.875rem;white-space:nowrap;min-width:2.5rem;box-sizing:border-box;flex:0 0 auto}.sdc-number-input__addon--left{border-right:1px solid var(--sdc-formfield-default-border, #ced4da);border-radius:var(--sdc-formfield-border-radius, 4px) 0 0 var(--sdc-formfield-border-radius, 4px)}.sdc-number-input__addon--right{border-left:1px solid var(--sdc-formfield-default-border, #ced4da);border-radius:0 var(--sdc-formfield-border-radius, 4px) var(--sdc-formfield-border-radius, 4px) 0}.sdc-number-input__spinners{display:flex;flex-direction:column;flex:0 0 auto;border-left:1px solid var(--sdc-formfield-default-border, #ced4da)}.sdc-number-input__spinner{display:flex;align-items:center;justify-content:center;flex:1 1 50%;width:1.75rem;padding:0;border:0;background:transparent;color:var(--sdc-button-icon-default, #333333);font-size:.625rem;cursor:pointer}.sdc-number-input__spinner--up{border-bottom:1px solid var(--sdc-formfield-default-border, #ced4da)}.sdc-number-input__spinner:disabled{cursor:not-allowed;color:var(--sdc-text-muted, #9ca3af)}.sdc-number-input__spinner:hover:not(:disabled){background:var(--sdc-formfield-addon-bg, #f8f9fa)}\n"] }]
|
|
197
222
|
}], ctorParameters: () => [], propDecorators: { precision: [{
|
|
198
223
|
type: Input
|
|
199
224
|
}], scale: [{
|
|
@@ -222,7 +247,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
222
247
|
type: Input
|
|
223
248
|
}], addonRight: [{
|
|
224
249
|
type: Input
|
|
250
|
+
}], showSpinners: [{
|
|
251
|
+
type: Input
|
|
225
252
|
}], pasteRejected: [{
|
|
226
253
|
type: Output
|
|
227
254
|
}] } });
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUNMLDhCQUE4QixFQUM5QixtQ0FBbUMsRUFDbkMsOEJBQThCLEVBQzlCLDBCQUEwQixFQUMzQixNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUd6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLDZCQUE2QixFQUM3QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6QixxQkFBcUIsRUFDckIsNEJBQTRCLEVBQzVCLHdCQUF3QixFQUN6QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7O0FBa0JoRSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBdUI7SUFDOUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hDLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNyQyxhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUzQyxTQUFTLEdBQUcsOEJBQThCLENBQUM7SUFDM0MsS0FBSyxHQUFHLDBCQUEwQixDQUFDO0lBQ25DLGdCQUFnQixDQUFVO0lBQzFCLGtCQUFrQixDQUFVO0lBQzVCLE9BQU8sR0FBeUIsOEJBQThCLENBQUM7SUFDL0QsYUFBYSxHQUFHLG1DQUFtQyxDQUFDO0lBQ3BELEdBQUcsQ0FBVTtJQUNiLEdBQUcsQ0FBVTtJQUNiLElBQUksQ0FBbUI7SUFDdkIsV0FBVyxHQUFrQixJQUFJLENBQUM7SUFDbEMsbUJBQW1CLEdBQW9CLE9BQU8sQ0FBQztJQUMvQyxnQkFBZ0IsR0FBaUIsTUFBTSxDQUFDO0lBQ3hDLFNBQVMsR0FBa0IsSUFBSSxDQUFDO0lBQ2hDLFVBQVUsR0FBa0IsSUFBSSxDQUFDO0lBRWhDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRXJELFlBQVksR0FBRyxFQUFFLENBQUM7SUFFVixVQUFVLEdBQTBCLDRCQUE0QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0YsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQix3QkFBd0IsR0FBRyxLQUFLLENBQUM7SUFDakMsMEJBQTBCLEdBQUcsS0FBSyxDQUFDO0lBRTNDO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVRLFVBQVUsQ0FBQyxLQUFvQjtRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQztRQUN6RixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxZQUFZLEtBQUssU0FBUyxDQUFDO1FBQzdGLENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDbEMsQ0FBQztRQUVELE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixPQUFPLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCxPQUFPLDJCQUEyQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDOUUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBRUQsT0FBTyxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE1BQU0sVUFBVSxHQUFHLDZCQUE2QixDQUM5QyxJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxhQUFhLEVBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FDdEIsQ0FBQztRQUVGLElBQUksT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVk7UUFDeEIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQWlDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQ3ZELGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU87WUFDekMsU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUztTQUN0QixDQUFDLENBQUM7UUFFSCxJQUFJLFNBQVMsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDL0IsTUFBTSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBRTlCLE1BQU0sTUFBTSxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsQ0FBQzthQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLHNCQUFzQixDQUN4QyxJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUNyQixLQUFLLENBQ04sQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFFckIsTUFBTSxNQUFNLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekUsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDO2FBQU0sSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBcUI7UUFDM0IsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlELElBQUksc0JBQXNCLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzVELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxLQUFnQztRQUM3RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6RCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLHlCQUF5QixDQUM5QixLQUFLLEVBQ0wsSUFBSSxDQUFDLGFBQWEsRUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyxHQUFHLENBQ1QsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsTUFBTSxnQkFBZ0IsR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWxGLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEIsT0FBTyxFQUFFLElBQUksQ0FBQyx3QkFBd0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsT0FBTztZQUNsSCxLQUFLLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLO1NBQ3JILENBQUM7SUFDSixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxzQkFBc0IsQ0FDeEMsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FDdEIsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzt3R0FwT1Usb0JBQW9COzRGQUFwQixvQkFBb0IsMGVBVnBCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbkQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLHNFQ3JESCx5akdBNEZBLHF0SERoRFksWUFBWSxpTkFBRSxXQUFXLDhCQUFFLG1CQUFtQiw4QkFBRSxlQUFlLDRGQUFFLGdCQUFnQjs7NEZBYWhGLG9CQUFvQjtrQkFoQmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLGFBR2pGO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTt3REFPaEMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBOVU1CRVJfSU5QVVRfREVGQVVMVF9BTElHTk1FTlQsXG4gIE5VTUJFUl9JTlBVVF9ERUZBVUxUX0FMTE9XX05FR0FUSVZFLFxuICBOVU1CRVJfSU5QVVRfREVGQVVMVF9QUkVDSVNJT04sXG4gIE5VTUJFUl9JTlBVVF9ERUZBVUxUX1NDQUxFXG59IGZyb20gJy4uLy4uL2NvcmUvY29uc3RhbnRzL251bWJlci1pbnB1dC5jb25zdCc7XG5pbXBvcnQgeyBJbnB1dHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2RpcmVjdGl2ZXMvaW5wdXRzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgdHlwZSB7IE51bWJlcklucHV0QWxpZ25tZW50LCBOdW1iZXJJbnB1dFNlcGFyYXRvcnMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL251bWJlci1pbnB1dC50eXBlJztcbmltcG9ydCB0eXBlIHsgVG9vbHRpcEV2ZW50LCBUb29sdGlwUG9zaXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3Rvb2x0aXAudHlwZSc7XG5pbXBvcnQgeyByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvaTE4bi51dGlsJztcbmltcG9ydCB7XG4gIGJ1aWxkTnVtYmVySW5wdXRQbGFjZWhvbGRlcixcbiAgY2FsY3VsYXRlTnVtYmVySW5wdXRNYXhMZW5ndGgsXG4gIGNvdW50TnVtYmVySW5wdXREaWdpdHMsXG4gIGZvcm1hdE51bWJlcklucHV0VmFsdWUsXG4gIG5vcm1hbGl6ZU51bWJlcklucHV0VmFsdWUsXG4gIHBhcnNlTnVtYmVySW5wdXRWYWx1ZSxcbiAgcmVzb2x2ZU51bWJlcklucHV0U2VwYXJhdG9ycyxcbiAgc2FuaXRpemVOdW1iZXJJbnB1dFZhbHVlXG59IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvbnVtYmVyLWlucHV0LnV0aWwnO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtbnVtYmVyLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgVG9vbHRpcENvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbnVtYmVyLWlucHV0LmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOdW1iZXJJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlcklucHV0Q29tcG9uZW50IGV4dGVuZHMgSW5wdXRzQ29tcG9uZW50PG51bWJlcj4gaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBASW5wdXQoKSBwcmVjaXNpb24gPSBOVU1CRVJfSU5QVVRfREVGQVVMVF9QUkVDSVNJT047XG4gIEBJbnB1dCgpIHNjYWxlID0gTlVNQkVSX0lOUFVUX0RFRkFVTFRfU0NBTEU7XG4gIEBJbnB1dCgpIGRlY2ltYWxTZXBhcmF0b3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRob3VzYW5kc1NlcGFyYXRvcj86IHN0cmluZztcbiAgQElucHV0KCkgYWxpZ25UbzogTnVtYmVySW5wdXRBbGlnbm1lbnQgPSBOVU1CRVJfSU5QVVRfREVGQVVMVF9BTElHTk1FTlQ7XG4gIEBJbnB1dCgpIGFsbG93TmVnYXRpdmUgPSBOVU1CRVJfSU5QVVRfREVGQVVMVF9BTExPV19ORUdBVElWRTtcbiAgQElucHV0KCkgbWluPzogbnVtYmVyO1xuICBASW5wdXQoKSBtYXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHN0ZXA/OiBudW1iZXIgfCBzdHJpbmc7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBQb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0gJ3JpZ2h0JztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBFdmVudDogVG9vbHRpcEV2ZW50ID0gJ2JvdGgnO1xuICBASW5wdXQoKSBhZGRvbkxlZnQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBhZGRvblJpZ2h0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBAT3V0cHV0KCkgcGFzdGVSZWplY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGRpc3BsYXlWYWx1ZSA9ICcnO1xuXG4gIHByaXZhdGUgc2VwYXJhdG9yczogTnVtYmVySW5wdXRTZXBhcmF0b3JzID0gcmVzb2x2ZU51bWJlcklucHV0U2VwYXJhdG9ycyh0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyk7XG4gIHByaXZhdGUgZm9jdXNlZCA9IGZhbHNlO1xuICBwcml2YXRlIGV4cGxpY2l0RGVjaW1hbFNlcGFyYXRvciA9IGZhbHNlO1xuICBwcml2YXRlIGV4cGxpY2l0VGhvdXNhbmRzU2VwYXJhdG9yID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZWZyZXNoU2VwYXJhdG9ycygpO1xuICAgICAgICB0aGlzLnN5bmNEaXNwbGF5VmFsdWUoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5ub3JtYWxpemVFeHRlcm5hbFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnN5bmNEaXNwbGF5VmFsdWUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZGVjaW1hbFNlcGFyYXRvciddKSB7XG4gICAgICB0aGlzLmV4cGxpY2l0RGVjaW1hbFNlcGFyYXRvciA9IGNoYW5nZXNbJ2RlY2ltYWxTZXBhcmF0b3InXS5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1sndGhvdXNhbmRzU2VwYXJhdG9yJ10pIHtcbiAgICAgIHRoaXMuZXhwbGljaXRUaG91c2FuZHNTZXBhcmF0b3IgPSBjaGFuZ2VzWyd0aG91c2FuZHNTZXBhcmF0b3InXS5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB0aGlzLnJlZnJlc2hTZXBhcmF0b3JzKCk7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMubm9ybWFsaXplRXh0ZXJuYWxWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLnN5bmNEaXNwbGF5VmFsdWUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubGFiZWxLZXkoKSkge1xuICAgICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmxhYmVsS2V5KCkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXNvbHZlZFBsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubnVtYmVyX2lucHV0Jyk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMucGxhY2Vob2xkZXIpO1xuICAgIH1cblxuICAgIHJldHVybiBidWlsZE51bWJlcklucHV0UGxhY2Vob2xkZXIodGhpcy5zYWZlU2NhbGUsIHRoaXMuc2VwYXJhdG9ycy5kZWNpbWFsKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZFN0ZXAoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zdGVwICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zdGVwICE9PSBudWxsICYmIFN0cmluZyh0aGlzLnN0ZXApLnRyaW0oKSkge1xuICAgICAgcmV0dXJuIFN0cmluZyh0aGlzLnN0ZXApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNhZmVTY2FsZSA8PSAwKSB7XG4gICAgICByZXR1cm4gJzEnO1xuICAgIH1cblxuICAgIHJldHVybiBgMC4keycwJy5yZXBlYXQoTWF0aC5tYXgoMCwgdGhpcy5zYWZlU2NhbGUgLSAxKSl9MWA7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRNYXhMZW5ndGgoKTogbnVtYmVyIHtcbiAgICBjb25zdCBjYWxjdWxhdGVkID0gY2FsY3VsYXRlTnVtYmVySW5wdXRNYXhMZW5ndGgoXG4gICAgICB0aGlzLnNhZmVQcmVjaXNpb24sXG4gICAgICB0aGlzLnNhZmVTY2FsZSxcbiAgICAgIHRoaXMuYWxsb3dOZWdhdGl2ZSxcbiAgICAgIHRoaXMuc2VwYXJhdG9ycy5kZWNpbWFsLFxuICAgICAgdGhpcy5zZXBhcmF0b3JzLmdyb3VwXG4gICAgKTtcblxuICAgIGlmICh0eXBlb2YgdGhpcy5tYXhsZW5ndGggPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gTWF0aC5taW4odGhpcy5tYXhsZW5ndGgsIGNhbGN1bGF0ZWQpO1xuICAgIH1cblxuICAgIHJldHVybiBjYWxjdWxhdGVkO1xuICB9XG5cbiAgZ2V0IGlucHV0TW9kZSgpOiAnbnVtZXJpYycgfCAnZGVjaW1hbCcge1xuICAgIHJldHVybiB0aGlzLnNhZmVTY2FsZSA+IDAgPyAnZGVjaW1hbCcgOiAnbnVtZXJpYyc7XG4gIH1cblxuICBnZXQgaGFzVG9vbHRpcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmluZm9Ub29sdGlwO1xuICB9XG5cbiAgZ2V0IHNhZmVTY2FsZSgpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1heCgwLCBNYXRoLm1pbih0aGlzLnNjYWxlLCB0aGlzLnNhZmVQcmVjaXNpb24pKTtcbiAgfVxuXG4gIGdldCBzYWZlUHJlY2lzaW9uKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWF4KDEsIE51bWJlci5pc0Zpbml0ZSh0aGlzLnByZWNpc2lvbikgPyBNYXRoLnRydW5jKHRoaXMucHJlY2lzaW9uKSA6IE5VTUJFUl9JTlBVVF9ERUZBVUxUX1BSRUNJU0lPTik7XG4gIH1cblxuICBvbk5hdGl2ZUlucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbDtcbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNhbml0aXplZCA9IHNhbml0aXplTnVtYmVySW5wdXRWYWx1ZSh0YXJnZXQudmFsdWUsIHtcbiAgICAgIGFsbG93TmVnYXRpdmU6IHRoaXMuYWxsb3dOZWdhdGl2ZSxcbiAgICAgIGRlY2ltYWxTZXBhcmF0b3I6IHRoaXMuc2VwYXJhdG9ycy5kZWNpbWFsLFxuICAgICAgcHJlY2lzaW9uOiB0aGlzLnNhZmVQcmVjaXNpb24sXG4gICAgICBzY2FsZTogdGhpcy5zYWZlU2NhbGVcbiAgICB9KTtcblxuICAgIGlmIChzYW5pdGl6ZWQgIT09IHRhcmdldC52YWx1ZSkge1xuICAgICAgdGFyZ2V0LnZhbHVlID0gc2FuaXRpemVkO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gc2FuaXRpemVkO1xuXG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VOdW1iZXJJbnB1dFZhbHVlKHRoaXMuZGlzcGxheVZhbHVlLCB0aGlzLnNlcGFyYXRvcnMpO1xuICAgIGlmIChwYXJzZWQuZW1wdHkpIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUobnVsbCk7XG4gICAgfSBlbHNlIGlmIChwYXJzZWQuY29tcGxldGUgJiYgcGFyc2VkLnZhbHVlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMubm9ybWFsaXplRXh0ZXJuYWxWYWx1ZShwYXJzZWQudmFsdWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gZm9ybWF0TnVtYmVySW5wdXRWYWx1ZShcbiAgICAgIHRoaXMudmFsdWUsXG4gICAgICB0aGlzLnNhZmVTY2FsZSxcbiAgICAgIHRoaXMuc2VwYXJhdG9ycy5kZWNpbWFsLFxuICAgICAgdGhpcy5zZXBhcmF0b3JzLmdyb3VwLFxuICAgICAgZmFsc2VcbiAgICApO1xuICB9XG5cbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VOdW1iZXJJbnB1dFZhbHVlKHRoaXMuZGlzcGxheVZhbHVlLCB0aGlzLnNlcGFyYXRvcnMpO1xuICAgIGlmIChwYXJzZWQuZW1wdHkpIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUobnVsbCk7XG4gICAgfSBlbHNlIGlmIChwYXJzZWQudmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy5ub3JtYWxpemVFeHRlcm5hbFZhbHVlKHBhcnNlZC52YWx1ZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICB0aGlzLnN5bmNEaXNwbGF5VmFsdWUoKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwYXN0ZWRUZXh0ID0gZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dCcpID8/ICcnO1xuICAgIGlmIChjb3VudE51bWJlcklucHV0RGlnaXRzKHBhc3RlZFRleHQpID4gdGhpcy5zYWZlUHJlY2lzaW9uKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLnBhc3RlUmVqZWN0ZWQuZW1pdChwYXN0ZWRUZXh0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZUV4dGVybmFsVmFsdWUodmFsdWU6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpOiBudW1iZXIgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJyB8fCAhTnVtYmVyLmlzRmluaXRlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vcm1hbGl6ZU51bWJlcklucHV0VmFsdWUoXG4gICAgICB2YWx1ZSxcbiAgICAgIHRoaXMuc2FmZVByZWNpc2lvbixcbiAgICAgIHRoaXMuc2FmZVNjYWxlLFxuICAgICAgdGhpcy5hbGxvd05lZ2F0aXZlLFxuICAgICAgdGhpcy5taW4sXG4gICAgICB0aGlzLm1heFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hTZXBhcmF0b3JzKCk6IHZvaWQge1xuICAgIGNvbnN0IGxvY2FsZVNlcGFyYXRvcnMgPSByZXNvbHZlTnVtYmVySW5wdXRTZXBhcmF0b3JzKHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nKTtcblxuICAgIHRoaXMuc2VwYXJhdG9ycyA9IHtcbiAgICAgIGRlY2ltYWw6IHRoaXMuZXhwbGljaXREZWNpbWFsU2VwYXJhdG9yICYmIHRoaXMuZGVjaW1hbFNlcGFyYXRvciA/IHRoaXMuZGVjaW1hbFNlcGFyYXRvciA6IGxvY2FsZVNlcGFyYXRvcnMuZGVjaW1hbCxcbiAgICAgIGdyb3VwOiB0aGlzLmV4cGxpY2l0VGhvdXNhbmRzU2VwYXJhdG9yICYmIHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yID8gdGhpcy50aG91c2FuZHNTZXBhcmF0b3IgOiBsb2NhbGVTZXBhcmF0b3JzLmdyb3VwXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3luY0Rpc3BsYXlWYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb2N1c2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBmb3JtYXROdW1iZXJJbnB1dFZhbHVlKFxuICAgICAgdGhpcy52YWx1ZSxcbiAgICAgIHRoaXMuc2FmZVNjYWxlLFxuICAgICAgdGhpcy5zZXBhcmF0b3JzLmRlY2ltYWwsXG4gICAgICB0aGlzLnNlcGFyYXRvcnMuZ3JvdXBcbiAgICApO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLW51bWJlci1pbnB1dFwiPlxuICBAaWYgKGxhYmVsS2V5KCkgfHwgaGFzVG9vbHRpcCkge1xuICAgIDxkaXYgY2xhc3M9XCJzZGMtbnVtYmVyLWlucHV0X19sYWJlbC1yb3dcIj5cbiAgICAgIEBpZiAobGFiZWxLZXkoKSkge1xuICAgICAgICA8bGFiZWwgW2Zvcl09XCJpZGVudGl0eS5pZFwiIGNsYXNzPVwic2RjLW51bWJlci1pbnB1dF9fbGFiZWxcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1udW1iZXItaW5wdXRfX2xhYmVsLXRleHRcIj5cbiAgICAgICAgICAgIHt7IGxhYmVsS2V5KCkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIEBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZC1maWVsZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPio8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPlxuICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnJlcXVpcmVkX2ZpZWxkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgfVxuICAgICAgQGlmIChoYXNUb29sdGlwKSB7XG4gICAgICAgIDxzZGMtdG9vbHRpcFxuICAgICAgICAgIGNsYXNzPVwic2RjLW51bWJlci1pbnB1dF9faW5mby10b29sdGlwLXdyYXBcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJpbmZvVG9vbHRpcFwiXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJpbmZvVG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgICBbdG9vbHRpcEV2ZW50XT1cImluZm9Ub29sdGlwRXZlbnRcIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWluZm8tY2lyY2xlIHNkYy1udW1iZXItaW5wdXRfX2luZm8tdG9vbHRpcC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8L3NkYy10b29sdGlwPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2RjLW51bWJlci1pbnB1dF9fY29udHJvbFwiXG4gICAgW2NsYXNzLnNkYy1udW1iZXItaW5wdXRfX2NvbnRyb2wtLWludmFsaWRdPVwiaW52YWxpZFwiXG4gICAgW2NsYXNzLnNkYy1udW1iZXItaW5wdXRfX2NvbnRyb2wtLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgPlxuICAgIEBpZiAoYWRkb25MZWZ0KSB7XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy1udW1iZXItaW5wdXRfX2FkZG9uIHNkYy1udW1iZXItaW5wdXRfX2FkZG9uLS1sZWZ0XCI+e3sgYWRkb25MZWZ0IH19PC9zcGFuPlxuICAgIH1cblxuICAgIDxpbnB1dFxuICAgICAgY2xhc3M9XCJzZGMtbnVtYmVyLWlucHV0X19pbnB1dFwiXG4gICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgIChpbnB1dCk9XCJvbk5hdGl2ZUlucHV0KCRldmVudClcIlxuICAgIChwYXN0ZSk9XCJvblBhc3RlKCRldmVudClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2lkXT1cImlkZW50aXR5LmlkXCJcbiAgICBbbmFtZV09XCJpZGVudGl0eS5uYW1lXCJcbiAgICBbbmdDbGFzc109XCJnZXRJbnZhbGlkQ2xhc3MoKVwiXG4gICAgW25nU3R5bGVdPVwiZ2V0SW5wdXRTdHlsZSgpXCJcbiAgICBbY2xhc3Muc2RjLW51bWJlci1pbnB1dF9faW5wdXQtLWFsaWduLXJpZ2h0XT1cImFsaWduVG8gPT09ICdyaWdodCdcIlxuICAgIFtjbGFzcy5zZGMtbnVtYmVyLWlucHV0X19pbnB1dC0taW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicmVzb2x2ZWRQbGFjZWhvbGRlclwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbdmFsdWVdPVwiZGlzcGxheVZhbHVlXCJcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgIFthdHRyLmlucHV0bW9kZV09XCJpbnB1dE1vZGVcIlxuICAgIFthdHRyLm1heGxlbmd0aF09XCJyZXNvbHZlZE1heExlbmd0aFwiXG4gICAgW2F0dHIubWluXT1cIm1pbiA/PyBudWxsXCJcbiAgICBbYXR0ci5tYXhdPVwibWF4ID8/IG51bGxcIlxuICAgIFthdHRyLnN0ZXBdPVwicmVzb2x2ZWRTdGVwXCJcbiAgICBbYXR0ci5yb2xlXT1cIidzcGluYnV0dG9uJ1wiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZEFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZCA/ICd0cnVlJyA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkID8gJ3RydWUnIDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJ2YWx1ZSA/PyBudWxsXCJcbiAgICBbYXR0ci5hcmlhLXZhbHVlbWluXT1cIm1pbiA/PyBudWxsXCJcbiAgICBbYXR0ci5hcmlhLXZhbHVlbWF4XT1cIm1heCA/PyBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIm1lc3NhZ2VLZXkoKSA/IGlkZW50aXR5LmlkICsgJy1lcnJvcicgOiBudWxsXCJcbiAgICAvPlxuXG4gICAgQGlmIChhZGRvblJpZ2h0KSB7XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy1udW1iZXItaW5wdXRfX2FkZG9uIHNkYy1udW1iZXItaW5wdXRfX2FkZG9uLS1yaWdodFwiPnt7IGFkZG9uUmlnaHQgfX08L3NwYW4+XG4gICAgfVxuICA8L2Rpdj5cblxuICAgIEBpZiAobWVzc2FnZUtleSgpKSB7XG4gICAgICA8c21hbGxcbiAgICAgICAgW2lkXT1cImlkZW50aXR5LmlkICsgJy1lcnJvcidcIlxuICAgICAgICBbbmdDbGFzc109XCJnZXRJbnZhbGlkTWVzc2FnZUNsYXNzKClcIlxuICAgICAgICByb2xlPVwiYWxlcnRcIlxuICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICA+XG4gICAgICAgIHt7IG1lc3NhZ2VLZXkoKSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9zbWFsbD5cbiAgICB9XG4gIDwvZGl2PlxuIl19
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUNMLDhCQUE4QixFQUM5QixtQ0FBbUMsRUFDbkMsOEJBQThCLEVBQzlCLDBCQUEwQixFQUMzQixNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUd6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLDZCQUE2QixFQUM3QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6QixxQkFBcUIsRUFDckIsNEJBQTRCLEVBQzVCLHdCQUF3QixFQUN6QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9B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QVcsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsYUFHakY7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFRO3dEQU9oQyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgTlVNQkVSX0lOUFVUX0RFRkFVTFRfQUxJR05NRU5ULFxuICBOVU1CRVJfSU5QVVRfREVGQVVMVF9BTExPV19ORUdBVElWRSxcbiAgTlVNQkVSX0lOUFVUX0RFRkFVTFRfUFJFQ0lTSU9OLFxuICBOVU1CRVJfSU5QVVRfREVGQVVMVF9TQ0FMRVxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9udW1iZXItaW5wdXQuY29uc3QnO1xuaW1wb3J0IHsgSW5wdXRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9kaXJlY3RpdmVzL2lucHV0cy5kaXJlY3RpdmUnO1xuaW1wb3J0IHR5cGUgeyBOdW1iZXJJbnB1dEFsaWdubWVudCwgTnVtYmVySW5wdXRTZXBhcmF0b3JzIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9udW1iZXItaW5wdXQudHlwZSc7XG5pbXBvcnQgdHlwZSB7IFRvb2x0aXBFdmVudCwgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy90b29sdGlwLnR5cGUnO1xuaW1wb3J0IHsgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQge1xuICBidWlsZE51bWJlcklucHV0UGxhY2Vob2xkZXIsXG4gIGNhbGN1bGF0ZU51bWJlcklucHV0TWF4TGVuZ3RoLFxuICBjb3VudE51bWJlcklucHV0RGlnaXRzLFxuICBmb3JtYXROdW1iZXJJbnB1dFZhbHVlLFxuICBub3JtYWxpemVOdW1iZXJJbnB1dFZhbHVlLFxuICBwYXJzZU51bWJlcklucHV0VmFsdWUsXG4gIHJlc29sdmVOdW1iZXJJbnB1dFNlcGFyYXRvcnMsXG4gIHNhbml0aXplTnVtYmVySW5wdXRWYWx1ZVxufSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL251bWJlci1pbnB1dC51dGlsJztcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLW51bWJlci1pbnB1dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIFRvb2x0aXBDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL251bWJlci1pbnB1dC5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTnVtYmVySW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBOdW1iZXJJbnB1dENvbXBvbmVudCBleHRlbmRzIElucHV0c0NvbXBvbmVudDxudW1iZXI+IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgQElucHV0KCkgcHJlY2lzaW9uID0gTlVNQkVSX0lOUFVUX0RFRkFVTFRfUFJFQ0lTSU9OO1xuICBASW5wdXQoKSBzY2FsZSA9IE5VTUJFUl9JTlBVVF9ERUZBVUxUX1NDQUxFO1xuICBASW5wdXQoKSBkZWNpbWFsU2VwYXJhdG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSB0aG91c2FuZHNTZXBhcmF0b3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFsaWduVG86IE51bWJlcklucHV0QWxpZ25tZW50ID0gTlVNQkVSX0lOUFVUX0RFRkFVTFRfQUxJR05NRU5UO1xuICBASW5wdXQoKSBhbGxvd05lZ2F0aXZlID0gTlVNQkVSX0lOUFVUX0RFRkFVTFRfQUxMT1dfTkVHQVRJVkU7XG4gIEBJbnB1dCgpIG1pbj86IG51bWJlcjtcbiAgQElucHV0KCkgbWF4PzogbnVtYmVyO1xuICBASW5wdXQoKSBzdGVwPzogbnVtYmVyIHwgc3RyaW5nO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwUG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbiA9ICdyaWdodCc7XG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwRXZlbnQ6IFRvb2x0aXBFdmVudCA9ICdib3RoJztcbiAgQElucHV0KCkgYWRkb25MZWZ0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgYWRkb25SaWdodDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIC8vIE9wdC1pbiAoZGVmYXVsdCBmYWxzZSwgcHJlc2VydmEgbyB2aXN1YWwgYXR1YWwgZG9zIGNvbnN1bWlkb3JlcyBleGlzdGVudGVzKSAtIHNldGFzIGRlXG4gIC8vIGluY3JlbWVudG8vZGVjcmVtZW50byBhbyBsYWRvIGRpcmVpdG8gZG8gaW5wdXQsIHBlZGlkbyBleHBsaWNpdGFtZW50ZSBwYXJhIG9zIGNhbXBvc1xuICAvLyBudW3DqXJpY29zIGRvIFNhcmEgU3R1ZGlvIChtw61uaW1vL23DoXhpbW8gZG8gbWVkaWRvciwgbGltaXRlcywgaXRlbnMgcG9yIHDDoWdpbmEpLlxuICBASW5wdXQoKSBzaG93U3Bpbm5lcnMgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcGFzdGVSZWplY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGRpc3BsYXlWYWx1ZSA9ICcnO1xuXG4gIHByaXZhdGUgc2VwYXJhdG9yczogTnVtYmVySW5wdXRTZXBhcmF0b3JzID0gcmVzb2x2ZU51bWJlcklucHV0U2VwYXJhdG9ycyh0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyk7XG4gIHByaXZhdGUgZm9jdXNlZCA9IGZhbHNlO1xuICBwcml2YXRlIGV4cGxpY2l0RGVjaW1hbFNlcGFyYXRvciA9IGZhbHNlO1xuICBwcml2YXRlIGV4cGxpY2l0VGhvdXNhbmRzU2VwYXJhdG9yID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZWZyZXNoU2VwYXJhdG9ycygpO1xuICAgICAgICB0aGlzLnN5bmNEaXNwbGF5VmFsdWUoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5ub3JtYWxpemVFeHRlcm5hbFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnN5bmNEaXNwbGF5VmFsdWUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZGVjaW1hbFNlcGFyYXRvciddKSB7XG4gICAgICB0aGlzLmV4cGxpY2l0RGVjaW1hbFNlcGFyYXRvciA9IGNoYW5nZXNbJ2RlY2ltYWxTZXBhcmF0b3InXS5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1sndGhvdXNhbmRzU2VwYXJhdG9yJ10pIHtcbiAgICAgIHRoaXMuZXhwbGljaXRUaG91c2FuZHNTZXBhcmF0b3IgPSBjaGFuZ2VzWyd0aG91c2FuZHNTZXBhcmF0b3InXS5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB0aGlzLnJlZnJlc2hTZXBhcmF0b3JzKCk7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMubm9ybWFsaXplRXh0ZXJuYWxWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLnN5bmNEaXNwbGF5VmFsdWUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubGFiZWxLZXkoKSkge1xuICAgICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmxhYmVsS2V5KCkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXNvbHZlZFBsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHlfbnVtYmVyX2lucHV0Jyk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMucGxhY2Vob2xkZXIpO1xuICAgIH1cblxuICAgIHJldHVybiBidWlsZE51bWJlcklucHV0UGxhY2Vob2xkZXIodGhpcy5zYWZlU2NhbGUsIHRoaXMuc2VwYXJhdG9ycy5kZWNpbWFsKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZFN0ZXAoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zdGVwICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zdGVwICE9PSBudWxsICYmIFN0cmluZyh0aGlzLnN0ZXApLnRyaW0oKSkge1xuICAgICAgcmV0dXJuIFN0cmluZyh0aGlzLnN0ZXApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNhZmVTY2FsZSA8PSAwKSB7XG4gICAgICByZXR1cm4gJzEnO1xuICAgIH1cblxuICAgIHJldHVybiBgMC4keycwJy5yZXBlYXQoTWF0aC5tYXgoMCwgdGhpcy5zYWZlU2NhbGUgLSAxKSl9MWA7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRNYXhMZW5ndGgoKTogbnVtYmVyIHtcbiAgICBjb25zdCBjYWxjdWxhdGVkID0gY2FsY3VsYXRlTnVtYmVySW5wdXRNYXhMZW5ndGgoXG4gICAgICB0aGlzLnNhZmVQcmVjaXNpb24sXG4gICAgICB0aGlzLnNhZmVTY2FsZSxcbiAgICAgIHRoaXMuYWxsb3dOZWdhdGl2ZSxcbiAgICAgIHRoaXMuc2VwYXJhdG9ycy5kZWNpbWFsLFxuICAgICAgdGhpcy5zZXBhcmF0b3JzLmdyb3VwXG4gICAgKTtcblxuICAgIGlmICh0eXBlb2YgdGhpcy5tYXhsZW5ndGggPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gTWF0aC5taW4odGhpcy5tYXhsZW5ndGgsIGNhbGN1bGF0ZWQpO1xuICAgIH1cblxuICAgIHJldHVybiBjYWxjdWxhdGVkO1xuICB9XG5cbiAgZ2V0IGlucHV0TW9kZSgpOiAnbnVtZXJpYycgfCAnZGVjaW1hbCcge1xuICAgIHJldHVybiB0aGlzLnNhZmVTY2FsZSA+IDAgPyAnZGVjaW1hbCcgOiAnbnVtZXJpYyc7XG4gIH1cblxuICBnZXQgaGFzVG9vbHRpcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmluZm9Ub29sdGlwO1xuICB9XG5cbiAgZ2V0IHNhZmVTY2FsZSgpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1heCgwLCBNYXRoLm1pbih0aGlzLnNjYWxlLCB0aGlzLnNhZmVQcmVjaXNpb24pKTtcbiAgfVxuXG4gIGdldCBzYWZlUHJlY2lzaW9uKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWF4KDEsIE51bWJlci5pc0Zpbml0ZSh0aGlzLnByZWNpc2lvbikgPyBNYXRoLnRydW5jKHRoaXMucHJlY2lzaW9uKSA6IE5VTUJFUl9JTlBVVF9ERUZBVUxUX1BSRUNJU0lPTik7XG4gIH1cblxuICBvbk5hdGl2ZUlucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbDtcbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNhbml0aXplZCA9IHNhbml0aXplTnVtYmVySW5wdXRWYWx1ZSh0YXJnZXQudmFsdWUsIHtcbiAgICAgIGFsbG93TmVnYXRpdmU6IHRoaXMuYWxsb3dOZWdhdGl2ZSxcbiAgICAgIGRlY2ltYWxTZXBhcmF0b3I6IHRoaXMuc2VwYXJhdG9ycy5kZWNpbWFsLFxuICAgICAgcHJlY2lzaW9uOiB0aGlzLnNhZmVQcmVjaXNpb24sXG4gICAgICBzY2FsZTogdGhpcy5zYWZlU2NhbGVcbiAgICB9KTtcblxuICAgIGlmIChzYW5pdGl6ZWQgIT09IHRhcmdldC52YWx1ZSkge1xuICAgICAgdGFyZ2V0LnZhbHVlID0gc2FuaXRpemVkO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gc2FuaXRpemVkO1xuXG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VOdW1iZXJJbnB1dFZhbHVlKHRoaXMuZGlzcGxheVZhbHVlLCB0aGlzLnNlcGFyYXRvcnMpO1xuICAgIGlmIChwYXJzZWQuZW1wdHkpIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUobnVsbCk7XG4gICAgfSBlbHNlIGlmIChwYXJzZWQuY29tcGxldGUgJiYgcGFyc2VkLnZhbHVlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMubm9ybWFsaXplRXh0ZXJuYWxWYWx1ZShwYXJzZWQudmFsdWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gZm9ybWF0TnVtYmVySW5wdXRWYWx1ZShcbiAgICAgIHRoaXMudmFsdWUsXG4gICAgICB0aGlzLnNhZmVTY2FsZSxcbiAgICAgIHRoaXMuc2VwYXJhdG9ycy5kZWNpbWFsLFxuICAgICAgdGhpcy5zZXBhcmF0b3JzLmdyb3VwLFxuICAgICAgZmFsc2VcbiAgICApO1xuICB9XG5cbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VOdW1iZXJJbnB1dFZhbHVlKHRoaXMuZGlzcGxheVZhbHVlLCB0aGlzLnNlcGFyYXRvcnMpO1xuICAgIGlmIChwYXJzZWQuZW1wdHkpIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUobnVsbCk7XG4gICAgfSBlbHNlIGlmIChwYXJzZWQudmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy5ub3JtYWxpemVFeHRlcm5hbFZhbHVlKHBhcnNlZC52YWx1ZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICB0aGlzLnN5bmNEaXNwbGF5VmFsdWUoKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwYXN0ZWRUZXh0ID0gZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dCcpID8/ICcnO1xuICAgIGlmIChjb3VudE51bWJlcklucHV0RGlnaXRzKHBhc3RlZFRleHQpID4gdGhpcy5zYWZlUHJlY2lzaW9uKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLnBhc3RlUmVqZWN0ZWQuZW1pdChwYXN0ZWRUZXh0KTtcbiAgICB9XG4gIH1cblxuICBnZXQgY2FuSW5jcmVtZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiAodGhpcy5tYXggPT09IHVuZGVmaW5lZCB8fCAodGhpcy52YWx1ZSA/PyAwKSA8IHRoaXMubWF4KTtcbiAgfVxuXG4gIGdldCBjYW5EZWNyZW1lbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVkICYmICh0aGlzLm1pbiA9PT0gdW5kZWZpbmVkIHx8ICh0aGlzLnZhbHVlID8/IDApID4gdGhpcy5taW4pO1xuICB9XG5cbiAgaW5jcmVtZW50KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHlTdGVwKDEpO1xuICB9XG5cbiAgZGVjcmVtZW50KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHlTdGVwKC0xKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTdGVwKGRpcmVjdGlvbjogMSB8IC0xKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdGVwQW1vdW50ID0gTnVtYmVyKHRoaXMucmVzb2x2ZWRTdGVwKSB8fCAxO1xuICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy5ub3JtYWxpemVFeHRlcm5hbFZhbHVlKCh0aGlzLnZhbHVlID8/IDApICsgZGlyZWN0aW9uICogc3RlcEFtb3VudCkpO1xuICAgIHRoaXMuc3luY0Rpc3BsYXlWYWx1ZSgpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZUV4dGVybmFsVmFsdWUodmFsdWU6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpOiBudW1iZXIgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJyB8fCAhTnVtYmVyLmlzRmluaXRlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vcm1hbGl6ZU51bWJlcklucHV0VmFsdWUoXG4gICAgICB2YWx1ZSxcbiAgICAgIHRoaXMuc2FmZVByZWNpc2lvbixcbiAgICAgIHRoaXMuc2FmZVNjYWxlLFxuICAgICAgdGhpcy5hbGxvd05lZ2F0aXZlLFxuICAgICAgdGhpcy5taW4sXG4gICAgICB0aGlzLm1heFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hTZXBhcmF0b3JzKCk6IHZvaWQge1xuICAgIGNvbnN0IGxvY2FsZVNlcGFyYXRvcnMgPSByZXNvbHZlTnVtYmVySW5wdXRTZXBhcmF0b3JzKHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nKTtcblxuICAgIHRoaXMuc2VwYXJhdG9ycyA9IHtcbiAgICAgIGRlY2ltYWw6IHRoaXMuZXhwbGljaXREZWNpbWFsU2VwYXJhdG9yICYmIHRoaXMuZGVjaW1hbFNlcGFyYXRvciA/IHRoaXMuZGVjaW1hbFNlcGFyYXRvciA6IGxvY2FsZVNlcGFyYXRvcnMuZGVjaW1hbCxcbiAgICAgIGdyb3VwOiB0aGlzLmV4cGxpY2l0VGhvdXNhbmRzU2VwYXJhdG9yICYmIHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yID8gdGhpcy50aG91c2FuZHNTZXBhcmF0b3IgOiBsb2NhbGVTZXBhcmF0b3JzLmdyb3VwXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3luY0Rpc3BsYXlWYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb2N1c2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBmb3JtYXROdW1iZXJJbnB1dFZhbHVlKFxuICAgICAgdGhpcy52YWx1ZSxcbiAgICAgIHRoaXMuc2FmZVNjYWxlLFxuICAgICAgdGhpcy5zZXBhcmF0b3JzLmRlY2ltYWwsXG4gICAgICB0aGlzLnNlcGFyYXRvcnMuZ3JvdXBcbiAgICApO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLW51bWJlci1pbnB1dFwiPlxuICBAaWYgKGxhYmVsS2V5KCkgfHwgaGFzVG9vbHRpcCkge1xuICAgIDxkaXYgY2xhc3M9XCJzZGMtbnVtYmVyLWlucHV0X19sYWJlbC1yb3dcIj5cbiAgICAgIEBpZiAobGFiZWxLZXkoKSkge1xuICAgICAgICA8bGFiZWwgW2Zvcl09XCJpZGVudGl0eS5pZFwiIGNsYXNzPVwic2RjLW51bWJlci1pbnB1dF9fbGFiZWxcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1udW1iZXItaW5wdXRfX2xhYmVsLXRleHRcIj5cbiAgICAgICAgICAgIHt7IGxhYmVsS2V5KCkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIEBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZC1maWVsZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPio8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPlxuICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5X3JlcXVpcmVkX2ZpZWxkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgfVxuICAgICAgQGlmIChoYXNUb29sdGlwKSB7XG4gICAgICAgIDxzZGMtdG9vbHRpcFxuICAgICAgICAgIGNsYXNzPVwic2RjLW51bWJlci1pbnB1dF9faW5mby10b29sdGlwLXdyYXBcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJpbmZvVG9vbHRpcFwiXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJpbmZvVG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgICBbdG9vbHRpcEV2ZW50XT1cImluZm9Ub29sdGlwRXZlbnRcIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWluZm8tY2lyY2xlIHNkYy1udW1iZXItaW5wdXRfX2luZm8tdG9vbHRpcC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8L3NkYy10b29sdGlwPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2RjLW51bWJlci1pbnB1dF9fY29udHJvbFwiXG4gICAgW2NsYXNzLnNkYy1udW1iZXItaW5wdXRfX2NvbnRyb2wtLWludmFsaWRdPVwiaW52YWxpZFwiXG4gICAgW2NsYXNzLnNkYy1udW1iZXItaW5wdXRfX2NvbnRyb2wtLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgPlxuICAgIEBpZiAoYWRkb25MZWZ0KSB7XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy1udW1iZXItaW5wdXRfX2FkZG9uIHNkYy1udW1iZXItaW5wdXRfX2FkZG9uLS1sZWZ0XCI+e3sgYWRkb25MZWZ0IH19PC9zcGFuPlxuICAgIH1cblxuICAgIDxpbnB1dFxuICAgICAgY2xhc3M9XCJzZGMtbnVtYmVyLWlucHV0X19pbnB1dFwiXG4gICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgIChpbnB1dCk9XCJvbk5hdGl2ZUlucHV0KCRldmVudClcIlxuICAgIChwYXN0ZSk9XCJvblBhc3RlKCRldmVudClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2lkXT1cImlkZW50aXR5LmlkXCJcbiAgICBbbmFtZV09XCJpZGVudGl0eS5uYW1lXCJcbiAgICBbbmdDbGFzc109XCJnZXRJbnZhbGlkQ2xhc3MoKVwiXG4gICAgW25nU3R5bGVdPVwiZ2V0SW5wdXRTdHlsZSgpXCJcbiAgICBbY2xhc3Muc2RjLW51bWJlci1pbnB1dF9faW5wdXQtLWFsaWduLXJpZ2h0XT1cImFsaWduVG8gPT09ICdyaWdodCdcIlxuICAgIFtjbGFzcy5zZGMtbnVtYmVyLWlucHV0X19pbnB1dC0taW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicmVzb2x2ZWRQbGFjZWhvbGRlclwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbdmFsdWVdPVwiZGlzcGxheVZhbHVlXCJcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgIFthdHRyLmlucHV0bW9kZV09XCJpbnB1dE1vZGVcIlxuICAgIFthdHRyLm1heGxlbmd0aF09XCJyZXNvbHZlZE1heExlbmd0aFwiXG4gICAgW2F0dHIubWluXT1cIm1pbiA/PyBudWxsXCJcbiAgICBbYXR0ci5tYXhdPVwibWF4ID8/IG51bGxcIlxuICAgIFthdHRyLnN0ZXBdPVwicmVzb2x2ZWRTdGVwXCJcbiAgICBbYXR0ci5yb2xlXT1cIidzcGluYnV0dG9uJ1wiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZEFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZCA/ICd0cnVlJyA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkID8gJ3RydWUnIDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJ2YWx1ZSA/PyBudWxsXCJcbiAgICBbYXR0ci5hcmlhLXZhbHVlbWluXT1cIm1pbiA/PyBudWxsXCJcbiAgICBbYXR0ci5hcmlhLXZhbHVlbWF4XT1cIm1heCA/PyBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIm1lc3NhZ2VLZXkoKSA/IGlkZW50aXR5LmlkICsgJy1lcnJvcicgOiBudWxsXCJcbiAgICAvPlxuXG4gICAgQGlmIChzaG93U3Bpbm5lcnMpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtbnVtYmVyLWlucHV0X19zcGlubmVyc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJzZGMtbnVtYmVyLWlucHV0X19zcGlubmVyIHNkYy1udW1iZXItaW5wdXRfX3NwaW5uZXItLXVwXCJcbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNhbkluY3JlbWVudFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eV9udW1iZXJfaW5wdXRfaW5jcmVtZW50JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImluY3JlbWVudCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tdXBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJzZGMtbnVtYmVyLWlucHV0X19zcGlubmVyIHNkYy1udW1iZXItaW5wdXRfX3NwaW5uZXItLWRvd25cIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhY2FuRGVjcmVtZW50XCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5X251bWJlcl9pbnB1dF9kZWNyZW1lbnQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAoY2xpY2spPVwiZGVjcmVtZW50KClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoYWRkb25SaWdodCkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtbnVtYmVyLWlucHV0X19hZGRvbiBzZGMtbnVtYmVyLWlucHV0X19hZGRvbi0tcmlnaHRcIj57eyBhZGRvblJpZ2h0IH19PC9zcGFuPlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgICBAaWYgKG1lc3NhZ2VLZXkoKSkge1xuICAgICAgPHNtYWxsXG4gICAgICAgIFtpZF09XCJpZGVudGl0eS5pZCArICctZXJyb3InXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZE1lc3NhZ2VDbGFzcygpXCJcbiAgICAgICAgcm9sZT1cImFsZXJ0XCJcbiAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgPlxuICAgICAgICB7eyBtZXNzYWdlS2V5KCkgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc21hbGw+XG4gICAgfVxuICA8L2Rpdj5cbiJdfQ==
|
package/esm2022/features/object-card/components/object-card-field/object-card-field.component.mjs
CHANGED
|
@@ -52,7 +52,7 @@ export class ObjectCardFieldComponent {
|
|
|
52
52
|
return !this.projectedThumbnail && !!(this.imageSource ?? this.iconClass);
|
|
53
53
|
}
|
|
54
54
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
55
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ObjectCardFieldComponent, isStandalone: true, selector: "sdc-object-card-field", inputs: { id: "id", imageSource: "imageSource", imageAlt: "imageAlt", iconClass: "iconClass", label: "label", description: "description", buttonLabel: "buttonLabel", buttonModel: "buttonModel", badge: "badge", badgeColor: "badgeColor" }, outputs: { buttonClick: "buttonClick" }, queries: [{ propertyName: "projectedThumbnail", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template>\n <div class=\"sdc-object-card-field\">\n <ng-content select=\"sdc-thumbnail\"></ng-content>\n\n @if (hasThumbnail) {\n <sdc-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass ?? ''\"\n size=\"small\"\n ></sdc-thumbnail>\n }\n\n <div class=\"sdc-object-card-field__info\">\n @if (label) {\n <span [id]=\"id + '-label'\" class=\"sdc-object-card-field__label\">{{ label | translate }}</span>\n }\n\n @if (badge) {\n <sdc-badge\n [id]=\"id + '-badge'\"\n [text]=\"badge\"\n [color]=\"badgeColor\"\n ></sdc-badge>\n } @else if (description) {\n <span [id]=\"id + '-description'\" class=\"sdc-object-card-field__description\">{{ description | translate }}</span>\n }\n\n @if (buttonLabel) {\n <sdc-button\n [id]=\"id + '-button'\"\n class=\"sdc-object-card-field__button\"\n priority=\"link\"\n size=\"small\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n (clicked)=\"buttonClick.emit($event)\"\n ></sdc-button>\n }\n </div>\n </div>\n</ng-template>\n", styles: [":host{display:contents}.sdc-object-card-field{align-items:center;display:flex;gap:.625rem;height:100%}.sdc-object-card-field__info{min-width:0}.sdc-object-card-field__info,.sdc-object-card-field__info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-object-card-field__label{color:var(--sdc-object-card-field-label-color, #667085);display:block;font-size:.75rem}.sdc-object-card-field__description{color:var(--sdc-object-card-field-description-color, #212533);display:block;font-size:.875rem}.sdc-object-card-field__button{display:inline-block}@media (max-width: 767px){.sdc-object-card-field__info,.sdc-object-card-field__info span{white-space:normal}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ThumbnailComponent, selector: "sdc-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "component", type: BadgeComponent, selector: "sdc-badge", inputs: ["type", "color", "title", "titleParams", "text", "textParams", "selectable", "disabled", "iconClass", "iconPosition", "infoSign", "ariaLabel", "ariaLabelParams", "infoAriaLabel"], outputs: ["selected"] }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "loading", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
55
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ObjectCardFieldComponent, isStandalone: true, selector: "sdc-object-card-field", inputs: { id: "id", imageSource: "imageSource", imageAlt: "imageAlt", iconClass: "iconClass", label: "label", description: "description", buttonLabel: "buttonLabel", buttonModel: "buttonModel", badge: "badge", badgeColor: "badgeColor" }, outputs: { buttonClick: "buttonClick" }, queries: [{ propertyName: "projectedThumbnail", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template>\n <div class=\"sdc-object-card-field\">\n <ng-content select=\"sdc-thumbnail\"></ng-content>\n\n @if (hasThumbnail) {\n <sdc-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass ?? ''\"\n size=\"small\"\n ></sdc-thumbnail>\n }\n\n <div class=\"sdc-object-card-field__info\">\n @if (label) {\n <span [id]=\"id + '-label'\" class=\"sdc-object-card-field__label\">{{ label | translate }}</span>\n }\n\n @if (badge) {\n <sdc-badge\n [id]=\"id + '-badge'\"\n [text]=\"badge\"\n [color]=\"badgeColor\"\n ></sdc-badge>\n } @else if (description) {\n <span [id]=\"id + '-description'\" class=\"sdc-object-card-field__description\">{{ description | translate }}</span>\n }\n\n @if (buttonLabel) {\n <sdc-button\n [id]=\"id + '-button'\"\n class=\"sdc-object-card-field__button\"\n priority=\"link\"\n size=\"small\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n (clicked)=\"buttonClick.emit($event)\"\n ></sdc-button>\n }\n </div>\n </div>\n</ng-template>\n", styles: [":host{display:contents}.sdc-object-card-field{align-items:center;display:flex;gap:.625rem;height:100%}.sdc-object-card-field__info{min-width:0}.sdc-object-card-field__info,.sdc-object-card-field__info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-object-card-field__label{color:var(--sdc-object-card-field-label-color, #667085);display:block;font-size:.75rem}.sdc-object-card-field__description{color:var(--sdc-object-card-field-description-color, #212533);display:block;font-size:.875rem}.sdc-object-card-field__button{display:inline-block}@media (max-width: 767px){.sdc-object-card-field__info,.sdc-object-card-field__info span{white-space:normal}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ThumbnailComponent, selector: "sdc-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "component", type: BadgeComponent, selector: "sdc-badge", inputs: ["type", "color", "title", "titleParams", "text", "textParams", "selectable", "disabled", "iconClass", "iconPosition", "infoSign", "ariaLabel", "ariaLabelParams", "infoAriaLabel"], outputs: ["selected"] }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "loading", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "rounded", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
56
56
|
}
|
|
57
57
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardFieldComponent, decorators: [{
|
|
58
58
|
type: Component,
|
package/esm2022/features/object-card/components/object-card-main/object-card-main.component.mjs
CHANGED
|
@@ -76,7 +76,7 @@ export class ObjectCardMainComponent {
|
|
|
76
76
|
this.cdr.markForCheck();
|
|
77
77
|
}
|
|
78
78
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardMainComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
79
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ObjectCardMainComponent, isStandalone: true, selector: "sdc-object-card-main", inputs: { id: "id", imageSource: "imageSource", imageFallback: "imageFallback", imageAlt: "imageAlt", iconClass: "iconClass", hasThumbnail: "hasThumbnail", hasDescription: "hasDescription", isBrand: "isBrand", label: "label", description: "description", buttonLabel: "buttonLabel", buttonModel: "buttonModel" }, outputs: { buttonClick: "buttonClick" }, queries: [{ propertyName: "projectedThumbnail", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], ngImport: i0, template: "@if (hasThumbnail) {\n <ng-content select=\"sdc-thumbnail\"></ng-content>\n\n @if (!projectedThumbnail) {\n <sdc-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageFallback]=\"imageFallback ?? null\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass\"\n [size]=\"thumbnailSize\"\n [isBrand]=\"isBrand\"\n ></sdc-thumbnail>\n }\n}\n\n@if (hasDescription) {\n <div class=\"sdc-object-card-main__info\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n\n @if (!labelTemplate.children.length && label) {\n <span [id]=\"id + '-label'\" class=\"sdc-object-card-main__label\">{{ label | translate }}</span>\n }\n\n <div #descriptionTemplate><ng-content select=\"[descriptionTemplate]\"></ng-content></div>\n\n @if (!descriptionTemplate.children.length && description) {\n <span [id]=\"id + '-description'\" class=\"sdc-object-card-main__description\">{{ description | translate }}</span>\n }\n\n @if (buttonLabel) {\n <sdc-button\n [id]=\"id + '-button'\"\n class=\"sdc-object-card-main__button\"\n priority=\"link\"\n size=\"small\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n (clicked)=\"buttonClick.emit($event)\"\n ></sdc-button>\n }\n </div>\n}\n", styles: [":host{align-items:center;display:flex;gap:.625rem;min-height:4.375rem}.sdc-object-card-main__info{flex:1;min-width:0}.sdc-object-card-main__info,.sdc-object-card-main__info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-object-card-main__label{color:var(--sdc-object-card-main-label-color, #212533);display:block;font-weight:700}.sdc-object-card-main__description{color:var(--sdc-object-card-main-description-color, #667085);display:block}.sdc-object-card-main__button{display:inline-block}@media (max-width: 767px){.sdc-object-card-main__info,.sdc-object-card-main__info span{white-space:normal}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ThumbnailComponent, selector: "sdc-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "loading", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
79
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ObjectCardMainComponent, isStandalone: true, selector: "sdc-object-card-main", inputs: { id: "id", imageSource: "imageSource", imageFallback: "imageFallback", imageAlt: "imageAlt", iconClass: "iconClass", hasThumbnail: "hasThumbnail", hasDescription: "hasDescription", isBrand: "isBrand", label: "label", description: "description", buttonLabel: "buttonLabel", buttonModel: "buttonModel" }, outputs: { buttonClick: "buttonClick" }, queries: [{ propertyName: "projectedThumbnail", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], ngImport: i0, template: "@if (hasThumbnail) {\n <ng-content select=\"sdc-thumbnail\"></ng-content>\n\n @if (!projectedThumbnail) {\n <sdc-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageFallback]=\"imageFallback ?? null\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass\"\n [size]=\"thumbnailSize\"\n [isBrand]=\"isBrand\"\n ></sdc-thumbnail>\n }\n}\n\n@if (hasDescription) {\n <div class=\"sdc-object-card-main__info\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n\n @if (!labelTemplate.children.length && label) {\n <span [id]=\"id + '-label'\" class=\"sdc-object-card-main__label\">{{ label | translate }}</span>\n }\n\n <div #descriptionTemplate><ng-content select=\"[descriptionTemplate]\"></ng-content></div>\n\n @if (!descriptionTemplate.children.length && description) {\n <span [id]=\"id + '-description'\" class=\"sdc-object-card-main__description\">{{ description | translate }}</span>\n }\n\n @if (buttonLabel) {\n <sdc-button\n [id]=\"id + '-button'\"\n class=\"sdc-object-card-main__button\"\n priority=\"link\"\n size=\"small\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n (clicked)=\"buttonClick.emit($event)\"\n ></sdc-button>\n }\n </div>\n}\n", styles: [":host{align-items:center;display:flex;gap:.625rem;min-height:4.375rem}.sdc-object-card-main__info{flex:1;min-width:0}.sdc-object-card-main__info,.sdc-object-card-main__info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-object-card-main__label{color:var(--sdc-object-card-main-label-color, #212533);display:block;font-weight:700}.sdc-object-card-main__description{color:var(--sdc-object-card-main-description-color, #667085);display:block}.sdc-object-card-main__button{display:inline-block}@media (max-width: 767px){.sdc-object-card-main__info,.sdc-object-card-main__info span{white-space:normal}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ThumbnailComponent, selector: "sdc-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "loading", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "rounded", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
80
80
|
}
|
|
81
81
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardMainComponent, decorators: [{
|
|
82
82
|
type: Component,
|
|
@@ -98,7 +98,7 @@ export class ObjectCardComponent {
|
|
|
98
98
|
return this.borderButtonOptions?.visible?.(this.severity) ?? false;
|
|
99
99
|
}
|
|
100
100
|
get borderButtonLabel() {
|
|
101
|
-
return this.borderButtonOptions?.label?.(this.severity) ?? 'platform.datacore.
|
|
101
|
+
return this.borderButtonOptions?.label?.(this.severity) ?? 'platform.datacore.accessibility_panel_toggle';
|
|
102
102
|
}
|
|
103
103
|
get borderButtonTooltip() {
|
|
104
104
|
return this.borderButtonOptions?.tooltip?.(this.severity) ?? null;
|
|
@@ -196,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
196
196
|
type: ViewChild,
|
|
197
197
|
args: ['expandButton', { static: true }]
|
|
198
198
|
}] } });
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9vYmplY3QtY2FyZC9vYmplY3QtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL29iamVjdC1jYXJkL29iamVjdC1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBRVosWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZUFBZSxFQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQyx1Q0FBdUMsRUFDdkMsMENBQTBDLEVBQzFDLDhCQUE4QixFQUM5QixxQkFBcUIsRUFDckIsZ0NBQWdDLEVBQ2pDLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUF1QixZQUFZLEVBQW1CLE1BQU0sNkJBQTZCLENBQUM7QUFFakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7QUFFbkc7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFpQkgsTUFBTSxPQUFPLG1CQUFtQjtJQUNiLEdBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVqRCxzR0FBc0c7SUFDN0YsRUFBRSxHQUFHLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFdEQsNkVBQTZFO0lBQ3BFLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFMUIseUdBQXlHO0lBQ2hHLGFBQWEsR0FBa0IsOEJBQThCLENBQUM7SUFFdkUseUdBQXlHO0lBQ2hHLGVBQWUsR0FBa0IsZ0NBQWdDLENBQUM7SUFFM0UsMEdBQTBHO0lBQ2pHLGNBQWMsR0FBRyx1Q0FBdUMsQ0FBQztJQUVsRSxnR0FBZ0c7SUFDdkYsUUFBUSxHQUFlLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFFckQ7OztPQUdHO0lBQ00sbUJBQW1CLENBQXVCO0lBRW5ELDZEQUE2RDtJQUNuRCxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUdwQyxJQUFJLEdBQW1DLElBQUksQ0FBQztJQUU1QyxNQUFNLEdBQUcsZUFBZSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFHNUUsZUFBZSxDQUEyQjtJQUcxQyxXQUFXLENBQTJCO0lBR3RDLGVBQWUsQ0FBMkI7SUFFbkQsY0FBYyxDQUFrQjtJQUU5QixnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFFL0IsZUFBZTtRQUNiLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ3RELENBQUM7SUFFUyxhQUFhO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVTLFlBQVk7UUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFUyxNQUFNO1FBQ2QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLENBQUM7SUFDSCxDQUFDO0lBRVMsTUFBTTtRQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVTLFFBQVE7UUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBYyxVQUFVO1FBQ3RCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDO1FBQ25HLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDekQsQ0FBQztJQUVELElBQWMsZ0JBQWdCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDckUsQ0FBQztJQUVELElBQWMsaUJBQWlCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSw4Q0FBOEMsQ0FBQztJQUM1RyxDQUFDO0lBRUQsSUFBYyxtQkFBbUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNwRSxDQUFDO0lBRUQsSUFBYyxnQkFBZ0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBYyxvQkFBb0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUN0RSxDQUFDO0lBRVMsbUJBQW1CLENBQUMsS0FBWTtRQUN4QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFjO1FBQ2hDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUM1QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0MsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQWdCLEVBQUUsSUFBSSxnQ0FBZ0MsQ0FBQztRQUNoRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUN4RixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUMvRSxNQUFNLGNBQWMsR0FBRyxjQUFjLEdBQUcsU0FBUyxDQUFDO1FBRWxELElBQUksV0FBVyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUUxRixNQUFNLGFBQWEsR0FBRyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBRWhELElBQUksYUFBYSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN2QyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssSUFBSSwwQ0FBMEMsQ0FBQztZQUN4SSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsR0FBRyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckYsQ0FBQztRQUVELE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFdEQsSUFBSSxvQkFBb0IsS0FBSyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuRCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztRQUU3QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxXQUFXLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO3dHQTFLVSxtQkFBbUI7NEZBQW5CLG1CQUFtQixxV0FpQ2Msd0JBQXdCLHVGQUh0RCx1QkFBdUIscVpDakd2QyxxakhBOEZBLHN0SER4Q1ksWUFBWSxxTUFBRSxlQUFlLDhFQUszQjtZQUNWLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRTtnQkFDakMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDMUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDekMsVUFBVSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2FBQ2hFLENBQUM7U0FDSDs7NEZBRVUsbUJBQW1CO2tCQWhCL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFRLGNBQzdCO3dCQUNWLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRTs0QkFDakMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzs0QkFDMUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzs0QkFDekMsVUFBVSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO3lCQUNoRSxDQUFDO3FCQUNIOzhCQU1RLEVBQUU7c0JBQVYsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdJLGNBQWM7c0JBQXZCLE1BQU07Z0JBR1ksSUFBSTtzQkFEdEIsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTXRDLGVBQWU7c0JBRC9CLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJMUIsV0FBVztzQkFEM0IsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUl0QixlQUFlO3NCQUQvQixTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb250ZW50Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHtcbiAgT0JKRUNUX0NBUkRfQ09MTEFQU0VfVE9PTFRJUF9LRVksXG4gIE9CSkVDVF9DQVJEX0RFRkFVTFRfRklFTERTX01JTl9XSURUSF9QWCxcbiAgT0JKRUNUX0NBUkRfRVhQQU5EX0lDT05fRVNUSU1BVEVEX1dJRFRIX1BYLFxuICBPQkpFQ1RfQ0FSRF9FWFBBTkRfVE9PTFRJUF9LRVksXG4gIE9CSkVDVF9DQVJEX0lEX1BSRUZJWCxcbiAgT0JKRUNUX0NBUkRfTU9CSUxFX0JSRUFLUE9JTlRfUFhcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvb2JqZWN0LWNhcmQuY29uc3QnO1xuaW1wb3J0IHsgQm9yZGVyQnV0dG9uT3B0aW9ucywgRW51bVNldmVyaXR5LCB0eXBlIFNldmVyaXRpZXMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3BhbmVsLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBTdHJpbmdCb29sZWFuIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zZW1hbnRpY3MudHlwZSc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IGdldFZpZXdwb3J0V2lkdGggfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2xheW91dC51dGlsJztcbmltcG9ydCB7IE9iamVjdENhcmRGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vYmplY3QtY2FyZC1maWVsZC9vYmplY3QtY2FyZC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JqZWN0Q2FyZE1haW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb2JqZWN0LWNhcmQtbWFpbi9vYmplY3QtY2FyZC1tYWluLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENhcmQgZGUgZXhpYmnDp8OjbyBkZSBvYmpldG8gY29tIHVtIGJsb2NvIHByaW5jaXBhbCAoYHNkYy1vYmplY3QtY2FyZC1tYWluYCksXG4gKiBjYW1wb3MgZXh0cmFzIChgc2RjLW9iamVjdC1jYXJkLWZpZWxkYCkgZSBwYWluZWwgZXhwYW5zw612ZWwgcGFyYSBvcyBjYW1wb3MgcXVlIG7Do29cbiAqIGNhYmVtIG5hIGxhcmd1cmEgZGlzcG9uw612ZWwuIENhbGN1bGEgYXV0b21hdGljYW1lbnRlIHF1YW50b3MgY2FtcG9zIGZpY2FtIHZpc8OtdmVpc1xuICogY29uZm9ybWUgYSBsYXJndXJhIGRvIGNvbnRhaW5lciAodmlhIGBSZXNpemVPYnNlcnZlcmApIGUgc3Vwb3J0YSBuw612ZWwgZGUgc2V2ZXJpZGFkZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHNkYy1vYmplY3QtY2FyZCBbc2V2ZXJpdHldPVwiJ2luZm8nXCI+XG4gKiAgIDxzZGMtb2JqZWN0LWNhcmQtbWFpbiBsYWJlbD1cIkpvw6NvIGRhIFNpbHZhXCIgZGVzY3JpcHRpb249XCJBbmFsaXN0YSBkZSBzaXN0ZW1hc1wiIC8+XG4gKiAgIDxzZGMtb2JqZWN0LWNhcmQtZmllbGQgbGFiZWw9XCJDUEZcIiBkZXNjcmlwdGlvbj1cIjAwMC4wMDAuMDAwLTAwXCIgLz5cbiAqICAgPHNkYy1vYmplY3QtY2FyZC1maWVsZCBsYWJlbD1cIk1hdHLDrWN1bGFcIiBkZXNjcmlwdGlvbj1cIjAwMTIzXCIgLz5cbiAqIDwvc2RjLW9iamVjdC1jYXJkPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1vYmplY3QtY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYmplY3QtY2FyZC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ3NkY09iamVjdENhcmRFeHBhbmRhYmxlJywgW1xuICAgICAgc3RhdGUoJ2NvbGxhcHNlZCcsIHN0eWxlKHsgaGVpZ2h0OiAnMCcgfSkpLFxuICAgICAgc3RhdGUoJ2V4cGFuZGVkJywgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCdjb2xsYXBzZWQgPD0+IGV4cGFuZGVkJywgYW5pbWF0ZSgnMjAwbXMgZWFzZS1vdXQnKSlcbiAgICBdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBJZGVudGlmaWNhZG9yIMO6bmljbyBkbyBjb21wb25lbnRlIG5vIERPTS4gR2VyYWRvIGF1dG9tYXRpY2FtZW50ZSBzZSBuw6NvIGluZm9ybWFkby4gKi9cbiAgQElucHV0KCkgaWQgPSBuZXh0U2VxdWVudGlhbElkKE9CSkVDVF9DQVJEX0lEX1BSRUZJWCk7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBEZWZpbmUgc2UgbyBwYWluZWwgZXhwYW5zw612ZWwgZXN0w6EgYWJlcnRvLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBASW5wdXQoKSBleHBhbmRlZCA9IGZhbHNlO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gQ2hhdmUgZGUgdHJhZHXDp8OjbyAob3UgYGZhbHNlYCBwYXJhIHVzYXIgbyBkZWZhdWx0KSBkbyB0b29sdGlwL2FyaWEtbGFiZWwgZGUgZXhwYW5kaXIuICovXG4gIEBJbnB1dCgpIGV4cGFuZFRvb2x0aXA6IFN0cmluZ0Jvb2xlYW4gPSBPQkpFQ1RfQ0FSRF9FWFBBTkRfVE9PTFRJUF9LRVk7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBDaGF2ZSBkZSB0cmFkdcOnw6NvIChvdSBgZmFsc2VgIHBhcmEgdXNhciBvIGRlZmF1bHQpIGRvIHRvb2x0aXAvYXJpYS1sYWJlbCBkZSByZWNvbGhlci4gKi9cbiAgQElucHV0KCkgY29sbGFwc2VUb29sdGlwOiBTdHJpbmdCb29sZWFuID0gT0JKRUNUX0NBUkRfQ09MTEFQU0VfVE9PTFRJUF9LRVk7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBMYXJndXJhIG3DrW5pbWEgZW0gcGl4ZWxzIGRlIGNhZGEgY2FtcG8gKHZpc8OtdmVsIG91IG5vIHBhaW5lbCBleHBhbnPDrXZlbCkuIEBkZWZhdWx0IDIwMCAqL1xuICBASW5wdXQoKSBmaWVsZHNNaW5XaWR0aCA9IE9CSkVDVF9DQVJEX0RFRkFVTFRfRklFTERTX01JTl9XSURUSF9QWDtcblxuICAvKiogQGRlc2NyaXB0aW9uIE7DrXZlbCBkZSBzZXZlcmlkYWRlIHF1ZSBhbHRlcmEgYSBjb3IgZGUgZGVzdGFxdWUgZG8gY2FyZC4gQGRlZmF1bHQgJ2RlZmF1bHQnICovXG4gIEBJbnB1dCgpIHNldmVyaXR5OiBTZXZlcml0aWVzID0gRW51bVNldmVyaXR5LkRlZmF1bHQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmHDp8OjbyBvcGNpb25hbCBkbyBib3TDo28gbGF0ZXJhbCBkZSBib3JkYSAobWVzbW8gY29udHJhdG8gdXNhZG8gcGVsbyBgc2RjLXBhbmVsYCkuXG4gICAqIE9taXRpZG8gcG9yIHBhZHLDo286IG7Do28gcmVxdWVyIG8gY29tcG9uZW50ZSBgcy1ib3JkZXItYnV0dG9uYCBkbyBBQyAoYWluZGEgbsOjbyBwb3J0YWRvIHBhcmEgbyBEYXRhQ29yZSkuXG4gICAqL1xuICBASW5wdXQoKSBib3JkZXJCdXR0b25PcHRpb25zPzogQm9yZGVyQnV0dG9uT3B0aW9ucztcblxuICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gZXN0YWRvIGRlIGV4cGFuc8OjbyBtdWRhLiAqL1xuICBAT3V0cHV0KCkgZXhwYW5kZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChPYmplY3RDYXJkTWFpbkNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1haW46IE9iamVjdENhcmRNYWluQ29tcG9uZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZpZWxkcyA9IGNvbnRlbnRDaGlsZHJlbihPYmplY3RDYXJkRmllbGRDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSk7XG5cbiAgQFZpZXdDaGlsZCgncm93Q29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSByZWFkb25seSByb3dDb250YWluZXJSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdtYWluU2xvdCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgcmVhZG9ubHkgbWFpblNsb3RSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdleHBhbmRCdXR0b24nLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIHJlYWRvbmx5IGV4cGFuZEJ1dHRvblJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcblxuICBwcm90ZWN0ZWQgbWF4VmlzaWJsZUZpZWxkcyA9IDA7XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy51cGRhdGVWaXNpYmxlRmllbGRzKCkpO1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnJvd0NvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5tYWluU2xvdFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVGaWVsZHMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVGaWVsZHMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaGFzSGlkZGVuRmllbGRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkcygpLmxlbmd0aCA+IHRoaXMubWF4VmlzaWJsZUZpZWxkcztcbiAgfVxuXG4gIHByb3RlY3RlZCB2aXNpYmxlRmllbGRzKCk6IE9iamVjdENhcmRGaWVsZENvbXBvbmVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZHMoKS5zbGljZSgwLCB0aGlzLm1heFZpc2libGVGaWVsZHMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhpZGRlbkZpZWxkcygpOiBPYmplY3RDYXJkRmllbGRDb21wb25lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzKCkuc2xpY2UodGhpcy5tYXhWaXNpYmxlRmllbGRzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5leHBhbmQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZXhwYW5kKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0RXhwYW5kZWQodHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29sbGFwc2UoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRFeHBhbmRlZChmYWxzZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRvb2x0aXBLZXkoKTogc3RyaW5nIHtcbiAgICBjb25zdCByYXcgPSB0aGlzLmV4cGFuZGVkID8gdGhpcy5jb2xsYXBzZVRvb2x0aXAgOiB0aGlzLmV4cGFuZFRvb2x0aXA7XG4gICAgY29uc3QgZmFsbGJhY2sgPSB0aGlzLmV4cGFuZGVkID8gT0JKRUNUX0NBUkRfQ09MTEFQU0VfVE9PTFRJUF9LRVkgOiBPQkpFQ1RfQ0FSRF9FWFBBTkRfVE9PTFRJUF9LRVk7XG4gICAgcmV0dXJuIHR5cGVvZiByYXcgPT09ICdzdHJpbmcnICYmIHJhdyA/IHJhdyA6IGZhbGxiYWNrO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBzaG93Qm9yZGVyQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJvcmRlckJ1dHRvbk9wdGlvbnM/LnZpc2libGU/Lih0aGlzLnNldmVyaXR5KSA/PyBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgYm9yZGVyQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ib3JkZXJCdXR0b25PcHRpb25zPy5sYWJlbD8uKHRoaXMuc2V2ZXJpdHkpID8/ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnBhbmVsX3RvZ2dsZSc7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGJvcmRlckJ1dHRvblRvb2x0aXAoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuYm9yZGVyQnV0dG9uT3B0aW9ucz8udG9vbHRpcD8uKHRoaXMuc2V2ZXJpdHkpID8/IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGJvcmRlckJ1dHRvbkljb24oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuYm9yZGVyQnV0dG9uT3B0aW9ucz8uaWNvbj8uKHRoaXMuc2V2ZXJpdHkpID8/IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGJvcmRlckJ1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJvcmRlckJ1dHRvbk9wdGlvbnM/LmRpc2FibGVkPy4odGhpcy5zZXZlcml0eSkgPz8gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Cb3JkZXJCdXR0b25DbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLmJvcmRlckJ1dHRvbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5ib3JkZXJCdXR0b25PcHRpb25zPy5vbkNsaWNrPy4odGhpcy5zZXZlcml0eSk7XG4gIH1cblxuICBwcml2YXRlIHNldEV4cGFuZGVkKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZXhwYW5kZWQgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5leHBhbmRlZCA9IHZhbHVlO1xuICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmV4cGFuZGVkKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmlzaWJsZUZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucm93Q29udGFpbmVyUmVmIHx8ICF0aGlzLm1haW5TbG90UmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdG90YWxGaWVsZHMgPSB0aGlzLmZpZWxkcygpLmxlbmd0aDtcbiAgICBjb25zdCBpc01vYmlsZVZpZXdwb3J0ID0gZ2V0Vmlld3BvcnRXaWR0aCgpIDw9IE9CSkVDVF9DQVJEX01PQklMRV9CUkVBS1BPSU5UX1BYO1xuICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5yb3dDb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICBjb25zdCBtYWluV2lkdGggPSB0aGlzLm1haW5TbG90UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgY29uc3QgcmVtYWluaW5nU3BhY2UgPSBjb250YWluZXJXaWR0aCAtIG1haW5XaWR0aDtcblxuICAgIGxldCBtYXhGaWVsZFF0ZCA9IGlzTW9iaWxlVmlld3BvcnQgPyAwIDogTWF0aC5mbG9vcihyZW1haW5pbmdTcGFjZSAvIHRoaXMuZmllbGRzTWluV2lkdGgpO1xuXG4gICAgY29uc3QgaGFzRXhwYW5kSWNvbiA9IG1heEZpZWxkUXRkIDwgdG90YWxGaWVsZHM7XG5cbiAgICBpZiAoaGFzRXhwYW5kSWNvbiAmJiAhaXNNb2JpbGVWaWV3cG9ydCkge1xuICAgICAgY29uc3QgZXhwYW5kSWNvbldpZHRoID0gdGhpcy5leHBhbmRCdXR0b25SZWY/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggfHwgT0JKRUNUX0NBUkRfRVhQQU5EX0lDT05fRVNUSU1BVEVEX1dJRFRIX1BYO1xuICAgICAgbWF4RmllbGRRdGQgPSBNYXRoLmZsb29yKChyZW1haW5pbmdTcGFjZSAtIGV4cGFuZEljb25XaWR0aCkgLyB0aGlzLmZpZWxkc01pbldpZHRoKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0TWF4VmlzaWJsZUZpZWxkcyA9IE1hdGgubWF4KG1heEZpZWxkUXRkLCAwKTtcblxuICAgIGlmIChuZXh0TWF4VmlzaWJsZUZpZWxkcyA9PT0gdGhpcy5tYXhWaXNpYmxlRmllbGRzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5tYXhWaXNpYmxlRmllbGRzID0gbmV4dE1heFZpc2libGVGaWVsZHM7XG5cbiAgICBpZiAodGhpcy5tYXhWaXNpYmxlRmllbGRzID49IHRvdGFsRmllbGRzICYmIHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPGRpdiBbaWRdPVwiaWRcIiBjbGFzcz1cInNkYy1vYmplY3QtY2FyZFwiPlxuICBAaWYgKHNob3dCb3JkZXJCdXR0b24pIHtcbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwic2RjLW9iamVjdC1jYXJkX19ib3JkZXItYnV0dG9uXCJcbiAgICAgIFtkaXNhYmxlZF09XCJib3JkZXJCdXR0b25EaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJvcmRlckJ1dHRvbkxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgIFthdHRyLnRpdGxlXT1cImJvcmRlckJ1dHRvblRvb2x0aXAgPyAoYm9yZGVyQnV0dG9uVG9vbHRpcCB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgICAgIChjbGljayk9XCJvbkJvcmRlckJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgID5cbiAgICAgIEBpZiAoYm9yZGVyQnV0dG9uSWNvbikge1xuICAgICAgICA8aSBbY2xhc3NdPVwiYm9yZGVyQnV0dG9uSWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8c3Bhbj57eyBib3JkZXJCdXR0b25MYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIH1cbiAgICA8L2J1dHRvbj5cbiAgfVxuXG4gIDxkaXZcbiAgICAjcm93Q29udGFpbmVyXG4gICAgW2lkXT1cImlkICsgJy1tYWluLWNvbnRhaW5lcidcIlxuICAgIGNsYXNzPVwic2RjLW9iamVjdC1jYXJkX19tYWluLWNvbnRhaW5lclwiXG4gICAgW2NsYXNzLnNkYy1vYmplY3QtY2FyZF9fbWFpbi1jb250YWluZXItLXNldmVyaXR5LWRlZmF1bHRdPVwic2V2ZXJpdHkgPT09ICdkZWZhdWx0J1wiXG4gICAgW2NsYXNzLnNkYy1vYmplY3QtY2FyZF9fbWFpbi1jb250YWluZXItLXNldmVyaXR5LWluZm9dPVwic2V2ZXJpdHkgPT09ICdpbmZvJ1wiXG4gICAgW2NsYXNzLnNkYy1vYmplY3QtY2FyZF9fbWFpbi1jb250YWluZXItLXNldmVyaXR5LXdhcm5dPVwic2V2ZXJpdHkgPT09ICd3YXJuJ1wiXG4gICAgW2NsYXNzLnNkYy1vYmplY3QtY2FyZF9fbWFpbi1jb250YWluZXItLXNldmVyaXR5LWVycm9yXT1cInNldmVyaXR5ID09PSAnZXJyb3InXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19tYWluLWNvbnRhaW5lci0tc2V2ZXJpdHktc3VjY2Vzc109XCJzZXZlcml0eSA9PT0gJ3N1Y2Nlc3MnXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19tYWluLWNvbnRhaW5lci0td2l0aC1oaWRkZW4tZmllbGRzXT1cImhhc0hpZGRlbkZpZWxkc1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwic2RjLW9iamVjdC1jYXJkX19jb250ZW50XCI+XG4gICAgICA8ZGl2XG4gICAgICAgICNtYWluU2xvdFxuICAgICAgICBjbGFzcz1cInNkYy1vYmplY3QtY2FyZF9fbWFpbi1zbG90XCJcbiAgICAgICAgW3N0eWxlLm1pbi13aWR0aC5weF09XCJmaWVsZHNNaW5XaWR0aFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNkYy1vYmplY3QtY2FyZC1tYWluXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAobWF4VmlzaWJsZUZpZWxkcyAmJiBmaWVsZHMoKS5sZW5ndGgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInNkYy1vYmplY3QtY2FyZF9fZGl2aWRlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZGl2PlxuICAgICAgfVxuXG4gICAgICBAZm9yIChmaWVsZCBvZiB2aXNpYmxlRmllbGRzKCk7IHRyYWNrIGZpZWxkLmlkKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNkYy1vYmplY3QtY2FyZF9fZmllbGRcIlxuICAgICAgICAgIFtzdHlsZS5taW4td2lkdGgucHhdPVwiZmllbGRzTWluV2lkdGhcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWVsZC5jb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvblxuICAgICAgI2V4cGFuZEJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbaWRdPVwiaWQgKyAnLWV4cGFuZC1pY29uLWNvbnRhaW5lcidcIlxuICAgICAgY2xhc3M9XCJzZGMtb2JqZWN0LWNhcmRfX2V4cGFuZC1idXR0b25cIlxuICAgICAgW2NsYXNzLnNkYy1vYmplY3QtY2FyZF9fZXhwYW5kLWJ1dHRvbi0taGlkZGVuXT1cIiFoYXNIaWRkZW5GaWVsZHNcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImlkICsgJy1leHBhbmRhYmxlLWNvbnRhaW5lcidcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sdGlwS2V5IHwgdHJhbnNsYXRlXCJcbiAgICAgIFthdHRyLnRpdGxlXT1cInRvb2x0aXBLZXkgfCB0cmFuc2xhdGVcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgICA+XG4gICAgICA8aVxuICAgICAgICBbaWRdPVwiaWQgKyAnLWV4cGFuZC1pY29uJ1wiXG4gICAgICAgIGNsYXNzPVwic2RjLW9iamVjdC1jYXJkX19leHBhbmQtaWNvbiBmYXNcIlxuICAgICAgICBbY2xhc3MuZmEtbWludXNdPVwiZXhwYW5kZWRcIlxuICAgICAgICBbY2xhc3MuZmEtcGx1c109XCIhZXhwYW5kZWRcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPHNlY3Rpb25cbiAgICBbaWRdPVwiaWQgKyAnLWV4cGFuZGFibGUtY29udGFpbmVyJ1wiXG4gICAgY2xhc3M9XCJzZGMtb2JqZWN0LWNhcmRfX2V4cGFuZGFibGUtY29udGFpbmVyXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19leHBhbmRhYmxlLWNvbnRhaW5lci0tc2V2ZXJpdHktZGVmYXVsdF09XCJzZXZlcml0eSA9PT0gJ2RlZmF1bHQnXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19leHBhbmRhYmxlLWNvbnRhaW5lci0tc2V2ZXJpdHktaW5mb109XCJzZXZlcml0eSA9PT0gJ2luZm8nXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19leHBhbmRhYmxlLWNvbnRhaW5lci0tc2V2ZXJpdHktd2Fybl09XCJzZXZlcml0eSA9PT0gJ3dhcm4nXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19leHBhbmRhYmxlLWNvbnRhaW5lci0tc2V2ZXJpdHktZXJyb3JdPVwic2V2ZXJpdHkgPT09ICdlcnJvcidcIlxuICAgIFtjbGFzcy5zZGMtb2JqZWN0LWNhcmRfX2V4cGFuZGFibGUtY29udGFpbmVyLS1zZXZlcml0eS1zdWNjZXNzXT1cInNldmVyaXR5ID09PSAnc3VjY2VzcydcIlxuICAgIFtAc2RjT2JqZWN0Q2FyZEV4cGFuZGFibGVdPVwiZXhwYW5kZWQgPyAnZXhwYW5kZWQnIDogJ2NvbGxhcHNlZCdcIlxuICAgIFthdHRyLmluZXJ0XT1cImV4cGFuZGVkID8gbnVsbCA6ICcnXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJzZGMtb2JqZWN0LWNhcmRfX2V4cGFuZGFibGUtaW5uZXJcIj5cbiAgICAgIEBmb3IgKGZpZWxkIG9mIGhpZGRlbkZpZWxkcygpOyB0cmFjayBmaWVsZC5pZCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLW9iamVjdC1jYXJkX19maWVsZFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmllbGQuY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9vYmplY3QtY2FyZC9vYmplY3QtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL29iamVjdC1jYXJkL29iamVjdC1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBRVosWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZUFBZSxFQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQyx1Q0FBdUMsRUFDdkMsMENBQTBDLEVBQzFDLDhCQUE4QixFQUM5QixxQkFBcUIsRUFDckIsZ0NBQWdDLEVBQ2pDLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUF1QixZQUFZLEVBQW1CLE1BQU0sNkJBQTZCLENBQUM7QUFFakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7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LE9BQU8sQ0FBQyx5QkFBeUIsRUFBRTs0QkFDakMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzs0QkFDMUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzs0QkFDekMsVUFBVSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO3lCQUNoRSxDQUFDO3FCQUNIOzhCQU1RLEVBQUU7c0JBQVYsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdJLGNBQWM7c0JBQXZCLE1BQU07Z0JBR1ksSUFBSTtzQkFEdEIsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTXRDLGVBQWU7c0JBRC9CLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJMUIsV0FBVztzQkFEM0IsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUl0QixlQUFlO3NCQUQvQixTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb250ZW50Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHtcbiAgT0JKRUNUX0NBUkRfQ09MTEFQU0VfVE9PTFRJUF9LRVksXG4gIE9CSkVDVF9DQVJEX0RFRkFVTFRfRklFTERTX01JTl9XSURUSF9QWCxcbiAgT0JKRUNUX0NBUkRfRVhQQU5EX0lDT05fRVNUSU1BVEVEX1dJRFRIX1BYLFxuICBPQkpFQ1RfQ0FSRF9FWFBBTkRfVE9PTFRJUF9LRVksXG4gIE9CSkVDVF9DQVJEX0lEX1BSRUZJWCxcbiAgT0JKRUNUX0NBUkRfTU9CSUxFX0JSRUFLUE9JTlRfUFhcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvb2JqZWN0LWNhcmQuY29uc3QnO1xuaW1wb3J0IHsgQm9yZGVyQnV0dG9uT3B0aW9ucywgRW51bVNldmVyaXR5LCB0eXBlIFNldmVyaXRpZXMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3BhbmVsLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBTdHJpbmdCb29sZWFuIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zZW1hbnRpY3MudHlwZSc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IGdldFZpZXdwb3J0V2lkdGggfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2xheW91dC51dGlsJztcbmltcG9ydCB7IE9iamVjdENhcmRGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vYmplY3QtY2FyZC1maWVsZC9vYmplY3QtY2FyZC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JqZWN0Q2FyZE1haW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb2JqZWN0LWNhcmQtbWFpbi9vYmplY3QtY2FyZC1tYWluLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENhcmQgZGUgZXhpYmnDp8OjbyBkZSBvYmpldG8gY29tIHVtIGJsb2NvIHByaW5jaXBhbCAoYHNkYy1vYmplY3QtY2FyZC1tYWluYCksXG4gKiBjYW1wb3MgZXh0cmFzIChgc2RjLW9iamVjdC1jYXJkLWZpZWxkYCkgZSBwYWluZWwgZXhwYW5zw612ZWwgcGFyYSBvcyBjYW1wb3MgcXVlIG7Do29cbiAqIGNhYmVtIG5hIGxhcmd1cmEgZGlzcG9uw612ZWwuIENhbGN1bGEgYXV0b21hdGljYW1lbnRlIHF1YW50b3MgY2FtcG9zIGZpY2FtIHZpc8OtdmVpc1xuICogY29uZm9ybWUgYSBsYXJndXJhIGRvIGNvbnRhaW5lciAodmlhIGBSZXNpemVPYnNlcnZlcmApIGUgc3Vwb3J0YSBuw612ZWwgZGUgc2V2ZXJpZGFkZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHNkYy1vYmplY3QtY2FyZCBbc2V2ZXJpdHldPVwiJ2luZm8nXCI+XG4gKiAgIDxzZGMtb2JqZWN0LWNhcmQtbWFpbiBsYWJlbD1cIkpvw6NvIGRhIFNpbHZhXCIgZGVzY3JpcHRpb249XCJBbmFsaXN0YSBkZSBzaXN0ZW1hc1wiIC8+XG4gKiAgIDxzZGMtb2JqZWN0LWNhcmQtZmllbGQgbGFiZWw9XCJDUEZcIiBkZXNjcmlwdGlvbj1cIjAwMC4wMDAuMDAwLTAwXCIgLz5cbiAqICAgPHNkYy1vYmplY3QtY2FyZC1maWVsZCBsYWJlbD1cIk1hdHLDrWN1bGFcIiBkZXNjcmlwdGlvbj1cIjAwMTIzXCIgLz5cbiAqIDwvc2RjLW9iamVjdC1jYXJkPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1vYmplY3QtY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYmplY3QtY2FyZC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ3NkY09iamVjdENhcmRFeHBhbmRhYmxlJywgW1xuICAgICAgc3RhdGUoJ2NvbGxhcHNlZCcsIHN0eWxlKHsgaGVpZ2h0OiAnMCcgfSkpLFxuICAgICAgc3RhdGUoJ2V4cGFuZGVkJywgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCdjb2xsYXBzZWQgPD0+IGV4cGFuZGVkJywgYW5pbWF0ZSgnMjAwbXMgZWFzZS1vdXQnKSlcbiAgICBdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBJZGVudGlmaWNhZG9yIMO6bmljbyBkbyBjb21wb25lbnRlIG5vIERPTS4gR2VyYWRvIGF1dG9tYXRpY2FtZW50ZSBzZSBuw6NvIGluZm9ybWFkby4gKi9cbiAgQElucHV0KCkgaWQgPSBuZXh0U2VxdWVudGlhbElkKE9CSkVDVF9DQVJEX0lEX1BSRUZJWCk7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBEZWZpbmUgc2UgbyBwYWluZWwgZXhwYW5zw612ZWwgZXN0w6EgYWJlcnRvLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBASW5wdXQoKSBleHBhbmRlZCA9IGZhbHNlO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gQ2hhdmUgZGUgdHJhZHXDp8OjbyAob3UgYGZhbHNlYCBwYXJhIHVzYXIgbyBkZWZhdWx0KSBkbyB0b29sdGlwL2FyaWEtbGFiZWwgZGUgZXhwYW5kaXIuICovXG4gIEBJbnB1dCgpIGV4cGFuZFRvb2x0aXA6IFN0cmluZ0Jvb2xlYW4gPSBPQkpFQ1RfQ0FSRF9FWFBBTkRfVE9PTFRJUF9LRVk7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBDaGF2ZSBkZSB0cmFkdcOnw6NvIChvdSBgZmFsc2VgIHBhcmEgdXNhciBvIGRlZmF1bHQpIGRvIHRvb2x0aXAvYXJpYS1sYWJlbCBkZSByZWNvbGhlci4gKi9cbiAgQElucHV0KCkgY29sbGFwc2VUb29sdGlwOiBTdHJpbmdCb29sZWFuID0gT0JKRUNUX0NBUkRfQ09MTEFQU0VfVE9PTFRJUF9LRVk7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBMYXJndXJhIG3DrW5pbWEgZW0gcGl4ZWxzIGRlIGNhZGEgY2FtcG8gKHZpc8OtdmVsIG91IG5vIHBhaW5lbCBleHBhbnPDrXZlbCkuIEBkZWZhdWx0IDIwMCAqL1xuICBASW5wdXQoKSBmaWVsZHNNaW5XaWR0aCA9IE9CSkVDVF9DQVJEX0RFRkFVTFRfRklFTERTX01JTl9XSURUSF9QWDtcblxuICAvKiogQGRlc2NyaXB0aW9uIE7DrXZlbCBkZSBzZXZlcmlkYWRlIHF1ZSBhbHRlcmEgYSBjb3IgZGUgZGVzdGFxdWUgZG8gY2FyZC4gQGRlZmF1bHQgJ2RlZmF1bHQnICovXG4gIEBJbnB1dCgpIHNldmVyaXR5OiBTZXZlcml0aWVzID0gRW51bVNldmVyaXR5LkRlZmF1bHQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmHDp8OjbyBvcGNpb25hbCBkbyBib3TDo28gbGF0ZXJhbCBkZSBib3JkYSAobWVzbW8gY29udHJhdG8gdXNhZG8gcGVsbyBgc2RjLXBhbmVsYCkuXG4gICAqIE9taXRpZG8gcG9yIHBhZHLDo286IG7Do28gcmVxdWVyIG8gY29tcG9uZW50ZSBgcy1ib3JkZXItYnV0dG9uYCBkbyBBQyAoYWluZGEgbsOjbyBwb3J0YWRvIHBhcmEgbyBEYXRhQ29yZSkuXG4gICAqL1xuICBASW5wdXQoKSBib3JkZXJCdXR0b25PcHRpb25zPzogQm9yZGVyQnV0dG9uT3B0aW9ucztcblxuICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gZXN0YWRvIGRlIGV4cGFuc8OjbyBtdWRhLiAqL1xuICBAT3V0cHV0KCkgZXhwYW5kZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChPYmplY3RDYXJkTWFpbkNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1haW46IE9iamVjdENhcmRNYWluQ29tcG9uZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZpZWxkcyA9IGNvbnRlbnRDaGlsZHJlbihPYmplY3RDYXJkRmllbGRDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSk7XG5cbiAgQFZpZXdDaGlsZCgncm93Q29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSByZWFkb25seSByb3dDb250YWluZXJSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdtYWluU2xvdCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgcmVhZG9ubHkgbWFpblNsb3RSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdleHBhbmRCdXR0b24nLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIHJlYWRvbmx5IGV4cGFuZEJ1dHRvblJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcblxuICBwcm90ZWN0ZWQgbWF4VmlzaWJsZUZpZWxkcyA9IDA7XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy51cGRhdGVWaXNpYmxlRmllbGRzKCkpO1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnJvd0NvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5tYWluU2xvdFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVGaWVsZHMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVGaWVsZHMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaGFzSGlkZGVuRmllbGRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkcygpLmxlbmd0aCA+IHRoaXMubWF4VmlzaWJsZUZpZWxkcztcbiAgfVxuXG4gIHByb3RlY3RlZCB2aXNpYmxlRmllbGRzKCk6IE9iamVjdENhcmRGaWVsZENvbXBvbmVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZHMoKS5zbGljZSgwLCB0aGlzLm1heFZpc2libGVGaWVsZHMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhpZGRlbkZpZWxkcygpOiBPYmplY3RDYXJkRmllbGRDb21wb25lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzKCkuc2xpY2UodGhpcy5tYXhWaXNpYmxlRmllbGRzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5leHBhbmQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZXhwYW5kKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0RXhwYW5kZWQodHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29sbGFwc2UoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRFeHBhbmRlZChmYWxzZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRvb2x0aXBLZXkoKTogc3RyaW5nIHtcbiAgICBjb25zdCByYXcgPSB0aGlzLmV4cGFuZGVkID8gdGhpcy5jb2xsYXBzZVRvb2x0aXAgOiB0aGlzLmV4cGFuZFRvb2x0aXA7XG4gICAgY29uc3QgZmFsbGJhY2sgPSB0aGlzLmV4cGFuZGVkID8gT0JKRUNUX0NBUkRfQ09MTEFQU0VfVE9PTFRJUF9LRVkgOiBPQkpFQ1RfQ0FSRF9FWFBBTkRfVE9PTFRJUF9LRVk7XG4gICAgcmV0dXJuIHR5cGVvZiByYXcgPT09ICdzdHJpbmcnICYmIHJhdyA/IHJhdyA6IGZhbGxiYWNrO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBzaG93Qm9yZGVyQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJvcmRlckJ1dHRvbk9wdGlvbnM/LnZpc2libGU/Lih0aGlzLnNldmVyaXR5KSA/PyBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgYm9yZGVyQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ib3JkZXJCdXR0b25PcHRpb25zPy5sYWJlbD8uKHRoaXMuc2V2ZXJpdHkpID8/ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5X3BhbmVsX3RvZ2dsZSc7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGJvcmRlckJ1dHRvblRvb2x0aXAoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuYm9yZGVyQnV0dG9uT3B0aW9ucz8udG9vbHRpcD8uKHRoaXMuc2V2ZXJpdHkpID8/IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGJvcmRlckJ1dHRvbkljb24oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuYm9yZGVyQnV0dG9uT3B0aW9ucz8uaWNvbj8uKHRoaXMuc2V2ZXJpdHkpID8/IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGJvcmRlckJ1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJvcmRlckJ1dHRvbk9wdGlvbnM/LmRpc2FibGVkPy4odGhpcy5zZXZlcml0eSkgPz8gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Cb3JkZXJCdXR0b25DbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLmJvcmRlckJ1dHRvbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5ib3JkZXJCdXR0b25PcHRpb25zPy5vbkNsaWNrPy4odGhpcy5zZXZlcml0eSk7XG4gIH1cblxuICBwcml2YXRlIHNldEV4cGFuZGVkKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZXhwYW5kZWQgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5leHBhbmRlZCA9IHZhbHVlO1xuICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmV4cGFuZGVkKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmlzaWJsZUZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucm93Q29udGFpbmVyUmVmIHx8ICF0aGlzLm1haW5TbG90UmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdG90YWxGaWVsZHMgPSB0aGlzLmZpZWxkcygpLmxlbmd0aDtcbiAgICBjb25zdCBpc01vYmlsZVZpZXdwb3J0ID0gZ2V0Vmlld3BvcnRXaWR0aCgpIDw9IE9CSkVDVF9DQVJEX01PQklMRV9CUkVBS1BPSU5UX1BYO1xuICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5yb3dDb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICBjb25zdCBtYWluV2lkdGggPSB0aGlzLm1haW5TbG90UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgY29uc3QgcmVtYWluaW5nU3BhY2UgPSBjb250YWluZXJXaWR0aCAtIG1haW5XaWR0aDtcblxuICAgIGxldCBtYXhGaWVsZFF0ZCA9IGlzTW9iaWxlVmlld3BvcnQgPyAwIDogTWF0aC5mbG9vcihyZW1haW5pbmdTcGFjZSAvIHRoaXMuZmllbGRzTWluV2lkdGgpO1xuXG4gICAgY29uc3QgaGFzRXhwYW5kSWNvbiA9IG1heEZpZWxkUXRkIDwgdG90YWxGaWVsZHM7XG5cbiAgICBpZiAoaGFzRXhwYW5kSWNvbiAmJiAhaXNNb2JpbGVWaWV3cG9ydCkge1xuICAgICAgY29uc3QgZXhwYW5kSWNvbldpZHRoID0gdGhpcy5leHBhbmRCdXR0b25SZWY/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggfHwgT0JKRUNUX0NBUkRfRVhQQU5EX0lDT05fRVNUSU1BVEVEX1dJRFRIX1BYO1xuICAgICAgbWF4RmllbGRRdGQgPSBNYXRoLmZsb29yKChyZW1haW5pbmdTcGFjZSAtIGV4cGFuZEljb25XaWR0aCkgLyB0aGlzLmZpZWxkc01pbldpZHRoKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0TWF4VmlzaWJsZUZpZWxkcyA9IE1hdGgubWF4KG1heEZpZWxkUXRkLCAwKTtcblxuICAgIGlmIChuZXh0TWF4VmlzaWJsZUZpZWxkcyA9PT0gdGhpcy5tYXhWaXNpYmxlRmllbGRzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5tYXhWaXNpYmxlRmllbGRzID0gbmV4dE1heFZpc2libGVGaWVsZHM7XG5cbiAgICBpZiAodGhpcy5tYXhWaXNpYmxlRmllbGRzID49IHRvdGFsRmllbGRzICYmIHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPGRpdiBbaWRdPVwiaWRcIiBjbGFzcz1cInNkYy1vYmplY3QtY2FyZFwiPlxuICBAaWYgKHNob3dCb3JkZXJCdXR0b24pIHtcbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwic2RjLW9iamVjdC1jYXJkX19ib3JkZXItYnV0dG9uXCJcbiAgICAgIFtkaXNhYmxlZF09XCJib3JkZXJCdXR0b25EaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJvcmRlckJ1dHRvbkxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgIFthdHRyLnRpdGxlXT1cImJvcmRlckJ1dHRvblRvb2x0aXAgPyAoYm9yZGVyQnV0dG9uVG9vbHRpcCB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgICAgIChjbGljayk9XCJvbkJvcmRlckJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgID5cbiAgICAgIEBpZiAoYm9yZGVyQnV0dG9uSWNvbikge1xuICAgICAgICA8aSBbY2xhc3NdPVwiYm9yZGVyQnV0dG9uSWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8c3Bhbj57eyBib3JkZXJCdXR0b25MYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIH1cbiAgICA8L2J1dHRvbj5cbiAgfVxuXG4gIDxkaXZcbiAgICAjcm93Q29udGFpbmVyXG4gICAgW2lkXT1cImlkICsgJy1tYWluLWNvbnRhaW5lcidcIlxuICAgIGNsYXNzPVwic2RjLW9iamVjdC1jYXJkX19tYWluLWNvbnRhaW5lclwiXG4gICAgW2NsYXNzLnNkYy1vYmplY3QtY2FyZF9fbWFpbi1jb250YWluZXItLXNldmVyaXR5LWRlZmF1bHRdPVwic2V2ZXJpdHkgPT09ICdkZWZhdWx0J1wiXG4gICAgW2NsYXNzLnNkYy1vYmplY3QtY2FyZF9fbWFpbi1jb250YWluZXItLXNldmVyaXR5LWluZm9dPVwic2V2ZXJpdHkgPT09ICdpbmZvJ1wiXG4gICAgW2NsYXNzLnNkYy1vYmplY3QtY2FyZF9fbWFpbi1jb250YWluZXItLXNldmVyaXR5LXdhcm5dPVwic2V2ZXJpdHkgPT09ICd3YXJuJ1wiXG4gICAgW2NsYXNzLnNkYy1vYmplY3QtY2FyZF9fbWFpbi1jb250YWluZXItLXNldmVyaXR5LWVycm9yXT1cInNldmVyaXR5ID09PSAnZXJyb3InXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19tYWluLWNvbnRhaW5lci0tc2V2ZXJpdHktc3VjY2Vzc109XCJzZXZlcml0eSA9PT0gJ3N1Y2Nlc3MnXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19tYWluLWNvbnRhaW5lci0td2l0aC1oaWRkZW4tZmllbGRzXT1cImhhc0hpZGRlbkZpZWxkc1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwic2RjLW9iamVjdC1jYXJkX19jb250ZW50XCI+XG4gICAgICA8ZGl2XG4gICAgICAgICNtYWluU2xvdFxuICAgICAgICBjbGFzcz1cInNkYy1vYmplY3QtY2FyZF9fbWFpbi1zbG90XCJcbiAgICAgICAgW3N0eWxlLm1pbi13aWR0aC5weF09XCJmaWVsZHNNaW5XaWR0aFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNkYy1vYmplY3QtY2FyZC1tYWluXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAobWF4VmlzaWJsZUZpZWxkcyAmJiBmaWVsZHMoKS5sZW5ndGgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInNkYy1vYmplY3QtY2FyZF9fZGl2aWRlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZGl2PlxuICAgICAgfVxuXG4gICAgICBAZm9yIChmaWVsZCBvZiB2aXNpYmxlRmllbGRzKCk7IHRyYWNrIGZpZWxkLmlkKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNkYy1vYmplY3QtY2FyZF9fZmllbGRcIlxuICAgICAgICAgIFtzdHlsZS5taW4td2lkdGgucHhdPVwiZmllbGRzTWluV2lkdGhcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWVsZC5jb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvblxuICAgICAgI2V4cGFuZEJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbaWRdPVwiaWQgKyAnLWV4cGFuZC1pY29uLWNvbnRhaW5lcidcIlxuICAgICAgY2xhc3M9XCJzZGMtb2JqZWN0LWNhcmRfX2V4cGFuZC1idXR0b25cIlxuICAgICAgW2NsYXNzLnNkYy1vYmplY3QtY2FyZF9fZXhwYW5kLWJ1dHRvbi0taGlkZGVuXT1cIiFoYXNIaWRkZW5GaWVsZHNcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImlkICsgJy1leHBhbmRhYmxlLWNvbnRhaW5lcidcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sdGlwS2V5IHwgdHJhbnNsYXRlXCJcbiAgICAgIFthdHRyLnRpdGxlXT1cInRvb2x0aXBLZXkgfCB0cmFuc2xhdGVcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgICA+XG4gICAgICA8aVxuICAgICAgICBbaWRdPVwiaWQgKyAnLWV4cGFuZC1pY29uJ1wiXG4gICAgICAgIGNsYXNzPVwic2RjLW9iamVjdC1jYXJkX19leHBhbmQtaWNvbiBmYXNcIlxuICAgICAgICBbY2xhc3MuZmEtbWludXNdPVwiZXhwYW5kZWRcIlxuICAgICAgICBbY2xhc3MuZmEtcGx1c109XCIhZXhwYW5kZWRcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPHNlY3Rpb25cbiAgICBbaWRdPVwiaWQgKyAnLWV4cGFuZGFibGUtY29udGFpbmVyJ1wiXG4gICAgY2xhc3M9XCJzZGMtb2JqZWN0LWNhcmRfX2V4cGFuZGFibGUtY29udGFpbmVyXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19leHBhbmRhYmxlLWNvbnRhaW5lci0tc2V2ZXJpdHktZGVmYXVsdF09XCJzZXZlcml0eSA9PT0gJ2RlZmF1bHQnXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19leHBhbmRhYmxlLWNvbnRhaW5lci0tc2V2ZXJpdHktaW5mb109XCJzZXZlcml0eSA9PT0gJ2luZm8nXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19leHBhbmRhYmxlLWNvbnRhaW5lci0tc2V2ZXJpdHktd2Fybl09XCJzZXZlcml0eSA9PT0gJ3dhcm4nXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19leHBhbmRhYmxlLWNvbnRhaW5lci0tc2V2ZXJpdHktZXJyb3JdPVwic2V2ZXJpdHkgPT09ICdlcnJvcidcIlxuICAgIFtjbGFzcy5zZGMtb2JqZWN0LWNhcmRfX2V4cGFuZGFibGUtY29udGFpbmVyLS1zZXZlcml0eS1zdWNjZXNzXT1cInNldmVyaXR5ID09PSAnc3VjY2VzcydcIlxuICAgIFtAc2RjT2JqZWN0Q2FyZEV4cGFuZGFibGVdPVwiZXhwYW5kZWQgPyAnZXhwYW5kZWQnIDogJ2NvbGxhcHNlZCdcIlxuICAgIFthdHRyLmluZXJ0XT1cImV4cGFuZGVkID8gbnVsbCA6ICcnXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJzZGMtb2JqZWN0LWNhcmRfX2V4cGFuZGFibGUtaW5uZXJcIj5cbiAgICAgIEBmb3IgKGZpZWxkIG9mIGhpZGRlbkZpZWxkcygpOyB0cmFjayBmaWVsZC5pZCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLW9iamVjdC1jYXJkX19maWVsZFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmllbGQuY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
|