@acorex/components 16.0.18 → 16.18.1
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/index.mjs +1 -1
- package/esm2022/lib/accordion/accordion.component.mjs +11 -11
- package/esm2022/lib/accordion/accordion.module.mjs +5 -5
- package/esm2022/lib/base/base-page.class.mjs +8 -8
- package/esm2022/lib/base/components.class.mjs +7 -7
- package/esm2022/lib/base/element.class.mjs +44 -38
- package/esm2022/lib/button/button.component.mjs +5 -5
- package/esm2022/lib/button/button.module.mjs +5 -5
- package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +5 -5
- package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +5 -5
- package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +10 -10
- package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +1 -1
- package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +5 -5
- package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +5 -5
- package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +5 -5
- package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +5 -5
- package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +5 -5
- package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +5 -5
- package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +5 -5
- package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +4 -4
- package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +5 -5
- package/esm2022/lib/checkbox/checkbox.component.mjs +5 -5
- package/esm2022/lib/checkbox/checkbox.module.mjs +5 -5
- package/esm2022/lib/color-picker/color-box/color-box.component.mjs +5 -5
- package/esm2022/lib/color-picker/color-picker.component.mjs +5 -5
- package/esm2022/lib/color-picker/color-picker.module.mjs +5 -5
- package/esm2022/lib/context-menu/context-menu.component.mjs +5 -5
- package/esm2022/lib/context-menu/context-menu.directive.mjs +5 -5
- package/esm2022/lib/context-menu/context-menu.module.mjs +5 -5
- package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +5 -5
- package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +5 -5
- package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +5 -5
- package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +5 -5
- package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +5 -5
- package/esm2022/lib/data-filter/filter.class.mjs +5 -5
- package/esm2022/lib/data-filter/filter.module.mjs +5 -5
- package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +5 -5
- package/esm2022/lib/data-list/core/data-list.component.mjs +4 -4
- package/esm2022/lib/data-list/list/list.component.mjs +5 -5
- package/esm2022/lib/data-list/list/list.module.mjs +5 -5
- package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +5 -5
- package/esm2022/lib/data-source/datasource.component.mjs +4 -4
- package/esm2022/lib/data-source/datasource.module.mjs +5 -5
- package/esm2022/lib/date-picker/date-picker.component.mjs +5 -5
- package/esm2022/lib/date-picker/date-picker.module.mjs +7 -6
- package/esm2022/lib/dialog/dialog.component.mjs +5 -5
- package/esm2022/lib/dialog/dialog.module.mjs +5 -5
- package/esm2022/lib/dialog/dialog.service.mjs +5 -5
- package/esm2022/lib/drawer/content.component.mjs +5 -5
- package/esm2022/lib/drawer/drawer-container.component.mjs +5 -5
- package/esm2022/lib/drawer/drawer.component.mjs +5 -5
- package/esm2022/lib/drawer/drawer.module.mjs +5 -5
- package/esm2022/lib/dropdown/dropdown.component.mjs +5 -5
- package/esm2022/lib/dropdown/dropdown.module.mjs +5 -5
- package/esm2022/lib/fieldset/fieldset.component.mjs +4 -4
- package/esm2022/lib/fieldset/fieldset.module.mjs +5 -5
- package/esm2022/lib/form-group/form-group.component.mjs +5 -5
- package/esm2022/lib/form-group/form-group.module.mjs +5 -5
- package/esm2022/lib/label/label.component.mjs +5 -5
- package/esm2022/lib/label/label.module.mjs +5 -5
- package/esm2022/lib/loading/loading-indicator.component.mjs +5 -5
- package/esm2022/lib/loading/loading-panel.component.mjs +5 -5
- package/esm2022/lib/loading/loading.module.mjs +5 -5
- package/esm2022/lib/loading/loading.service.mjs +5 -5
- package/esm2022/lib/menu/menu-item.component.mjs +5 -5
- package/esm2022/lib/menu/menu.component.mjs +5 -5
- package/esm2022/lib/menu/menu.module.mjs +5 -5
- package/esm2022/lib/menu/menu2.component.mjs +5 -5
- package/esm2022/lib/number-box/number-box.component.mjs +5 -5
- package/esm2022/lib/number-box/number-box.module.mjs +5 -5
- package/esm2022/lib/page/content.component.mjs +5 -5
- package/esm2022/lib/page/footer.component.mjs +4 -4
- package/esm2022/lib/page/page.component.mjs +5 -5
- package/esm2022/lib/page/page.module.mjs +5 -5
- package/esm2022/lib/panel-box/panel-box.component.mjs +4 -4
- package/esm2022/lib/panel-box/panel-box.module.mjs +5 -5
- package/esm2022/lib/password-box/password-box.component.mjs +5 -5
- package/esm2022/lib/password-box/password-box.module.mjs +5 -5
- package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +9 -9
- package/esm2022/lib/popover/overlay.service.mjs +5 -5
- package/esm2022/lib/popover/popover.component.mjs +5 -5
- package/esm2022/lib/popover/popover.module.mjs +5 -5
- package/esm2022/lib/popup/popup.component.mjs +6 -6
- package/esm2022/lib/popup/popup.module.mjs +5 -5
- package/esm2022/lib/popup/popup.service.mjs +5 -5
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +4 -4
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +5 -5
- package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +5 -5
- package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +5 -5
- package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +5 -5
- package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +6 -6
- package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +5 -5
- package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +6 -6
- package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +5 -5
- package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +6 -6
- package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +5 -5
- package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +6 -6
- package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +5 -5
- package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +10 -10
- package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +5 -5
- package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +6 -6
- package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +5 -5
- package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +5 -5
- package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +6 -6
- package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +5 -5
- package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +5 -5
- package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +5 -5
- package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +6 -6
- package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +5 -5
- package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +11 -11
- package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +5 -5
- package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +10 -10
- package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +5 -5
- package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +10 -10
- package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +5 -5
- package/esm2022/lib/property-editor/property-editor.class.mjs +5 -5
- package/esm2022/lib/property-editor/property-editor.module.mjs +5 -5
- package/esm2022/lib/query-builder/query-builder-group.component.mjs +5 -5
- package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +5 -5
- package/esm2022/lib/query-builder/query-builder-rule.component.mjs +5 -5
- package/esm2022/lib/query-builder/query-builder.component.mjs +6 -6
- package/esm2022/lib/query-builder/query-builder.module.mjs +5 -5
- package/esm2022/lib/query-builder/query-builder.service.mjs +5 -5
- package/esm2022/lib/search-bar/search-bar.component.mjs +5 -5
- package/esm2022/lib/search-bar/search-bar.module.mjs +5 -5
- package/esm2022/lib/searchbox/searchbox.component.mjs +5 -5
- package/esm2022/lib/searchbox/searchbox.module.mjs +5 -5
- package/esm2022/lib/selectbox/selectbox.component.mjs +5 -5
- package/esm2022/lib/selectbox/selectbox.module.mjs +9 -8
- package/esm2022/lib/selectbox/selectbox2.component.mjs +5 -5
- package/esm2022/lib/selection-list/selection-list.component.mjs +5 -5
- package/esm2022/lib/selection-list/selection-list.module.mjs +5 -5
- package/esm2022/lib/switch/switch.component.mjs +6 -6
- package/esm2022/lib/switch/switch.module.mjs +5 -5
- package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +5 -5
- package/esm2022/lib/tab-page/tab-page-host.component.mjs +5 -5
- package/esm2022/lib/tab-page/tab-page.module.mjs +5 -5
- package/esm2022/lib/tab-page/tab-page.service.mjs +5 -5
- package/esm2022/lib/tab-strip/tab-strip.component.mjs +5 -5
- package/esm2022/lib/tab-strip/tab-strip.module.mjs +5 -5
- package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +5 -5
- package/esm2022/lib/tab-view/tab-view.component.mjs +6 -6
- package/esm2022/lib/tab-view/tab-view.module.mjs +5 -5
- package/esm2022/lib/tab-view/tab.component.mjs +4 -4
- package/esm2022/lib/textarea/textarea.component.mjs +5 -5
- package/esm2022/lib/textarea/textarea.module.mjs +5 -5
- package/esm2022/lib/textbox/textbox.component.mjs +5 -5
- package/esm2022/lib/textbox/textbox.module.mjs +5 -5
- package/esm2022/lib/time-picker/time-picker.component.mjs +5 -5
- package/esm2022/lib/time-picker/time-picker.module.mjs +5 -5
- package/esm2022/lib/toast/toast-message/toast-message.component.mjs +5 -5
- package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +5 -5
- package/esm2022/lib/toast/toast.module.mjs +5 -5
- package/esm2022/lib/toast/toast.service.mjs +5 -5
- package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +5 -5
- package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +5 -5
- package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +5 -5
- package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +5 -5
- package/esm2022/lib/toolbar/toolbar.component.mjs +5 -5
- package/esm2022/lib/toolbar/toolbar.module.mjs +5 -5
- package/esm2022/lib/tooltip/tooltip.directive.mjs +5 -5
- package/esm2022/lib/tooltip/tooltip.module.mjs +5 -5
- package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +5 -5
- package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +5 -5
- package/esm2022/lib/tree-view/tree-view.component.mjs +5 -5
- package/esm2022/lib/tree-view/tree-view.module.mjs +5 -5
- package/esm2022/lib/upload-file/upload-file.component.mjs +5 -5
- package/esm2022/lib/upload-file/upload-file.module.mjs +5 -5
- package/esm2022/lib/validation/validation-form.component.mjs +5 -5
- package/esm2022/lib/validation/validation-rule.widget.mjs +6 -6
- package/esm2022/lib/validation/validation.component.mjs +9 -9
- package/esm2022/lib/validation/validation.module.mjs +6 -6
- package/fesm2022/acorex-components.mjs +765 -757
- package/fesm2022/acorex-components.mjs.map +1 -1
- package/lib/accordion/accordion.component.d.ts +2 -2
- package/lib/base/element.class.d.ts +2 -2
- package/package.json +6 -6
@@ -164,14 +164,14 @@ export class AXQueryBuilderPopupComponent extends AXBasePopupPageComponent {
|
|
164
164
|
}
|
165
165
|
];
|
166
166
|
}
|
167
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
168
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
167
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXQueryBuilderPopupComponent, deps: [{ token: i1.AXToastService }], target: i0.ɵɵFactoryTarget.Component });
|
168
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: AXQueryBuilderPopupComponent, selector: "ng-component", viewQueries: [{ propertyName: "form", first: true, predicate: AXValidationFormComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div>\n <ax-validation-form #form>\n <div *ngFor=\"let rule of items\">\n\n <div *ngIf=\" rule.control\" [ngSwitch]=\"rule.control.type\" style=\"padding: 1em;\">\n <div *ngSwitchCase=\"'textBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'selectBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-select-box placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\n [textField]=\"getOption('textField',rule)\" [(selectedItems)]=\"rule.valueItem\"\n [valueField]=\"getOption('valueField',rule)\" [mode]=\"getOption('mode',rule)\"\n (selectedItemsChange)=\"selectedItemsChange($event,rule)\" size=\"sm\" #selectBoxValue\n [remoteOperation]=\"getOption('remoteOperation',rule)\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n <ax-data-source [provideData]=\"getProvideData\" [params]=\"rule\"></ax-data-source>\n </ax-select-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'numberBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-number-box (onValueChanged)=\"valueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-number-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'datetime'\">\n <ax-date-picker label=\"From\" [(value)]=\"rule.value\" (onValueChanged)=\"valueChange($event,rule)\">\n </ax-date-picker>\n </div>\n <div *ngSwitchCase=\"'boolean'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event,rule)\"\n allowNull=\"false\" [selectedValues]=\"rule.value\" size=\"sm\" mode=\"single\">\n <ax-data-source [provideData]=\"provideDataBoolean\">\n </ax-data-source>\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-select-box>\n </ax-form-group>\n </div>\n <div *ngSwitchDefault>\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n\n </ax-form-group>\n\n </div>\n </div>\n\n\n\n\n </div>\n\n </ax-validation-form>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["showDropDownButton", "rowInputTemplate", "showCheckBox", "readonly", "rtl", "disabled", "placeholder", "size", "allowNull", "textAlign", "bufferSize", "remoteOperation", "fitParent", "dropdownWidth", "multiLine", "onDemandTranslate", "dataSource", "validation", "disabledCallback", "allowSearch", "textField", "valueField", "disabledField", "mode", "items", "selectedItems", "selectedValues"], outputs: ["dropdownToggle", "itemsChange", "onBlur", "onFocus", "selectionChanged", "selectedItemsChange", "selectedValuesChange"] }, { kind: "component", type: i4.AXDataSourceComponent, selector: "ax-data-source", inputs: ["provideData", "params"] }, { kind: "component", type: i5.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "showMask", "type", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { kind: "component", type: i6.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["min", "max", "showSeparator", "showCurrency", "showCounter", "scrollWeel", "showDoubleCounter", "maxLength", "intStep", "decimalNumber", "customStep"] }, { kind: "component", type: i7.AXFormGroupComponent, selector: "ax-form-group", inputs: ["size"] }, { kind: "component", type: i8.AXLabelComponent, selector: "ax-label", inputs: ["size"] }, { kind: "component", type: i9.AXValidationFormComponent, selector: "ax-validation-form", inputs: ["validateOn"], outputs: ["onInit"] }, { kind: "component", type: i10.AXValidationComponent, selector: "ax-validation", inputs: ["rules", "validateOn"], outputs: ["rulesChange", "showMessage"] }, { kind: "component", type: i11.AXValidationRuleComponent, selector: "ax-validation-rule", inputs: ["type", "message", "value", "enabled"] }, { kind: "component", type: i12.AXDatePickerComponent, selector: "ax-date-picker", inputs: ["dayStyle", "dayMinMaxResoan", "validation", "placeholder", "min", "max", "readonly", "disabled", "allowClear", "textAlign", "showToday", "selectableHoliday", "dateType", "showTodayButton", "openByClick", "size", "type", "value"], outputs: ["typeChange", "onValueChanged", "valueChange"] }] });
|
169
169
|
}
|
170
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
170
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXQueryBuilderPopupComponent, decorators: [{
|
171
171
|
type: Component,
|
172
172
|
args: [{ template: "<div>\n <ax-validation-form #form>\n <div *ngFor=\"let rule of items\">\n\n <div *ngIf=\" rule.control\" [ngSwitch]=\"rule.control.type\" style=\"padding: 1em;\">\n <div *ngSwitchCase=\"'textBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'selectBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-select-box placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\n [textField]=\"getOption('textField',rule)\" [(selectedItems)]=\"rule.valueItem\"\n [valueField]=\"getOption('valueField',rule)\" [mode]=\"getOption('mode',rule)\"\n (selectedItemsChange)=\"selectedItemsChange($event,rule)\" size=\"sm\" #selectBoxValue\n [remoteOperation]=\"getOption('remoteOperation',rule)\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n <ax-data-source [provideData]=\"getProvideData\" [params]=\"rule\"></ax-data-source>\n </ax-select-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'numberBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-number-box (onValueChanged)=\"valueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-number-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'datetime'\">\n <ax-date-picker label=\"From\" [(value)]=\"rule.value\" (onValueChanged)=\"valueChange($event,rule)\">\n </ax-date-picker>\n </div>\n <div *ngSwitchCase=\"'boolean'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event,rule)\"\n allowNull=\"false\" [selectedValues]=\"rule.value\" size=\"sm\" mode=\"single\">\n <ax-data-source [provideData]=\"provideDataBoolean\">\n </ax-data-source>\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-select-box>\n </ax-form-group>\n </div>\n <div *ngSwitchDefault>\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n\n </ax-form-group>\n\n </div>\n </div>\n\n\n\n\n </div>\n\n </ax-validation-form>\n</div>\n" }]
|
173
|
-
}], ctorParameters:
|
173
|
+
}], ctorParameters: () => [{ type: i1.AXToastService }], propDecorators: { form: [{
|
174
174
|
type: ViewChild,
|
175
175
|
args: [AXValidationFormComponent]
|
176
176
|
}] } });
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9xdWVyeS1idWlsZGVyL3F1ZXJ5LWJ1aWxkZXItcG9wdXAvcXVlcnktYnVpbGRlci1wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9xdWVyeS1idWlsZGVyL3F1ZXJ5LWJ1aWxkZXItcG9wdXAvcXVlcnktYnVpbGRlci1wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQXFCLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFLdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQUt2RixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsd0JBQXdCO0lBRWxEO0lBRGtCLElBQUksQ0FBNEI7SUFDdEUsWUFBb0IsS0FBcUI7UUFDckMsS0FBSyxFQUFFLENBQUM7UUFEUSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtJQUV6QyxDQUFDO0lBQ0QsS0FBSyxDQUFzQjtJQUMzQixLQUFLLEdBQXlCLEVBQUUsQ0FBQztJQUNqQyxTQUFTLENBQXNCO0lBQy9CLGFBQWEsR0FBWSxJQUFJLENBQUM7SUFDOUIsV0FBVyxDQUFNO0lBQ2pCLGNBQWMsQ0FBQyxLQUFZO1FBQ3ZCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDbkMsS0FBSyxD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QUE7SUFDTCxDQUFDO3dHQW5LUSw0QkFBNEI7NEZBQTVCLDRCQUE0QiwwRkFDMUIseUJBQXlCLHVFQ2R4Qyw4cUpBaUZBOzs0RkRwRWEsNEJBQTRCO2tCQUp4QyxTQUFTOztxR0FLZ0MsSUFBSTtzQkFBekMsU0FBUzt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbkl0ZW0sIEFYVHJhbnNsYXRvciB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQmFzZVBvcHVwUGFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvYmFzZS1wYWdlLmNsYXNzJztcbmltcG9ydCB7IEFYTWVudUl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnLi4vLi4vbWVudS9tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFF1ZXJ5QnVpbGRlckdyb3VwLCBBWFF1ZXJ5QnVpbGRlclBvcHVwLCBBWFF1ZXJ5QnVpbGRlclJ1bGUgfSBmcm9tICcuLi9xdWVyeS1idWlsZGVyLmNsYXNzJztcblxuaW1wb3J0IHsgQVhEYXRhU291cmNlUmVhZFBhcmFtcyB9IGZyb20gJy4uLy4uL2RhdGEtc291cmNlL3JlYWQtcGFyYW0nXG5pbXBvcnQgeyBBWFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3RvYXN0L3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1mb3JtLmNvbXBvbmVudCc7XG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vcXVlcnktYnVpbGRlci1wb3B1cC5jb21wb25lbnQuaHRtbCdcbn0pXG5cbmV4cG9ydCBjbGFzcyBBWFF1ZXJ5QnVpbGRlclBvcHVwQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUG9wdXBQYWdlQ29tcG9uZW50IHtcbiAgICBAVmlld0NoaWxkKEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQpIGZvcm06IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQ7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0b2FzdDogQVhUb2FzdFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgZ3JvdXA6IEFYUXVlcnlCdWlsZGVyR3JvdXA7XG4gICAgaXRlbXM6IEFYUXVlcnlCdWlsZGVyUnVsZVtdID0gW107XG4gICAgZ3JvdXBDb3B5OiBBWFF1ZXJ5QnVpbGRlckdyb3VwO1xuICAgIGNvbXBsYXRlVmFsdWU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIHByb3ZpZGVEYXRhOiBhbnk7XG4gICAgbWFrZUpzb25TdHJpbmcoaXRlbXM6IGFueVtdKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBpdGVtcy5mb3JFYWNoKChlbGVtZW50LCBpbmRleCwgYXJyYXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5pdGVtcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ha2VKc29uU3RyaW5nKGVsZW1lbnQuaXRlbXMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmNvbnRyb2wgJiYgZWxlbWVudC5jb250cm9sLm9wdGlvbnMgJiYgKGVsZW1lbnQuY29udHJvbC5vcHRpb25zLmRhdGFTb3VyY2UgPT09ICcnIHx8IGVsZW1lbnQuY29udHJvbC5vcHRpb25zLmRhdGFTb3VyY2UgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY29udHJvbC5vcHRpb25zLmRhdGFTb3VyY2UgPSB0aGlzLnByb3ZpZGVEYXRhO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gYXJyYXkubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGFycmF5WzBdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdmFyIGdyb3VwU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGhpcy5ncm91cCk7XG4gICAgICAgIHRoaXMuZ3JvdXBDb3B5ID0gSlNPTi5wYXJzZShncm91cFN0cmluZyk7XG4gICAgICAgIHRoaXMubWFrZUpzb25TdHJpbmcodGhpcy5ncm91cENvcHkuaXRlbXMpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZ3JvdXBDb3B5Lml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmdldE5vVmFsdWVSdWxlKHRoaXMuZ3JvdXBDb3B5Lml0ZW1zW2ldKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKHRoaXMuZ3JvdXApO1xuICAgICAgICB9XG5cbiAgICB9XG4gICAgZ2V0VmFsdWUodikge1xuICAgICAgICByZXR1cm4gdi5pbmRleE9mKCc/Pz8/JykgPT0gMCA/IHYuc3BsaXQoJ3wnKVsxXSA6IHY7XG4gICAgfVxuICAgIGdldE5vVmFsdWVSdWxlKGdyKSB7XG4gICAgICAgIC8vIGZvciAobGV0IGkgPSAwOyBpIDwgZ3IuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGdyLmNvbmRpdGlvbikge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnci5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Tm9WYWx1ZVJ1bGUoZ3IuaXRlbXNbaV0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZ3Iub25EZW1hbmRMYWJlbD8uaW5kZXhPZignPz8/PycpID09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnB1c2goZ3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgIH1cblxuXG4gICAgdGV4dFZhbHVlQ2hhbmdlKGUsIHJ1bGUpIHtcbiAgICAgICAgcnVsZS52YWx1ZSA9IGUudmFsdWU7XG4gICAgICAgIHJ1bGUudGV4dCA9IGUudmFsdWU7XG5cbiAgICB9XG4gICAgc2VsZWN0ZWRJdGVtc0NoYW5nZShlLCBydWxlKSB7XG4gICAgICAgIGxldCBuID0gdGhpcy5nZXRPcHRpb24oJ3RleHRGaWVsZCcsIHJ1bGUpO1xuICAgICAgICBydWxlLnRleHQgPSBlWzBdW25dO1xuICAgICAgICBpZiAocnVsZSAmJiBydWxlLmNvbnRyb2wub3B0aW9ucy52YWx1ZUZpZWxkKSB7XG4gICAgICAgICAgICBydWxlLnZhbHVlID0gZVswXVtydWxlLmNvbnRyb2wub3B0aW9ucy52YWx1ZUZpZWxkXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJ1bGUudmFsdWUgPSBlWzBdLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJ1bGUudmFsdWVJdGVtWzBdID0gZVswXTtcblxuICAgIH1cbiAgICB2YWx1ZUNoYW5nZShlLCBydWxlKSB7XG4gICAgICAgIHJ1bGUudmFsdWUgPSBlLnZhbHVlO1xuICAgICAgICBydWxlLnRleHQgPSBlLnZhbHVlO1xuXG4gICAgfVxuICAgIHZhbHVlQm9vbGVhbkNoYW5nZShlLCBydWxlKSB7XG4gICAgICAgIHJ1bGUudGV4dCA9IGUudmFsdWUgPT0gdW5kZWZpbmVkID8gZVswXS52YWx1ZSA6IGUudmFsdWU7XG4gICAgICAgIHJ1bGUudmFsdWUgPSBlLnZhbHVlID09IHVuZGVmaW5lZCA/IGVbMF0udmFsdWUgOiBlLnZhbHVlO1xuXG4gICAgfVxuICAgIGdldE9wdGlvbihuYW1lOiBzdHJpbmcsIHJ1bGUpIHtcbiAgICAgICAgcmV0dXJuIHJ1bGUuY29udHJvbC5vcHRpb25zID8gcnVsZS5jb250cm9sLm9wdGlvbnNbbmFtZV0gOiBudWxsO1xuICAgIH1cbiAgICBnZXRQcm92aWRlRGF0YSA9IChlOiBBWERhdGFTb3VyY2VSZWFkUGFyYW1zKSA9PiB7XG4gICAgICAgIGlmIChlLmV4dHJhICYmIGUuZXh0cmEuY29udHJvbC5vcHRpb25zICYmIGUuZXh0cmEuY29udHJvbC5vcHRpb25zLmRhdGFTb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBlLmV4dHJhLmNvbnRyb2wub3B0aW9ucy5kYXRhU291cmNlKHsgLi4uZSwgb3B0aW9uc0RhdGE6IHsgLi4uZS5leHRyYS5jb250cm9sLm9wdGlvbnMgfSB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBwcm92aWRlRGF0YUJvb2xlYW4gPSAoZSkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICd0cnVlJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLnRydWUnKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ2ZhbHNlJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmZhbHNlJylcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIF0pXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgZmluZE51bGxWYWx1ZShncikge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZ3JbaV0udmFsdWUgPT09IG51bGwgfHwgZ3JbaV0udmFsdWUgPT09IHVuZGVmaW5lZCB8fCBncltpXS52YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBsYXRlVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICAgICAgLy8gaWYgKGdyLmNvbmRpdGlvbikge1xuICAgICAgICAvLyAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnci5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAvLyAgICAgICAgIHRoaXMuZmluZE51bGxWYWx1ZShnci5pdGVtc1tpXSk7XG4gICAgICAgIC8vICAgICB9XG5cbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgLy8gICAgIGlmIChnci5vbkRlbWFuZExhYmVsPy5pbmRleE9mKCc/Pz8/JykgPT0gMCB8fCBnci52YWx1ZSA9PT0gbnVsbCB8fCBnci52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGdyLnZhbHVlID09PSAnJykge1xuICAgICAgICAvLyAgICAgICAgIHRoaXMuY29tcGxhdGVWYWx1ZSA9IGZhbHNlO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG5cbiAgICB9XG5cbiAgICBvbkZvb3RlckJ1dHRvbkNsaWNrKGU6IEFYTWVudUl0ZW1DbGlja0V2ZW50KSB7XG4gICAgICAgIGlmIChlLm5hbWUgPT09ICdjb25maXJtJykge1xuICAgICAgICAgICAgdGhpcy5mb3JtLnZhbGlkYXRlKCkudGhlbihjID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYy5yZXN1bHQgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZSh0aGlzLmdyb3VwQ29weSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGUubmFtZSA9PT0gJ2NhbmNlbCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgZ2V0Rm9vdGVyQnV0dG9ucygpOiBBWEJ1dHRvbkl0ZW1bXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgnY29tbW9uLmNvbmZpcm0nKSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnY29uZmlybScsXG4gICAgICAgICAgICAgICAgc3R5bGU6ICdheCBwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICBpY29uOiAnZmFyIGZhLWNoZWNrLWNpcmNsZSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgnY29tbW9uLmNhbmNlbCcpLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdjYW5jZWwnLFxuICAgICAgICAgICAgICAgIHN0eWxlOiAnYXggbGlnaHQnLFxuICAgICAgICAgICAgICAgIGljb246ICdmYXIgZmEtdGltZXMnXG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9XG59IiwiPGRpdj5cbiAgICA8YXgtdmFsaWRhdGlvbi1mb3JtICNmb3JtPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBydWxlIG9mIGl0ZW1zXCI+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIgcnVsZS5jb250cm9sXCIgW25nU3dpdGNoXT1cInJ1bGUuY29udHJvbC50eXBlXCIgc3R5bGU9XCJwYWRkaW5nOiAxZW07XCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3RleHRCb3gnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWxhYmVsPnt7Z2V0VmFsdWUocnVsZS5vbkRlbWFuZExhYmVsKX19PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC10ZXh0LWJveCAob25WYWx1ZUNoYW5nZWQpPVwidGV4dFZhbHVlQ2hhbmdlKCRldmVudCxydWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLZhdmC2K/Yp9ixINmF2YjYsdivINmG2LjYsSDYrtmI2K8g2LHYpyDZiNin2LHYryDaqdmG24zYr1wiIHNpemU9XCJzbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlIHR5cGU9XCJyZXF1aXJlZFwiPjwvYXgtdmFsaWRhdGlvbi1ydWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0Qm94J1wiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57e2dldFZhbHVlKHJ1bGUub25EZW1hbmRMYWJlbCl9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtc2VsZWN0LWJveCBwbGFjZWhvbGRlcj1cItmF2YLYr9in2LEg2YXZiNix2K8g2YbYuNixINiu2YjYryDYsdinINmI2KfYsdivINqp2YbbjNivXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGV4dEZpZWxkXT1cImdldE9wdGlvbigndGV4dEZpZWxkJyxydWxlKVwiIFsoc2VsZWN0ZWRJdGVtcyldPVwicnVsZS52YWx1ZUl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZUZpZWxkXT1cImdldE9wdGlvbigndmFsdWVGaWVsZCcscnVsZSlcIiBbbW9kZV09XCJnZXRPcHRpb24oJ21vZGUnLHJ1bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRJdGVtc0NoYW5nZSk9XCJzZWxlY3RlZEl0ZW1zQ2hhbmdlKCRldmVudCxydWxlKVwiIHNpemU9XCJzbVwiICNzZWxlY3RCb3hWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZW1vdGVPcGVyYXRpb25dPVwiZ2V0T3B0aW9uKCdyZW1vdGVPcGVyYXRpb24nLHJ1bGUpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uLXJ1bGUgdHlwZT1cInJlcXVpcmVkXCI+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC12YWxpZGF0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1kYXRhLXNvdXJjZSBbcHJvdmlkZURhdGFdPVwiZ2V0UHJvdmlkZURhdGFcIiBbcGFyYW1zXT1cInJ1bGVcIj48L2F4LWRhdGEtc291cmNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgICAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlckJveCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+e3tnZXRWYWx1ZShydWxlLm9uRGVtYW5kTGFiZWwpfX08L2F4LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LW51bWJlci1ib3ggKG9uVmFsdWVDaGFuZ2VkKT1cInZhbHVlQ2hhbmdlKCRldmVudCxydWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLZhdmC2K/Yp9ixINmF2YjYsdivINmG2LjYsSDYrtmI2K8g2LHYpyDZiNin2LHYryDaqdmG24zYr1wiIHNpemU9XCJzbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlIHR5cGU9XCJyZXF1aXJlZFwiPjwvYXgtdmFsaWRhdGlvbi1ydWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtbnVtYmVyLWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidkYXRldGltZSdcIj5cbiAgICAgICAgICAgICAgICAgIDxheC1kYXRlLXBpY2tlciBsYWJlbD1cIkZyb21cIiBbKHZhbHVlKV09XCJydWxlLnZhbHVlXCIgKG9uVmFsdWVDaGFuZ2VkKT1cInZhbHVlQ2hhbmdlKCRldmVudCxydWxlKVwiPlxuICAgICAgICAgICAgICAgICAgPC9heC1kYXRlLXBpY2tlcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+e3tnZXRWYWx1ZShydWxlLm9uRGVtYW5kTGFiZWwpfX08L2F4LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3ggI3NlbGVjdEJveEJvb2xlYW4gKHNlbGVjdGVkSXRlbXNDaGFuZ2UpPVwidmFsdWVCb29sZWFuQ2hhbmdlKCRldmVudCxydWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dOdWxsPVwiZmFsc2VcIiBbc2VsZWN0ZWRWYWx1ZXNdPVwicnVsZS52YWx1ZVwiIHNpemU9XCJzbVwiIG1vZGU9XCJzaW5nbGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtZGF0YS1zb3VyY2UgW3Byb3ZpZGVEYXRhXT1cInByb3ZpZGVEYXRhQm9vbGVhblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtZGF0YS1zb3VyY2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uLXJ1bGUgdHlwZT1cInJlcXVpcmVkXCI+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC12YWxpZGF0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgICAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57e2dldFZhbHVlKHJ1bGUub25EZW1hbmRMYWJlbCl9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtdGV4dC1ib3ggKG9uVmFsdWVDaGFuZ2VkKT1cInRleHRWYWx1ZUNoYW5nZSgkZXZlbnQscnVsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi2YXZgtiv2KfYsSDZhdmI2LHYryDZhti42LEg2K7ZiNivINix2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIiBzaXplPVwic21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZSB0eXBlPVwicmVxdWlyZWRcIj48L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXRleHQtYm94PlxuXG4gICAgICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1ncm91cD5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cblxuXG5cbiAgICAgICAgPC9kaXY+XG5cbiAgICA8L2F4LXZhbGlkYXRpb24tZm9ybT5cbjwvZGl2PlxuIl19
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9xdWVyeS1idWlsZGVyL3F1ZXJ5LWJ1aWxkZXItcG9wdXAvcXVlcnktYnVpbGRlci1wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9xdWVyeS1idWlsZGVyL3F1ZXJ5LWJ1aWxkZXItcG9wdXAvcXVlcnktYnVpbGRlci1wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQXFCLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFLdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQUt2RixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsd0JBQXdCO0lBRWxEO0lBRGtCLElBQUksQ0FBNEI7SUFDdEUsWUFBb0IsS0FBcUI7UUFDckMsS0FBSyxFQUFFLENBQUM7UUFEUSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtJQUV6QyxDQUFDO0lBQ0QsS0FBSyxDQUFzQjtJQUMzQixLQUFLLEdBQXlCLEVBQUUsQ0FBQztJQUNqQyxTQUFTLENBQXNCO0lBQy9CLGFBQWEsR0FBWSxJQUFJLENBQUM7SUFDOUIsV0FBVyxDQUFNO0lBQ2pCLGNBQWMsQ0FBQyxLQUFZO1FBQ3ZCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDbkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3BDLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztxQkFBTSxDQUFDO29CQUNKLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxFQUFFLENBQUM7d0JBQ2hKLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO29CQUMxRCxDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxlQUFlO1FBQ1gsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFFTCxDQUFDO0lBQ0QsUUFBUSxDQUFDLENBQUM7UUFDTixPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELGNBQWMsQ0FBQyxFQUFFO1FBQ2IsOENBQThDO1FBQzlDLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFFTCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3hCLENBQUM7UUFDTCxDQUFDO1FBRUQsS0FBSztJQUNULENBQUM7SUFFRCxRQUFRO0lBRVIsQ0FBQztJQUdELGVBQWUsQ0FBQyxDQUFDLEVBQUUsSUFBSTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBRXhCLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsSUFBSTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1QixDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFN0IsQ0FBQztJQUNELFdBQVcsQ0FBQyxDQUFDLEVBQUUsSUFBSTtRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFFeEIsQ0FBQztJQUNELGtCQUFrQixDQUFDLENBQUMsRUFBRSxJQUFJO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDeEQsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUU3RCxDQUFDO0lBQ0QsU0FBUyxDQUFDLElBQVksRUFBRSxJQUFJO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEUsQ0FBQztJQUNELGNBQWMsR0FBRyxDQUFDLENBQXlCLEVBQUUsRUFBRTtRQUMzQyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMzRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN2QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDM0IsT0FBTyxDQUFDO2dCQUNKO29CQUNJLEtBQUssRUFBRSxNQUFNO29CQUNiLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO2lCQUM5QztnQkFDRDtvQkFDSSxLQUFLLEVBQUUsT0FBTztvQkFDZCxJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDL0M7YUFFSixDQUFDLENBQUE7UUFDTixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQTtJQUVELGFBQWEsQ0FBQyxFQUFFO1FBQ1osS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQzFFLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQy9CLENBQUM7UUFDTCxDQUFDO1FBR0Qsc0JBQXNCO1FBQ3RCLGtEQUFrRDtRQUNsRCwyQ0FBMkM7UUFDM0MsUUFBUTtRQUVSLFdBQVc7UUFDWCxzSEFBc0g7UUFDdEgsc0NBQXNDO1FBQ3RDLFFBQVE7UUFDUixJQUFJO0lBRVIsQ0FBQztJQUVELG1CQUFtQixDQUFDLENBQXVCO1FBQ3ZDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQztJQUVMLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixPQUFPO1lBQ0g7Z0JBQ0ksSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3hDLElBQUksRUFBRSxTQUFTO2dCQUNmLEtBQUssRUFBRSxZQUFZO2dCQUNuQixJQUFJLEVBQUUscUJBQXFCO2FBQzlCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUN2QyxJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsVUFBVTtnQkFDakIsSUFBSSxFQUFFLGNBQWM7YUFDdkI7U0FDSixDQUFBO0lBQ0wsQ0FBQzt1R0FuS1EsNEJBQTRCOzJGQUE1Qiw0QkFBNEIsMEZBQzFCLHlCQUF5Qix1RUNkeEMsOHFKQWlGQTs7MkZEcEVhLDRCQUE0QjtrQkFKeEMsU0FBUzs7bUZBS2dDLElBQUk7c0JBQXpDLFNBQVM7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25JdGVtLCBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEJhc2VQb3B1cFBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL2Jhc2UtcGFnZS5jbGFzcyc7XG5pbXBvcnQgeyBBWE1lbnVJdGVtQ2xpY2tFdmVudCB9IGZyb20gJy4uLy4uL21lbnUvbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJHcm91cCwgQVhRdWVyeUJ1aWxkZXJQb3B1cCwgQVhRdWVyeUJ1aWxkZXJSdWxlIH0gZnJvbSAnLi4vcXVlcnktYnVpbGRlci5jbGFzcyc7XG5cbmltcG9ydCB7IEFYRGF0YVNvdXJjZVJlYWRQYXJhbXMgfSBmcm9tICcuLi8uLi9kYXRhLXNvdXJjZS9yZWFkLXBhcmFtJ1xuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24tZm9ybS5jb21wb25lbnQnO1xuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL3F1ZXJ5LWJ1aWxkZXItcG9wdXAuY29tcG9uZW50Lmh0bWwnXG59KVxuXG5leHBvcnQgY2xhc3MgQVhRdWVyeUJ1aWxkZXJQb3B1cENvbXBvbmVudCBleHRlbmRzIEFYQmFzZVBvcHVwUGFnZUNvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZChBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50KSBmb3JtOiBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50O1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdG9hc3Q6IEFYVG9hc3RTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgIGdyb3VwOiBBWFF1ZXJ5QnVpbGRlckdyb3VwO1xuICAgIGl0ZW1zOiBBWFF1ZXJ5QnVpbGRlclJ1bGVbXSA9IFtdO1xuICAgIGdyb3VwQ29weTogQVhRdWVyeUJ1aWxkZXJHcm91cDtcbiAgICBjb21wbGF0ZVZhbHVlOiBib29sZWFuID0gdHJ1ZTtcbiAgICBwcm92aWRlRGF0YTogYW55O1xuICAgIG1ha2VKc29uU3RyaW5nKGl0ZW1zOiBhbnlbXSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgaXRlbXMuZm9yRWFjaCgoZWxlbWVudCwgaW5kZXgsIGFycmF5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuaXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYWtlSnNvblN0cmluZyhlbGVtZW50Lml0ZW1zKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5jb250cm9sICYmIGVsZW1lbnQuY29udHJvbC5vcHRpb25zICYmIChlbGVtZW50LmNvbnRyb2wub3B0aW9ucy5kYXRhU291cmNlID09PSAnJyB8fCBlbGVtZW50LmNvbnRyb2wub3B0aW9ucy5kYXRhU291cmNlID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNvbnRyb2wub3B0aW9ucy5kYXRhU291cmNlID0gdGhpcy5wcm92aWRlRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IGFycmF5Lmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhcnJheVswXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHZhciBncm91cFN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JvdXApO1xuICAgICAgICB0aGlzLmdyb3VwQ29weSA9IEpTT04ucGFyc2UoZ3JvdXBTdHJpbmcpO1xuICAgICAgICB0aGlzLm1ha2VKc29uU3RyaW5nKHRoaXMuZ3JvdXBDb3B5Lml0ZW1zKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmdyb3VwQ29weS5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5nZXROb1ZhbHVlUnVsZSh0aGlzLmdyb3VwQ29weS5pdGVtc1tpXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSh0aGlzLmdyb3VwKTtcbiAgICAgICAgfVxuXG4gICAgfVxuICAgIGdldFZhbHVlKHYpIHtcbiAgICAgICAgcmV0dXJuIHYuaW5kZXhPZignPz8/PycpID09IDAgPyB2LnNwbGl0KCd8JylbMV0gOiB2O1xuICAgIH1cbiAgICBnZXROb1ZhbHVlUnVsZShncikge1xuICAgICAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGdyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChnci5jb25kaXRpb24pIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3IuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldE5vVmFsdWVSdWxlKGdyLml0ZW1zW2ldKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGdyLm9uRGVtYW5kTGFiZWw/LmluZGV4T2YoJz8/Pz8nKSA9PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5wdXNoKGdyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgICB9XG5cblxuICAgIHRleHRWYWx1ZUNoYW5nZShlLCBydWxlKSB7XG4gICAgICAgIHJ1bGUudmFsdWUgPSBlLnZhbHVlO1xuICAgICAgICBydWxlLnRleHQgPSBlLnZhbHVlO1xuXG4gICAgfVxuICAgIHNlbGVjdGVkSXRlbXNDaGFuZ2UoZSwgcnVsZSkge1xuICAgICAgICBsZXQgbiA9IHRoaXMuZ2V0T3B0aW9uKCd0ZXh0RmllbGQnLCBydWxlKTtcbiAgICAgICAgcnVsZS50ZXh0ID0gZVswXVtuXTtcbiAgICAgICAgaWYgKHJ1bGUgJiYgcnVsZS5jb250cm9sLm9wdGlvbnMudmFsdWVGaWVsZCkge1xuICAgICAgICAgICAgcnVsZS52YWx1ZSA9IGVbMF1bcnVsZS5jb250cm9sLm9wdGlvbnMudmFsdWVGaWVsZF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBydWxlLnZhbHVlID0gZVswXS52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBydWxlLnZhbHVlSXRlbVswXSA9IGVbMF07XG5cbiAgICB9XG4gICAgdmFsdWVDaGFuZ2UoZSwgcnVsZSkge1xuICAgICAgICBydWxlLnZhbHVlID0gZS52YWx1ZTtcbiAgICAgICAgcnVsZS50ZXh0ID0gZS52YWx1ZTtcblxuICAgIH1cbiAgICB2YWx1ZUJvb2xlYW5DaGFuZ2UoZSwgcnVsZSkge1xuICAgICAgICBydWxlLnRleHQgPSBlLnZhbHVlID09IHVuZGVmaW5lZCA/IGVbMF0udmFsdWUgOiBlLnZhbHVlO1xuICAgICAgICBydWxlLnZhbHVlID0gZS52YWx1ZSA9PSB1bmRlZmluZWQgPyBlWzBdLnZhbHVlIDogZS52YWx1ZTtcblxuICAgIH1cbiAgICBnZXRPcHRpb24obmFtZTogc3RyaW5nLCBydWxlKSB7XG4gICAgICAgIHJldHVybiBydWxlLmNvbnRyb2wub3B0aW9ucyA/IHJ1bGUuY29udHJvbC5vcHRpb25zW25hbWVdIDogbnVsbDtcbiAgICB9XG4gICAgZ2V0UHJvdmlkZURhdGEgPSAoZTogQVhEYXRhU291cmNlUmVhZFBhcmFtcykgPT4ge1xuICAgICAgICBpZiAoZS5leHRyYSAmJiBlLmV4dHJhLmNvbnRyb2wub3B0aW9ucyAmJiBlLmV4dHJhLmNvbnRyb2wub3B0aW9ucy5kYXRhU291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZS5leHRyYS5jb250cm9sLm9wdGlvbnMuZGF0YVNvdXJjZSh7IC4uLmUsIG9wdGlvbnNEYXRhOiB7IC4uLmUuZXh0cmEuY29udHJvbC5vcHRpb25zIH0gfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcHJvdmlkZURhdGFCb29sZWFuID0gKGUpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAndHJ1ZScsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci50cnVlJylcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICdmYWxzZScsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5mYWxzZScpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBdKVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIGZpbmROdWxsVmFsdWUoZ3IpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGdyW2ldLnZhbHVlID09PSBudWxsIHx8IGdyW2ldLnZhbHVlID09PSB1bmRlZmluZWQgfHwgZ3JbaV0udmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wbGF0ZVZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgICAgIC8vIGlmIChnci5jb25kaXRpb24pIHtcbiAgICAgICAgLy8gICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3IuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgLy8gICAgICAgICB0aGlzLmZpbmROdWxsVmFsdWUoZ3IuaXRlbXNbaV0pO1xuICAgICAgICAvLyAgICAgfVxuXG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICBpZiAoZ3Iub25EZW1hbmRMYWJlbD8uaW5kZXhPZignPz8/PycpID09IDAgfHwgZ3IudmFsdWUgPT09IG51bGwgfHwgZ3IudmFsdWUgPT09IHVuZGVmaW5lZCB8fCBnci52YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgLy8gICAgICAgICB0aGlzLmNvbXBsYXRlVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfVxuXG4gICAgfVxuXG4gICAgb25Gb290ZXJCdXR0b25DbGljayhlOiBBWE1lbnVJdGVtQ2xpY2tFdmVudCkge1xuICAgICAgICBpZiAoZS5uYW1lID09PSAnY29uZmlybScpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS52YWxpZGF0ZSgpLnRoZW4oYyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGMucmVzdWx0ID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UodGhpcy5ncm91cENvcHkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlLm5hbWUgPT09ICdjYW5jZWwnKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIGdldEZvb3RlckJ1dHRvbnMoKTogQVhCdXR0b25JdGVtW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2NvbW1vbi5jb25maXJtJyksXG4gICAgICAgICAgICAgICAgbmFtZTogJ2NvbmZpcm0nLFxuICAgICAgICAgICAgICAgIHN0eWxlOiAnYXggcHJpbWFyeScsXG4gICAgICAgICAgICAgICAgaWNvbjogJ2ZhciBmYS1jaGVjay1jaXJjbGUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2NvbW1vbi5jYW5jZWwnKSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnY2FuY2VsJyxcbiAgICAgICAgICAgICAgICBzdHlsZTogJ2F4IGxpZ2h0JyxcbiAgICAgICAgICAgICAgICBpY29uOiAnZmFyIGZhLXRpbWVzJ1xuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfVxufSIsIjxkaXY+XG4gICAgPGF4LXZhbGlkYXRpb24tZm9ybSAjZm9ybT5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcnVsZSBvZiBpdGVtc1wiPlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIHJ1bGUuY29udHJvbFwiIFtuZ1N3aXRjaF09XCJydWxlLmNvbnRyb2wudHlwZVwiIHN0eWxlPVwicGFkZGluZzogMWVtO1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0Qm94J1wiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57e2dldFZhbHVlKHJ1bGUub25EZW1hbmRMYWJlbCl9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtdGV4dC1ib3ggKG9uVmFsdWVDaGFuZ2VkKT1cInRleHRWYWx1ZUNoYW5nZSgkZXZlbnQscnVsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi2YXZgtiv2KfYsSDZhdmI2LHYryDZhti42LEg2K7ZiNivINix2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIiBzaXplPVwic21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZSB0eXBlPVwicmVxdWlyZWRcIj48L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdEJveCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+e3tnZXRWYWx1ZShydWxlLm9uRGVtYW5kTGFiZWwpfX08L2F4LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3ggcGxhY2Vob2xkZXI9XCLZhdmC2K/Yp9ixINmF2YjYsdivINmG2LjYsSDYrtmI2K8g2LHYpyDZiNin2LHYryDaqdmG24zYr1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRGaWVsZF09XCJnZXRPcHRpb24oJ3RleHRGaWVsZCcscnVsZSlcIiBbKHNlbGVjdGVkSXRlbXMpXT1cInJ1bGUudmFsdWVJdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJnZXRPcHRpb24oJ3ZhbHVlRmllbGQnLHJ1bGUpXCIgW21vZGVdPVwiZ2V0T3B0aW9uKCdtb2RlJyxydWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkSXRlbXNDaGFuZ2UpPVwic2VsZWN0ZWRJdGVtc0NoYW5nZSgkZXZlbnQscnVsZSlcIiBzaXplPVwic21cIiAjc2VsZWN0Qm94VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVtb3RlT3BlcmF0aW9uXT1cImdldE9wdGlvbigncmVtb3RlT3BlcmF0aW9uJyxydWxlKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlIHR5cGU9XCJyZXF1aXJlZFwiPjwvYXgtdmFsaWRhdGlvbi1ydWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtZGF0YS1zb3VyY2UgW3Byb3ZpZGVEYXRhXT1cImdldFByb3ZpZGVEYXRhXCIgW3BhcmFtc109XCJydWxlXCI+PC9heC1kYXRhLXNvdXJjZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXJCb3gnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWxhYmVsPnt7Z2V0VmFsdWUocnVsZS5vbkRlbWFuZExhYmVsKX19PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1udW1iZXItYm94IChvblZhbHVlQ2hhbmdlZCk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQscnVsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi2YXZgtiv2KfYsSDZhdmI2LHYryDZhti42LEg2K7ZiNivINix2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIiBzaXplPVwic21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZSB0eXBlPVwicmVxdWlyZWRcIj48L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LW51bWJlci1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInZGF0ZXRpbWUnXCI+XG4gICAgICAgICAgICAgICAgICA8YXgtZGF0ZS1waWNrZXIgbGFiZWw9XCJGcm9tXCIgWyh2YWx1ZSldPVwicnVsZS52YWx1ZVwiIChvblZhbHVlQ2hhbmdlZCk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQscnVsZSlcIj5cbiAgICAgICAgICAgICAgICAgIDwvYXgtZGF0ZS1waWNrZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2Jvb2xlYW4nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWxhYmVsPnt7Z2V0VmFsdWUocnVsZS5vbkRlbWFuZExhYmVsKX19PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1zZWxlY3QtYm94ICNzZWxlY3RCb3hCb29sZWFuIChzZWxlY3RlZEl0ZW1zQ2hhbmdlKT1cInZhbHVlQm9vbGVhbkNoYW5nZSgkZXZlbnQscnVsZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93TnVsbD1cImZhbHNlXCIgW3NlbGVjdGVkVmFsdWVzXT1cInJ1bGUudmFsdWVcIiBzaXplPVwic21cIiBtb2RlPVwic2luZ2xlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWRhdGEtc291cmNlIFtwcm92aWRlRGF0YV09XCJwcm92aWRlRGF0YUJvb2xlYW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWRhdGEtc291cmNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlIHR5cGU9XCJyZXF1aXJlZFwiPjwvYXgtdmFsaWRhdGlvbi1ydWxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+e3tnZXRWYWx1ZShydWxlLm9uRGVtYW5kTGFiZWwpfX08L2F4LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXRleHQtYm94IChvblZhbHVlQ2hhbmdlZCk9XCJ0ZXh0VmFsdWVDaGFuZ2UoJGV2ZW50LHJ1bGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cItmF2YLYr9in2LEg2YXZiNix2K8g2YbYuNixINiu2YjYryDYsdinINmI2KfYsdivINqp2YbbjNivXCIgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC12YWxpZGF0aW9uLXJ1bGUgdHlwZT1cInJlcXVpcmVkXCI+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC12YWxpZGF0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC10ZXh0LWJveD5cblxuICAgICAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG5cblxuXG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9heC12YWxpZGF0aW9uLWZvcm0+XG48L2Rpdj5cbiJdfQ==
|
@@ -389,13 +389,13 @@ export class AXQueryBuilderRuleComponent {
|
|
389
389
|
getOption(name) {
|
390
390
|
return this.rule.control.options ? this.rule.control.options[name] : null;
|
391
391
|
}
|
392
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
393
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
392
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXQueryBuilderRuleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
393
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: AXQueryBuilderRuleComponent, selector: "ax-query-rule", inputs: { isEditing: "isEditing", rule: "rule", parent: "parent", mode: "mode", fields: "fields" }, outputs: { onRuleDelete: "onRuleDelete", ruleChanged: "ruleChanged" }, host: { classAttribute: "ax ax-query-rule" }, viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["selectBox"], descendants: true }, { propertyName: "selectBoxValue", first: true, predicate: ["selectBoxValue"], descendants: true }, { propertyName: "selectBoxBoolean", first: true, predicate: ["selectBoxBoolean"], descendants: true }, { propertyName: "textBoxNameValue", first: true, predicate: ["textBoxNameValue"], descendants: true }, { propertyName: "form", first: true, predicate: AXValidationFormComponent, descendants: true }], ngImport: i0, template: "<div class=\"condition\" *ngIf=\"parent\">\n <div class=\"text {{parent.condition}}\">\n <span>{{parent.condition}}</span>\n </div>\n</div>\n<div class=\"handler\">\n <i class=\"far fa-grip-lines-vertical\"></i>\n</div>\n\n<div class=\"caption\" [ngClass]=\"{'editable': isEditing}\">\n <ng-container *ngIf=\"isEditing;else fieldsTemplate\">\n <ax-form-group>\n <ax-select-box [readonly]=\"mode == 'edit'\" (selectionChanged)=\"captionChange($event)\" allowNull=\"false\"\n [(selectedItems)]=\"rule.dataFieldItem\" textField=\"caption\" valueField=\"dataField\" [items]=\"fields\"\n mode=\"single\">\n </ax-select-box>\n </ax-form-group>\n </ng-container>\n <ng-template #fieldsTemplate>\n <div (click)=\"handleEditClick()\">\n {{rule.caption}}\n </div>\n </ng-template>\n</div>\n\n<div class=\"operator\" [ngClass]=\"{'editable': isEditing,'radius':!showValue}\">\n <ng-container *ngIf=\"isEditing;else operatorTemplate\">\n <ax-form-group>\n <ax-select-box [readonly]=\"mode == 'edit'\" *ngIf=\"showOperatorSelectBox\" [(selectedValues)]=\"rule.operator\"\n #selectBox (selectedItemsChange)=\"operatorChange($event)\" allowNull=\"false\" mode=\"single\">\n <ax-data-source [provideData]=\"provideDataOperator\">\n </ax-data-source>\n </ax-select-box>\n </ax-form-group>\n </ng-container>\n <ng-template #operatorTemplate>\n <div class=\"text\" (click)=\"handleEditClick()\">\n {{('queryBuilder.'+rule.operator) | trans}}\n </div>\n </ng-template>\n</div>\n<div *ngIf=\"showValue\" class=\"value\" [ngClass]=\"{'editable': isEditing}\">\n <ng-container *ngIf=\"isEditing;else valueTemplate\">\n\n <div *ngIf=\" rule.control && !isOnDemandLabel\" [ngSwitch]=\"rule.control.type\">\n <div *ngSwitchCase=\"'textBox'\">\n <ax-form-group>\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\n [(value)]=\"rule.value\">\n </ax-text-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'selectBox'\">\n <ax-form-group>\n <ax-select-box *ngIf=\"showSelectBox\" [mode]=\"getOption('mode')\"\n [remoteOperation]=\"getOption('remoteOperation')\" [valueField]=\"getOption('valueField')\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" [textField]=\"getOption('textField')\"\n [(selectedItems)]=\"rule.valueItem\" (selectedItemsChange)=\"selectedItemsChange($event)\"\n #selectBoxValue>\n <ax-data-source [provideData]=\"getProvideData\"></ax-data-source>\n </ax-select-box>\n </ax-form-group>\n </div>\n\n <div *ngSwitchCase=\"'numberBox'\">\n <ax-form-group>\n <ax-number-box [decimalNumber]=\"2\" (onValueChanged)=\"valueChange($event)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" [(value)]=\"rule.value\">\n </ax-number-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'datetime'\">\n <ax-date-picker label=\"From\" [(value)]=\"rule.value\" (onValueChanged)=\"valueChange($event)\">\n </ax-date-picker>\n\n </div>\n <div *ngSwitchCase=\"'boolean'\">\n\n <ax-form-group>\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event)\"\n allowNull=\"false\" [selectedValues]=\"rule.value\" mode=\"single\">\n <ax-data-source [provideData]=\"provideDataBoolean\">\n </ax-data-source>\n </ax-select-box>\n </ax-form-group>\n\n </div>\n <div *ngSwitchDefault>\n <ax-form-group>\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\n [(value)]=\"rule.value\">\n </ax-text-box>\n\n </ax-form-group>\n\n </div>\n </div>\n\n <div *ngIf=\"isOnDemandLabel\">\n\n <ax-text-box #textBoxNameValue [value]=\"getOnDemandName(rule.onDemandLabel)\"\n (onValueChanged)=\"onDemandLabelChange($event)\" placeholder=\"\u0646\u0627\u0645 \u0645\u062A\u063A\u06CC\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\">\n <!-- <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation> -->\n </ax-text-box>\n\n\n </div>\n\n </ng-container>\n <ng-template #valueTemplate>\n <div (click)=\"handleEditClick()\">\n\n {{rule.text}}\n\n </div>\n </ng-template>\n</div>\n\n<div class=\"buttons-list\">\n <div *ngIf=\"showValue && isEditing && mode == 'new'\" class=\"button variable\"\n [ngClass]=\"{'active-button': isOnDemandLabel}\">\n <i class=\"far fa-dollar-sign\"></i>\n <ax-check-box [value]=\"isOnDemandLabel\" (onClick)=\"onDemandLabel($event)\">\n </ax-check-box>\n </div>\n\n <div class=\"button commit\" (click)=\"handleCommitClick()\" *ngIf=\"isEditing\">\n <i class=\"far fa-check\"></i>\n </div>\n <div class=\"button remove\" (click)=\"handleRemoveClick()\" *ngIf=\"mode == 'new'\">\n <i class=\"far fa-times\"></i>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["showDropDownButton", "rowInputTemplate", "showCheckBox", "readonly", "rtl", "disabled", "placeholder", "size", "allowNull", "textAlign", "bufferSize", "remoteOperation", "fitParent", "dropdownWidth", "multiLine", "onDemandTranslate", "dataSource", "validation", "disabledCallback", "allowSearch", "textField", "valueField", "disabledField", "mode", "items", "selectedItems", "selectedValues"], outputs: ["dropdownToggle", "itemsChange", "onBlur", "onFocus", "selectionChanged", "selectedItemsChange", "selectedValuesChange"] }, { kind: "component", type: i3.AXDataSourceComponent, selector: "ax-data-source", inputs: ["provideData", "params"] }, { kind: "component", type: i4.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "showMask", "type", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { kind: "component", type: i5.AXNumberBoxComponent, selector: "ax-number-box", inputs: ["min", "max", "showSeparator", "showCurrency", "showCounter", "scrollWeel", "showDoubleCounter", "maxLength", "intStep", "decimalNumber", "customStep"] }, { kind: "component", type: i6.AXFormGroupComponent, selector: "ax-form-group", inputs: ["size"] }, { kind: "component", type: i7.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["readonly", "disabled", "size", "label", "tabIndex", "indeterminate", "useTreeView", "value"], outputs: ["onValueChanged", "valueChange", "onClick"] }, { kind: "component", type: i8.AXDatePickerComponent, selector: "ax-date-picker", inputs: ["dayStyle", "dayMinMaxResoan", "validation", "placeholder", "min", "max", "readonly", "disabled", "allowClear", "textAlign", "showToday", "selectableHoliday", "dateType", "showTodayButton", "openByClick", "size", "type", "value"], outputs: ["typeChange", "onValueChanged", "valueChange"] }, { kind: "pipe", type: i9.AXTranslatorPipe, name: "trans" }], encapsulation: i0.ViewEncapsulation.None });
|
394
394
|
}
|
395
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
395
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AXQueryBuilderRuleComponent, decorators: [{
|
396
396
|
type: Component,
|
397
397
|
args: [{ selector: 'ax-query-rule', host: { class: 'ax ax-query-rule' }, encapsulation: ViewEncapsulation.None, template: "<div class=\"condition\" *ngIf=\"parent\">\n <div class=\"text {{parent.condition}}\">\n <span>{{parent.condition}}</span>\n </div>\n</div>\n<div class=\"handler\">\n <i class=\"far fa-grip-lines-vertical\"></i>\n</div>\n\n<div class=\"caption\" [ngClass]=\"{'editable': isEditing}\">\n <ng-container *ngIf=\"isEditing;else fieldsTemplate\">\n <ax-form-group>\n <ax-select-box [readonly]=\"mode == 'edit'\" (selectionChanged)=\"captionChange($event)\" allowNull=\"false\"\n [(selectedItems)]=\"rule.dataFieldItem\" textField=\"caption\" valueField=\"dataField\" [items]=\"fields\"\n mode=\"single\">\n </ax-select-box>\n </ax-form-group>\n </ng-container>\n <ng-template #fieldsTemplate>\n <div (click)=\"handleEditClick()\">\n {{rule.caption}}\n </div>\n </ng-template>\n</div>\n\n<div class=\"operator\" [ngClass]=\"{'editable': isEditing,'radius':!showValue}\">\n <ng-container *ngIf=\"isEditing;else operatorTemplate\">\n <ax-form-group>\n <ax-select-box [readonly]=\"mode == 'edit'\" *ngIf=\"showOperatorSelectBox\" [(selectedValues)]=\"rule.operator\"\n #selectBox (selectedItemsChange)=\"operatorChange($event)\" allowNull=\"false\" mode=\"single\">\n <ax-data-source [provideData]=\"provideDataOperator\">\n </ax-data-source>\n </ax-select-box>\n </ax-form-group>\n </ng-container>\n <ng-template #operatorTemplate>\n <div class=\"text\" (click)=\"handleEditClick()\">\n {{('queryBuilder.'+rule.operator) | trans}}\n </div>\n </ng-template>\n</div>\n<div *ngIf=\"showValue\" class=\"value\" [ngClass]=\"{'editable': isEditing}\">\n <ng-container *ngIf=\"isEditing;else valueTemplate\">\n\n <div *ngIf=\" rule.control && !isOnDemandLabel\" [ngSwitch]=\"rule.control.type\">\n <div *ngSwitchCase=\"'textBox'\">\n <ax-form-group>\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\n [(value)]=\"rule.value\">\n </ax-text-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'selectBox'\">\n <ax-form-group>\n <ax-select-box *ngIf=\"showSelectBox\" [mode]=\"getOption('mode')\"\n [remoteOperation]=\"getOption('remoteOperation')\" [valueField]=\"getOption('valueField')\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" [textField]=\"getOption('textField')\"\n [(selectedItems)]=\"rule.valueItem\" (selectedItemsChange)=\"selectedItemsChange($event)\"\n #selectBoxValue>\n <ax-data-source [provideData]=\"getProvideData\"></ax-data-source>\n </ax-select-box>\n </ax-form-group>\n </div>\n\n <div *ngSwitchCase=\"'numberBox'\">\n <ax-form-group>\n <ax-number-box [decimalNumber]=\"2\" (onValueChanged)=\"valueChange($event)\"\n placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\" [(value)]=\"rule.value\">\n </ax-number-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'datetime'\">\n <ax-date-picker label=\"From\" [(value)]=\"rule.value\" (onValueChanged)=\"valueChange($event)\">\n </ax-date-picker>\n\n </div>\n <div *ngSwitchCase=\"'boolean'\">\n\n <ax-form-group>\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event)\"\n allowNull=\"false\" [selectedValues]=\"rule.value\" mode=\"single\">\n <ax-data-source [provideData]=\"provideDataBoolean\">\n </ax-data-source>\n </ax-select-box>\n </ax-form-group>\n\n </div>\n <div *ngSwitchDefault>\n <ax-form-group>\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"\u0645\u0642\u062F\u0627\u0631 \u0645\u0648\u0631\u062F \u0646\u0638\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\"\n [(value)]=\"rule.value\">\n </ax-text-box>\n\n </ax-form-group>\n\n </div>\n </div>\n\n <div *ngIf=\"isOnDemandLabel\">\n\n <ax-text-box #textBoxNameValue [value]=\"getOnDemandName(rule.onDemandLabel)\"\n (onValueChanged)=\"onDemandLabelChange($event)\" placeholder=\"\u0646\u0627\u0645 \u0645\u062A\u063A\u06CC\u0631 \u062E\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F\">\n <!-- <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation> -->\n </ax-text-box>\n\n\n </div>\n\n </ng-container>\n <ng-template #valueTemplate>\n <div (click)=\"handleEditClick()\">\n\n {{rule.text}}\n\n </div>\n </ng-template>\n</div>\n\n<div class=\"buttons-list\">\n <div *ngIf=\"showValue && isEditing && mode == 'new'\" class=\"button variable\"\n [ngClass]=\"{'active-button': isOnDemandLabel}\">\n <i class=\"far fa-dollar-sign\"></i>\n <ax-check-box [value]=\"isOnDemandLabel\" (onClick)=\"onDemandLabel($event)\">\n </ax-check-box>\n </div>\n\n <div class=\"button commit\" (click)=\"handleCommitClick()\" *ngIf=\"isEditing\">\n <i class=\"far fa-check\"></i>\n </div>\n <div class=\"button remove\" (click)=\"handleRemoveClick()\" *ngIf=\"mode == 'new'\">\n <i class=\"far fa-times\"></i>\n </div>\n</div>" }]
|
398
|
-
}], ctorParameters:
|
398
|
+
}], ctorParameters: () => [], propDecorators: { selectBox: [{
|
399
399
|
type: ViewChild,
|
400
400
|
args: ['selectBox']
|
401
401
|
}], selectBoxValue: [{
|
@@ -425,4 +425,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
425
425
|
}], ruleChanged: [{
|
426
426
|
type: Output
|
427
427
|
}] } });
|
428
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1ydWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci1ydWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci1ydWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BGLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLGtCQUFrQixHQUVuQixNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7OztBQVEvQixNQUFNLE9BQU8sMkJBQTJCO0lBQ2QsU0FBUyxDQUF1QjtJQUMzQixjQUFjLENBQXVCO0lBRW5DLGdCQUFnQixDQUF1QjtJQUV2QyxnQkFBZ0IsQ0FBcUI7SUFDOUIsSUFBSSxDQUE0QjtJQUV0RSxTQUFTLEdBQVksSUFBSSxDQUFDO0lBRzFCLElBQUksQ0FBcUI7SUFHekIsTUFBTSxDQUFzQjtJQUc1QixJQUFJLEdBQW1CLEtBQUssQ0FBQztJQUc3QixNQUFNLEdBQVUsRUFBRSxDQUFDO0lBR25CLFlBQVksR0FDVixJQUFJLFlBQVksRUFBMkIsQ0FBQztJQUc5QyxXQUFXLEdBQ1QsSUFBSSxZQUFZLEVBQTJCLENBQUM7SUFFOUMsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUUzQixlQUFlLEdBQVksS0FBSyxDQUFDO0lBRWpDLGFBQWEsR0FBWSxJQUFJLENBQUM7SUFDOUIscUJBQXFCLEdBQVksSUFBSSxDQUFDO0lBQ3RDLGdCQUFlLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7YUFDbkQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztTQUM3QjtJQUNILENBQUM7SUFDRCxrQkFBa0IsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3pCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QixPQUFPLENBQUM7Z0JBQ047b0JBQ0UsS0FBSyxFQUFFLE1BQU07b0JBQ2IsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUM7aUJBQzVDO2dCQUNEO29CQUNFLEtBQUssRUFBRSxPQUFPO29CQUNkLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDO2lCQUM3QzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUMxQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7Z0JBQ25DLElBQ0UsSUFBSSxDQUFDLElBQUk7b0JBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO29CQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJO29CQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksV0FBVyxFQUNyQztvQkFDQSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksVUFBVSxFQUFFO3dCQUNoRCxPQUFPLENBQUM7NEJBQ047Z0NBQ0UsS0FBSyxFQUFFLFVBQVU7Z0NBQ2pCLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDOzZCQUNoRDs0QkFDRDtnQ0FDRSxLQUFLLEVBQUUsY0FBYztnQ0FDckIsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUM7NkJBQ3BEOzRCQUNEO2dDQUNFLEtBQUssRUFBRSxjQUFjO2dDQUNyQixJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQzs2QkFDcEQ7NEJBQ0Q7Z0NBQ0UsS0FBSyxFQUFFLE1BQU07Z0NBQ2IsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUM7NkJBQzVDOzRCQUNEO2dDQUNFLEtBQUssRUFBRSxVQUFVO2dDQUNqQixJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQzs2QkFDaEQ7eUJBQ0YsQ0FBQyxDQUFDO3FCQUNKO3lCQUFNO3dCQUNMLE9BQU8sQ0FBQzs0QkFDTjtnQ0FDRSxLQUFLLEVBQUUsT0FBTztnQ0FDZCxJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQzs2QkFDN0M7NEJBQ0Q7Z0NBQ0UsS0FBSyxFQUFFLFdBQVc7Z0NBQ2xCLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDOzZCQUNqRDs0QkFDRDtnQ0FDRSxLQUFLLEVBQUUsTUFBTTtnQ0FDYixJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQzs2QkFDNUM7NEJBQ0Q7Z0NBQ0UsS0FBSyxFQUFFLFVBQVU7Z0NBQ2pCLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDOzZCQUNoRDt5QkFDRixDQUFDLENBQUM7cUJBQ0o7aUJBQ0Y7cUJBQU07b0JBQ0wsT0FBTyxDQUFDO3dCQUNOOzRCQUNFLEtBQUssRUFBRSxPQUFPOzRCQUNkLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDO3lCQUM3Qzt3QkFDRDs0QkFDRSxLQUFLLEVBQUUsVUFBVTs0QkFDakIsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUM7eUJBQ2hEO3dCQUNEOzRCQUNFLEtBQUssRUFBRSxZQUFZOzRCQUNuQixJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQzt5QkFDbEQ7d0JBQ0Q7NEJBQ0UsS0FBSyxFQUFFLFVBQVU7NEJBQ2pCLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDO3lCQUNoRDt3QkFDRDs0QkFDRSxLQUFLLEVBQUUsV0FBVzs0QkFDbEIsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUM7eUJBQ2pEO3dCQUNEOzRCQUNFLEtBQUssRUFBRSxNQUFNOzRCQUNiLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO3lCQUM1Qzt3QkFDRDs0QkFDRSxLQUFLLEVBQUUsVUFBVTs0QkFDakIsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUM7eUJBQ2hEO3FCQUNGLENBQUMsQ0FBQztpQkFDSjthQUNGO1lBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7Z0JBQ25DLE9BQU8sQ0FBQztvQkFDTjt3QkFDRSxLQUFLLEVBQUUsT0FBTzt3QkFDZCxJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQztxQkFDN0M7b0JBQ0Q7d0JBQ0UsS0FBSyxFQUFFLElBQUk7d0JBQ1gsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUM7cUJBQ3BEO29CQUNEO3dCQUNFLEtBQUssRUFBRSxLQUFLO3dCQUNaLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxDQUFDO3FCQUMxRDtvQkFDRDt3QkFDRSxLQUFLLEVBQUUsSUFBSTt3QkFDWCxJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQztxQkFDakQ7b0JBQ0Q7d0JBQ0UsS0FBSyxFQUFFLEtBQUs7d0JBQ1osSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUM7cUJBQ3ZEO29CQUNEO3dCQUNFLEtBQUssRUFBRSxXQUFXO3dCQUNsQixJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQztxQkFDakQ7b0JBQ0Q7d0JBQ0UsS0FBSyxFQUFFLE1BQU07d0JBQ2IsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUM7cUJBQzVDO29CQUNEO3dCQUNFLEtBQUssRUFBRSxVQUFVO3dCQUNqQixJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQztxQkFDaEQ7aUJBQ0YsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtnQkFDcEMsT0FBTyxDQUFDO29CQUNOO3dCQUNFLEtBQUssRUFBRSxPQUFPO3dCQUNkLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDO3FCQUM3QztvQkFDRDt3QkFDRSxLQUFLLEVBQUUsTUFBTTt3QkFDYixJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQztxQkFDNUM7b0JBQ0Q7d0JBQ0UsS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDO3FCQUNoRDtpQkFDRixDQUFDLENBQUM7YUFDSjtZQUNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLE1BQU0sRUFBRTtnQkFDdEUsT0FBTyxDQUFDO29CQUNOO3dCQUNFLEtBQUssRUFBRSxPQUFPO3dCQUNkLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDO3FCQUM3QztvQkFDRDt3QkFDRSxLQUFLLEVBQUUsSUFBSTt3QkFDWCxJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQztxQkFDcEQ7b0JBQ0Q7d0JBQ0UsS0FBSyxFQUFFLEtBQUs7d0JBQ1osSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsaUNBQWlDLENBQUM7cUJBQzFEO29CQUNEO3dCQUNFLEtBQUssRUFBRSxJQUFJO3dCQUNYLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDO3FCQUNqRDtvQkFDRDt3QkFDRSxLQUFLLEVBQUUsS0FBSzt3QkFDWixJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQztxQkFDdkQ7b0JBQ0Q7d0JBQ0UsS0FBSyxFQUFFLFdBQVc7d0JBQ2xCLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDO3FCQUNqRDtvQkFDRDt3QkFDRSxLQUFLLEVBQUUsTUFBTTt3QkFDYixJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQztxQkFDNUM7b0JBQ0Q7d0JBQ0UsS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDO3FCQUNoRDtpQkFDRixDQUFDLENBQUM7YUFDSjtZQUNELE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFDRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFDRCxhQUFhLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQ2YsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakQ7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVztnQkFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxVQUFVLEVBQzVDO2dCQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQzthQUNqQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7YUFDOUI7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztRQUNuQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUNwQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFUCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUVwQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNqRSxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2dCQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNSO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksU0FBUyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNqQztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGNBQWMsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxVQUFVLEVBQUU7WUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDdkI7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFDRCxXQUFXLENBQUMsQ0FBQztRQUNYLHlGQUF5RjtRQUV6RixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUk7Z0JBQ2xCLENBQUMsQ0FBQyxFQUFFO2dCQUNKLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUNkLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUk7Z0JBQ2pCLENBQUMsQ0FBQyxFQUFFO2dCQUNKLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELG1CQUFtQixDQUFDLENBQUM7UUFDbkIsNkZBQTZGO1FBQzdGLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDbEQsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2xCLHlGQUF5RjtRQUN6RixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUk7Z0JBQ2xCLENBQUMsQ0FBQyxFQUFFO2dCQUNKLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUNkLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUk7Z0JBQ2pCLENBQUMsQ0FBQyxFQUFFO2dCQUNKLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDOUQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELGVBQWUsQ0FBQyxDQUFDO1FBQ2YsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsbUJBQW1CLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXBDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzlEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDOUI7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDL0I7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7WUFDbEIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJO29CQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3BELENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUk7b0JBQ3BDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDcEIsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFDRCxhQUFhLENBQUMsQ0FBQztRQUNiLHdLQUF3SztRQUN4SyxtQ0FBbUM7UUFDbkMsSUFBSTtRQUNKLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUU7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1NBQzlCO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxjQUFjLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNyQixJQUNFLElBQUksQ0FBQyxJQUFJO1lBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTztZQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUNwQztZQUNBLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztnQkFDMUMsR0FBRyxDQUFDO2dCQUNKLFdBQVcsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO2FBQzlDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsU0FBUyxDQUFDLElBQVk7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVFLENBQUM7d0dBMVpVLDJCQUEyQjs0RkFBM0IsMkJBQTJCLDhyQkFPM0IseUJBQXlCLGdEQ2pDdEMsK3JNQXNJTTs7NEZENUdPLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDRSxlQUFlLFFBRW5CLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLGlCQUNwQixpQkFBaUIsQ0FBQyxJQUFJOzBFQUdiLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDTyxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFFSSxnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUVFLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBQ1MsSUFBSTtzQkFBekMsU0FBUzt1QkFBQyx5QkFBeUI7Z0JBRXBDLFNBQVM7c0JBRFIsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxNQUFNO2dCQUtQLFdBQVc7c0JBRFYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi4vc2VsZWN0Ym94L3NlbGVjdGJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhUZXh0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi4vdGV4dGJveC90ZXh0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEFYUXVlcnlCdWlsZGVyQ29udHJvbCxcbiAgQVhRdWVyeUJ1aWxkZXJHcm91cCxcbiAgQVhRdWVyeUJ1aWxkZXJSdWxlLFxuICBBWFF1ZXJ5QnVpbGRlclJ1bGVFdmVudCxcbn0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtcXVlcnktcnVsZScsXG4gIHRlbXBsYXRlVXJsOiAncXVlcnktYnVpbGRlci1ydWxlLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDogeyBjbGFzczogJ2F4IGF4LXF1ZXJ5LXJ1bGUnIH0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYUXVlcnlCdWlsZGVyUnVsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEJveCcpIHNlbGVjdEJveDogQVhTZWxlY3RCb3hDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEJveFZhbHVlJykgc2VsZWN0Qm94VmFsdWU6IEFYU2VsZWN0Qm94Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEJveEJvb2xlYW4nKSBzZWxlY3RCb3hCb29sZWFuOiBBWFNlbGVjdEJveENvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKCd0ZXh0Qm94TmFtZVZhbHVlJykgdGV4dEJveE5hbWVWYWx1ZTogQVhUZXh0Qm94Q29tcG9uZW50O1xuICBAVmlld0NoaWxkKEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQpIGZvcm06IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQ7XG4gIEBJbnB1dCgpXG4gIGlzRWRpdGluZzogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcnVsZTogQVhRdWVyeUJ1aWxkZXJSdWxlO1xuXG4gIEBJbnB1dCgpXG4gIHBhcmVudDogQVhRdWVyeUJ1aWxkZXJHcm91cDtcblxuICBASW5wdXQoKVxuICBtb2RlOiAnbmV3JyB8ICdlZGl0JyA9ICduZXcnO1xuXG4gIEBJbnB1dCgpXG4gIGZpZWxkczogYW55W10gPSBbXTtcblxuICBAT3V0cHV0KClcbiAgb25SdWxlRGVsZXRlOiBFdmVudEVtaXR0ZXI8QVhRdWVyeUJ1aWxkZXJSdWxlRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPEFYUXVlcnlCdWlsZGVyUnVsZUV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBydWxlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYUXVlcnlCdWlsZGVyUnVsZUV2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxBWFF1ZXJ5QnVpbGRlclJ1bGVFdmVudD4oKTtcblxuICBzaG93VmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBpc09uRGVtYW5kTGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzaG93U2VsZWN0Qm94OiBib29sZWFuID0gdHJ1ZTtcbiAgc2hvd09wZXJhdG9yU2VsZWN0Qm94OiBib29sZWFuID0gdHJ1ZTtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICBpZiAoZmllbGQuZGF0YUZpZWxkID09IHRoaXMucnVsZS5kYXRhRmllbGQpIHtcbiAgICAgICAgdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucyA9IGZpZWxkLmNvbnRyb2wub3B0aW9ucztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwpIHtcbiAgICAgIHRoaXMuaXNPbkRlbWFuZExhYmVsID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcHJvdmlkZURhdGFCb29sZWFuID0gKGUpID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHJlc29sdmUoW1xuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6ICd0cnVlJyxcbiAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIudHJ1ZScpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6ICdmYWxzZScsXG4gICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmZhbHNlJyksXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICB9KTtcbiAgfTtcblxuICBzYXZlUnVsZSgpIHtcbiAgICB0aGlzLmZvcm0udmFsaWRhdGUoKS50aGVuKChjKSA9PiB7fSk7XG4gIH1cblxuICBwcm92aWRlRGF0YU9wZXJhdG9yID0gKGUpID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGlmICh0aGlzLnJ1bGUuZGF0YVR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnJ1bGUgJiZcbiAgICAgICAgICB0aGlzLnJ1bGUuY29udHJvbCAmJlxuICAgICAgICAgIHRoaXMucnVsZS5jb250cm9sLnR5cGUgJiZcbiAgICAgICAgICB0aGlzLnJ1bGUuY29udHJvbC50eXBlID09ICdzZWxlY3RCb3gnXG4gICAgICAgICkge1xuICAgICAgICAgIGlmICh0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zLm1vZGUgPT0gJ211bHRpcGxlJykge1xuICAgICAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ2NvbnRhaW5zJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuY29udGFpbnMnKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiAnbm90LWNvbnRhaW5zJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LWNvbnRhaW5zJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ2NvbnRhaW5zLWFsbCcsXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmNvbnRhaW5zLWFsbCcpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6ICdudWxsJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubnVsbCcpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6ICdub3QtbnVsbCcsXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1udWxsJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ2VxdWFsJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZXF1YWwnKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiAnbm90LWVxdWFsJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LWVxdWFsJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ251bGwnLFxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5udWxsJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ25vdC1udWxsJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LW51bGwnKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlKFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdlcXVhbCcsXG4gICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5lcXVhbCcpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdjb250YWlucycsXG4gICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5jb250YWlucycpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdzdGFydC13aXRoJyxcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLnN0YXJ0LXdpdGgnKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnZW5kLXdpdGgnLFxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZW5kLXdpdGgnKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnbm90LWVxdWFsJyxcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1lcXVhbCcpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdudWxsJyxcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm51bGwnKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnbm90LW51bGwnLFxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LW51bGwnKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJ1bGUuZGF0YVR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJlc29sdmUoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZXF1YWwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmVxdWFsJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ2d0JyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ncmVhdGVyLXRoYW4nKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZ3RlJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ncmVhdGVyLXRoYW4tZXF1YWwnKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnbHQnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmxlc3MtdGhhbicpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdsdGUnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmxlc3MtdGhhbi1lcXVhbCcpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdub3QtZXF1YWwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1lcXVhbCcpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdudWxsJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5udWxsJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ25vdC1udWxsJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtbnVsbCcpLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucnVsZS5kYXRhVHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIHJlc29sdmUoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZXF1YWwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmVxdWFsJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ251bGwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm51bGwnKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnbm90LW51bGwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1udWxsJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5ydWxlLmRhdGFUeXBlID09PSAnZGF0ZXRpbWUnIHx8IHRoaXMucnVsZS5kYXRhVHlwZSA9PT0gJ2RhdGUnKSB7XG4gICAgICAgIHJlc29sdmUoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZXF1YWwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmVxdWFsJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ2d0JyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ncmVhdGVyLXRoYW4nKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZ3RlJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ncmVhdGVyLXRoYW4tZXF1YWwnKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnbHQnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmxlc3MtdGhhbicpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdsdGUnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmxlc3MtdGhhbi1lcXVhbCcpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdub3QtZXF1YWwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1lcXVhbCcpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdudWxsJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5udWxsJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ25vdC1udWxsJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtbnVsbCcpLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pO1xuICAgICAgfVxuICAgICAgcmVzb2x2ZShbXSk7XG4gICAgfSk7XG4gIH07XG5cbiAgaGFuZGxlRWRpdENsaWNrKCkge1xuICAgIHRoaXMuaXNFZGl0aW5nID0gdHJ1ZTtcbiAgfVxuXG4gIGhhbmRsZUNvbW1pdENsaWNrKCkge1xuICAgIHRoaXMuaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5ydWxlQ2hhbmdlZC5lbWl0KHsgaXRlbXM6IHRoaXMucnVsZSwgY29tcG9uZW50OiB0aGlzIH0pO1xuICB9XG4gIGhhbmRsZVJlbW92ZUNsaWNrKCkge1xuICAgIHRoaXMub25SdWxlRGVsZXRlLmVtaXQoeyBpdGVtczogdGhpcy5ydWxlLCBjb21wb25lbnQ6IHRoaXMgfSk7XG4gIH1cbiAgY2FwdGlvbkNoYW5nZShlKSB7XG4gICAgaWYgKGUuc2VsZWN0ZWRJdGVtc1swXSkge1xuICAgICAgdGhpcy5ydWxlLmNhcHRpb24gPSBlLnNlbGVjdGVkSXRlbXNbMF0uY2FwdGlvbjtcbiAgICAgIHRoaXMucnVsZS5kYXRhRmllbGQgPSBlLnNlbGVjdGVkSXRlbXNbMF0uZGF0YUZpZWxkO1xuICAgICAgdGhpcy5ydWxlLmRhdGFUeXBlID0gZS5zZWxlY3RlZEl0ZW1zWzBdLmRhdGFUeXBlO1xuICAgICAgdGhpcy5ydWxlLmNvbnRyb2wgPVxuICAgICAgICBlLnNlbGVjdGVkSXRlbXNbMF0uY29udHJvbCB8fCBuZXcgQVhRdWVyeUJ1aWxkZXJDb250cm9sKCk7XG4gICAgICB0aGlzLnJ1bGUuZGF0YUZpZWxkSXRlbVswXSA9IGUuc2VsZWN0ZWRJdGVtc1swXTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3RCb3gpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5ydWxlLmNvbnRyb2wudHlwZSA9PT0gJ3NlbGVjdEJveCcgJiZcbiAgICAgICAgdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy5tb2RlID09ICdtdWx0aXBsZSdcbiAgICAgICkge1xuICAgICAgICB0aGlzLnJ1bGUub3BlcmF0b3IgPSAnY29udGFpbnMnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ydWxlLm9wZXJhdG9yID0gJ2VxdWFsJztcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0Qm94LnJlZnJlc2goKTtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dPcGVyYXRvclNlbGVjdEJveCA9IGZhbHNlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zaG93T3BlcmF0b3JTZWxlY3RCb3ggPSB0cnVlO1xuICAgIH0sIDIwKTtcblxuICAgIHRoaXMucnVsZS52YWx1ZSA9IG51bGw7XG4gICAgdGhpcy5ydWxlLnZhbHVlSXRlbSA9IFtdO1xuICAgIHRoaXMucnVsZS50ZXh0ID0gJyc7XG5cbiAgICBpZiAodGhpcy5ydWxlLmNvbnRyb2wudHlwZSA9PT0gJ3NlbGVjdEJveCcgJiYgdGhpcy5zZWxlY3RCb3hWYWx1ZSkge1xuICAgICAgdGhpcy5zaG93U2VsZWN0Qm94ID0gZmFsc2U7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG93U2VsZWN0Qm94ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZWxlY3RCb3hWYWx1ZS5yZWZyZXNoKCk7XG4gICAgICB9LCAyMCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJ1bGUuY29udHJvbC50eXBlID09ICdib29sZWFuJykge1xuICAgICAgdGhpcy5zZWxlY3RCb3hCb29sZWFuLnJlZnJlc2goKTtcbiAgICB9XG4gICAgdGhpcy5ydWxlQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBpdGVtczogdGhpcy5ydWxlIH0pO1xuICB9XG5cbiAgb3BlcmF0b3JDaGFuZ2UoZSkge1xuICAgIHRoaXMucnVsZS5vcGVyYXRvciA9IGVbMF0udmFsdWU7XG4gICAgdGhpcy5ydWxlQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBpdGVtczogdGhpcy5ydWxlIH0pO1xuXG4gICAgaWYgKGVbMF0udmFsdWUgIT09ICdudWxsJyAmJiBlWzBdLnZhbHVlICE9PSAnbm90LW51bGwnKSB7XG4gICAgICB0aGlzLnNob3dWYWx1ZSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvd1ZhbHVlID0gZmFsc2U7XG4gICAgICB0aGlzLnJ1bGUudmFsdWUgPSAnJztcbiAgICAgIHRoaXMucnVsZS50ZXh0ID0gJyc7XG4gICAgICB0aGlzLnJ1bGUudmFsdWVJdGVtID0gW107XG4gICAgICB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9ICcnO1xuICAgIH1cbiAgfVxuICB2YWx1ZUNoYW5nZShlKSB7XG4gICAgLy8gdGhpcy5ydWxlLnRleHQgPSBlLnZhbHVlID09IHVuZGVmaW5lZCA/IGVbMF0udmFsdWUgOiAoZS52YWx1ZSA9PSBudWxsID8gJycgOiBlLnZhbHVlKTtcblxuICAgIHRoaXMucnVsZS50ZXh0ID0gZVswXVxuICAgICAgPyBlWzBdLnZhbHVlID09IG51bGxcbiAgICAgICAgPyAnJ1xuICAgICAgICA6IGVbMF0udmFsdWVcbiAgICAgIDogZS52YWx1ZSA9PSBudWxsXG4gICAgICA/ICcnXG4gICAgICA6IGUudmFsdWU7XG4gICAgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPSAnJztcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGl0ZW1zOiB0aGlzLnJ1bGUgfSk7XG4gIH1cbiAgb25EZW1hbmRMYWJlbENoYW5nZShlKSB7XG4gICAgLy8gdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPSBlLnZhbHVlID09IHVuZGVmaW5lZCA/ICc/Pz8/fCcgKyBlWzBdLnZhbHVlIDogJz8/Pz98JyArIGUudmFsdWU7XG4gICAgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPSBlWzBdXG4gICAgICA/ICc/Pz8/fCcgKyAoZVswXS52YWx1ZSA9PSBudWxsID8gJycgOiBlWzBdLnZhbHVlKVxuICAgICAgOiAnPz8/P3wnICsgKGUudmFsdWUgPT0gbnVsbCA/ICcnIDogZS52YWx1ZSk7XG4gICAgdGhpcy5ydWxlLnZhbHVlID0gJyc7XG4gICAgdGhpcy5ydWxlLnRleHQgPSAnJztcbiAgICB0aGlzLnJ1bGUudmFsdWVJdGVtID0gW107XG5cbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGl0ZW1zOiB0aGlzLnJ1bGUgfSk7XG4gIH1cbiAgdmFsdWVCb29sZWFuQ2hhbmdlKGUpIHtcbiAgICAvLyB0aGlzLnJ1bGUudGV4dCA9IGUudmFsdWUgPT0gdW5kZWZpbmVkID8gZVswXS52YWx1ZSA6IChlLnZhbHVlID09IG51bGwgPyAnJyA6IGUudmFsdWUpO1xuICAgIHRoaXMucnVsZS50ZXh0ID0gZVswXVxuICAgICAgPyBlWzBdLnZhbHVlID09IG51bGxcbiAgICAgICAgPyAnJ1xuICAgICAgICA6IGVbMF0udmFsdWVcbiAgICAgIDogZS52YWx1ZSA9PSBudWxsXG4gICAgICA/ICcnXG4gICAgICA6IGUudmFsdWU7XG4gICAgdGhpcy5ydWxlLnZhbHVlID0gZS52YWx1ZSA9PSB1bmRlZmluZWQgPyBlWzBdLnZhbHVlIDogZS52YWx1ZTtcbiAgICB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9ICcnO1xuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgaXRlbXM6IHRoaXMucnVsZSB9KTtcbiAgfVxuICBnZXRPbkRlbWFuZE5hbWUodikge1xuICAgIHJldHVybiB2ID8gdi5zcGxpdCgnfCcpWzFdIDogJyc7XG4gIH1cbiAgc2VsZWN0ZWRJdGVtc0NoYW5nZShlKSB7XG4gICAgbGV0IG4gPSB0aGlzLmdldE9wdGlvbigndGV4dEZpZWxkJyk7XG5cbiAgICBpZiAodGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy5tb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgdGhpcy5ydWxlLnRleHQgPSBlWzBdW25dO1xuICAgICAgaWYgKHRoaXMucnVsZSAmJiB0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zLnZhbHVlRmllbGQpIHtcbiAgICAgICAgdGhpcy5ydWxlLnZhbHVlID0gZVswXVt0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zLnZhbHVlRmllbGRdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ydWxlLnZhbHVlID0gZVswXS52YWx1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMucnVsZS52YWx1ZUl0ZW1bMF0gPSBlWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJ1bGUudGV4dCA9IGUubWFwKCh4KSA9PiB4W25dKS5qb2luKCctICcpO1xuICAgICAgY29uc3QgVEhBVCA9IHRoaXM7XG4gICAgICBpZiAoVEhBVC5ydWxlICYmIFRIQVQucnVsZS5jb250cm9sLm9wdGlvbnMudmFsdWVGaWVsZCkge1xuICAgICAgICBUSEFULnJ1bGUudmFsdWUgPSBlLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgIHJldHVybiBpdGVtW1RIQVQucnVsZS5jb250cm9sLm9wdGlvbnMudmFsdWVGaWVsZF07XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ydWxlLnZhbHVlID0gZS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnJ1bGUudmFsdWVJdGVtID0gZTtcbiAgICB9XG5cbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGl0ZW1zOiB0aGlzLnJ1bGUgfSk7XG4gICAgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPSAnJztcbiAgfVxuICBvbkRlbWFuZExhYmVsKGUpIHtcbiAgICAvLyBpZiAoZS52YWx1ZSAmJiAodGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPT0gJz8/Pz98JyB8fCB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID09PSBudWxsIHx8IHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID09PSAnJykpIHtcbiAgICAvLyAgIHRoaXMudGV4dEJveE5hbWVWYWx1ZS5mb2N1cygpO1xuICAgIC8vIH1cbiAgICBpZiAoZS52YWx1ZSA9PSBmYWxzZSkge1xuICAgICAgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPSAnJztcbiAgICB9XG4gICAgdGhpcy5pc09uRGVtYW5kTGFiZWwgPSBlLnZhbHVlO1xuICB9XG4gIGdldFByb3ZpZGVEYXRhID0gKGUpID0+IHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnJ1bGUgJiZcbiAgICAgIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMgJiZcbiAgICAgIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMuZGF0YVNvdXJjZVxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMuZGF0YVNvdXJjZSh7XG4gICAgICAgIC4uLmUsXG4gICAgICAgIG9wdGlvbnNEYXRhOiB7IC4uLnRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBnZXRPcHRpb24obmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMgPyB0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zW25hbWVdIDogbnVsbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbmRpdGlvblwiICpuZ0lmPVwicGFyZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQge3twYXJlbnQuY29uZGl0aW9ufX1cIj5cbiAgICAgICAgPHNwYW4+e3twYXJlbnQuY29uZGl0aW9ufX08L3NwYW4+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJoYW5kbGVyXCI+XG4gICAgPGkgY2xhc3M9XCJmYXIgZmEtZ3JpcC1saW5lcy12ZXJ0aWNhbFwiPjwvaT5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiY2FwdGlvblwiIFtuZ0NsYXNzXT1cInsnZWRpdGFibGUnOiBpc0VkaXRpbmd9XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWRpdGluZztlbHNlIGZpZWxkc1RlbXBsYXRlXCI+XG4gICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3ggW3JlYWRvbmx5XT1cIm1vZGUgPT0gJ2VkaXQnXCIgKHNlbGVjdGlvbkNoYW5nZWQpPVwiY2FwdGlvbkNoYW5nZSgkZXZlbnQpXCIgYWxsb3dOdWxsPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFsoc2VsZWN0ZWRJdGVtcyldPVwicnVsZS5kYXRhRmllbGRJdGVtXCIgdGV4dEZpZWxkPVwiY2FwdGlvblwiIHZhbHVlRmllbGQ9XCJkYXRhRmllbGRcIiBbaXRlbXNdPVwiZmllbGRzXCJcbiAgICAgICAgICAgICAgICBtb2RlPVwic2luZ2xlXCI+XG4gICAgICAgICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICAgIDwvYXgtZm9ybS1ncm91cD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2ZpZWxkc1RlbXBsYXRlPlxuICAgICAgICA8ZGl2IChjbGljayk9XCJoYW5kbGVFZGl0Q2xpY2soKVwiPlxuICAgICAgICAgICAge3tydWxlLmNhcHRpb259fVxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJvcGVyYXRvclwiIFtuZ0NsYXNzXT1cInsnZWRpdGFibGUnOiBpc0VkaXRpbmcsJ3JhZGl1cyc6IXNob3dWYWx1ZX1cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFZGl0aW5nO2Vsc2Ugb3BlcmF0b3JUZW1wbGF0ZVwiPlxuICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDxheC1zZWxlY3QtYm94IFtyZWFkb25seV09XCJtb2RlID09ICdlZGl0J1wiICpuZ0lmPVwic2hvd09wZXJhdG9yU2VsZWN0Qm94XCIgWyhzZWxlY3RlZFZhbHVlcyldPVwicnVsZS5vcGVyYXRvclwiXG4gICAgICAgICAgICAgICAgI3NlbGVjdEJveCAoc2VsZWN0ZWRJdGVtc0NoYW5nZSk9XCJvcGVyYXRvckNoYW5nZSgkZXZlbnQpXCIgYWxsb3dOdWxsPVwiZmFsc2VcIiBtb2RlPVwic2luZ2xlXCI+XG4gICAgICAgICAgICAgICAgPGF4LWRhdGEtc291cmNlIFtwcm92aWRlRGF0YV09XCJwcm92aWRlRGF0YU9wZXJhdG9yXCI+XG4gICAgICAgICAgICAgICAgPC9heC1kYXRhLXNvdXJjZT5cbiAgICAgICAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjb3BlcmF0b3JUZW1wbGF0ZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAoY2xpY2spPVwiaGFuZGxlRWRpdENsaWNrKClcIj5cbiAgICAgICAgICAgIHt7KCdxdWVyeUJ1aWxkZXIuJytydWxlLm9wZXJhdG9yKSB8IHRyYW5zfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cInNob3dWYWx1ZVwiIGNsYXNzPVwidmFsdWVcIiBbbmdDbGFzc109XCJ7J2VkaXRhYmxlJzogaXNFZGl0aW5nfVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0VkaXRpbmc7ZWxzZSB2YWx1ZVRlbXBsYXRlXCI+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiBydWxlLmNvbnRyb2wgJiYgIWlzT25EZW1hbmRMYWJlbFwiIFtuZ1N3aXRjaF09XCJydWxlLmNvbnRyb2wudHlwZVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3RleHRCb3gnXCI+XG4gICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxheC10ZXh0LWJveCAob25WYWx1ZUNoYW5nZWQpPVwidmFsdWVDaGFuZ2UoJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwi2YXZgtiv2KfYsSDZhdmI2LHYryDZhti42LEg2K7ZiNivINix2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicnVsZS52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdEJveCdcIj5cbiAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3ggKm5nSWY9XCJzaG93U2VsZWN0Qm94XCIgW21vZGVdPVwiZ2V0T3B0aW9uKCdtb2RlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlbW90ZU9wZXJhdGlvbl09XCJnZXRPcHRpb24oJ3JlbW90ZU9wZXJhdGlvbicpXCIgW3ZhbHVlRmllbGRdPVwiZ2V0T3B0aW9uKCd2YWx1ZUZpZWxkJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLZhdmC2K/Yp9ixINmF2YjYsdivINmG2LjYsSDYrtmI2K8g2LHYpyDZiNin2LHYryDaqdmG24zYr1wiIFt0ZXh0RmllbGRdPVwiZ2V0T3B0aW9uKCd0ZXh0RmllbGQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKHNlbGVjdGVkSXRlbXMpXT1cInJ1bGUudmFsdWVJdGVtXCIgKHNlbGVjdGVkSXRlbXNDaGFuZ2UpPVwic2VsZWN0ZWRJdGVtc0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICNzZWxlY3RCb3hWYWx1ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1kYXRhLXNvdXJjZSBbcHJvdmlkZURhdGFdPVwiZ2V0UHJvdmlkZURhdGFcIj48L2F4LWRhdGEtc291cmNlPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXJCb3gnXCI+XG4gICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxheC1udW1iZXItYm94IFtkZWNpbWFsTnVtYmVyXT1cIjJcIiAob25WYWx1ZUNoYW5nZWQpPVwidmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cItmF2YLYr9in2LEg2YXZiNix2K8g2YbYuNixINiu2YjYryDYsdinINmI2KfYsdivINqp2YbbjNivXCIgWyh2YWx1ZSldPVwicnVsZS52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LW51bWJlci1ib3g+XG4gICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInZGF0ZXRpbWUnXCI+XG4gICAgICAgICAgICAgICAgPGF4LWRhdGUtcGlja2VyIGxhYmVsPVwiRnJvbVwiIFsodmFsdWUpXT1cInJ1bGUudmFsdWVcIiAob25WYWx1ZUNoYW5nZWQpPVwidmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDwvYXgtZGF0ZS1waWNrZXI+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2Jvb2xlYW4nXCI+XG5cbiAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3ggI3NlbGVjdEJveEJvb2xlYW4gKHNlbGVjdGVkSXRlbXNDaGFuZ2UpPVwidmFsdWVCb29sZWFuQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dOdWxsPVwiZmFsc2VcIiBbc2VsZWN0ZWRWYWx1ZXNdPVwicnVsZS52YWx1ZVwiIG1vZGU9XCJzaW5nbGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1kYXRhLXNvdXJjZSBbcHJvdmlkZURhdGFdPVwicHJvdmlkZURhdGFCb29sZWFuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWRhdGEtc291cmNlPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXRleHQtYm94IChvblZhbHVlQ2hhbmdlZCk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQpXCIgcGxhY2Vob2xkZXI9XCLZhdmC2K/Yp9ixINmF2YjYsdivINmG2LjYsSDYrtmI2K8g2LHYpyDZiNin2LHYryDaqdmG24zYr1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJydWxlLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtdGV4dC1ib3g+XG5cbiAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNPbkRlbWFuZExhYmVsXCI+XG5cbiAgICAgICAgICAgIDxheC10ZXh0LWJveCAjdGV4dEJveE5hbWVWYWx1ZSBbdmFsdWVdPVwiZ2V0T25EZW1hbmROYW1lKHJ1bGUub25EZW1hbmRMYWJlbClcIlxuICAgICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJvbkRlbWFuZExhYmVsQ2hhbmdlKCRldmVudClcIiBwbGFjZWhvbGRlcj1cItmG2KfZhSDZhdiq2LrbjNixINiu2YjYryDYsdinINmI2KfYsdivINqp2YbbjNivXCI+XG4gICAgICAgICAgICAgICAgPCEtLSA8YXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZSB0eXBlPVwicmVxdWlyZWRcIj48L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24+IC0tPlxuICAgICAgICAgICAgPC9heC10ZXh0LWJveD5cblxuXG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICN2YWx1ZVRlbXBsYXRlPlxuICAgICAgICA8ZGl2IChjbGljayk9XCJoYW5kbGVFZGl0Q2xpY2soKVwiPlxuXG4gICAgICAgICAgICB7e3J1bGUudGV4dH19XG5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYnV0dG9ucy1saXN0XCI+XG4gICAgPGRpdiAqbmdJZj1cInNob3dWYWx1ZSAmJiBpc0VkaXRpbmcgJiYgbW9kZSA9PSAnbmV3J1wiIGNsYXNzPVwiYnV0dG9uIHZhcmlhYmxlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieydhY3RpdmUtYnV0dG9uJzogaXNPbkRlbWFuZExhYmVsfVwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1kb2xsYXItc2lnblwiPjwvaT5cbiAgICAgICAgPGF4LWNoZWNrLWJveCBbdmFsdWVdPVwiaXNPbkRlbWFuZExhYmVsXCIgKG9uQ2xpY2spPVwib25EZW1hbmRMYWJlbCgkZXZlbnQpXCI+XG4gICAgICAgIDwvYXgtY2hlY2stYm94PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbiBjb21taXRcIiAoY2xpY2spPVwiaGFuZGxlQ29tbWl0Q2xpY2soKVwiICpuZ0lmPVwiaXNFZGl0aW5nXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWNoZWNrXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJidXR0b24gcmVtb3ZlXCIgKGNsaWNrKT1cImhhbmRsZVJlbW92ZUNsaWNrKClcIiAqbmdJZj1cIm1vZGUgPT0gJ25ldydcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtdGltZXNcIj48L2k+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
|
428
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1ydWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci1ydWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci1ydWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BGLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLGtCQUFrQixHQUVuQixNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7OztBQVEvQixNQUFNLE9BQU8sMkJBQTJCO0lBQ2QsU0FBUyxDQUF1QjtJQUMzQixjQUFjLENBQXVCO0lBRW5DLGdCQUFnQixDQUF1QjtJQUV2QyxnQkFBZ0IsQ0FBcUI7SUFDOUIsSUFBSSxDQUE0QjtJQUV0RSxTQUFTLEdBQVksSUFBSSxDQUFDO0lBRzFCLElBQUksQ0FBcUI7SUFHekIsTUFBTSxDQUFzQjtJQUc1QixJQUFJLEdBQW1CLEtBQUssQ0FBQztJQUc3QixNQUFNLEdBQVUsRUFBRSxDQUFDO0lBR25CLFlBQVksR0FDVixJQUFJLFlBQVksRUFBMkIsQ0FBQztJ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SCxLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixZQUFZO3NCQURYLE1BQU07Z0JBS1AsV0FBVztzQkFEVixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hDb21wb25lbnQgfSBmcm9tICcuLi9zZWxlY3Rib3gvc2VsZWN0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFRleHRCb3hDb21wb25lbnQgfSBmcm9tICcuLi90ZXh0Ym94L3RleHRib3guY29tcG9uZW50JztcbmltcG9ydCB7IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24tZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQVhRdWVyeUJ1aWxkZXJDb250cm9sLFxuICBBWFF1ZXJ5QnVpbGRlckdyb3VwLFxuICBBWFF1ZXJ5QnVpbGRlclJ1bGUsXG4gIEFYUXVlcnlCdWlsZGVyUnVsZUV2ZW50LFxufSBmcm9tICcuL3F1ZXJ5LWJ1aWxkZXIuY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1xdWVyeS1ydWxlJyxcbiAgdGVtcGxhdGVVcmw6ICdxdWVyeS1idWlsZGVyLXJ1bGUuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnYXggYXgtcXVlcnktcnVsZScgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhRdWVyeUJ1aWxkZXJSdWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnc2VsZWN0Qm94Jykgc2VsZWN0Qm94OiBBWFNlbGVjdEJveENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnc2VsZWN0Qm94VmFsdWUnKSBzZWxlY3RCb3hWYWx1ZTogQVhTZWxlY3RCb3hDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnc2VsZWN0Qm94Qm9vbGVhbicpIHNlbGVjdEJveEJvb2xlYW46IEFYU2VsZWN0Qm94Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3RleHRCb3hOYW1lVmFsdWUnKSB0ZXh0Qm94TmFtZVZhbHVlOiBBWFRleHRCb3hDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudCkgZm9ybTogQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudDtcbiAgQElucHV0KClcbiAgaXNFZGl0aW5nOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBydWxlOiBBWFF1ZXJ5QnVpbGRlclJ1bGU7XG5cbiAgQElucHV0KClcbiAgcGFyZW50OiBBWFF1ZXJ5QnVpbGRlckdyb3VwO1xuXG4gIEBJbnB1dCgpXG4gIG1vZGU6ICduZXcnIHwgJ2VkaXQnID0gJ25ldyc7XG5cbiAgQElucHV0KClcbiAgZmllbGRzOiBhbnlbXSA9IFtdO1xuXG4gIEBPdXRwdXQoKVxuICBvblJ1bGVEZWxldGU6IEV2ZW50RW1pdHRlcjxBWFF1ZXJ5QnVpbGRlclJ1bGVFdmVudD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8QVhRdWVyeUJ1aWxkZXJSdWxlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJ1bGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhRdWVyeUJ1aWxkZXJSdWxlRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPEFYUXVlcnlCdWlsZGVyUnVsZUV2ZW50PigpO1xuXG4gIHNob3dWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGlzT25EZW1hbmRMYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNob3dTZWxlY3RCb3g6IGJvb2xlYW4gPSB0cnVlO1xuICBzaG93T3BlcmF0b3JTZWxlY3RCb3g6IGJvb2xlYW4gPSB0cnVlO1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGlmIChmaWVsZC5kYXRhRmllbGQgPT0gdGhpcy5ydWxlLmRhdGFGaWVsZCkge1xuICAgICAgICB0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zID0gZmllbGQuY29udHJvbC5vcHRpb25zO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCkge1xuICAgICAgdGhpcy5pc09uRGVtYW5kTGFiZWwgPSB0cnVlO1xuICAgIH1cbiAgfVxuICBwcm92aWRlRGF0YUJvb2xlYW4gPSAoZSkgPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgcmVzb2x2ZShbXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogJ3RydWUnLFxuICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci50cnVlJyksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogJ2ZhbHNlJyxcbiAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZmFsc2UnKSxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuICAgIH0pO1xuICB9O1xuXG4gIHNhdmVSdWxlKCkge1xuICAgIHRoaXMuZm9ybS52YWxpZGF0ZSgpLnRoZW4oKGMpID0+IHt9KTtcbiAgfVxuXG4gIHByb3ZpZGVEYXRhT3BlcmF0b3IgPSAoZSkgPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKHRoaXMucnVsZS5kYXRhVHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMucnVsZSAmJlxuICAgICAgICAgIHRoaXMucnVsZS5jb250cm9sICYmXG4gICAgICAgICAgdGhpcy5ydWxlLmNvbnRyb2wudHlwZSAmJlxuICAgICAgICAgIHRoaXMucnVsZS5jb250cm9sLnR5cGUgPT0gJ3NlbGVjdEJveCdcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMubW9kZSA9PSAnbXVsdGlwbGUnKSB7XG4gICAgICAgICAgICByZXNvbHZlKFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiAnY29udGFpbnMnLFxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5jb250YWlucycpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6ICdub3QtY29udGFpbnMnLFxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtY29udGFpbnMnKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiAnY29udGFpbnMtYWxsJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuY29udGFpbnMtYWxsJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ251bGwnLFxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5udWxsJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ25vdC1udWxsJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LW51bGwnKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiAnZXF1YWwnLFxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5lcXVhbCcpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6ICdub3QtZXF1YWwnLFxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtZXF1YWwnKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiAnbnVsbCcsXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm51bGwnKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiAnbm90LW51bGwnLFxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtbnVsbCcpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmUoW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWx1ZTogJ2VxdWFsJyxcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmVxdWFsJyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWx1ZTogJ2NvbnRhaW5zJyxcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmNvbnRhaW5zJyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWx1ZTogJ3N0YXJ0LXdpdGgnLFxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuc3RhcnQtd2l0aCcpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdlbmQtd2l0aCcsXG4gICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5lbmQtd2l0aCcpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdub3QtZXF1YWwnLFxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LWVxdWFsJyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWx1ZTogJ251bGwnLFxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubnVsbCcpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdub3QtbnVsbCcsXG4gICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtbnVsbCcpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMucnVsZS5kYXRhVHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdlcXVhbCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZXF1YWwnKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZ3QnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmdyZWF0ZXItdGhhbicpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdndGUnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmdyZWF0ZXItdGhhbi1lcXVhbCcpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdsdCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubGVzcy10aGFuJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ2x0ZScsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubGVzcy10aGFuLWVxdWFsJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ25vdC1lcXVhbCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LWVxdWFsJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ251bGwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm51bGwnKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnbm90LW51bGwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1udWxsJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5ydWxlLmRhdGFUeXBlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdlcXVhbCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZXF1YWwnKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnbnVsbCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubnVsbCcpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdub3QtbnVsbCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LW51bGwnKSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJ1bGUuZGF0YVR5cGUgPT09ICdkYXRldGltZScgfHwgdGhpcy5ydWxlLmRhdGFUeXBlID09PSAnZGF0ZScpIHtcbiAgICAgICAgcmVzb2x2ZShbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdlcXVhbCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZXF1YWwnKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnZ3QnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmdyZWF0ZXItdGhhbicpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdndGUnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmdyZWF0ZXItdGhhbi1lcXVhbCcpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6ICdsdCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubGVzcy10aGFuJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ2x0ZScsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubGVzcy10aGFuLWVxdWFsJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ25vdC1lcXVhbCcsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LWVxdWFsJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ251bGwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm51bGwnKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAnbm90LW51bGwnLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1udWxsJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSk7XG4gICAgICB9XG4gICAgICByZXNvbHZlKFtdKTtcbiAgICB9KTtcbiAgfTtcblxuICBoYW5kbGVFZGl0Q2xpY2soKSB7XG4gICAgdGhpcy5pc0VkaXRpbmcgPSB0cnVlO1xuICB9XG5cbiAgaGFuZGxlQ29tbWl0Q2xpY2soKSB7XG4gICAgdGhpcy5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBpdGVtczogdGhpcy5ydWxlLCBjb21wb25lbnQ6IHRoaXMgfSk7XG4gIH1cbiAgaGFuZGxlUmVtb3ZlQ2xpY2soKSB7XG4gICAgdGhpcy5vblJ1bGVEZWxldGUuZW1pdCh7IGl0ZW1zOiB0aGlzLnJ1bGUsIGNvbXBvbmVudDogdGhpcyB9KTtcbiAgfVxuICBjYXB0aW9uQ2hhbmdlKGUpIHtcbiAgICBpZiAoZS5zZWxlY3RlZEl0ZW1zWzBdKSB7XG4gICAgICB0aGlzLnJ1bGUuY2FwdGlvbiA9IGUuc2VsZWN0ZWRJdGVtc1swXS5jYXB0aW9uO1xuICAgICAgdGhpcy5ydWxlLmRhdGFGaWVsZCA9IGUuc2VsZWN0ZWRJdGVtc1swXS5kYXRhRmllbGQ7XG4gICAgICB0aGlzLnJ1bGUuZGF0YVR5cGUgPSBlLnNlbGVjdGVkSXRlbXNbMF0uZGF0YVR5cGU7XG4gICAgICB0aGlzLnJ1bGUuY29udHJvbCA9XG4gICAgICAgIGUuc2VsZWN0ZWRJdGVtc1swXS5jb250cm9sIHx8IG5ldyBBWFF1ZXJ5QnVpbGRlckNvbnRyb2woKTtcbiAgICAgIHRoaXMucnVsZS5kYXRhRmllbGRJdGVtWzBdID0gZS5zZWxlY3RlZEl0ZW1zWzBdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlbGVjdEJveCkge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnJ1bGUuY29udHJvbC50eXBlID09PSAnc2VsZWN0Qm94JyAmJlxuICAgICAgICB0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zLm1vZGUgPT0gJ211bHRpcGxlJ1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMucnVsZS5vcGVyYXRvciA9ICdjb250YWlucyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJ1bGUub3BlcmF0b3IgPSAnZXF1YWwnO1xuICAgICAgfVxuICAgICAgdGhpcy5zZWxlY3RCb3gucmVmcmVzaCgpO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd09wZXJhdG9yU2VsZWN0Qm94ID0gZmFsc2U7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dPcGVyYXRvclNlbGVjdEJveCA9IHRydWU7XG4gICAgfSwgMjApO1xuXG4gICAgdGhpcy5ydWxlLnZhbHVlID0gbnVsbDtcbiAgICB0aGlzLnJ1bGUudmFsdWVJdGVtID0gW107XG4gICAgdGhpcy5ydWxlLnRleHQgPSAnJztcblxuICAgIGlmICh0aGlzLnJ1bGUuY29udHJvbC50eXBlID09PSAnc2VsZWN0Qm94JyAmJiB0aGlzLnNlbGVjdEJveFZhbHVlKSB7XG4gICAgICB0aGlzLnNob3dTZWxlY3RCb3ggPSBmYWxzZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dTZWxlY3RCb3ggPSB0cnVlO1xuICAgICAgICB0aGlzLnNlbGVjdEJveFZhbHVlLnJlZnJlc2goKTtcbiAgICAgIH0sIDIwKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucnVsZS5jb250cm9sLnR5cGUgPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aGlzLnNlbGVjdEJveEJvb2xlYW4ucmVmcmVzaCgpO1xuICAgIH1cbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGl0ZW1zOiB0aGlzLnJ1bGUgfSk7XG4gIH1cblxuICBvcGVyYXRvckNoYW5nZShlKSB7XG4gICAgdGhpcy5ydWxlLm9wZXJhdG9yID0gZVswXS52YWx1ZTtcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGl0ZW1zOiB0aGlzLnJ1bGUgfSk7XG5cbiAgICBpZiAoZVswXS52YWx1ZSAhPT0gJ251bGwnICYmIGVbMF0udmFsdWUgIT09ICdub3QtbnVsbCcpIHtcbiAgICAgIHRoaXMuc2hvd1ZhbHVlID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93VmFsdWUgPSBmYWxzZTtcbiAgICAgIHRoaXMucnVsZS52YWx1ZSA9ICcnO1xuICAgICAgdGhpcy5ydWxlLnRleHQgPSAnJztcbiAgICAgIHRoaXMucnVsZS52YWx1ZUl0ZW0gPSBbXTtcbiAgICAgIHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID0gJyc7XG4gICAgfVxuICB9XG4gIHZhbHVlQ2hhbmdlKGUpIHtcbiAgICAvLyB0aGlzLnJ1bGUudGV4dCA9IGUudmFsdWUgPT0gdW5kZWZpbmVkID8gZVswXS52YWx1ZSA6IChlLnZhbHVlID09IG51bGwgPyAnJyA6IGUudmFsdWUpO1xuXG4gICAgdGhpcy5ydWxlLnRleHQgPSBlWzBdXG4gICAgICA/IGVbMF0udmFsdWUgPT0gbnVsbFxuICAgICAgICA/ICcnXG4gICAgICAgIDogZVswXS52YWx1ZVxuICAgICAgOiBlLnZhbHVlID09IG51bGxcbiAgICAgID8gJydcbiAgICAgIDogZS52YWx1ZTtcbiAgICB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9ICcnO1xuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgaXRlbXM6IHRoaXMucnVsZSB9KTtcbiAgfVxuICBvbkRlbWFuZExhYmVsQ2hhbmdlKGUpIHtcbiAgICAvLyB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9IGUudmFsdWUgPT0gdW5kZWZpbmVkID8gJz8/Pz98JyArIGVbMF0udmFsdWUgOiAnPz8/P3wnICsgZS52YWx1ZTtcbiAgICB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9IGVbMF1cbiAgICAgID8gJz8/Pz98JyArIChlWzBdLnZhbHVlID09IG51bGwgPyAnJyA6IGVbMF0udmFsdWUpXG4gICAgICA6ICc/Pz8/fCcgKyAoZS52YWx1ZSA9PSBudWxsID8gJycgOiBlLnZhbHVlKTtcbiAgICB0aGlzLnJ1bGUudmFsdWUgPSAnJztcbiAgICB0aGlzLnJ1bGUudGV4dCA9ICcnO1xuICAgIHRoaXMucnVsZS52YWx1ZUl0ZW0gPSBbXTtcblxuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgaXRlbXM6IHRoaXMucnVsZSB9KTtcbiAgfVxuICB2YWx1ZUJvb2xlYW5DaGFuZ2UoZSkge1xuICAgIC8vIHRoaXMucnVsZS50ZXh0ID0gZS52YWx1ZSA9PSB1bmRlZmluZWQgPyBlWzBdLnZhbHVlIDogKGUudmFsdWUgPT0gbnVsbCA/ICcnIDogZS52YWx1ZSk7XG4gICAgdGhpcy5ydWxlLnRleHQgPSBlWzBdXG4gICAgICA/IGVbMF0udmFsdWUgPT0gbnVsbFxuICAgICAgICA/ICcnXG4gICAgICAgIDogZVswXS52YWx1ZVxuICAgICAgOiBlLnZhbHVlID09IG51bGxcbiAgICAgID8gJydcbiAgICAgIDogZS52YWx1ZTtcbiAgICB0aGlzLnJ1bGUudmFsdWUgPSBlLnZhbHVlID09IHVuZGVmaW5lZCA/IGVbMF0udmFsdWUgOiBlLnZhbHVlO1xuICAgIHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID0gJyc7XG4gICAgdGhpcy5ydWxlQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBpdGVtczogdGhpcy5ydWxlIH0pO1xuICB9XG4gIGdldE9uRGVtYW5kTmFtZSh2KSB7XG4gICAgcmV0dXJuIHYgPyB2LnNwbGl0KCd8JylbMV0gOiAnJztcbiAgfVxuICBzZWxlY3RlZEl0ZW1zQ2hhbmdlKGUpIHtcbiAgICBsZXQgbiA9IHRoaXMuZ2V0T3B0aW9uKCd0ZXh0RmllbGQnKTtcblxuICAgIGlmICh0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zLm1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICB0aGlzLnJ1bGUudGV4dCA9IGVbMF1bbl07XG4gICAgICBpZiAodGhpcy5ydWxlICYmIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMudmFsdWVGaWVsZCkge1xuICAgICAgICB0aGlzLnJ1bGUudmFsdWUgPSBlWzBdW3RoaXMucnVsZS5jb250cm9sLm9wdGlvbnMudmFsdWVGaWVsZF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJ1bGUudmFsdWUgPSBlWzBdLnZhbHVlO1xuICAgICAgfVxuICAgICAgdGhpcy5ydWxlLnZhbHVlSXRlbVswXSA9IGVbMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucnVsZS50ZXh0ID0gZS5tYXAoKHgpID0+IHhbbl0pLmpvaW4oJy0gJyk7XG4gICAgICBjb25zdCBUSEFUID0gdGhpcztcbiAgICAgIGlmIChUSEFULnJ1bGUgJiYgVEhBVC5ydWxlLmNvbnRyb2wub3B0aW9ucy52YWx1ZUZpZWxkKSB7XG4gICAgICAgIFRIQVQucnVsZS52YWx1ZSA9IGUubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW1bVEhBVC5ydWxlLmNvbnRyb2wub3B0aW9ucy52YWx1ZUZpZWxkXTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJ1bGUudmFsdWUgPSBlLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMucnVsZS52YWx1ZUl0ZW0gPSBlO1xuICAgIH1cblxuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgaXRlbXM6IHRoaXMucnVsZSB9KTtcbiAgICB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9ICcnO1xuICB9XG4gIG9uRGVtYW5kTGFiZWwoZSkge1xuICAgIC8vIGlmIChlLnZhbHVlICYmICh0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9PSAnPz8/P3wnIHx8IHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID09PSB1bmRlZmluZWQgfHwgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPT09IG51bGwgfHwgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPT09ICcnKSkge1xuICAgIC8vICAgdGhpcy50ZXh0Qm94TmFtZVZhbHVlLmZvY3VzKCk7XG4gICAgLy8gfVxuICAgIGlmIChlLnZhbHVlID09IGZhbHNlKSB7XG4gICAgICB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9ICcnO1xuICAgIH1cbiAgICB0aGlzLmlzT25EZW1hbmRMYWJlbCA9IGUudmFsdWU7XG4gIH1cbiAgZ2V0UHJvdmlkZURhdGEgPSAoZSkgPT4ge1xuICAgIGlmIChcbiAgICAgIHRoaXMucnVsZSAmJlxuICAgICAgdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucyAmJlxuICAgICAgdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy5kYXRhU291cmNlXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy5kYXRhU291cmNlKHtcbiAgICAgICAgLi4uZSxcbiAgICAgICAgb3B0aW9uc0RhdGE6IHsgLi4udGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucyB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGdldE9wdGlvbihuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucyA/IHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnNbbmFtZV0gOiBudWxsO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29uZGl0aW9uXCIgKm5nSWY9XCJwYXJlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dCB7e3BhcmVudC5jb25kaXRpb259fVwiPlxuICAgICAgICA8c3Bhbj57e3BhcmVudC5jb25kaXRpb259fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImhhbmRsZXJcIj5cbiAgICA8aSBjbGFzcz1cImZhciBmYS1ncmlwLWxpbmVzLXZlcnRpY2FsXCI+PC9pPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJjYXB0aW9uXCIgW25nQ2xhc3NdPVwieydlZGl0YWJsZSc6IGlzRWRpdGluZ31cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFZGl0aW5nO2Vsc2UgZmllbGRzVGVtcGxhdGVcIj5cbiAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8YXgtc2VsZWN0LWJveCBbcmVhZG9ubHldPVwibW9kZSA9PSAnZWRpdCdcIiAoc2VsZWN0aW9uQ2hhbmdlZCk9XCJjYXB0aW9uQ2hhbmdlKCRldmVudClcIiBhbGxvd051bGw9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgWyhzZWxlY3RlZEl0ZW1zKV09XCJydWxlLmRhdGFGaWVsZEl0ZW1cIiB0ZXh0RmllbGQ9XCJjYXB0aW9uXCIgdmFsdWVGaWVsZD1cImRhdGFGaWVsZFwiIFtpdGVtc109XCJmaWVsZHNcIlxuICAgICAgICAgICAgICAgIG1vZGU9XCJzaW5nbGVcIj5cbiAgICAgICAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZmllbGRzVGVtcGxhdGU+XG4gICAgICAgIDxkaXYgKGNsaWNrKT1cImhhbmRsZUVkaXRDbGljaygpXCI+XG4gICAgICAgICAgICB7e3J1bGUuY2FwdGlvbn19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm9wZXJhdG9yXCIgW25nQ2xhc3NdPVwieydlZGl0YWJsZSc6IGlzRWRpdGluZywncmFkaXVzJzohc2hvd1ZhbHVlfVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0VkaXRpbmc7ZWxzZSBvcGVyYXRvclRlbXBsYXRlXCI+XG4gICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3ggW3JlYWRvbmx5XT1cIm1vZGUgPT0gJ2VkaXQnXCIgKm5nSWY9XCJzaG93T3BlcmF0b3JTZWxlY3RCb3hcIiBbKHNlbGVjdGVkVmFsdWVzKV09XCJydWxlLm9wZXJhdG9yXCJcbiAgICAgICAgICAgICAgICAjc2VsZWN0Qm94IChzZWxlY3RlZEl0ZW1zQ2hhbmdlKT1cIm9wZXJhdG9yQ2hhbmdlKCRldmVudClcIiBhbGxvd051bGw9XCJmYWxzZVwiIG1vZGU9XCJzaW5nbGVcIj5cbiAgICAgICAgICAgICAgICA8YXgtZGF0YS1zb3VyY2UgW3Byb3ZpZGVEYXRhXT1cInByb3ZpZGVEYXRhT3BlcmF0b3JcIj5cbiAgICAgICAgICAgICAgICA8L2F4LWRhdGEtc291cmNlPlxuICAgICAgICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNvcGVyYXRvclRlbXBsYXRlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiIChjbGljayk9XCJoYW5kbGVFZGl0Q2xpY2soKVwiPlxuICAgICAgICAgICAge3soJ3F1ZXJ5QnVpbGRlci4nK3J1bGUub3BlcmF0b3IpIHwgdHJhbnN9fVxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwic2hvd1ZhbHVlXCIgY2xhc3M9XCJ2YWx1ZVwiIFtuZ0NsYXNzXT1cInsnZWRpdGFibGUnOiBpc0VkaXRpbmd9XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWRpdGluZztlbHNlIHZhbHVlVGVtcGxhdGVcIj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIHJ1bGUuY29udHJvbCAmJiAhaXNPbkRlbWFuZExhYmVsXCIgW25nU3dpdGNoXT1cInJ1bGUuY29udHJvbC50eXBlXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIndGV4dEJveCdcIj5cbiAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXRleHQtYm94IChvblZhbHVlQ2hhbmdlZCk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQpXCIgcGxhY2Vob2xkZXI9XCLZhdmC2K/Yp9ixINmF2YjYsdivINmG2LjYsSDYrtmI2K8g2LHYpyDZiNin2LHYryDaqdmG24zYr1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJydWxlLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0Qm94J1wiPlxuICAgICAgICAgICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICA8YXgtc2VsZWN0LWJveCAqbmdJZj1cInNob3dTZWxlY3RCb3hcIiBbbW9kZV09XCJnZXRPcHRpb24oJ21vZGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVtb3RlT3BlcmF0aW9uXT1cImdldE9wdGlvbigncmVtb3RlT3BlcmF0aW9uJylcIiBbdmFsdWVGaWVsZF09XCJnZXRPcHRpb24oJ3ZhbHVlRmllbGQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cItmF2YLYr9in2LEg2YXZiNix2K8g2YbYuNixINiu2YjYryDYsdinINmI2KfYsdivINqp2YbbjNivXCIgW3RleHRGaWVsZF09XCJnZXRPcHRpb24oJ3RleHRGaWVsZCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsoc2VsZWN0ZWRJdGVtcyldPVwicnVsZS52YWx1ZUl0ZW1cIiAoc2VsZWN0ZWRJdGVtc0NoYW5nZSk9XCJzZWxlY3RlZEl0ZW1zQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgI3NlbGVjdEJveFZhbHVlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWRhdGEtc291cmNlIFtwcm92aWRlRGF0YV09XCJnZXRQcm92aWRlRGF0YVwiPjwvYXgtZGF0YS1zb3VyY2U+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlckJveCdcIj5cbiAgICAgICAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGF4LW51bWJlci1ib3ggW2RlY2ltYWxOdW1iZXJdPVwiMlwiIChvblZhbHVlQ2hhbmdlZCk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi2YXZgtiv2KfYsSDZhdmI2LHYryDZhti42LEg2K7ZiNivINix2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIiBbKHZhbHVlKV09XCJydWxlLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtbnVtYmVyLWJveD5cbiAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidkYXRldGltZSdcIj5cbiAgICAgICAgICAgICAgICA8YXgtZGF0ZS1waWNrZXIgbGFiZWw9XCJGcm9tXCIgWyh2YWx1ZSldPVwicnVsZS52YWx1ZVwiIChvblZhbHVlQ2hhbmdlZCk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPC9heC1kYXRlLXBpY2tlcj5cblxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIj5cblxuICAgICAgICAgICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICA8YXgtc2VsZWN0LWJveCAjc2VsZWN0Qm94Qm9vbGVhbiAoc2VsZWN0ZWRJdGVtc0NoYW5nZSk9XCJ2YWx1ZUJvb2xlYW5DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGxvd051bGw9XCJmYWxzZVwiIFtzZWxlY3RlZFZhbHVlc109XCJydWxlLnZhbHVlXCIgbW9kZT1cInNpbmdsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWRhdGEtc291cmNlIFtwcm92aWRlRGF0YV09XCJwcm92aWRlRGF0YUJvb2xlYW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtZGF0YS1zb3VyY2U+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICA8YXgtdGV4dC1ib3ggKG9uVmFsdWVDaGFuZ2VkKT1cInZhbHVlQ2hhbmdlKCRldmVudClcIiBwbGFjZWhvbGRlcj1cItmF2YLYr9in2LEg2YXZiNix2K8g2YbYuNixINiu2YjYryDYsdinINmI2KfYsdivINqp2YbbjNivXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cInJ1bGUudmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9heC10ZXh0LWJveD5cblxuICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1ncm91cD5cblxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc09uRGVtYW5kTGFiZWxcIj5cblxuICAgICAgICAgICAgPGF4LXRleHQtYm94ICN0ZXh0Qm94TmFtZVZhbHVlIFt2YWx1ZV09XCJnZXRPbkRlbWFuZE5hbWUocnVsZS5vbkRlbWFuZExhYmVsKVwiXG4gICAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIm9uRGVtYW5kTGFiZWxDaGFuZ2UoJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwi2YbYp9mFINmF2KrYutuM2LEg2K7ZiNivINix2Kcg2YjYp9ix2K8g2qnZhtuM2K9cIj5cbiAgICAgICAgICAgICAgICA8IS0tIDxheC12YWxpZGF0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlIHR5cGU9XCJyZXF1aXJlZFwiPjwvYXgtdmFsaWRhdGlvbi1ydWxlPlxuICAgICAgICAgICAgICAgIDwvYXgtdmFsaWRhdGlvbj4gLS0+XG4gICAgICAgICAgICA8L2F4LXRleHQtYm94PlxuXG5cbiAgICAgICAgPC9kaXY+XG5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI3ZhbHVlVGVtcGxhdGU+XG4gICAgICAgIDxkaXYgKGNsaWNrKT1cImhhbmRsZUVkaXRDbGljaygpXCI+XG5cbiAgICAgICAgICAgIHt7cnVsZS50ZXh0fX1cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJidXR0b25zLWxpc3RcIj5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd1ZhbHVlICYmIGlzRWRpdGluZyAmJiBtb2RlID09ICduZXcnXCIgY2xhc3M9XCJidXR0b24gdmFyaWFibGVcIlxuICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZS1idXR0b24nOiBpc09uRGVtYW5kTGFiZWx9XCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWRvbGxhci1zaWduXCI+PC9pPlxuICAgICAgICA8YXgtY2hlY2stYm94IFt2YWx1ZV09XCJpc09uRGVtYW5kTGFiZWxcIiAob25DbGljayk9XCJvbkRlbWFuZExhYmVsKCRldmVudClcIj5cbiAgICAgICAgPC9heC1jaGVjay1ib3g+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uIGNvbW1pdFwiIChjbGljayk9XCJoYW5kbGVDb21taXRDbGljaygpXCIgKm5nSWY9XCJpc0VkaXRpbmdcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtY2hlY2tcIj48L2k+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbiByZW1vdmVcIiAoY2xpY2spPVwiaGFuZGxlUmVtb3ZlQ2xpY2soKVwiICpuZ0lmPVwibW9kZSA9PSAnbmV3J1wiPlxuICAgICAgICA8aSBjbGFzcz1cImZhciBmYS10aW1lc1wiPjwvaT5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|