@libs-ui/components-datetime-dropdown 0.2.320-0 → 0.2.321-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/dropdown.component.mjs +3 -3
- package/esm2022/item/child/child.component.mjs +3 -3
- package/esm2022/item/item.component.mjs +3 -3
- package/fesm2022/libs-ui-components-datetime-dropdown.mjs +6 -6
- package/fesm2022/libs-ui-components-datetime-dropdown.mjs.map +1 -1
- package/package.json +8 -8
|
@@ -271,10 +271,10 @@ export class LibsUiComponentsDatetimeDropdownComponent {
|
|
|
271
271
|
this.outChangStageFlagMouse.emit(flagMouse);
|
|
272
272
|
}
|
|
273
273
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsDatetimeDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
274
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsDatetimeDropdownComponent, isStandalone: true, selector: "libs_ui-components-datetime-dropdown", inputs: { labelConfig: { classPropertyName: "labelConfig", publicName: "labelConfig", isSignal: true, isRequired: false, transformFunction: null }, widthDropdown: { classPropertyName: "widthDropdown", publicName: "widthDropdown", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, maxYear: { classPropertyName: "maxYear", publicName: "maxYear", isSignal: true, isRequired: false, transformFunction: null }, minYear: { classPropertyName: "minYear", publicName: "minYear", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "isMultiple", isSignal: true, isRequired: false, transformFunction: null }, reverseYear: { classPropertyName: "reverseYear", publicName: "reverseYear", isSignal: true, isRequired: false, transformFunction: null }, isBorderError: { classPropertyName: "isBorderError", publicName: "isBorderError", isSignal: true, isRequired: false, transformFunction: null }, ignoreWidth100: { classPropertyName: "ignoreWidth100", publicName: "ignoreWidth100", isSignal: true, isRequired: false, transformFunction: null }, widthByElement: { classPropertyName: "widthByElement", publicName: "widthByElement", isSignal: true, isRequired: false, transformFunction: null }, disableSecond: { classPropertyName: "disableSecond", publicName: "disableSecond", isSignal: true, isRequired: false, transformFunction: null }, typeFormat: { classPropertyName: "typeFormat", publicName: "typeFormat", isSignal: true, isRequired: false, transformFunction: null }, fromAndToDateLabel: { classPropertyName: "fromAndToDateLabel", publicName: "fromAndToDateLabel", isSignal: true, isRequired: false, transformFunction: null }, listHasButtonUnSelectOption: { classPropertyName: "listHasButtonUnSelectOption", publicName: "listHasButtonUnSelectOption", isSignal: true, isRequired: false, transformFunction: null }, selectedDateTime: { classPropertyName: "selectedDateTime", publicName: "selectedDateTime", isSignal: true, isRequired: false, transformFunction: null }, isEmitAfterChanged: { classPropertyName: "isEmitAfterChanged", publicName: "isEmitAfterChanged", isSignal: true, isRequired: false, transformFunction: null }, getItemYearDisplay: { classPropertyName: "getItemYearDisplay", publicName: "getItemYearDisplay", isSignal: true, isRequired: false, transformFunction: null }, ignoreFromAndToDateLabel: { classPropertyName: "ignoreFromAndToDateLabel", publicName: "ignoreFromAndToDateLabel", isSignal: true, isRequired: false, transformFunction: null }, classIncludeTextDisplayWhenNoSelect: { classPropertyName: "classIncludeTextDisplayWhenNoSelect", publicName: "classIncludeTextDisplayWhenNoSelect", isSignal: true, isRequired: false, transformFunction: null }, hiddenDate: { classPropertyName: "hiddenDate", publicName: "hiddenDate", isSignal: true, isRequired: false, transformFunction: null }, listMaxItemShow: { classPropertyName: "listMaxItemShow", publicName: "listMaxItemShow", isSignal: true, isRequired: false, transformFunction: null }, ignoreConvertYearSelected: { classPropertyName: "ignoreConvertYearSelected", publicName: "ignoreConvertYearSelected", isSignal: true, isRequired: false, transformFunction: null }, listKeysDisable: { classPropertyName: "listKeysDisable", publicName: "listKeysDisable", isSignal: true, isRequired: false, transformFunction: null }, ignoreAllowTimeEqual: { classPropertyName: "ignoreAllowTimeEqual", publicName: "ignoreAllowTimeEqual", isSignal: true, isRequired: false, transformFunction: null }, ignoreValidTimeCompare: { classPropertyName: "ignoreValidTimeCompare", publicName: "ignoreValidTimeCompare", isSignal: true, isRequired: false, transformFunction: null }, isCheckErrorWhenSelectItem: { classPropertyName: "isCheckErrorWhenSelectItem", publicName: "isCheckErrorWhenSelectItem", isSignal: true, isRequired: false, transformFunction: null }, ignoreRequiredValueSecondWhenNotValidRequired: { classPropertyName: "ignoreRequiredValueSecondWhenNotValidRequired", publicName: "ignoreRequiredValueSecondWhenNotValidRequired", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outFunctionsControl: "outFunctionsControl", outSelectedDropdown: "outSelectedDropdown", outChooseMultiDate: "outChooseMultiDate", outChooseSingleDate: "outChooseSingleDate", outChangStageFlagMouse: "outChangStageFlagMouse" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["parent"], descendants: true, isSignal: true }, { propertyName: "labelFromRef", first: true, predicate: ["labelFrom"], descendants: true, isSignal: true }, { propertyName: "labelToRef", first: true, predicate: ["labelTo"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (labelConfig(); as labelConfig) {\n <libs_ui-components-label\n [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required\"\n [description]=\"labelConfig.description\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable || disable()\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [limitLength]=\"labelConfig.limitLength\"\n [count]=\"labelConfig.count\" />\n}\n<div\n #parent\n class=\"flex items-start\"\n [class.!w-full]=\"widthByElement()\"\n [class.!column]=\"isResponsive() && isMultiple()\">\n <div\n #childFrom\n class=\"flex items-start\"\n [class.w-[50%]]=\"widthByElement() && !isResponsive()\"\n [class.!mb-[8px]]=\"isResponsive() && isMultiple()\"\n [class.!mr-[8px]]=\"!isResponsive() && isMultiple()\"\n [class.w-full]=\"(!isMultiple() && !widthByElement()) || isResponsive()\"\n [style.width.px]=\"!widthByElement() && isMultiple() && !isResponsive() ? widthDropdown() * arrayFormat().length + 8 * arrayFormat().length + widthLabelFrom() : undefined\">\n @if (isMultiple() && !ignoreFromAndToDateLabel() && fromAndToDateLabel().from) {\n <div\n class=\"mr-[8px] flex-shrink-0 h-[32px] flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() || undefined : undefined\">\n <span\n #labelFrom\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelFrom || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n {{ fromAndToDateLabel().from || ' ' | translate }}\n </span>\n </div>\n }\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.!w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple() ? (isResponsive() ? true : false) : true\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.from() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.from()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'from')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'from')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n @if (isMultiple()) {\n <div\n #childTo\n [class.!w-[50%]]=\"widthByElement()\"\n [class.!w-full]=\"!widthByElement() || isResponsive()\"\n class=\"flex items-start\">\n <div\n class=\"mr-[8px] h-[32px] flex-shrink-0 flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() : undefined\">\n @if (!ignoreFromAndToDateLabel()) {\n <span\n #labelTo\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelTo || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n {{ fromAndToDateLabel().to || ' ' | translate }}\n </span>\n }\n @if (ignoreFromAndToDateLabel()) {\n <span\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r\">\n -\n </span>\n }\n </div>\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple()\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.to() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.to()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'to')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'to')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n }\n</div>\n\n@if (isErrorCompareDate()) {\n <div class=\"flex items-center mt-[4px]\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\">{{ validRequired()?.messageValidCompareTime || 'i18n_invalid_end_date_selected' | translate: validRequired()?.interpolateParamsCompareTime }}</span>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsLabelComponent, selector: "libs_ui-components-label", inputs: ["iconPopoverClass", "classInclude", "labelLeft", "labelLeftClass", "labelLeftBehindToggleButton", "popover", "required", "buttonsLeft", "disableButtonsLeft", "buttonsRight", "disableButtonsRight", "labelRight", "labelRightClass", "labelRightRequired", "hasToggle", "toggleSize", "toggleActive", "toggleDisable", "description", "descriptionClass", "buttonsDescription", "disableButtonsDescription", "buttonsDescriptionContainerClass", "onlyShowCount", "zIndexPopover", "timerDestroyPopover", "count", "limitLength"], outputs: ["outClickButton", "outSwitchEvent", "outLabelRightClick", "outLabelLeftClick"] }, { kind: "directive", type: LibsUiComponentsDatetimeDropdownDirective, selector: "[LibsUiComponentsDatetimeDropdownDirective]", outputs: ["outChangeWidth"] }, { kind: "component", type: LibsUiComponentsDatetimeDropdownItemComponent, selector: "libs_ui-components-datetime-dropdown-item", inputs: ["typeDate", "disableSecond", "selectedDate", "widthDropdown", "widthByElement", "getItemYearDisplay", "listHasButtonUnSelectOption", "readonly", "disable", "zIndex", "isMultiple", "classIncludeTextDisplayWhenNoSelect", "isCheckErrorWhenSelectItem", "maxYear", "minYear", "reverseYear", "listKeysDisable", "ignoreConvertYearSelected", "validRequired", "isEmitSelectedDropDown", "listMaxItemShow"], outputs: ["outSelectedData", "outFunctionControl", "outChangStageFlagMouse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
274
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsDatetimeDropdownComponent, isStandalone: true, selector: "libs_ui-components-datetime-dropdown", inputs: { labelConfig: { classPropertyName: "labelConfig", publicName: "labelConfig", isSignal: true, isRequired: false, transformFunction: null }, widthDropdown: { classPropertyName: "widthDropdown", publicName: "widthDropdown", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, maxYear: { classPropertyName: "maxYear", publicName: "maxYear", isSignal: true, isRequired: false, transformFunction: null }, minYear: { classPropertyName: "minYear", publicName: "minYear", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "isMultiple", isSignal: true, isRequired: false, transformFunction: null }, reverseYear: { classPropertyName: "reverseYear", publicName: "reverseYear", isSignal: true, isRequired: false, transformFunction: null }, isBorderError: { classPropertyName: "isBorderError", publicName: "isBorderError", isSignal: true, isRequired: false, transformFunction: null }, ignoreWidth100: { classPropertyName: "ignoreWidth100", publicName: "ignoreWidth100", isSignal: true, isRequired: false, transformFunction: null }, widthByElement: { classPropertyName: "widthByElement", publicName: "widthByElement", isSignal: true, isRequired: false, transformFunction: null }, disableSecond: { classPropertyName: "disableSecond", publicName: "disableSecond", isSignal: true, isRequired: false, transformFunction: null }, typeFormat: { classPropertyName: "typeFormat", publicName: "typeFormat", isSignal: true, isRequired: false, transformFunction: null }, fromAndToDateLabel: { classPropertyName: "fromAndToDateLabel", publicName: "fromAndToDateLabel", isSignal: true, isRequired: false, transformFunction: null }, listHasButtonUnSelectOption: { classPropertyName: "listHasButtonUnSelectOption", publicName: "listHasButtonUnSelectOption", isSignal: true, isRequired: false, transformFunction: null }, selectedDateTime: { classPropertyName: "selectedDateTime", publicName: "selectedDateTime", isSignal: true, isRequired: false, transformFunction: null }, isEmitAfterChanged: { classPropertyName: "isEmitAfterChanged", publicName: "isEmitAfterChanged", isSignal: true, isRequired: false, transformFunction: null }, getItemYearDisplay: { classPropertyName: "getItemYearDisplay", publicName: "getItemYearDisplay", isSignal: true, isRequired: false, transformFunction: null }, ignoreFromAndToDateLabel: { classPropertyName: "ignoreFromAndToDateLabel", publicName: "ignoreFromAndToDateLabel", isSignal: true, isRequired: false, transformFunction: null }, classIncludeTextDisplayWhenNoSelect: { classPropertyName: "classIncludeTextDisplayWhenNoSelect", publicName: "classIncludeTextDisplayWhenNoSelect", isSignal: true, isRequired: false, transformFunction: null }, hiddenDate: { classPropertyName: "hiddenDate", publicName: "hiddenDate", isSignal: true, isRequired: false, transformFunction: null }, listMaxItemShow: { classPropertyName: "listMaxItemShow", publicName: "listMaxItemShow", isSignal: true, isRequired: false, transformFunction: null }, ignoreConvertYearSelected: { classPropertyName: "ignoreConvertYearSelected", publicName: "ignoreConvertYearSelected", isSignal: true, isRequired: false, transformFunction: null }, listKeysDisable: { classPropertyName: "listKeysDisable", publicName: "listKeysDisable", isSignal: true, isRequired: false, transformFunction: null }, ignoreAllowTimeEqual: { classPropertyName: "ignoreAllowTimeEqual", publicName: "ignoreAllowTimeEqual", isSignal: true, isRequired: false, transformFunction: null }, ignoreValidTimeCompare: { classPropertyName: "ignoreValidTimeCompare", publicName: "ignoreValidTimeCompare", isSignal: true, isRequired: false, transformFunction: null }, isCheckErrorWhenSelectItem: { classPropertyName: "isCheckErrorWhenSelectItem", publicName: "isCheckErrorWhenSelectItem", isSignal: true, isRequired: false, transformFunction: null }, ignoreRequiredValueSecondWhenNotValidRequired: { classPropertyName: "ignoreRequiredValueSecondWhenNotValidRequired", publicName: "ignoreRequiredValueSecondWhenNotValidRequired", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outFunctionsControl: "outFunctionsControl", outSelectedDropdown: "outSelectedDropdown", outChooseMultiDate: "outChooseMultiDate", outChooseSingleDate: "outChooseSingleDate", outChangStageFlagMouse: "outChangStageFlagMouse" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["parent"], descendants: true, isSignal: true }, { propertyName: "labelFromRef", first: true, predicate: ["labelFrom"], descendants: true, isSignal: true }, { propertyName: "labelToRef", first: true, predicate: ["labelTo"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (labelConfig(); as labelConfig) {\n <libs_ui-components-label\n [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required\"\n [description]=\"labelConfig.description\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable || disable()\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [limitLength]=\"labelConfig.limitLength\"\n [count]=\"labelConfig.count\" />\n}\n<div\n #parent\n class=\"flex items-start\"\n [class.!w-full]=\"widthByElement()\"\n [class.!column]=\"isResponsive() && isMultiple()\">\n <div\n #childFrom\n class=\"flex items-start\"\n [class.w-[50%]]=\"widthByElement() && !isResponsive()\"\n [class.!mb-[8px]]=\"isResponsive() && isMultiple()\"\n [class.!mr-[8px]]=\"!isResponsive() && isMultiple()\"\n [class.w-full]=\"(!isMultiple() && !widthByElement()) || isResponsive()\"\n [style.width.px]=\"!widthByElement() && isMultiple() && !isResponsive() ? widthDropdown() * arrayFormat().length + 8 * arrayFormat().length + widthLabelFrom() : undefined\">\n @if (isMultiple() && !ignoreFromAndToDateLabel() && fromAndToDateLabel().from) {\n <div\n class=\"mr-[8px] flex-shrink-0 h-[32px] flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() || undefined : undefined\">\n <span\n #labelFrom\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelFrom || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlFrom = fromAndToDateLabel().from || ' ';\n {{ constHtmlFrom | translate }}\n </span>\n </div>\n }\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.!w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple() ? (isResponsive() ? true : false) : true\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.from() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.from()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'from')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'from')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n @if (isMultiple()) {\n <div\n #childTo\n [class.!w-[50%]]=\"widthByElement()\"\n [class.!w-full]=\"!widthByElement() || isResponsive()\"\n class=\"flex items-start\">\n <div\n class=\"mr-[8px] h-[32px] flex-shrink-0 flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() : undefined\">\n @if (!ignoreFromAndToDateLabel()) {\n <span\n #labelTo\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelTo || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlTo = fromAndToDateLabel().to || ' ';\n {{ constHtmlTo | translate }}\n </span>\n }\n @if (ignoreFromAndToDateLabel()) {\n <span\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r\">\n -\n </span>\n }\n </div>\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple()\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.to() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.to()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'to')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'to')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n }\n</div>\n\n@if (isErrorCompareDate()) {\n <div class=\"flex items-center mt-[4px]\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\">\n @let constHtmlMessage = validRequired()?.messageValidCompareTime || 'i18n_invalid_end_date_selected';\n {{ constHtmlMessage | translate: validRequired()?.interpolateParamsCompareTime }}\n </span>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsLabelComponent, selector: "libs_ui-components-label", inputs: ["iconPopoverClass", "classInclude", "labelLeft", "labelLeftClass", "labelLeftBehindToggleButton", "popover", "required", "buttonsLeft", "disableButtonsLeft", "buttonsRight", "disableButtonsRight", "labelRight", "labelRightClass", "labelRightRequired", "hasToggle", "toggleSize", "toggleActive", "toggleDisable", "description", "descriptionClass", "buttonsDescription", "disableButtonsDescription", "buttonsDescriptionContainerClass", "onlyShowCount", "zIndexPopover", "timerDestroyPopover", "count", "limitLength"], outputs: ["outClickButton", "outSwitchEvent", "outLabelRightClick", "outLabelLeftClick"] }, { kind: "directive", type: LibsUiComponentsDatetimeDropdownDirective, selector: "[LibsUiComponentsDatetimeDropdownDirective]", outputs: ["outChangeWidth"] }, { kind: "component", type: LibsUiComponentsDatetimeDropdownItemComponent, selector: "libs_ui-components-datetime-dropdown-item", inputs: ["typeDate", "disableSecond", "selectedDate", "widthDropdown", "widthByElement", "getItemYearDisplay", "listHasButtonUnSelectOption", "readonly", "disable", "zIndex", "isMultiple", "classIncludeTextDisplayWhenNoSelect", "isCheckErrorWhenSelectItem", "maxYear", "minYear", "reverseYear", "listKeysDisable", "ignoreConvertYearSelected", "validRequired", "isEmitSelectedDropDown", "listMaxItemShow"], outputs: ["outSelectedData", "outFunctionControl", "outChangStageFlagMouse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
275
275
|
}
|
|
276
276
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsDatetimeDropdownComponent, decorators: [{
|
|
277
277
|
type: Component,
|
|
278
|
-
args: [{ selector: 'libs_ui-components-datetime-dropdown', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslateModule, LibsUiComponentsLabelComponent, LibsUiComponentsDatetimeDropdownDirective, LibsUiComponentsDatetimeDropdownItemComponent], template: "@if (labelConfig(); as labelConfig) {\n <libs_ui-components-label\n [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required\"\n [description]=\"labelConfig.description\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable || disable()\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [limitLength]=\"labelConfig.limitLength\"\n [count]=\"labelConfig.count\" />\n}\n<div\n #parent\n class=\"flex items-start\"\n [class.!w-full]=\"widthByElement()\"\n [class.!column]=\"isResponsive() && isMultiple()\">\n <div\n #childFrom\n class=\"flex items-start\"\n [class.w-[50%]]=\"widthByElement() && !isResponsive()\"\n [class.!mb-[8px]]=\"isResponsive() && isMultiple()\"\n [class.!mr-[8px]]=\"!isResponsive() && isMultiple()\"\n [class.w-full]=\"(!isMultiple() && !widthByElement()) || isResponsive()\"\n [style.width.px]=\"!widthByElement() && isMultiple() && !isResponsive() ? widthDropdown() * arrayFormat().length + 8 * arrayFormat().length + widthLabelFrom() : undefined\">\n @if (isMultiple() && !ignoreFromAndToDateLabel() && fromAndToDateLabel().from) {\n <div\n class=\"mr-[8px] flex-shrink-0 h-[32px] flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() || undefined : undefined\">\n <span\n #labelFrom\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelFrom || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n
|
|
278
|
+
args: [{ selector: 'libs_ui-components-datetime-dropdown', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslateModule, LibsUiComponentsLabelComponent, LibsUiComponentsDatetimeDropdownDirective, LibsUiComponentsDatetimeDropdownItemComponent], template: "@if (labelConfig(); as labelConfig) {\n <libs_ui-components-label\n [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required\"\n [description]=\"labelConfig.description\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable || disable()\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [limitLength]=\"labelConfig.limitLength\"\n [count]=\"labelConfig.count\" />\n}\n<div\n #parent\n class=\"flex items-start\"\n [class.!w-full]=\"widthByElement()\"\n [class.!column]=\"isResponsive() && isMultiple()\">\n <div\n #childFrom\n class=\"flex items-start\"\n [class.w-[50%]]=\"widthByElement() && !isResponsive()\"\n [class.!mb-[8px]]=\"isResponsive() && isMultiple()\"\n [class.!mr-[8px]]=\"!isResponsive() && isMultiple()\"\n [class.w-full]=\"(!isMultiple() && !widthByElement()) || isResponsive()\"\n [style.width.px]=\"!widthByElement() && isMultiple() && !isResponsive() ? widthDropdown() * arrayFormat().length + 8 * arrayFormat().length + widthLabelFrom() : undefined\">\n @if (isMultiple() && !ignoreFromAndToDateLabel() && fromAndToDateLabel().from) {\n <div\n class=\"mr-[8px] flex-shrink-0 h-[32px] flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() || undefined : undefined\">\n <span\n #labelFrom\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelFrom || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlFrom = fromAndToDateLabel().from || ' ';\n {{ constHtmlFrom | translate }}\n </span>\n </div>\n }\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.!w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple() ? (isResponsive() ? true : false) : true\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.from() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.from()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'from')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'from')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n @if (isMultiple()) {\n <div\n #childTo\n [class.!w-[50%]]=\"widthByElement()\"\n [class.!w-full]=\"!widthByElement() || isResponsive()\"\n class=\"flex items-start\">\n <div\n class=\"mr-[8px] h-[32px] flex-shrink-0 flex items-center\"\n [style.width.px]=\"isResponsive() ? widthLabel() : undefined\">\n @if (!ignoreFromAndToDateLabel()) {\n <span\n #labelTo\n LibsUiComponentsDatetimeDropdownDirective\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r text-nowrap {{ fromAndToDateLabel().classLabelTo || '' }}\"\n (outChangeWidth)=\"handlerChangeWidthLabel($event)\">\n @let constHtmlTo = fromAndToDateLabel().to || ' ';\n {{ constHtmlTo | translate }}\n </span>\n }\n @if (ignoreFromAndToDateLabel()) {\n <span\n [class.!opacity-[0.5]]=\"disable()\"\n class=\"libs-ui-font-h5r\">\n -\n </span>\n }\n </div>\n <div\n class=\"flex\"\n [class.!w-full]=\"widthByElement()\">\n @if (!changeType()) {\n <libs_ui-components-datetime-dropdown-item\n [class.w-full]=\"widthByElement()\"\n [disableSecond]=\"disableSecond()\"\n [typeDate]=\"typeFormat()\"\n [zIndex]=\"zIndex()\"\n [maxYear]=\"maxYear()\"\n [disable]=\"disable()\"\n [minYear]=\"minYear()\"\n [readonly]=\"readonly()\"\n [isMultiple]=\"isMultiple()\"\n [reverseYear]=\"reverseYear()\"\n [selectedDate]=\"selectedDateTime()?.to() || {}\"\n [widthDropdown]=\"widthDropdown()\"\n [widthByElement]=\"widthByElement()\"\n [getItemYearDisplay]=\"getItemYearDisplay()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listKeysDisable]=\"listKeysDisable()?.to()\"\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [classIncludeTextDisplayWhenNoSelect]=\"'libs-ui-font-h5r ' + classIncludeTextDisplayWhenNoSelect\"\n [isEmitSelectedDropDown]=\"isEmitAfterChanged()\"\n (outSelectedData)=\"handlerChangeSelectedKey($event, 'to')\"\n (outFunctionControl)=\"handlerFunctionControl($event, 'to')\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n }\n </div>\n </div>\n }\n</div>\n\n@if (isErrorCompareDate()) {\n <div class=\"flex items-center mt-[4px]\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\">\n @let constHtmlMessage = validRequired()?.messageValidCompareTime || 'i18n_invalid_end_date_selected';\n {{ constHtmlMessage | translate: validRequired()?.interpolateParamsCompareTime }}\n </span>\n </div>\n}\n" }]
|
|
279
279
|
}], ctorParameters: () => [] });
|
|
280
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL2Ryb3Bkb3duL3NyYy9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0ssT0FBTyxFQUFVLDhCQUE4QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBS2hHLE9BQU8sRUFBRSw2Q0FBNkMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFXdEYsTUFBTSxPQUFPLHlDQUF5QztJQUNwRCxtQkFBbUI7SUFDVCxLQUFLLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFlBQVksR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELFVBQVUsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELGNBQWMsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbkMsWUFBWSxHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUNqQyxrQkFBa0IsR0FBRyxNQUFNLENBQXNCLFNBQVMsQ0FBQyxDQUFDO0lBQzVELFVBQVUsR0FBRyxNQUFNLENBQXFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5RixZQUFZLEdBQUcsTUFBTSxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUN0RCxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUNwQyxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUE0QixDQUFDO0lBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBQ08sVUFBVSxHQUFHLE1BQU0sQ0FBc0IsU0FBUyxDQUFDLENBQUM7SUFFdEQsZUFBZSxHQUFHLE1BQU0sQ0FBcUIsU0FBUyxDQUFDLENBQUM7SUFDeEQsT0FBTyxHQUFHLE1BQU0sQ0FBcUIsU0FBUyxDQUFDLENBQUM7SUFDaEQsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDaEMsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQWlELENBQUM7SUFFcEYsZ0JBQWdCO0lBQ1AsV0FBVyxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7SUFDbkQsYUFBYSxHQUFHLEtBQUssQ0FBaUIsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNuRixNQUFNLEdBQUcsS0FBSyxDQUFpQixJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLE9BQU8sR0FBRyxLQUFLLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFDM0IsT0FBTyxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUMzQixRQUFRLEdBQUcsS0FBSyxDQUFxQixTQUFTLENBQUMsQ0FBQztJQUNoRCxPQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLFFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDakMsVUFBVSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNuQyxXQUFXLEdBQUcsS0FBSyxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUNwRCxhQUFhLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLGNBQWMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDdkMsY0FBYyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUN2QyxhQUFhLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLFVBQVUsR0FBRyxLQUFLLENBQXVELFdBQVcsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdEksa0JBQWtCLEdBQUcsS0FBSyxDQUFzQixFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1RiwyQkFBMkIsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDcEQsZ0JBQWdCLEdBQUcsS0FBSyxDQUFxQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxrQkFBa0IsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQyxvREFBb0Q7SUFDaEcsa0JBQWtCLEdBQUcsS0FBSyxFQUE0QixDQUFDO0lBQ3ZELHdCQUF3QixHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNqRCxtQ0FBbUMsR0FBRyxLQUFLLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQzNFLFVBQVUsR0FBRyxLQUFLLEVBQTJCLENBQUM7SUFDOUMsZUFBZSxHQUFHLEtBQUssQ0FBZ0YsU0FBUyxDQUFDLENBQUM7SUFDbEgseUJBQXlCLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2xELGVBQWUsR0FBRyxLQUFLLENBQXVDLFNBQVMsQ0FBQyxDQUFDO0lBRXpFLG9CQUFvQixHQUFHLEtBQUssQ0FBbUIsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RixzQkFBc0IsR0FBRyxLQUFLLENBQW1CLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbEcsMEJBQTBCLEdBQUcsS0FBSyxDQUFtQixJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BHLDZDQUE2QyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQyxDQUFDLHFEQUFxRDtJQUM1SCxhQUFhLEdBQUcsS0FBSyxFQUFzQixDQUFDO0lBRXJELGlCQUFpQjtJQUNSLG1CQUFtQixHQUFHLE1BQU0sRUFBcUMsQ0FBQztJQUNsRSxtQkFBbUIsR0FBRyxNQUFNLEVBQW9ELENBQUMsQ0FBQyw0RkFBNEY7SUFDOUssa0JBQWtCLEdBQUcsTUFBTSxFQUEwQixDQUFDO0lBQ3RELG1CQUFtQixHQUFHLE1BQU0sRUFBMkIsQ0FBQztJQUN4RCxzQkFBc0IsR0FBRyxNQUFNLEVBQWMsQ0FBQztJQUV2RCxnQkFBZ0I7SUFDUixZQUFZLEdBQUcsU0FBUyxDQUFhLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLFlBQVksR0FBRyxTQUFTLENBQWEsV0FBVyxDQUFDLENBQUM7SUFDbEQsVUFBVSxHQUFHLFNBQVMsQ0FBYSxTQUFTLENBQUMsQ0FBQztJQUV0RCxpQkFBaUI7SUFDVCxTQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFN0M7UUFDRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBRXJDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDaEIsT0FBTztZQUNULENBQUM7WUFFRCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzlCLEtBQUssQ0FBQyxDQUFDLENBQUM7cUJBQ0wsSUFBSSxFQUFFO3FCQUNOLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ0wsSUFBSSxFQUFFO2FBQ04sU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPO1lBQ0wsWUFBWSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0QyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3RDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDekMsQ0FBQztJQUNKLENBQUM7SUFFUyxlQUFlO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7UUFFbEcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTVGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEcsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUU1RyxJQUFJLGtCQUFrQixHQUFHLEtBQUssRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRVMsd0JBQXdCLENBQUMsS0FBOEIsRUFBRSxJQUFtQjtRQUNwRixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2pDLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixDQUFDO1lBRUQsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUVuRixJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVPLEtBQUssQ0FBQyxhQUFhO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTyxLQUFLLENBQUMsVUFBVTtRQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLGFBQWEsRUFBRSxDQUFDO1lBQ2hFLE9BQU87UUFDVCxDQUFDO1FBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNMLElBQUksRUFBRTthQUNOLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVMsc0JBQXNCLENBQUMsS0FBNEMsRUFBRSxJQUFtQjtRQUNoRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRVMsS0FBSyxDQUFDLFVBQVU7UUFDeEIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWpCLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLENBQUMsTUFBTSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN2QixLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxRQUFRLENBQUMsS0FBYztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVPLFdBQVc7UUFDakIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQTRCLENBQUM7UUFDckUsTUFBTSxXQUFXLEdBQWdFLEVBQUUsQ0FBQztRQUVwRixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV6QyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDaEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVuQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVsQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5DLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLEtBQUssQ0FBQyxRQUFRO1FBQ3BCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUVqQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsNkNBQTZDLEVBQUUsRUFBRSxDQUFDO2dCQUN6RixLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEMsQ0FBQztZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUFpQjtRQUN0QyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQTRCLENBQUM7UUFFckUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BCLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNyRixVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLENBQUM7WUFDRCxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BGLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVTLFNBQVM7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUMxRCxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUM7UUFDckMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUVqQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxZQUFZLEdBQXVDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFFNUYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3ZDLFlBQVksR0FBRyxTQUFTLENBQUM7Z0JBQzNCLENBQUM7Z0JBQ0QsSUFBSSxZQUFZLEVBQUUsQ0FBQztvQkFDakIsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTt3QkFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7d0JBRXJDLE9BQU8sT0FBTyxDQUFDO29CQUNqQixDQUFDLENBQUMsQ0FBQztvQkFDSCxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO3dCQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFFbkMsT0FBTyxPQUFPLENBQUM7b0JBQ2pCLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDN0MsQ0FBQztZQUVELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxZQUFZLEdBQXdDLEVBQUUsQ0FBQztRQUUzRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyQixZQUFZLEdBQUcsU0FBUyxDQUFDO1lBQzNCLENBQUM7WUFDRCxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNqQixZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzlDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQztJQUVTLHVCQUF1QixDQUFDLEtBQWE7UUFDN0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ25CLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQ2QsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLENBQUMsRUFBRSxHQUFHLENBQXNCLENBQzdCLENBQUM7SUFDSixDQUFDO0lBRVMsMEJBQTBCLENBQUMsU0FBcUI7UUFDeEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO3dHQTFUVSx5Q0FBeUM7NEZBQXpDLHlDQUF5QyxxektDdEJ0RCxzOU1Ba0pBLHlERDlIWSxlQUFlLDRGQUFFLDhCQUE4Qiw0cUJBQUUseUNBQXlDLHFIQUFFLDZDQUE2Qzs7NEZBRXhJLHlDQUF5QztrQkFUckQsU0FBUzsrQkFFRSxzQ0FBc0MsY0FHcEMsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsZUFBZSxFQUFFLDhCQUE4QixFQUFFLHlDQUF5QyxFQUFFLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCwgdW50cmFja2VkLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMYWJlbCwgTGlic1VpQ29tcG9uZW50c0xhYmVsQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1sYWJlbCc7XG5pbXBvcnQgeyBJRmxhZ01vdXNlIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1wb3BvdmVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0YWtlVW50aWwsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wYXJlRGF0ZSB9IGZyb20gJy4vZGVmaW5lcy9kYXRlLWRyb3Bkb3duLmRlZmluZSc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlL2RhdGUtZHJvcGRvd24uZGlyZWN0aXZlJztcbmltcG9ydCB7IElEYXRlRHJvcGRvd25EaXNhYmxlS2V5cywgSUZyb21BbmRUb0RhdGVMYWJlbCwgSUhpZGRlbkRhdGUsIFRZUEVfREFURV9EUk9QRE9XTl9GT1JNQVQsIFRZUEVfREFURV9GT1JNQVQgfSBmcm9tICcuL2ludGVyZmFjZXMvZGF0ZS1kcm9wZG93bi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUVtaXRNdWx0aURhdGVEcm9wZG93biwgSUVtaXRTaW5nbGVEYXRlRHJvcGRvd24gfSBmcm9tICcuL2ludGVyZmFjZXMvZW1pdC1kcm9wZG93bi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSURhdGVEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50LCBJRGF0ZURyb3Bkb3duSXRlbUZ1bmN0aW9uQ29udHJvbEV2ZW50IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Z1bmN0aW9ucy1jb250cm9sLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJVmFsaWREYXRlRHJvcGRvd24gfSBmcm9tICcuL2ludGVyZmFjZXMvdmFsaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vaXRlbS9pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1kYXRldGltZS1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBMaWJzVWlDb21wb25lbnRzTGFiZWxDb21wb25lbnQsIExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duRGlyZWN0aXZlLCBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkl0ZW1Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHJvdGVjdGVkIHdpZHRoID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByb3RlY3RlZCB3aWR0aEVsZW1lbnQgPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgd2lkdGhMYWJlbCA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCB3aWR0aExhYmVsRnJvbSA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcm90ZWN0ZWQgd2lkdGhMYWJlbFRvID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByb3RlY3RlZCBpc0Vycm9yQ29tcGFyZURhdGUgPSBzaWduYWw8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIGNob29zZURhdGUgPSBzaWduYWw8SUVtaXRNdWx0aURhdGVEcm9wZG93biB8IHVuZGVmaW5lZD4oeyBmcm9tOiBzaWduYWwoe30pLCB0bzogc2lnbmFsKHt9KSB9KTtcbiAgcHJvdGVjdGVkIGlzUmVzcG9uc2l2ZSA9IHNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgYXJyYXlGb3JtYXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZUZvcm1hdCgpLnNwbGl0KCctJykgYXMgQXJyYXk8VFlQRV9EQVRFX0ZPUk1BVD47XG4gIH0pO1xuICBwcm90ZWN0ZWQgY2hhbmdlVHlwZSA9IHNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgY2FjaGVXaWR0aExhYmVsID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSB0aW1lT3V0ID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGZ1bmN0aW9uc0NvbnRyb2wgPSBuZXcgTWFwPHN0cmluZywgSURhdGVEcm9wZG93bkl0ZW1GdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IGxhYmVsQ29uZmlnID0gaW5wdXQ8SUxhYmVsIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSB3aWR0aERyb3Bkb3duID0gaW5wdXQ8bnVtYmVyLCBudW1iZXI+KDEzNiwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gMTM2IH0pO1xuICByZWFkb25seSB6SW5kZXggPSBpbnB1dDxudW1iZXIsIG51bWJlcj4oMTIwMCwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gMTIwMCB9KTtcbiAgcmVhZG9ubHkgbWF4WWVhciA9IGlucHV0PG51bWJlcj4oMCk7XG4gIHJlYWRvbmx5IG1pblllYXIgPSBpbnB1dDxudW1iZXI+KDApO1xuICByZWFkb25seSBtaW5XaWR0aCA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgcmVhZG9ubHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGlzTXVsdGlwbGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHJldmVyc2VZZWFyID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaXNCb3JkZXJFcnJvciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgaWdub3JlV2lkdGgxMDAgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHdpZHRoQnlFbGVtZW50ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBkaXNhYmxlU2Vjb25kID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB0eXBlRm9ybWF0ID0gaW5wdXQ8VFlQRV9EQVRFX0RST1BET1dOX0ZPUk1BVCwgVFlQRV9EQVRFX0RST1BET1dOX0ZPUk1BVD4oJ21vbnRoLWRheScsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/ICdtb250aC1kYXknIH0pO1xuICByZWFkb25seSBmcm9tQW5kVG9EYXRlTGFiZWwgPSBpbnB1dDxJRnJvbUFuZFRvRGF0ZUxhYmVsPih7IGZyb206ICdpMThuX2xhYmVsX2Zyb20nLCB0bzogJ2kxOG5fdG8nIH0pO1xuICByZWFkb25seSBsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZVRpbWUgPSBpbnB1dDxJRW1pdE11bHRpRGF0ZURyb3Bkb3duIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBpc0VtaXRBZnRlckNoYW5nZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7IC8vIGTDuW5nIMSR4buDIGVtaXQgbeG7l2kgbOG6p24gY2jhu41uIGdpw6EgdHLhu4sgdsOgIGzhuqduIMSR4bqndSBpbml0XG4gIHJlYWRvbmx5IGdldEl0ZW1ZZWFyRGlzcGxheSA9IGlucHV0PCh5ZWFyOiBzdHJpbmcpID0+IHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgaWdub3JlRnJvbUFuZFRvRGF0ZUxhYmVsID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdCA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaGlkZGVuRGF0ZSA9IGlucHV0PElIaWRkZW5EYXRlIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBsaXN0TWF4SXRlbVNob3cgPSBpbnB1dDx7IHllYXI/OiBudW1iZXI7IG1vbnRoPzogbnVtYmVyOyBxdWFydGVyPzogbnVtYmVyOyBkYXk/OiBudW1iZXIgfSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaWdub3JlQ29udmVydFllYXJTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgbGlzdEtleXNEaXNhYmxlID0gaW5wdXQ8SURhdGVEcm9wZG93bkRpc2FibGVLZXlzIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IGlnbm9yZUFsbG93VGltZUVxdWFsID0gaW5wdXQ8Ym9vbGVhbiwgYm9vbGVhbj4odHJ1ZSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgaWdub3JlVmFsaWRUaW1lQ29tcGFyZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgaXNDaGVja0Vycm9yV2hlblNlbGVjdEl0ZW0gPSBpbnB1dDxib29sZWFuLCBib29sZWFuPih0cnVlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyB0cnVlIH0pO1xuICByZWFkb25seSBpZ25vcmVSZXF1aXJlZFZhbHVlU2Vjb25kV2hlbk5vdFZhbGlkUmVxdWlyZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7IC8vIGPDsyB2YWxpZGF0ZSBnacOhIHRy4buLIHRo4bupIDIga2hpIHZhbGlkUmVxdWlyZWQga2jDtG5nP1xuICByZWFkb25seSB2YWxpZFJlcXVpcmVkID0gaW5wdXQ8SVZhbGlkRGF0ZURyb3Bkb3duPigpO1xuXG4gIC8vICNyZWdpb24gT1VUUFVUXG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uc0NvbnRyb2wgPSBvdXRwdXQ8SURhdGVEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50PigpO1xuICByZWFkb25seSBvdXRTZWxlY3RlZERyb3Bkb3duID0gb3V0cHV0PElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duIHwgSUVtaXRNdWx0aURhdGVEcm9wZG93bj4oKTsgLy8gZMO5bmcgY2hvIHRyxrDhu51uZyBo4bujcCBlbWl0IG3hu5dpIG3hu5l0IGzhuqduIGNo4buNbiBnacOhIHRy4buLIG7Dqm4ga2hpIHPhu60gZOG7pW5nIHBo4bqjaSBjaGVjayBrxKkgdW5kZWZpbmVkXG4gIHJlYWRvbmx5IG91dENob29zZU11bHRpRGF0ZSA9IG91dHB1dDxJRW1pdE11bHRpRGF0ZURyb3Bkb3duPigpO1xuICByZWFkb25seSBvdXRDaG9vc2VTaW5nbGVEYXRlID0gb3V0cHV0PElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duPigpO1xuICByZWFkb25seSBvdXRDaGFuZ1N0YWdlRmxhZ01vdXNlID0gb3V0cHV0PElGbGFnTW91c2U+KCk7XG5cbiAgLyogVklFVyBDSElMRCAqL1xuICBwcml2YXRlIGNvbnRhaW5lclJlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPigncGFyZW50Jyk7XG4gIHByaXZhdGUgbGFiZWxGcm9tUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdsYWJlbEZyb20nKTtcbiAgcHJpdmF0ZSBsYWJlbFRvUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdsYWJlbFRvJyk7XG5cbiAgLy8gI3JlZ2lvbiBJTkpFQ1RcbiAgcHJpdmF0ZSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlzTXVsdGlwbGUgPSB0aGlzLmlzTXVsdGlwbGUoKTtcblxuICAgICAgaWYgKCFpc011bHRpcGxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGFuZ2VUeXBlLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5mdW5jdGlvbnNDb250cm9sLmNsZWFyKCk7XG4gICAgICAgIHRpbWVyKDApXG4gICAgICAgICAgLnBpcGUoKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGVja1Jlc3BvbnNpdmUoKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVHlwZS5zZXQoZmFsc2UpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm91dEZ1bmN0aW9uc0NvbnRyb2wuZW1pdCh0aGlzLkZ1bmN0aW9uc0NvbnRyb2wpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZVRpbWUoKSkge1xuICAgICAgdGhpcy5jaG9vc2VEYXRlLnNldCh0aGlzLnNlbGVjdGVkRGF0ZVRpbWUoKSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSh0aGlzLnNldFdpZHRoRGF0ZS5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLndpZHRoTGFiZWwuc2V0KHVuZGVmaW5lZCk7XG4gICAgdGltZXIoMClcbiAgICAgIC5waXBlKClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrUmVzcG9uc2l2ZSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZ1bmN0aW9uc0NvbnRyb2woKTogSURhdGVEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgY2hlY2tJc1ZhbGlkOiB0aGlzLnZhbGlkYXRlLmJpbmQodGhpcyksXG4gICAgICByZXNldEVycm9yOiB0aGlzLnJlc2V0RXJyb3IuYmluZCh0aGlzKSxcbiAgICAgIHJlc2V0VGltZTogdGhpcy5yZXNldERyb3Bkb3duLmJpbmQodGhpcyksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja1Jlc3BvbnNpdmUoKSB7XG4gICAgdGhpcy5pc1Jlc3BvbnNpdmUuc2V0KGZhbHNlKTtcbiAgICBjb25zdCB3aWR0aEVsZW1lbnRQYXJlbnQgPSB0aGlzLmNvbnRhaW5lclJlZigpPy5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCB8fCAwO1xuXG4gICAgdGhpcy53aWR0aExhYmVsRnJvbS5zZXQodGhpcy5sYWJlbEZyb21SZWYoKT8ubmF0aXZlRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggfHwgMCk7XG4gICAgdGhpcy53aWR0aExhYmVsVG8uc2V0KHRoaXMubGFiZWxUb1JlZigpPy5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCB8fCAwKTtcblxuICAgIGNvbnN0IHNwYWNlQmV0d2VlbkRhdGUgPSB0aGlzLmFycmF5Rm9ybWF0KCkubGVuZ3RoICogMiArICh0aGlzLmZyb21BbmRUb0RhdGVMYWJlbCgpLmZyb20gPyAxIDogMCk7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLndpZHRoRHJvcGRvd24oKSAqIDQgKyA4ICogc3BhY2VCZXR3ZWVuRGF0ZSArIHRoaXMud2lkdGhMYWJlbEZyb20oKSArIHRoaXMud2lkdGhMYWJlbFRvKCk7XG5cbiAgICBpZiAod2lkdGhFbGVtZW50UGFyZW50IDwgd2lkdGgpIHtcbiAgICAgIHRoaXMuaXNSZXNwb25zaXZlLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nZVNlbGVjdGVkS2V5KGV2ZW50OiBJRW1pdFNpbmdsZURhdGVEcm9wZG93biwgdHlwZTogJ2Zyb20nIHwgJ3RvJykge1xuICAgIHRoaXMuY2hvb3NlRGF0ZS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgIGN1cnJlbnRbdHlwZV0uc2V0KGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfSk7XG4gICAgaWYgKHRoaXMuaXNFbWl0QWZ0ZXJDaGFuZ2VkKCkpIHtcbiAgICAgIGNvbnN0IGRhdGFFbWl0ID0gdGhpcy5pc011bHRpcGxlKCkgPyB0aGlzLmNob29zZURhdGUoKSA6IHRoaXMuY2hvb3NlRGF0ZSgpPy5mcm9tKCk7XG5cbiAgICAgIGlmIChkYXRhRW1pdCkge1xuICAgICAgICB0aGlzLm91dFNlbGVjdGVkRHJvcGRvd24uZW1pdChkYXRhRW1pdCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYXBwbHlEYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc2V0RHJvcGRvd24oKSB7XG4gICAgdGhpcy5mdW5jdGlvbnNDb250cm9sLmZvckVhY2goKGNvbnRyb2wpID0+IGNvbnRyb2wucmVzZXREcm9wZG93bigpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzZXRFcnJvcigpIHtcbiAgICB0aGlzLmZ1bmN0aW9uc0NvbnRyb2wuZm9yRWFjaCgoY29udHJvbCkgPT4gY29udHJvbC5yZXNldEVycm9yKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRXaWR0aERhdGUoKSB7XG4gICAgaWYgKCF0aGlzLmNvbnRhaW5lclJlZigpIHx8ICF0aGlzLmNvbnRhaW5lclJlZigpPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRpbWVyKDApXG4gICAgICAucGlwZSgpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGVja1Jlc3BvbnNpdmUoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbkNvbnRyb2woZXZlbnQ6IElEYXRlRHJvcGRvd25JdGVtRnVuY3Rpb25Db250cm9sRXZlbnQsIHR5cGU6ICdmcm9tJyB8ICd0bycpIHtcbiAgICB0aGlzLmZ1bmN0aW9uc0NvbnRyb2wuc2V0KHR5cGUsIGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjaGVja1ZhbGlkKCkge1xuICAgIGxldCB2YWxpZCA9IHRydWU7XG5cbiAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgdGhpcy5mdW5jdGlvbnNDb250cm9sLnZhbHVlcygpKSB7XG4gICAgICBpZiAoIShhd2FpdCBjb250cm9sLmNoZWNrSXNWYWxpZCgpKSkge1xuICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5jb21wYXJlRGF0ZSgpKSB7XG4gICAgICB2YWxpZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RXJyb3IoZXJyb3I6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmZ1bmN0aW9uc0NvbnRyb2wuZm9yRWFjaCgoY29udHJvbCkgPT4gY29udHJvbC5zZXRFcnJvcihlcnJvcikpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wYXJlRGF0ZSgpIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy50eXBlRm9ybWF0KCkuc3BsaXQoJy0nKSBhcyBBcnJheTxUWVBFX0RBVEVfRk9STUFUPjtcbiAgICBjb25zdCBkYXRlQ29tcGFyZTogQXJyYXk8eyBmcm9tOiBudW1iZXIgfCB1bmRlZmluZWQ7IHRvOiBudW1iZXIgfCB1bmRlZmluZWQgfT4gPSBbXTtcblxuICAgIHR5cGUuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgZnJvbSA9IHRoaXMuY2hvb3NlRGF0ZSgpPy5mcm9tKClbaXRlbV07XG4gICAgICBjb25zdCB0byA9IHRoaXMuY2hvb3NlRGF0ZSgpPy50bygpW2l0ZW1dO1xuXG4gICAgICBkYXRlQ29tcGFyZS5wdXNoKHsgZnJvbTogZnJvbSwgdG86IHRvIH0pO1xuICAgIH0pO1xuICAgIGlmICh0aGlzLmlnbm9yZVZhbGlkVGltZUNvbXBhcmUoKSB8fCAhdGhpcy5jaGVja0NvbmRpdGlvbih0cnVlKSkge1xuICAgICAgdGhpcy5pc0Vycm9yQ29tcGFyZURhdGUuc2V0KGZhbHNlKTtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoQ29tcGFyZURhdGUoZGF0ZUNvbXBhcmUsIHRoaXMuaWdub3JlQWxsb3dUaW1lRXF1YWwoKSkpIHtcbiAgICAgIHRoaXMuc2V0RXJyb3IodHJ1ZSk7XG4gICAgICB0aGlzLmlzRXJyb3JDb21wYXJlRGF0ZS5zZXQodHJ1ZSk7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmlzRXJyb3JDb21wYXJlRGF0ZS5zZXQoZmFsc2UpO1xuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB2YWxpZGF0ZSgpIHtcbiAgICBsZXQgdmFsaWQgPSB0cnVlO1xuXG4gICAgaWYgKCF0aGlzLnZhbGlkUmVxdWlyZWQoKSkge1xuICAgICAgaWYgKCF0aGlzLmNoZWNrQ29uZGl0aW9uKGZhbHNlKSAmJiAhdGhpcy5pZ25vcmVSZXF1aXJlZFZhbHVlU2Vjb25kV2hlbk5vdFZhbGlkUmVxdWlyZWQoKSkge1xuICAgICAgICB2YWxpZCA9IGF3YWl0IHRoaXMuY2hlY2tWYWxpZCgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsaWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2hlY2tWYWxpZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0NvbmRpdGlvbihoYXNWYWx1ZTogYm9vbGVhbikge1xuICAgIGxldCBjaGVja1ZhbHVlID0gdHJ1ZTtcbiAgICBjb25zdCB0eXBlID0gdGhpcy50eXBlRm9ybWF0KCkuc3BsaXQoJy0nKSBhcyBBcnJheTxUWVBFX0RBVEVfRk9STUFUPjtcblxuICAgIHR5cGUuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGhhc1ZhbHVlICYmICghdGhpcy5jaG9vc2VEYXRlKCk/LmZyb20oKVtpdGVtXSB8fCAhdGhpcy5jaG9vc2VEYXRlKCk/LnRvKClbaXRlbV0pKSB7XG4gICAgICAgIGNoZWNrVmFsdWUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICghaGFzVmFsdWUgJiYgKHRoaXMuY2hvb3NlRGF0ZSgpPy5mcm9tKClbaXRlbV0gfHwgdGhpcy5jaG9vc2VEYXRlKCk/LnRvKClbaXRlbV0pKSB7XG4gICAgICAgIGNoZWNrVmFsdWUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjaGVja1ZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFwcGx5RGF0ZSgpIHtcbiAgICB0aGlzLnNldEVycm9yKGZhbHNlKTtcbiAgICB0aGlzLmlzRXJyb3JDb21wYXJlRGF0ZS5zZXQoZmFsc2UpO1xuICAgIGlmICh0aGlzLmlzQ2hlY2tFcnJvcldoZW5TZWxlY3RJdGVtKCkgJiYgIXRoaXMudmFsaWRhdGUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmcm9tID0gdGhpcy5jaG9vc2VEYXRlKCk/LmZyb207XG4gICAgY29uc3QgdG8gPSB0aGlzLmNob29zZURhdGUoKT8udG87XG5cbiAgICBpZiAodGhpcy5pc011bHRpcGxlKCkpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBhcmVEYXRlKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IGRhdGFTZWxlY3RlZDogSUVtaXRNdWx0aURhdGVEcm9wZG93biB8IHVuZGVmaW5lZCA9IHsgZnJvbTogc2lnbmFsKHt9KSwgdG86IHNpZ25hbCh7fSkgfTtcblxuICAgICAgdGhpcy5hcnJheUZvcm1hdCgpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBpZiAoIWZyb20/LigpPy5ba2V5XSB8fCAhdG8/LigpPy5ba2V5XSkge1xuICAgICAgICAgIGRhdGFTZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YVNlbGVjdGVkKSB7XG4gICAgICAgICAgZGF0YVNlbGVjdGVkLmZyb20udXBkYXRlKChjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBjdXJyZW50W2tleV0gPSBOdW1iZXIoZnJvbT8uKClba2V5XSk7XG5cbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGRhdGFTZWxlY3RlZC50by51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIGN1cnJlbnRba2V5XSA9IE51bWJlcih0bz8uKClba2V5XSk7XG5cbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKGRhdGFTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLm91dENob29zZU11bHRpRGF0ZS5lbWl0KGRhdGFTZWxlY3RlZCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGRhdGFTZWxlY3RlZDogSUVtaXRTaW5nbGVEYXRlRHJvcGRvd24gfCB1bmRlZmluZWQgPSB7fTtcblxuICAgIHRoaXMuYXJyYXlGb3JtYXQoKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmICghZnJvbT8uKCk/LltrZXldKSB7XG4gICAgICAgIGRhdGFTZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGlmIChkYXRhU2VsZWN0ZWQpIHtcbiAgICAgICAgZGF0YVNlbGVjdGVkW2tleV0gPSBOdW1iZXIoZnJvbT8uKCk/LltrZXldKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoZGF0YVNlbGVjdGVkKSB7XG4gICAgICB0aGlzLm91dENob29zZVNpbmdsZURhdGUuZW1pdChkYXRhU2VsZWN0ZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdlV2lkdGhMYWJlbCh3aWR0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5jYWNoZVdpZHRoTGFiZWwuc2V0KHdpZHRoIDwgKHRoaXMuY2FjaGVXaWR0aExhYmVsKCkgfHwgMCkgPyB0aGlzLmNhY2hlV2lkdGhMYWJlbCgpIDogTWF0aC5jZWlsKHdpZHRoKSk7XG4gICAgaWYgKHRoaXMudGltZU91dCgpKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lT3V0KCkpO1xuICAgIH1cbiAgICB0aGlzLnRpbWVPdXQuc2V0KFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMud2lkdGhMYWJlbC5zZXQodGhpcy5jYWNoZVdpZHRoTGFiZWwoKSk7XG4gICAgICB9LCAxMDApIGFzIHVua25vd24gYXMgbnVtYmVyXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdTdGFnZUZsYWdNb3VzZShmbGFnTW91c2U6IElGbGFnTW91c2UpIHtcbiAgICB0aGlzLm91dENoYW5nU3RhZ2VGbGFnTW91c2UuZW1pdChmbGFnTW91c2UpO1xuICB9XG59XG4iLCJAaWYgKGxhYmVsQ29uZmlnKCk7IGFzIGxhYmVsQ29uZmlnKSB7XG4gIDxsaWJzX3VpLWNvbXBvbmVudHMtbGFiZWxcbiAgICBbY2xhc3NJbmNsdWRlXT1cImxhYmVsQ29uZmlnLmNsYXNzSW5jbHVkZVwiXG4gICAgW2xhYmVsTGVmdF09XCJsYWJlbENvbmZpZy5sYWJlbExlZnRcIlxuICAgIFtsYWJlbExlZnRDbGFzc109XCJsYWJlbENvbmZpZy5sYWJlbExlZnRDbGFzc1wiXG4gICAgW3JlcXVpcmVkXT1cImxhYmVsQ29uZmlnLnJlcXVpcmVkXCJcbiAgICBbZGVzY3JpcHRpb25dPVwibGFiZWxDb25maWcuZGVzY3JpcHRpb25cIlxuICAgIFtsYWJlbFJpZ2h0XT1cImxhYmVsQ29uZmlnLmxhYmVsUmlnaHRcIlxuICAgIFtsYWJlbFJpZ2h0Q2xhc3NdPVwibGFiZWxDb25maWcubGFiZWxSaWdodENsYXNzXCJcbiAgICBbb25seVNob3dDb3VudF09XCJsYWJlbENvbmZpZy5vbmx5U2hvd0NvdW50XCJcbiAgICBbYnV0dG9uc0xlZnRdPVwibGFiZWxDb25maWcuYnV0dG9uc0xlZnRcIlxuICAgIFtidXR0b25zUmlnaHRdPVwibGFiZWxDb25maWcuYnV0dG9uc1JpZ2h0XCJcbiAgICBbYnV0dG9uc0Rlc2NyaXB0aW9uXT1cImxhYmVsQ29uZmlnLmJ1dHRvbnNEZXNjcmlwdGlvblwiXG4gICAgW2Rlc2NyaXB0aW9uQ2xhc3NdPVwibGFiZWxDb25maWcuZGVzY3JpcHRpb25DbGFzc1wiXG4gICAgW2Rpc2FibGVCdXR0b25zTGVmdF09XCJsYWJlbENvbmZpZy5kaXNhYmxlQnV0dG9uc0xlZnRcIlxuICAgIFtkaXNhYmxlQnV0dG9uc1JpZ2h0XT1cImxhYmVsQ29uZmlnLmRpc2FibGVCdXR0b25zUmlnaHRcIlxuICAgIFtoYXNUb2dnbGVdPVwibGFiZWxDb25maWcuaGFzVG9nZ2xlXCJcbiAgICBbdG9nZ2xlQWN0aXZlXT1cImxhYmVsQ29uZmlnLnRvZ2dsZUFjdGl2ZVwiXG4gICAgW3RvZ2dsZURpc2FibGVdPVwibGFiZWxDb25maWcudG9nZ2xlRGlzYWJsZSB8fCBkaXNhYmxlKClcIlxuICAgIFtwb3BvdmVyXT1cImxhYmVsQ29uZmlnLnBvcG92ZXJcIlxuICAgIFtpY29uUG9wb3ZlckNsYXNzXT1cImxhYmVsQ29uZmlnLmljb25Qb3BvdmVyQ2xhc3NcIlxuICAgIFtsaW1pdExlbmd0aF09XCJsYWJlbENvbmZpZy5saW1pdExlbmd0aFwiXG4gICAgW2NvdW50XT1cImxhYmVsQ29uZmlnLmNvdW50XCIgLz5cbn1cbjxkaXZcbiAgI3BhcmVudFxuICBjbGFzcz1cImZsZXggaXRlbXMtc3RhcnRcIlxuICBbY2xhc3MuIXctZnVsbF09XCJ3aWR0aEJ5RWxlbWVudCgpXCJcbiAgW2NsYXNzLiFjb2x1bW5dPVwiaXNSZXNwb25zaXZlKCkgJiYgaXNNdWx0aXBsZSgpXCI+XG4gIDxkaXZcbiAgICAjY2hpbGRGcm9tXG4gICAgY2xhc3M9XCJmbGV4IGl0ZW1zLXN0YXJ0XCJcbiAgICBbY2xhc3Mudy1bNTAlXV09XCJ3aWR0aEJ5RWxlbWVudCgpICYmICFpc1Jlc3BvbnNpdmUoKVwiXG4gICAgW2NsYXNzLiFtYi1bOHB4XV09XCJpc1Jlc3BvbnNpdmUoKSAmJiBpc011bHRpcGxlKClcIlxuICAgIFtjbGFzcy4hbXItWzhweF1dPVwiIWlzUmVzcG9uc2l2ZSgpICYmIGlzTXVsdGlwbGUoKVwiXG4gICAgW2NsYXNzLnctZnVsbF09XCIoIWlzTXVsdGlwbGUoKSAmJiAhd2lkdGhCeUVsZW1lbnQoKSkgfHwgaXNSZXNwb25zaXZlKClcIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCIhd2lkdGhCeUVsZW1lbnQoKSAmJiBpc011bHRpcGxlKCkgJiYgIWlzUmVzcG9uc2l2ZSgpID8gd2lkdGhEcm9wZG93bigpICogYXJyYXlGb3JtYXQoKS5sZW5ndGggKyA4ICogYXJyYXlGb3JtYXQoKS5sZW5ndGggKyB3aWR0aExhYmVsRnJvbSgpIDogdW5kZWZpbmVkXCI+XG4gICAgQGlmIChpc011bHRpcGxlKCkgJiYgIWlnbm9yZUZyb21BbmRUb0RhdGVMYWJlbCgpICYmIGZyb21BbmRUb0RhdGVMYWJlbCgpLmZyb20pIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJtci1bOHB4XSBmbGV4LXNocmluay0wIGgtWzMycHhdIGZsZXggaXRlbXMtY2VudGVyXCJcbiAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImlzUmVzcG9uc2l2ZSgpID8gd2lkdGhMYWJlbCgpIHx8IHVuZGVmaW5lZCA6IHVuZGVmaW5lZFwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICNsYWJlbEZyb21cbiAgICAgICAgICBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkRpcmVjdGl2ZVxuICAgICAgICAgIFtjbGFzcy4hb3BhY2l0eS1bMC41XV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgIGNsYXNzPVwibGlicy11aS1mb250LWg1ciB0ZXh0LW5vd3JhcCB7eyBmcm9tQW5kVG9EYXRlTGFiZWwoKS5jbGFzc0xhYmVsRnJvbSB8fCAnJyB9fVwiXG4gICAgICAgICAgKG91dENoYW5nZVdpZHRoKT1cImhhbmRsZXJDaGFuZ2VXaWR0aExhYmVsKCRldmVudClcIj5cbiAgICAgICAgICB7eyBmcm9tQW5kVG9EYXRlTGFiZWwoKS5mcm9tIHx8ICcgJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJmbGV4XCJcbiAgICAgIFtjbGFzcy4hdy1mdWxsXT1cIndpZHRoQnlFbGVtZW50KClcIj5cbiAgICAgIEBpZiAoIWNoYW5nZVR5cGUoKSkge1xuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLWRyb3Bkb3duLWl0ZW1cbiAgICAgICAgICBbY2xhc3MuIXctZnVsbF09XCJ3aWR0aEJ5RWxlbWVudCgpXCJcbiAgICAgICAgICBbZGlzYWJsZVNlY29uZF09XCJkaXNhYmxlU2Vjb25kKClcIlxuICAgICAgICAgIFt0eXBlRGF0ZV09XCJ0eXBlRm9ybWF0KClcIlxuICAgICAgICAgIFt6SW5kZXhdPVwiekluZGV4KClcIlxuICAgICAgICAgIFttYXhZZWFyXT1cIm1heFllYXIoKVwiXG4gICAgICAgICAgW2Rpc2FibGVdPVwiZGlzYWJsZSgpXCJcbiAgICAgICAgICBbbWluWWVhcl09XCJtaW5ZZWFyKClcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcbiAgICAgICAgICBbaXNNdWx0aXBsZV09XCJpc011bHRpcGxlKCkgPyAoaXNSZXNwb25zaXZlKCkgPyB0cnVlIDogZmFsc2UpIDogdHJ1ZVwiXG4gICAgICAgICAgW3JldmVyc2VZZWFyXT1cInJldmVyc2VZZWFyKClcIlxuICAgICAgICAgIFtzZWxlY3RlZERhdGVdPVwic2VsZWN0ZWREYXRlVGltZSgpPy5mcm9tKCkgfHwge31cIlxuICAgICAgICAgIFt3aWR0aERyb3Bkb3duXT1cIndpZHRoRHJvcGRvd24oKVwiXG4gICAgICAgICAgW3dpZHRoQnlFbGVtZW50XT1cIndpZHRoQnlFbGVtZW50KClcIlxuICAgICAgICAgIFtnZXRJdGVtWWVhckRpc3BsYXldPVwiZ2V0SXRlbVllYXJEaXNwbGF5KClcIlxuICAgICAgICAgIFtsaXN0TWF4SXRlbVNob3ddPVwibGlzdE1heEl0ZW1TaG93KClcIlxuICAgICAgICAgIFtsaXN0S2V5c0Rpc2FibGVdPVwibGlzdEtleXNEaXNhYmxlKCk/LmZyb20oKVwiXG4gICAgICAgICAgW2xpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbl09XCJsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24oKVwiXG4gICAgICAgICAgW2lzRW1pdFNlbGVjdGVkRHJvcERvd25dPVwiaXNFbWl0QWZ0ZXJDaGFuZ2VkKClcIlxuICAgICAgICAgIFtjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdF09XCInbGlicy11aS1mb250LWg1ciAnICsgY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3QoKVwiXG4gICAgICAgICAgKG91dFNlbGVjdGVkRGF0YSk9XCJoYW5kbGVyQ2hhbmdlU2VsZWN0ZWRLZXkoJGV2ZW50LCAnZnJvbScpXCJcbiAgICAgICAgICAob3V0RnVuY3Rpb25Db250cm9sKT1cImhhbmRsZXJGdW5jdGlvbkNvbnRyb2woJGV2ZW50LCAnZnJvbScpXCJcbiAgICAgICAgICAob3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSk9XCJoYW5kbGVyQ2hhbmdTdGFnZUZsYWdNb3VzZSgkZXZlbnQpXCIgLz5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIEBpZiAoaXNNdWx0aXBsZSgpKSB7XG4gICAgPGRpdlxuICAgICAgI2NoaWxkVG9cbiAgICAgIFtjbGFzcy4hdy1bNTAlXV09XCJ3aWR0aEJ5RWxlbWVudCgpXCJcbiAgICAgIFtjbGFzcy4hdy1mdWxsXT1cIiF3aWR0aEJ5RWxlbWVudCgpIHx8IGlzUmVzcG9uc2l2ZSgpXCJcbiAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1zdGFydFwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm1yLVs4cHhdIGgtWzMycHhdIGZsZXgtc2hyaW5rLTAgZmxleCBpdGVtcy1jZW50ZXJcIlxuICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiaXNSZXNwb25zaXZlKCkgPyB3aWR0aExhYmVsKCkgOiB1bmRlZmluZWRcIj5cbiAgICAgICAgQGlmICghaWdub3JlRnJvbUFuZFRvRGF0ZUxhYmVsKCkpIHtcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgI2xhYmVsVG9cbiAgICAgICAgICAgIExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duRGlyZWN0aXZlXG4gICAgICAgICAgICBbY2xhc3MuIW9wYWNpdHktWzAuNV1dPVwiZGlzYWJsZSgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwibGlicy11aS1mb250LWg1ciB0ZXh0LW5vd3JhcCB7eyBmcm9tQW5kVG9EYXRlTGFiZWwoKS5jbGFzc0xhYmVsVG8gfHwgJycgfX1cIlxuICAgICAgICAgICAgKG91dENoYW5nZVdpZHRoKT1cImhhbmRsZXJDaGFuZ2VXaWR0aExhYmVsKCRldmVudClcIj5cbiAgICAgICAgICAgIHt7IGZyb21BbmRUb0RhdGVMYWJlbCgpLnRvIHx8ICcgJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGlnbm9yZUZyb21BbmRUb0RhdGVMYWJlbCgpKSB7XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIFtjbGFzcy4hb3BhY2l0eS1bMC41XV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDVyXCI+XG4gICAgICAgICAgICAtXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmbGV4XCJcbiAgICAgICAgW2NsYXNzLiF3LWZ1bGxdPVwid2lkdGhCeUVsZW1lbnQoKVwiPlxuICAgICAgICBAaWYgKCFjaGFuZ2VUeXBlKCkpIHtcbiAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLWRyb3Bkb3duLWl0ZW1cbiAgICAgICAgICAgIFtjbGFzcy53LWZ1bGxdPVwid2lkdGhCeUVsZW1lbnQoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZVNlY29uZF09XCJkaXNhYmxlU2Vjb25kKClcIlxuICAgICAgICAgICAgW3R5cGVEYXRlXT1cInR5cGVGb3JtYXQoKVwiXG4gICAgICAgICAgICBbekluZGV4XT1cInpJbmRleCgpXCJcbiAgICAgICAgICAgIFttYXhZZWFyXT1cIm1heFllYXIoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgICAgW21pblllYXJdPVwibWluWWVhcigpXCJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcbiAgICAgICAgICAgIFtpc011bHRpcGxlXT1cImlzTXVsdGlwbGUoKVwiXG4gICAgICAgICAgICBbcmV2ZXJzZVllYXJdPVwicmV2ZXJzZVllYXIoKVwiXG4gICAgICAgICAgICBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVRpbWUoKT8udG8oKSB8fCB7fVwiXG4gICAgICAgICAgICBbd2lkdGhEcm9wZG93bl09XCJ3aWR0aERyb3Bkb3duKClcIlxuICAgICAgICAgICAgW3dpZHRoQnlFbGVtZW50XT1cIndpZHRoQnlFbGVtZW50KClcIlxuICAgICAgICAgICAgW2dldEl0ZW1ZZWFyRGlzcGxheV09XCJnZXRJdGVtWWVhckRpc3BsYXkoKVwiXG4gICAgICAgICAgICBbbGlzdE1heEl0ZW1TaG93XT1cImxpc3RNYXhJdGVtU2hvdygpXCJcbiAgICAgICAgICAgIFtsaXN0S2V5c0Rpc2FibGVdPVwibGlzdEtleXNEaXNhYmxlKCk/LnRvKClcIlxuICAgICAgICAgICAgW2xpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbl09XCJsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24oKVwiXG4gICAgICAgICAgICBbY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3RdPVwiJ2xpYnMtdWktZm9udC1oNXIgJyArIGNsYXNzSW5jbHVkZVRleHREaXNwbGF5V2hlbk5vU2VsZWN0XCJcbiAgICAgICAgICAgIFtpc0VtaXRTZWxlY3RlZERyb3BEb3duXT1cImlzRW1pdEFmdGVyQ2hhbmdlZCgpXCJcbiAgICAgICAgICAgIChvdXRTZWxlY3RlZERhdGEpPVwiaGFuZGxlckNoYW5nZVNlbGVjdGVkS2V5KCRldmVudCwgJ3RvJylcIlxuICAgICAgICAgICAgKG91dEZ1bmN0aW9uQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25Db250cm9sKCRldmVudCwgJ3RvJylcIlxuICAgICAgICAgICAgKG91dENoYW5nU3RhZ2VGbGFnTW91c2UpPVwiaGFuZGxlckNoYW5nU3RhZ2VGbGFnTW91c2UoJGV2ZW50KVwiIC8+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cblxuQGlmIChpc0Vycm9yQ29tcGFyZURhdGUoKSkge1xuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbXQtWzRweF1cIj5cbiAgICA8c3BhbiBjbGFzcz1cImxpYnMtdWktbWVzc2FnZS1lcnJvciBsaWJzLXVpLWZvbnQtaDdyIGxpYnMtdWktdGV4dC1lcnJvclwiPnt7IHZhbGlkUmVxdWlyZWQoKT8ubWVzc2FnZVZhbGlkQ29tcGFyZVRpbWUgfHwgJ2kxOG5faW52YWxpZF9lbmRfZGF0ZV9zZWxlY3RlZCcgfCB0cmFuc2xhdGU6IHZhbGlkUmVxdWlyZWQoKT8uaW50ZXJwb2xhdGVQYXJhbXNDb21wYXJlVGltZSB9fTwvc3Bhbj5cbiAgPC9kaXY+XG59XG4iXX0=
|
|
280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL2Ryb3Bkb3duL3NyYy9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvZHJvcGRvd24vc3JjL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0ssT0FBTyxFQUFVLDhCQUE4QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBS2hHLE9BQU8sRUFBRSw2Q0FBNkMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFXdEYsTUFBTSxPQUFPLHlDQUF5QztJQUNwRCxtQkFBbUI7SUFDVCxLQUFLLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzFCLFlBQVksR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELFVBQVUsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELGNBQWMsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENB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QUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ25CLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQ2QsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLENBQUMsRUFBRSxHQUFHLENBQXNCLENBQzdCLENBQUM7SUFDSixDQUFDO0lBRVMsMEJBQTBCLENBQUMsU0FBcUI7UUFDeEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO3dHQTFUVSx5Q0FBeUM7NEZBQXpDLHlDQUF5QyxxektDdEJ0RCxpbk5BdUpBLHlERG5JWSxlQUFlLDRGQUFFLDhCQUE4Qiw0cUJBQUUseUNBQXlDLHFIQUFFLDZDQUE2Qzs7NEZBRXhJLHlDQUF5QztrQkFUckQsU0FBUzsrQkFFRSxzQ0FBc0MsY0FHcEMsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsZUFBZSxFQUFFLDhCQUE4QixFQUFFLHlDQUF5QyxFQUFFLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCwgdW50cmFja2VkLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMYWJlbCwgTGlic1VpQ29tcG9uZW50c0xhYmVsQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1sYWJlbCc7XG5pbXBvcnQgeyBJRmxhZ01vdXNlIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1wb3BvdmVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0YWtlVW50aWwsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wYXJlRGF0ZSB9IGZyb20gJy4vZGVmaW5lcy9kYXRlLWRyb3Bkb3duLmRlZmluZSc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlL2RhdGUtZHJvcGRvd24uZGlyZWN0aXZlJztcbmltcG9ydCB7IElEYXRlRHJvcGRvd25EaXNhYmxlS2V5cywgSUZyb21BbmRUb0RhdGVMYWJlbCwgSUhpZGRlbkRhdGUsIFRZUEVfREFURV9EUk9QRE9XTl9GT1JNQVQsIFRZUEVfREFURV9GT1JNQVQgfSBmcm9tICcuL2ludGVyZmFjZXMvZGF0ZS1kcm9wZG93bi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUVtaXRNdWx0aURhdGVEcm9wZG93biwgSUVtaXRTaW5nbGVEYXRlRHJvcGRvd24gfSBmcm9tICcuL2ludGVyZmFjZXMvZW1pdC1kcm9wZG93bi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSURhdGVEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50LCBJRGF0ZURyb3Bkb3duSXRlbUZ1bmN0aW9uQ29udHJvbEV2ZW50IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Z1bmN0aW9ucy1jb250cm9sLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJVmFsaWREYXRlRHJvcGRvd24gfSBmcm9tICcuL2ludGVyZmFjZXMvdmFsaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vaXRlbS9pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1kYXRldGltZS1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBMaWJzVWlDb21wb25lbnRzTGFiZWxDb21wb25lbnQsIExpYnNVaUNvbXBvbmVudHNEYXRldGltZURyb3Bkb3duRGlyZWN0aXZlLCBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkl0ZW1Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHJvdGVjdGVkIHdpZHRoID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByb3RlY3RlZCB3aWR0aEVsZW1lbnQgPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgd2lkdGhMYWJlbCA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCB3aWR0aExhYmVsRnJvbSA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcm90ZWN0ZWQgd2lkdGhMYWJlbFRvID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByb3RlY3RlZCBpc0Vycm9yQ29tcGFyZURhdGUgPSBzaWduYWw8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIGNob29zZURhdGUgPSBzaWduYWw8SUVtaXRNdWx0aURhdGVEcm9wZG93biB8IHVuZGVmaW5lZD4oeyBmcm9tOiBzaWduYWwoe30pLCB0bzogc2lnbmFsKHt9KSB9KTtcbiAgcHJvdGVjdGVkIGlzUmVzcG9uc2l2ZSA9IHNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgYXJyYXlGb3JtYXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZUZvcm1hdCgpLnNwbGl0KCctJykgYXMgQXJyYXk8VFlQRV9EQVRFX0ZPUk1BVD47XG4gIH0pO1xuICBwcm90ZWN0ZWQgY2hhbmdlVHlwZSA9IHNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgY2FjaGVXaWR0aExhYmVsID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSB0aW1lT3V0ID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGZ1bmN0aW9uc0NvbnRyb2wgPSBuZXcgTWFwPHN0cmluZywgSURhdGVEcm9wZG93bkl0ZW1GdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IGxhYmVsQ29uZmlnID0gaW5wdXQ8SUxhYmVsIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSB3aWR0aERyb3Bkb3duID0gaW5wdXQ8bnVtYmVyLCBudW1iZXI+KDEzNiwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gMTM2IH0pO1xuICByZWFkb25seSB6SW5kZXggPSBpbnB1dDxudW1iZXIsIG51bWJlcj4oMTIwMCwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gMTIwMCB9KTtcbiAgcmVhZG9ubHkgbWF4WWVhciA9IGlucHV0PG51bWJlcj4oMCk7XG4gIHJlYWRvbmx5IG1pblllYXIgPSBpbnB1dDxudW1iZXI+KDApO1xuICByZWFkb25seSBtaW5XaWR0aCA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgcmVhZG9ubHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGlzTXVsdGlwbGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHJldmVyc2VZZWFyID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaXNCb3JkZXJFcnJvciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgaWdub3JlV2lkdGgxMDAgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHdpZHRoQnlFbGVtZW50ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBkaXNhYmxlU2Vjb25kID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB0eXBlRm9ybWF0ID0gaW5wdXQ8VFlQRV9EQVRFX0RST1BET1dOX0ZPUk1BVCwgVFlQRV9EQVRFX0RST1BET1dOX0ZPUk1BVD4oJ21vbnRoLWRheScsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/ICdtb250aC1kYXknIH0pO1xuICByZWFkb25seSBmcm9tQW5kVG9EYXRlTGFiZWwgPSBpbnB1dDxJRnJvbUFuZFRvRGF0ZUxhYmVsPih7IGZyb206ICdpMThuX2xhYmVsX2Zyb20nLCB0bzogJ2kxOG5fdG8nIH0pO1xuICByZWFkb25seSBsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZVRpbWUgPSBpbnB1dDxJRW1pdE11bHRpRGF0ZURyb3Bkb3duIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBpc0VtaXRBZnRlckNoYW5nZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7IC8vIGTDuW5nIMSR4buDIGVtaXQgbeG7l2kgbOG6p24gY2jhu41uIGdpw6EgdHLhu4sgdsOgIGzhuqduIMSR4bqndSBpbml0XG4gIHJlYWRvbmx5IGdldEl0ZW1ZZWFyRGlzcGxheSA9IGlucHV0PCh5ZWFyOiBzdHJpbmcpID0+IHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgaWdub3JlRnJvbUFuZFRvRGF0ZUxhYmVsID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdCA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaGlkZGVuRGF0ZSA9IGlucHV0PElIaWRkZW5EYXRlIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBsaXN0TWF4SXRlbVNob3cgPSBpbnB1dDx7IHllYXI/OiBudW1iZXI7IG1vbnRoPzogbnVtYmVyOyBxdWFydGVyPzogbnVtYmVyOyBkYXk/OiBudW1iZXIgfSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaWdub3JlQ29udmVydFllYXJTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgbGlzdEtleXNEaXNhYmxlID0gaW5wdXQ8SURhdGVEcm9wZG93bkRpc2FibGVLZXlzIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IGlnbm9yZUFsbG93VGltZUVxdWFsID0gaW5wdXQ8Ym9vbGVhbiwgYm9vbGVhbj4odHJ1ZSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgaWdub3JlVmFsaWRUaW1lQ29tcGFyZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgaXNDaGVja0Vycm9yV2hlblNlbGVjdEl0ZW0gPSBpbnB1dDxib29sZWFuLCBib29sZWFuPih0cnVlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyB0cnVlIH0pO1xuICByZWFkb25seSBpZ25vcmVSZXF1aXJlZFZhbHVlU2Vjb25kV2hlbk5vdFZhbGlkUmVxdWlyZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7IC8vIGPDsyB2YWxpZGF0ZSBnacOhIHRy4buLIHRo4bupIDIga2hpIHZhbGlkUmVxdWlyZWQga2jDtG5nP1xuICByZWFkb25seSB2YWxpZFJlcXVpcmVkID0gaW5wdXQ8SVZhbGlkRGF0ZURyb3Bkb3duPigpO1xuXG4gIC8vICNyZWdpb24gT1VUUFVUXG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uc0NvbnRyb2wgPSBvdXRwdXQ8SURhdGVEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50PigpO1xuICByZWFkb25seSBvdXRTZWxlY3RlZERyb3Bkb3duID0gb3V0cHV0PElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duIHwgSUVtaXRNdWx0aURhdGVEcm9wZG93bj4oKTsgLy8gZMO5bmcgY2hvIHRyxrDhu51uZyBo4bujcCBlbWl0IG3hu5dpIG3hu5l0IGzhuqduIGNo4buNbiBnacOhIHRy4buLIG7Dqm4ga2hpIHPhu60gZOG7pW5nIHBo4bqjaSBjaGVjayBrxKkgdW5kZWZpbmVkXG4gIHJlYWRvbmx5IG91dENob29zZU11bHRpRGF0ZSA9IG91dHB1dDxJRW1pdE11bHRpRGF0ZURyb3Bkb3duPigpO1xuICByZWFkb25seSBvdXRDaG9vc2VTaW5nbGVEYXRlID0gb3V0cHV0PElFbWl0U2luZ2xlRGF0ZURyb3Bkb3duPigpO1xuICByZWFkb25seSBvdXRDaGFuZ1N0YWdlRmxhZ01vdXNlID0gb3V0cHV0PElGbGFnTW91c2U+KCk7XG5cbiAgLyogVklFVyBDSElMRCAqL1xuICBwcml2YXRlIGNvbnRhaW5lclJlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPigncGFyZW50Jyk7XG4gIHByaXZhdGUgbGFiZWxGcm9tUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdsYWJlbEZyb20nKTtcbiAgcHJpdmF0ZSBsYWJlbFRvUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdsYWJlbFRvJyk7XG5cbiAgLy8gI3JlZ2lvbiBJTkpFQ1RcbiAgcHJpdmF0ZSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlzTXVsdGlwbGUgPSB0aGlzLmlzTXVsdGlwbGUoKTtcblxuICAgICAgaWYgKCFpc011bHRpcGxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGFuZ2VUeXBlLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5mdW5jdGlvbnNDb250cm9sLmNsZWFyKCk7XG4gICAgICAgIHRpbWVyKDApXG4gICAgICAgICAgLnBpcGUoKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGVja1Jlc3BvbnNpdmUoKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVHlwZS5zZXQoZmFsc2UpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm91dEZ1bmN0aW9uc0NvbnRyb2wuZW1pdCh0aGlzLkZ1bmN0aW9uc0NvbnRyb2wpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZVRpbWUoKSkge1xuICAgICAgdGhpcy5jaG9vc2VEYXRlLnNldCh0aGlzLnNlbGVjdGVkRGF0ZVRpbWUoKSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSh0aGlzLnNldFdpZHRoRGF0ZS5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLndpZHRoTGFiZWwuc2V0KHVuZGVmaW5lZCk7XG4gICAgdGltZXIoMClcbiAgICAgIC5waXBlKClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrUmVzcG9uc2l2ZSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZ1bmN0aW9uc0NvbnRyb2woKTogSURhdGVEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgY2hlY2tJc1ZhbGlkOiB0aGlzLnZhbGlkYXRlLmJpbmQodGhpcyksXG4gICAgICByZXNldEVycm9yOiB0aGlzLnJlc2V0RXJyb3IuYmluZCh0aGlzKSxcbiAgICAgIHJlc2V0VGltZTogdGhpcy5yZXNldERyb3Bkb3duLmJpbmQodGhpcyksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja1Jlc3BvbnNpdmUoKSB7XG4gICAgdGhpcy5pc1Jlc3BvbnNpdmUuc2V0KGZhbHNlKTtcbiAgICBjb25zdCB3aWR0aEVsZW1lbnRQYXJlbnQgPSB0aGlzLmNvbnRhaW5lclJlZigpPy5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCB8fCAwO1xuXG4gICAgdGhpcy53aWR0aExhYmVsRnJvbS5zZXQodGhpcy5sYWJlbEZyb21SZWYoKT8ubmF0aXZlRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggfHwgMCk7XG4gICAgdGhpcy53aWR0aExhYmVsVG8uc2V0KHRoaXMubGFiZWxUb1JlZigpPy5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCB8fCAwKTtcblxuICAgIGNvbnN0IHNwYWNlQmV0d2VlbkRhdGUgPSB0aGlzLmFycmF5Rm9ybWF0KCkubGVuZ3RoICogMiArICh0aGlzLmZyb21BbmRUb0RhdGVMYWJlbCgpLmZyb20gPyAxIDogMCk7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLndpZHRoRHJvcGRvd24oKSAqIDQgKyA4ICogc3BhY2VCZXR3ZWVuRGF0ZSArIHRoaXMud2lkdGhMYWJlbEZyb20oKSArIHRoaXMud2lkdGhMYWJlbFRvKCk7XG5cbiAgICBpZiAod2lkdGhFbGVtZW50UGFyZW50IDwgd2lkdGgpIHtcbiAgICAgIHRoaXMuaXNSZXNwb25zaXZlLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nZVNlbGVjdGVkS2V5KGV2ZW50OiBJRW1pdFNpbmdsZURhdGVEcm9wZG93biwgdHlwZTogJ2Zyb20nIHwgJ3RvJykge1xuICAgIHRoaXMuY2hvb3NlRGF0ZS51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgIGN1cnJlbnRbdHlwZV0uc2V0KGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfSk7XG4gICAgaWYgKHRoaXMuaXNFbWl0QWZ0ZXJDaGFuZ2VkKCkpIHtcbiAgICAgIGNvbnN0IGRhdGFFbWl0ID0gdGhpcy5pc011bHRpcGxlKCkgPyB0aGlzLmNob29zZURhdGUoKSA6IHRoaXMuY2hvb3NlRGF0ZSgpPy5mcm9tKCk7XG5cbiAgICAgIGlmIChkYXRhRW1pdCkge1xuICAgICAgICB0aGlzLm91dFNlbGVjdGVkRHJvcGRvd24uZW1pdChkYXRhRW1pdCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYXBwbHlEYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc2V0RHJvcGRvd24oKSB7XG4gICAgdGhpcy5mdW5jdGlvbnNDb250cm9sLmZvckVhY2goKGNvbnRyb2wpID0+IGNvbnRyb2wucmVzZXREcm9wZG93bigpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzZXRFcnJvcigpIHtcbiAgICB0aGlzLmZ1bmN0aW9uc0NvbnRyb2wuZm9yRWFjaCgoY29udHJvbCkgPT4gY29udHJvbC5yZXNldEVycm9yKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRXaWR0aERhdGUoKSB7XG4gICAgaWYgKCF0aGlzLmNvbnRhaW5lclJlZigpIHx8ICF0aGlzLmNvbnRhaW5lclJlZigpPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRpbWVyKDApXG4gICAgICAucGlwZSgpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGVja1Jlc3BvbnNpdmUoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbkNvbnRyb2woZXZlbnQ6IElEYXRlRHJvcGRvd25JdGVtRnVuY3Rpb25Db250cm9sRXZlbnQsIHR5cGU6ICdmcm9tJyB8ICd0bycpIHtcbiAgICB0aGlzLmZ1bmN0aW9uc0NvbnRyb2wuc2V0KHR5cGUsIGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjaGVja1ZhbGlkKCkge1xuICAgIGxldCB2YWxpZCA9IHRydWU7XG5cbiAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgdGhpcy5mdW5jdGlvbnNDb250cm9sLnZhbHVlcygpKSB7XG4gICAgICBpZiAoIShhd2FpdCBjb250cm9sLmNoZWNrSXNWYWxpZCgpKSkge1xuICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5jb21wYXJlRGF0ZSgpKSB7XG4gICAgICB2YWxpZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RXJyb3IoZXJyb3I6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmZ1bmN0aW9uc0NvbnRyb2wuZm9yRWFjaCgoY29udHJvbCkgPT4gY29udHJvbC5zZXRFcnJvcihlcnJvcikpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wYXJlRGF0ZSgpIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy50eXBlRm9ybWF0KCkuc3BsaXQoJy0nKSBhcyBBcnJheTxUWVBFX0RBVEVfRk9STUFUPjtcbiAgICBjb25zdCBkYXRlQ29tcGFyZTogQXJyYXk8eyBmcm9tOiBudW1iZXIgfCB1bmRlZmluZWQ7IHRvOiBudW1iZXIgfCB1bmRlZmluZWQgfT4gPSBbXTtcblxuICAgIHR5cGUuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgZnJvbSA9IHRoaXMuY2hvb3NlRGF0ZSgpPy5mcm9tKClbaXRlbV07XG4gICAgICBjb25zdCB0byA9IHRoaXMuY2hvb3NlRGF0ZSgpPy50bygpW2l0ZW1dO1xuXG4gICAgICBkYXRlQ29tcGFyZS5wdXNoKHsgZnJvbTogZnJvbSwgdG86IHRvIH0pO1xuICAgIH0pO1xuICAgIGlmICh0aGlzLmlnbm9yZVZhbGlkVGltZUNvbXBhcmUoKSB8fCAhdGhpcy5jaGVja0NvbmRpdGlvbih0cnVlKSkge1xuICAgICAgdGhpcy5pc0Vycm9yQ29tcGFyZURhdGUuc2V0KGZhbHNlKTtcblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoQ29tcGFyZURhdGUoZGF0ZUNvbXBhcmUsIHRoaXMuaWdub3JlQWxsb3dUaW1lRXF1YWwoKSkpIHtcbiAgICAgIHRoaXMuc2V0RXJyb3IodHJ1ZSk7XG4gICAgICB0aGlzLmlzRXJyb3JDb21wYXJlRGF0ZS5zZXQodHJ1ZSk7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmlzRXJyb3JDb21wYXJlRGF0ZS5zZXQoZmFsc2UpO1xuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB2YWxpZGF0ZSgpIHtcbiAgICBsZXQgdmFsaWQgPSB0cnVlO1xuXG4gICAgaWYgKCF0aGlzLnZhbGlkUmVxdWlyZWQoKSkge1xuICAgICAgaWYgKCF0aGlzLmNoZWNrQ29uZGl0aW9uKGZhbHNlKSAmJiAhdGhpcy5pZ25vcmVSZXF1aXJlZFZhbHVlU2Vjb25kV2hlbk5vdFZhbGlkUmVxdWlyZWQoKSkge1xuICAgICAgICB2YWxpZCA9IGF3YWl0IHRoaXMuY2hlY2tWYWxpZCgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsaWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2hlY2tWYWxpZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0NvbmRpdGlvbihoYXNWYWx1ZTogYm9vbGVhbikge1xuICAgIGxldCBjaGVja1ZhbHVlID0gdHJ1ZTtcbiAgICBjb25zdCB0eXBlID0gdGhpcy50eXBlRm9ybWF0KCkuc3BsaXQoJy0nKSBhcyBBcnJheTxUWVBFX0RBVEVfRk9STUFUPjtcblxuICAgIHR5cGUuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGhhc1ZhbHVlICYmICghdGhpcy5jaG9vc2VEYXRlKCk/LmZyb20oKVtpdGVtXSB8fCAhdGhpcy5jaG9vc2VEYXRlKCk/LnRvKClbaXRlbV0pKSB7XG4gICAgICAgIGNoZWNrVmFsdWUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICghaGFzVmFsdWUgJiYgKHRoaXMuY2hvb3NlRGF0ZSgpPy5mcm9tKClbaXRlbV0gfHwgdGhpcy5jaG9vc2VEYXRlKCk/LnRvKClbaXRlbV0pKSB7XG4gICAgICAgIGNoZWNrVmFsdWUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjaGVja1ZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFwcGx5RGF0ZSgpIHtcbiAgICB0aGlzLnNldEVycm9yKGZhbHNlKTtcbiAgICB0aGlzLmlzRXJyb3JDb21wYXJlRGF0ZS5zZXQoZmFsc2UpO1xuICAgIGlmICh0aGlzLmlzQ2hlY2tFcnJvcldoZW5TZWxlY3RJdGVtKCkgJiYgIXRoaXMudmFsaWRhdGUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmcm9tID0gdGhpcy5jaG9vc2VEYXRlKCk/LmZyb207XG4gICAgY29uc3QgdG8gPSB0aGlzLmNob29zZURhdGUoKT8udG87XG5cbiAgICBpZiAodGhpcy5pc011bHRpcGxlKCkpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBhcmVEYXRlKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IGRhdGFTZWxlY3RlZDogSUVtaXRNdWx0aURhdGVEcm9wZG93biB8IHVuZGVmaW5lZCA9IHsgZnJvbTogc2lnbmFsKHt9KSwgdG86IHNpZ25hbCh7fSkgfTtcblxuICAgICAgdGhpcy5hcnJheUZvcm1hdCgpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBpZiAoIWZyb20/LigpPy5ba2V5XSB8fCAhdG8/LigpPy5ba2V5XSkge1xuICAgICAgICAgIGRhdGFTZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YVNlbGVjdGVkKSB7XG4gICAgICAgICAgZGF0YVNlbGVjdGVkLmZyb20udXBkYXRlKChjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBjdXJyZW50W2tleV0gPSBOdW1iZXIoZnJvbT8uKClba2V5XSk7XG5cbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGRhdGFTZWxlY3RlZC50by51cGRhdGUoKGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIGN1cnJlbnRba2V5XSA9IE51bWJlcih0bz8uKClba2V5XSk7XG5cbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKGRhdGFTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLm91dENob29zZU11bHRpRGF0ZS5lbWl0KGRhdGFTZWxlY3RlZCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGRhdGFTZWxlY3RlZDogSUVtaXRTaW5nbGVEYXRlRHJvcGRvd24gfCB1bmRlZmluZWQgPSB7fTtcblxuICAgIHRoaXMuYXJyYXlGb3JtYXQoKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmICghZnJvbT8uKCk/LltrZXldKSB7XG4gICAgICAgIGRhdGFTZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGlmIChkYXRhU2VsZWN0ZWQpIHtcbiAgICAgICAgZGF0YVNlbGVjdGVkW2tleV0gPSBOdW1iZXIoZnJvbT8uKCk/LltrZXldKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoZGF0YVNlbGVjdGVkKSB7XG4gICAgICB0aGlzLm91dENob29zZVNpbmdsZURhdGUuZW1pdChkYXRhU2VsZWN0ZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdlV2lkdGhMYWJlbCh3aWR0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5jYWNoZVdpZHRoTGFiZWwuc2V0KHdpZHRoIDwgKHRoaXMuY2FjaGVXaWR0aExhYmVsKCkgfHwgMCkgPyB0aGlzLmNhY2hlV2lkdGhMYWJlbCgpIDogTWF0aC5jZWlsKHdpZHRoKSk7XG4gICAgaWYgKHRoaXMudGltZU91dCgpKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lT3V0KCkpO1xuICAgIH1cbiAgICB0aGlzLnRpbWVPdXQuc2V0KFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMud2lkdGhMYWJlbC5zZXQodGhpcy5jYWNoZVdpZHRoTGFiZWwoKSk7XG4gICAgICB9LCAxMDApIGFzIHVua25vd24gYXMgbnVtYmVyXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdTdGFnZUZsYWdNb3VzZShmbGFnTW91c2U6IElGbGFnTW91c2UpIHtcbiAgICB0aGlzLm91dENoYW5nU3RhZ2VGbGFnTW91c2UuZW1pdChmbGFnTW91c2UpO1xuICB9XG59XG4iLCJAaWYgKGxhYmVsQ29uZmlnKCk7IGFzIGxhYmVsQ29uZmlnKSB7XG4gIDxsaWJzX3VpLWNvbXBvbmVudHMtbGFiZWxcbiAgICBbY2xhc3NJbmNsdWRlXT1cImxhYmVsQ29uZmlnLmNsYXNzSW5jbHVkZVwiXG4gICAgW2xhYmVsTGVmdF09XCJsYWJlbENvbmZpZy5sYWJlbExlZnRcIlxuICAgIFtsYWJlbExlZnRDbGFzc109XCJsYWJlbENvbmZpZy5sYWJlbExlZnRDbGFzc1wiXG4gICAgW3JlcXVpcmVkXT1cImxhYmVsQ29uZmlnLnJlcXVpcmVkXCJcbiAgICBbZGVzY3JpcHRpb25dPVwibGFiZWxDb25maWcuZGVzY3JpcHRpb25cIlxuICAgIFtsYWJlbFJpZ2h0XT1cImxhYmVsQ29uZmlnLmxhYmVsUmlnaHRcIlxuICAgIFtsYWJlbFJpZ2h0Q2xhc3NdPVwibGFiZWxDb25maWcubGFiZWxSaWdodENsYXNzXCJcbiAgICBbb25seVNob3dDb3VudF09XCJsYWJlbENvbmZpZy5vbmx5U2hvd0NvdW50XCJcbiAgICBbYnV0dG9uc0xlZnRdPVwibGFiZWxDb25maWcuYnV0dG9uc0xlZnRcIlxuICAgIFtidXR0b25zUmlnaHRdPVwibGFiZWxDb25maWcuYnV0dG9uc1JpZ2h0XCJcbiAgICBbYnV0dG9uc0Rlc2NyaXB0aW9uXT1cImxhYmVsQ29uZmlnLmJ1dHRvbnNEZXNjcmlwdGlvblwiXG4gICAgW2Rlc2NyaXB0aW9uQ2xhc3NdPVwibGFiZWxDb25maWcuZGVzY3JpcHRpb25DbGFzc1wiXG4gICAgW2Rpc2FibGVCdXR0b25zTGVmdF09XCJsYWJlbENvbmZpZy5kaXNhYmxlQnV0dG9uc0xlZnRcIlxuICAgIFtkaXNhYmxlQnV0dG9uc1JpZ2h0XT1cImxhYmVsQ29uZmlnLmRpc2FibGVCdXR0b25zUmlnaHRcIlxuICAgIFtoYXNUb2dnbGVdPVwibGFiZWxDb25maWcuaGFzVG9nZ2xlXCJcbiAgICBbdG9nZ2xlQWN0aXZlXT1cImxhYmVsQ29uZmlnLnRvZ2dsZUFjdGl2ZVwiXG4gICAgW3RvZ2dsZURpc2FibGVdPVwibGFiZWxDb25maWcudG9nZ2xlRGlzYWJsZSB8fCBkaXNhYmxlKClcIlxuICAgIFtwb3BvdmVyXT1cImxhYmVsQ29uZmlnLnBvcG92ZXJcIlxuICAgIFtpY29uUG9wb3ZlckNsYXNzXT1cImxhYmVsQ29uZmlnLmljb25Qb3BvdmVyQ2xhc3NcIlxuICAgIFtsaW1pdExlbmd0aF09XCJsYWJlbENvbmZpZy5saW1pdExlbmd0aFwiXG4gICAgW2NvdW50XT1cImxhYmVsQ29uZmlnLmNvdW50XCIgLz5cbn1cbjxkaXZcbiAgI3BhcmVudFxuICBjbGFzcz1cImZsZXggaXRlbXMtc3RhcnRcIlxuICBbY2xhc3MuIXctZnVsbF09XCJ3aWR0aEJ5RWxlbWVudCgpXCJcbiAgW2NsYXNzLiFjb2x1bW5dPVwiaXNSZXNwb25zaXZlKCkgJiYgaXNNdWx0aXBsZSgpXCI+XG4gIDxkaXZcbiAgICAjY2hpbGRGcm9tXG4gICAgY2xhc3M9XCJmbGV4IGl0ZW1zLXN0YXJ0XCJcbiAgICBbY2xhc3Mudy1bNTAlXV09XCJ3aWR0aEJ5RWxlbWVudCgpICYmICFpc1Jlc3BvbnNpdmUoKVwiXG4gICAgW2NsYXNzLiFtYi1bOHB4XV09XCJpc1Jlc3BvbnNpdmUoKSAmJiBpc011bHRpcGxlKClcIlxuICAgIFtjbGFzcy4hbXItWzhweF1dPVwiIWlzUmVzcG9uc2l2ZSgpICYmIGlzTXVsdGlwbGUoKVwiXG4gICAgW2NsYXNzLnctZnVsbF09XCIoIWlzTXVsdGlwbGUoKSAmJiAhd2lkdGhCeUVsZW1lbnQoKSkgfHwgaXNSZXNwb25zaXZlKClcIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCIhd2lkdGhCeUVsZW1lbnQoKSAmJiBpc011bHRpcGxlKCkgJiYgIWlzUmVzcG9uc2l2ZSgpID8gd2lkdGhEcm9wZG93bigpICogYXJyYXlGb3JtYXQoKS5sZW5ndGggKyA4ICogYXJyYXlGb3JtYXQoKS5sZW5ndGggKyB3aWR0aExhYmVsRnJvbSgpIDogdW5kZWZpbmVkXCI+XG4gICAgQGlmIChpc011bHRpcGxlKCkgJiYgIWlnbm9yZUZyb21BbmRUb0RhdGVMYWJlbCgpICYmIGZyb21BbmRUb0RhdGVMYWJlbCgpLmZyb20pIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJtci1bOHB4XSBmbGV4LXNocmluay0wIGgtWzMycHhdIGZsZXggaXRlbXMtY2VudGVyXCJcbiAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImlzUmVzcG9uc2l2ZSgpID8gd2lkdGhMYWJlbCgpIHx8IHVuZGVmaW5lZCA6IHVuZGVmaW5lZFwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICNsYWJlbEZyb21cbiAgICAgICAgICBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkRpcmVjdGl2ZVxuICAgICAgICAgIFtjbGFzcy4hb3BhY2l0eS1bMC41XV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgIGNsYXNzPVwibGlicy11aS1mb250LWg1ciB0ZXh0LW5vd3JhcCB7eyBmcm9tQW5kVG9EYXRlTGFiZWwoKS5jbGFzc0xhYmVsRnJvbSB8fCAnJyB9fVwiXG4gICAgICAgICAgKG91dENoYW5nZVdpZHRoKT1cImhhbmRsZXJDaGFuZ2VXaWR0aExhYmVsKCRldmVudClcIj5cbiAgICAgICAgICBAbGV0IGNvbnN0SHRtbEZyb20gPSBmcm9tQW5kVG9EYXRlTGFiZWwoKS5mcm9tIHx8ICcgJztcbiAgICAgICAgICB7eyBjb25zdEh0bWxGcm9tIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImZsZXhcIlxuICAgICAgW2NsYXNzLiF3LWZ1bGxdPVwid2lkdGhCeUVsZW1lbnQoKVwiPlxuICAgICAgQGlmICghY2hhbmdlVHlwZSgpKSB7XG4gICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtZHJvcGRvd24taXRlbVxuICAgICAgICAgIFtjbGFzcy4hdy1mdWxsXT1cIndpZHRoQnlFbGVtZW50KClcIlxuICAgICAgICAgIFtkaXNhYmxlU2Vjb25kXT1cImRpc2FibGVTZWNvbmQoKVwiXG4gICAgICAgICAgW3R5cGVEYXRlXT1cInR5cGVGb3JtYXQoKVwiXG4gICAgICAgICAgW3pJbmRleF09XCJ6SW5kZXgoKVwiXG4gICAgICAgICAgW21heFllYXJdPVwibWF4WWVhcigpXCJcbiAgICAgICAgICBbZGlzYWJsZV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgIFttaW5ZZWFyXT1cIm1pblllYXIoKVwiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KClcIlxuICAgICAgICAgIFtpc011bHRpcGxlXT1cImlzTXVsdGlwbGUoKSA/IChpc1Jlc3BvbnNpdmUoKSA/IHRydWUgOiBmYWxzZSkgOiB0cnVlXCJcbiAgICAgICAgICBbcmV2ZXJzZVllYXJdPVwicmV2ZXJzZVllYXIoKVwiXG4gICAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVUaW1lKCk/LmZyb20oKSB8fCB7fVwiXG4gICAgICAgICAgW3dpZHRoRHJvcGRvd25dPVwid2lkdGhEcm9wZG93bigpXCJcbiAgICAgICAgICBbd2lkdGhCeUVsZW1lbnRdPVwid2lkdGhCeUVsZW1lbnQoKVwiXG4gICAgICAgICAgW2dldEl0ZW1ZZWFyRGlzcGxheV09XCJnZXRJdGVtWWVhckRpc3BsYXkoKVwiXG4gICAgICAgICAgW2xpc3RNYXhJdGVtU2hvd109XCJsaXN0TWF4SXRlbVNob3coKVwiXG4gICAgICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKT8uZnJvbSgpXCJcbiAgICAgICAgICBbbGlzdEhhc0J1dHRvblVuU2VsZWN0T3B0aW9uXT1cImxpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbigpXCJcbiAgICAgICAgICBbaXNFbWl0U2VsZWN0ZWREcm9wRG93bl09XCJpc0VtaXRBZnRlckNoYW5nZWQoKVwiXG4gICAgICAgICAgW2NsYXNzSW5jbHVkZVRleHREaXNwbGF5V2hlbk5vU2VsZWN0XT1cIidsaWJzLXVpLWZvbnQtaDVyICcgKyBjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdCgpXCJcbiAgICAgICAgICAob3V0U2VsZWN0ZWREYXRhKT1cImhhbmRsZXJDaGFuZ2VTZWxlY3RlZEtleSgkZXZlbnQsICdmcm9tJylcIlxuICAgICAgICAgIChvdXRGdW5jdGlvbkNvbnRyb2wpPVwiaGFuZGxlckZ1bmN0aW9uQ29udHJvbCgkZXZlbnQsICdmcm9tJylcIlxuICAgICAgICAgIChvdXRDaGFuZ1N0YWdlRmxhZ01vdXNlKT1cImhhbmRsZXJDaGFuZ1N0YWdlRmxhZ01vdXNlKCRldmVudClcIiAvPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgQGlmIChpc011bHRpcGxlKCkpIHtcbiAgICA8ZGl2XG4gICAgICAjY2hpbGRUb1xuICAgICAgW2NsYXNzLiF3LVs1MCVdXT1cIndpZHRoQnlFbGVtZW50KClcIlxuICAgICAgW2NsYXNzLiF3LWZ1bGxdPVwiIXdpZHRoQnlFbGVtZW50KCkgfHwgaXNSZXNwb25zaXZlKClcIlxuICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLXN0YXJ0XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibXItWzhweF0gaC1bMzJweF0gZmxleC1zaHJpbmstMCBmbGV4IGl0ZW1zLWNlbnRlclwiXG4gICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJpc1Jlc3BvbnNpdmUoKSA/IHdpZHRoTGFiZWwoKSA6IHVuZGVmaW5lZFwiPlxuICAgICAgICBAaWYgKCFpZ25vcmVGcm9tQW5kVG9EYXRlTGFiZWwoKSkge1xuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAjbGFiZWxUb1xuICAgICAgICAgICAgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lRHJvcGRvd25EaXJlY3RpdmVcbiAgICAgICAgICAgIFtjbGFzcy4hb3BhY2l0eS1bMC41XV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDVyIHRleHQtbm93cmFwIHt7IGZyb21BbmRUb0RhdGVMYWJlbCgpLmNsYXNzTGFiZWxUbyB8fCAnJyB9fVwiXG4gICAgICAgICAgICAob3V0Q2hhbmdlV2lkdGgpPVwiaGFuZGxlckNoYW5nZVdpZHRoTGFiZWwoJGV2ZW50KVwiPlxuICAgICAgICAgICAgQGxldCBjb25zdEh0bWxUbyA9IGZyb21BbmRUb0RhdGVMYWJlbCgpLnRvIHx8ICcgJztcbiAgICAgICAgICAgIHt7IGNvbnN0SHRtbFRvIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoaWdub3JlRnJvbUFuZFRvRGF0ZUxhYmVsKCkpIHtcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2NsYXNzLiFvcGFjaXR5LVswLjVdXT1cImRpc2FibGUoKVwiXG4gICAgICAgICAgICBjbGFzcz1cImxpYnMtdWktZm9udC1oNXJcIj5cbiAgICAgICAgICAgIC1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZsZXhcIlxuICAgICAgICBbY2xhc3MuIXctZnVsbF09XCJ3aWR0aEJ5RWxlbWVudCgpXCI+XG4gICAgICAgIEBpZiAoIWNoYW5nZVR5cGUoKSkge1xuICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtZHJvcGRvd24taXRlbVxuICAgICAgICAgICAgW2NsYXNzLnctZnVsbF09XCJ3aWR0aEJ5RWxlbWVudCgpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlU2Vjb25kXT1cImRpc2FibGVTZWNvbmQoKVwiXG4gICAgICAgICAgICBbdHlwZURhdGVdPVwidHlwZUZvcm1hdCgpXCJcbiAgICAgICAgICAgIFt6SW5kZXhdPVwiekluZGV4KClcIlxuICAgICAgICAgICAgW21heFllYXJdPVwibWF4WWVhcigpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgICAgICAgICBbbWluWWVhcl09XCJtaW5ZZWFyKClcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KClcIlxuICAgICAgICAgICAgW2lzTXVsdGlwbGVdPVwiaXNNdWx0aXBsZSgpXCJcbiAgICAgICAgICAgIFtyZXZlcnNlWWVhcl09XCJyZXZlcnNlWWVhcigpXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZERhdGVdPVwic2VsZWN0ZWREYXRlVGltZSgpPy50bygpIHx8IHt9XCJcbiAgICAgICAgICAgIFt3aWR0aERyb3Bkb3duXT1cIndpZHRoRHJvcGRvd24oKVwiXG4gICAgICAgICAgICBbd2lkdGhCeUVsZW1lbnRdPVwid2lkdGhCeUVsZW1lbnQoKVwiXG4gICAgICAgICAgICBbZ2V0SXRlbVllYXJEaXNwbGF5XT1cImdldEl0ZW1ZZWFyRGlzcGxheSgpXCJcbiAgICAgICAgICAgIFtsaXN0TWF4SXRlbVNob3ddPVwibGlzdE1heEl0ZW1TaG93KClcIlxuICAgICAgICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKT8udG8oKVwiXG4gICAgICAgICAgICBbbGlzdEhhc0J1dHRvblVuU2VsZWN0T3B0aW9uXT1cImxpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbigpXCJcbiAgICAgICAgICAgIFtjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdF09XCInbGlicy11aS1mb250LWg1ciAnICsgY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3RcIlxuICAgICAgICAgICAgW2lzRW1pdFNlbGVjdGVkRHJvcERvd25dPVwiaXNFbWl0QWZ0ZXJDaGFuZ2VkKClcIlxuICAgICAgICAgICAgKG91dFNlbGVjdGVkRGF0YSk9XCJoYW5kbGVyQ2hhbmdlU2VsZWN0ZWRLZXkoJGV2ZW50LCAndG8nKVwiXG4gICAgICAgICAgICAob3V0RnVuY3Rpb25Db250cm9sKT1cImhhbmRsZXJGdW5jdGlvbkNvbnRyb2woJGV2ZW50LCAndG8nKVwiXG4gICAgICAgICAgICAob3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSk9XCJoYW5kbGVyQ2hhbmdTdGFnZUZsYWdNb3VzZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuXG5AaWYgKGlzRXJyb3JDb21wYXJlRGF0ZSgpKSB7XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtdC1bNHB4XVwiPlxuICAgIDxzcGFuIGNsYXNzPVwibGlicy11aS1tZXNzYWdlLWVycm9yIGxpYnMtdWktZm9udC1oN3IgbGlicy11aS10ZXh0LWVycm9yXCI+XG4gICAgICBAbGV0IGNvbnN0SHRtbE1lc3NhZ2UgPSB2YWxpZFJlcXVpcmVkKCk/Lm1lc3NhZ2VWYWxpZENvbXBhcmVUaW1lIHx8ICdpMThuX2ludmFsaWRfZW5kX2RhdGVfc2VsZWN0ZWQnO1xuICAgICAge3sgY29uc3RIdG1sTWVzc2FnZSB8IHRyYW5zbGF0ZTogdmFsaWRSZXF1aXJlZCgpPy5pbnRlcnBvbGF0ZVBhcmFtc0NvbXBhcmVUaW1lIH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
@@ -115,10 +115,10 @@ export class LibsUiComponentsDatetimeDropdownItemChildComponent {
|
|
|
115
115
|
return `${this.widthDropdown()}px`;
|
|
116
116
|
}
|
|
117
117
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsDatetimeDropdownItemChildComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
118
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsDatetimeDropdownItemChildComponent, isStandalone: true, selector: "libs_ui-components-datetime-dropdown-item-child", inputs: { typeDate: { classPropertyName: "typeDate", publicName: "typeDate", isSignal: true, isRequired: false, transformFunction: null }, getItemYearDisplay: { classPropertyName: "getItemYearDisplay", publicName: "getItemYearDisplay", isSignal: true, isRequired: false, transformFunction: null }, listHasButtonUnSelectOption: { classPropertyName: "listHasButtonUnSelectOption", publicName: "listHasButtonUnSelectOption", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, listData: { classPropertyName: "listData", publicName: "listData", isSignal: true, isRequired: false, transformFunction: null }, showBorderError: { classPropertyName: "showBorderError", publicName: "showBorderError", isSignal: true, isRequired: false, transformFunction: null }, listMaxItemShow: { classPropertyName: "listMaxItemShow", publicName: "listMaxItemShow", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, classIncludeTextDisplayWhenNoSelect: { classPropertyName: "classIncludeTextDisplayWhenNoSelect", publicName: "classIncludeTextDisplayWhenNoSelect", isSignal: true, isRequired: false, transformFunction: null }, listKeySelected: { classPropertyName: "listKeySelected", publicName: "listKeySelected", isSignal: true, isRequired: false, transformFunction: null }, widthDropdown: { classPropertyName: "widthDropdown", publicName: "widthDropdown", isSignal: true, isRequired: false, transformFunction: null }, first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: false, transformFunction: null }, isError: { classPropertyName: "isError", publicName: "isError", isSignal: true, isRequired: false, transformFunction: null }, widthByElement: { classPropertyName: "widthByElement", publicName: "widthByElement", isSignal: true, isRequired: false, transformFunction: null }, ignoreConvertYearSelected: { classPropertyName: "ignoreConvertYearSelected", publicName: "ignoreConvertYearSelected", isSignal: true, isRequired: false, transformFunction: null }, listKeysDisable: { classPropertyName: "listKeysDisable", publicName: "listKeysDisable", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outSelectedKey: "outSelectedKey", outFunctionControl: "outFunctionControl", outChangStageFlagMouse: "outChangStageFlagMouse" }, ngImport: i0, template: "@if (typeDate() && httpRequestDetailItemById()) {\n <div [style.width]=\"usingWidth()\">\n <libs_ui-components-dropdown\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [readonly]=\"readonly()\"\n [textDisplayWhenNoSelect]=\"textNoSelectDisplay()\"\n [disable]=\"disable()\"\n [showBorderError]=\"showBorderError()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listClickExactly]=\"false\"\n [zIndex]=\"zIndex()\"\n [labelPopoverConfig]=\"{ zIndex: zIndex() + 1 }\"\n [listConfig]=\"listConfig()\"\n [listKeysDisable]=\"listKeysDisable()\"\n [convertItemSelected]=\"convertItemSelected\"\n [onlyEmitDataWhenReset]=\"true\"\n [classIncludeTextDisplayWhenNoSelect]=\"classIncludeTextDisplayWhenNoSelect()\"\n [httpRequestDetailItemById]=\"httpRequestDetailItemById()\"\n [listKeySelected]=\"listKeySelected()\"\n (outSelectKey)=\"handlerChangeSelectedItem($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangFlagMouse($event)\" />\n </div>\n}\n@if (isError()) {\n <div class=\"flex items-center mt-[4px]\">\n <span\n class=\"libs-ui-text-error libs-ui-font-h7r\"\n [innerHtml]=\"
|
|
118
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsDatetimeDropdownItemChildComponent, isStandalone: true, selector: "libs_ui-components-datetime-dropdown-item-child", inputs: { typeDate: { classPropertyName: "typeDate", publicName: "typeDate", isSignal: true, isRequired: false, transformFunction: null }, getItemYearDisplay: { classPropertyName: "getItemYearDisplay", publicName: "getItemYearDisplay", isSignal: true, isRequired: false, transformFunction: null }, listHasButtonUnSelectOption: { classPropertyName: "listHasButtonUnSelectOption", publicName: "listHasButtonUnSelectOption", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, listData: { classPropertyName: "listData", publicName: "listData", isSignal: true, isRequired: false, transformFunction: null }, showBorderError: { classPropertyName: "showBorderError", publicName: "showBorderError", isSignal: true, isRequired: false, transformFunction: null }, listMaxItemShow: { classPropertyName: "listMaxItemShow", publicName: "listMaxItemShow", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, classIncludeTextDisplayWhenNoSelect: { classPropertyName: "classIncludeTextDisplayWhenNoSelect", publicName: "classIncludeTextDisplayWhenNoSelect", isSignal: true, isRequired: false, transformFunction: null }, listKeySelected: { classPropertyName: "listKeySelected", publicName: "listKeySelected", isSignal: true, isRequired: false, transformFunction: null }, widthDropdown: { classPropertyName: "widthDropdown", publicName: "widthDropdown", isSignal: true, isRequired: false, transformFunction: null }, first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: false, transformFunction: null }, isError: { classPropertyName: "isError", publicName: "isError", isSignal: true, isRequired: false, transformFunction: null }, widthByElement: { classPropertyName: "widthByElement", publicName: "widthByElement", isSignal: true, isRequired: false, transformFunction: null }, ignoreConvertYearSelected: { classPropertyName: "ignoreConvertYearSelected", publicName: "ignoreConvertYearSelected", isSignal: true, isRequired: false, transformFunction: null }, listKeysDisable: { classPropertyName: "listKeysDisable", publicName: "listKeysDisable", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outSelectedKey: "outSelectedKey", outFunctionControl: "outFunctionControl", outChangStageFlagMouse: "outChangStageFlagMouse" }, ngImport: i0, template: "@if (typeDate() && httpRequestDetailItemById()) {\n <div [style.width]=\"usingWidth()\">\n <libs_ui-components-dropdown\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [readonly]=\"readonly()\"\n [textDisplayWhenNoSelect]=\"textNoSelectDisplay()\"\n [disable]=\"disable()\"\n [showBorderError]=\"showBorderError()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listClickExactly]=\"false\"\n [zIndex]=\"zIndex()\"\n [labelPopoverConfig]=\"{ zIndex: zIndex() + 1 }\"\n [listConfig]=\"listConfig()\"\n [listKeysDisable]=\"listKeysDisable()\"\n [convertItemSelected]=\"convertItemSelected\"\n [onlyEmitDataWhenReset]=\"true\"\n [classIncludeTextDisplayWhenNoSelect]=\"classIncludeTextDisplayWhenNoSelect()\"\n [httpRequestDetailItemById]=\"httpRequestDetailItemById()\"\n [listKeySelected]=\"listKeySelected()\"\n (outSelectKey)=\"handlerChangeSelectedItem($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangFlagMouse($event)\" />\n </div>\n}\n@if (isError()) {\n <div class=\"flex items-center mt-[4px]\">\n @let constHtmlMessage = validRequired()?.message || 'i18n_valid_empty_message';\n <span\n class=\"libs-ui-text-error libs-ui-font-h7r\"\n [innerHtml]=\"constHtmlMessage | translate: validRequired()?.interpolateParams\"></span>\n </div>\n}\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsDropdownComponent, selector: "libs_ui-components-dropdown", inputs: ["useXssFilter", "popoverElementRefCustom", "classInclude", "ignoreStopPropagationEvent", "flagMouse", "flagMouseContent", "popoverCustomConfig", "isNgContent", "zIndex", "convertItemSelected", "getPopoverItemSelected", "httpRequestDetailItemById", "lengthKeys", "textDisplayWhenNoSelect", "textDisplayWhenMultiSelect", "classIncludeTextDisplayWhenNoSelect", "fieldLabel", "fieldGetLabel", "labelPopoverConfig", "labelPopoverFullWidth", "hasContentUnitRight", "listSearchNoDataTemplateRef", "fieldGetImage", "imageSize", "typeShape", "fieldGetIcon", "fieldGetTextAvatar", "fieldGetColorAvatar", "classAvatarInclude", "getLastTextAfterSpace", "linkImageError", "showError", "showBorderError", "disable", "readonly", "labelConfig", "disableLabel", "listSearchConfig", "isSearchOnline", "listHiddenInputSearch", "listSearchPadding", "listKeySearch", "listDividerClassInclude", "listConfig", "listButtonsOther", "listHasButtonUnSelectOption", "listClickExactly", "listBackgroundCustom", "listMaxItemShow", "listKeySelected", "listMultiKeySelected", "listKeysDisable", "listKeysHidden", "validRequired", "validMaxItemSelected", "changeValidUndefinedResetError", "allowSelectItemMultiple", "focusInputSearch", "onlyEmitDataWhenReset", "resetKeyWhenSelectAllKey", "listConfigHasDivider", "classIncludeIcon", "classIncludeContent", "listIgnoreClassDisableDefaultWhenUseKeysDisableItem", "tabKeyActive", "tabsConfig", "ignoreBorderBottom"], outputs: ["flagMouseChange", "flagMouseContentChange", "lengthKeysChange", "showBorderErrorChange", "listKeySelectedChange", "listMultiKeySelectedChange", "tabKeyActiveChange", "outSelectKey", "outSelectMultiKey", "outFunctionsControl", "outValidEvent", "outChangStageFlagMouse", "outDataChange", "outClickButtonOther", "outShowList", "outChangeTabKeyActive"] }] });
|
|
119
119
|
}
|
|
120
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsDatetimeDropdownItemChildComponent, decorators: [{
|
|
121
121
|
type: Component,
|
|
122
|
-
args: [{ selector: 'libs_ui-components-datetime-dropdown-item-child', standalone: true, imports: [TranslateModule, LibsUiComponentsDropdownComponent], template: "@if (typeDate() && httpRequestDetailItemById()) {\n <div [style.width]=\"usingWidth()\">\n <libs_ui-components-dropdown\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [readonly]=\"readonly()\"\n [textDisplayWhenNoSelect]=\"textNoSelectDisplay()\"\n [disable]=\"disable()\"\n [showBorderError]=\"showBorderError()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listClickExactly]=\"false\"\n [zIndex]=\"zIndex()\"\n [labelPopoverConfig]=\"{ zIndex: zIndex() + 1 }\"\n [listConfig]=\"listConfig()\"\n [listKeysDisable]=\"listKeysDisable()\"\n [convertItemSelected]=\"convertItemSelected\"\n [onlyEmitDataWhenReset]=\"true\"\n [classIncludeTextDisplayWhenNoSelect]=\"classIncludeTextDisplayWhenNoSelect()\"\n [httpRequestDetailItemById]=\"httpRequestDetailItemById()\"\n [listKeySelected]=\"listKeySelected()\"\n (outSelectKey)=\"handlerChangeSelectedItem($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangFlagMouse($event)\" />\n </div>\n}\n@if (isError()) {\n <div class=\"flex items-center mt-[4px]\">\n <span\n class=\"libs-ui-text-error libs-ui-font-h7r\"\n [innerHtml]=\"
|
|
122
|
+
args: [{ selector: 'libs_ui-components-datetime-dropdown-item-child', standalone: true, imports: [TranslateModule, LibsUiComponentsDropdownComponent], template: "@if (typeDate() && httpRequestDetailItemById()) {\n <div [style.width]=\"usingWidth()\">\n <libs_ui-components-dropdown\n [listHasButtonUnSelectOption]=\"listHasButtonUnSelectOption()\"\n [readonly]=\"readonly()\"\n [textDisplayWhenNoSelect]=\"textNoSelectDisplay()\"\n [disable]=\"disable()\"\n [showBorderError]=\"showBorderError()\"\n [listMaxItemShow]=\"listMaxItemShow()\"\n [listClickExactly]=\"false\"\n [zIndex]=\"zIndex()\"\n [labelPopoverConfig]=\"{ zIndex: zIndex() + 1 }\"\n [listConfig]=\"listConfig()\"\n [listKeysDisable]=\"listKeysDisable()\"\n [convertItemSelected]=\"convertItemSelected\"\n [onlyEmitDataWhenReset]=\"true\"\n [classIncludeTextDisplayWhenNoSelect]=\"classIncludeTextDisplayWhenNoSelect()\"\n [httpRequestDetailItemById]=\"httpRequestDetailItemById()\"\n [listKeySelected]=\"listKeySelected()\"\n (outSelectKey)=\"handlerChangeSelectedItem($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangFlagMouse($event)\" />\n </div>\n}\n@if (isError()) {\n <div class=\"flex items-center mt-[4px]\">\n @let constHtmlMessage = validRequired()?.message || 'i18n_valid_empty_message';\n <span\n class=\"libs-ui-text-error libs-ui-font-h7r\"\n [innerHtml]=\"constHtmlMessage | translate: validRequired()?.interpolateParams\"></span>\n </div>\n}\n" }]
|
|
123
123
|
}], ctorParameters: () => [] });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL2Ryb3Bkb3duL3NyYy9pdGVtL2NoaWxkL2NoaWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kYXRldGltZS9kcm9wZG93bi9zcmMvaXRlbS9jaGlsZC9jaGlsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFpRCxpQ0FBaUMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSWhJLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLHlCQUF5QixFQUFFLDhCQUE4QixFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQVU5SixNQUFNLE9BQU8sa0RBQWtEO0lBQzdELG1CQUFtQjtJQUNULHlCQUF5QixHQUFHLE1BQU0sQ0FBaUMsU0FBUyxDQUFDLENBQUM7SUFDOUUsVUFBVSxHQUFHLE1BQU0sQ0FBa0I7UUFDN0MsSUFBSSxFQUFFLE1BQU07UUFDWixrQkFBa0IsRUFBRSxNQUFNLENBQUM7WUFDekIsUUFBUSxFQUFFLElBQUk7WUFDZCx3QkFBd0IsRUFBRSxJQUFJO1NBQy9CLENBQUM7S0FDSCxDQUFDLENBQUM7SUFDTyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVF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bGljaXQtYW55ICovXG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50LCBJRW1pdFNlbGVjdEtleSwgTGlic1VpQ29tcG9uZW50c0Ryb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1kcm9wZG93bic7XG5pbXBvcnQgeyBJTGlzdENvbmZpZ0l0ZW0gfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWxpc3QnO1xuaW1wb3J0IHsgSUZsYWdNb3VzZSB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3Zlcic7XG5pbXBvcnQgeyBJSHR0cFJlcXVlc3RDb25maWcgfSBmcm9tICdAbGlicy11aS9zZXJ2aWNlcy1odHRwLXJlcXVlc3QnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBjb252ZXJ0R2V0VmFsdWUsIGNvbnZlcnRJdGVtU2VsZWN0ZWREZWZpbmUsIGdldENvbmZpZ0h0dHBSZXF1ZXN0RGV0YWlsRGF0ZSwgZ2V0Q29uZmlnSHR0cFJlcXVlc3RMaXN0RGF0ZSB9IGZyb20gJy4uLy4uL2RlZmluZXMvZGF0ZS1kcm9wZG93bi5kZWZpbmUnO1xuaW1wb3J0IHsgVFlQRV9EQVRFX0ZPUk1BVCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGF0ZS1kcm9wZG93bi5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtZHJvcGRvd24taXRlbS1jaGlsZCcsXG4gIHRlbXBsYXRlVXJsOiAnY2hpbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBMaWJzVWlDb21wb25lbnRzRHJvcGRvd25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkl0ZW1DaGlsZENvbXBvbmVudCB7XG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHJvdGVjdGVkIGh0dHBSZXF1ZXN0RGV0YWlsSXRlbUJ5SWQgPSBzaWduYWw8SUh0dHBSZXF1ZXN0Q29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgbGlzdENvbmZpZyA9IHNpZ25hbDxJTGlzdENvbmZpZ0l0ZW0+KHtcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgY29uZmlnVGVtcGxhdGVUZXh0OiBzaWduYWwoe1xuICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICBhdXRvU2Nyb2xsVG9JdGVtU2VsZWN0ZWQ6IHRydWUsXG4gICAgfSksXG4gIH0pO1xuICBwcm90ZWN0ZWQgdGV4dE5vU2VsZWN0RGlzcGxheSA9IGNvbXB1dGVkKHRoaXMuY29tcHV0ZWRUZXh0Tm9TZWxlY3REaXNwbGF5LmJpbmQodGhpcykpO1xuICBwcm90ZWN0ZWQgdXNpbmdXaWR0aCA9IGNvbXB1dGVkKHRoaXMuY29tcHV0ZWRXaWR0aC5iaW5kKHRoaXMpKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IHR5cGVEYXRlID0gaW5wdXQ8VFlQRV9EQVRFX0ZPUk1BVCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZ2V0SXRlbVllYXJEaXNwbGF5ID0gaW5wdXQ8KHllYXI6IHN0cmluZykgPT4gc3RyaW5nPigpO1xuICByZWFkb25seSBsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24gPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSByZWFkb25seSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgbGlzdERhdGEgPSBpbnB1dDxBcnJheTx7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfT4+KFtdKTtcbiAgcmVhZG9ubHkgc2hvd0JvcmRlckVycm9yID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbGlzdE1heEl0ZW1TaG93ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXI+KDYsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDYgfSk7XG4gIHJlYWRvbmx5IHpJbmRleCA9IGlucHV0PG51bWJlciwgbnVtYmVyPigxMDAwLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyAxMDAwIH0pO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdCA9IGlucHV0PHN0cmluZz4oJycpO1xuICByZWFkb25seSBsaXN0S2V5U2VsZWN0ZWQgPSBpbnB1dDxhbnk+KCk7XG4gIHJlYWRvbmx5IHdpZHRoRHJvcGRvd24gPSBpbnB1dDxudW1iZXI+KDEzNik7XG4gIHJlYWRvbmx5IGZpcnN0ID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaXNFcnJvciA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHdpZHRoQnlFbGVtZW50ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgaWdub3JlQ29udmVydFllYXJTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGxpc3RLZXlzRGlzYWJsZSA9IGlucHV0PEFycmF5PGFueT4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHZhbGlkUmVxdWlyZWQgPSBpbnB1dDx7XG4gICAgbWVzc2FnZT86IHN0cmluZztcbiAgICBpbnRlcnBvbGF0ZVBhcmFtcz86IHsgYW55OiBvYmplY3QgfTtcbiAgfT4oKTtcblxuICAvLyAjcmVnaW9uIE9VVFBVVFxuICByZWFkb25seSBvdXRTZWxlY3RlZEtleSA9IG91dHB1dDxhbnk+KCk7XG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uQ29udHJvbCA9IG91dHB1dDxJRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSA9IG91dHB1dDxJRmxhZ01vdXNlPigpO1xuXG4gIC8vICNyZWdpb24gSU5KRUNUXG4gIHByaXZhdGUgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0RGF0YSA9IHRoaXMubGlzdERhdGEoKTtcblxuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgdGhpcy5odHRwUmVxdWVzdERldGFpbEl0ZW1CeUlkLnNldChnZXRDb25maWdIdHRwUmVxdWVzdERldGFpbERhdGUobGlzdERhdGEpKTtcbiAgICAgICAgdGhpcy5saXN0Q29uZmlnLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICAgIGlmICghY3VycmVudC5odHRwUmVxdWVzdERhdGEpIHtcbiAgICAgICAgICAgIGN1cnJlbnQuaHR0cFJlcXVlc3REYXRhID0gc2lnbmFsPElIdHRwUmVxdWVzdENvbmZpZz4oZ2V0Q29uZmlnSHR0cFJlcXVlc3RMaXN0RGF0ZShsaXN0RGF0YSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjdXJyZW50Lmh0dHBSZXF1ZXN0RGF0YS5zZXQoZ2V0Q29uZmlnSHR0cFJlcXVlc3RMaXN0RGF0ZShsaXN0RGF0YSkpO1xuICAgICAgICAgIGlmICghY3VycmVudC5jb25maWdUZW1wbGF0ZVRleHQpIHtcbiAgICAgICAgICAgIGN1cnJlbnQuY29uZmlnVGVtcGxhdGVUZXh0ID0gc2lnbmFsKHtcbiAgICAgICAgICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICAgICAgICAgIGF1dG9TY3JvbGxUb0l0ZW1TZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjdXJyZW50LmNvbmZpZ1RlbXBsYXRlVGV4dC5zZXQoe1xuICAgICAgICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICAgICAgICBhdXRvU2Nyb2xsVG9JdGVtU2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgICAgICBnZXRWYWx1ZTogKGl0ZW06IHsgbGFiZWw6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0R2V0VmFsdWUodGhpcy50eXBlRGF0ZSgpIHx8ICdtb250aCcsIGl0ZW0sIHRoaXMudHJhbnNsYXRlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nZVNlbGVjdGVkSXRlbShldmVudD86IElFbWl0U2VsZWN0S2V5KSB7XG4gICAgaWYgKHRoaXMubGlzdEtleVNlbGVjdGVkKCkgPT09IGV2ZW50Py5rZXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFldmVudCB8fCAhZXZlbnQua2V5KSB7XG4gICAgICB0aGlzLm91dFNlbGVjdGVkS2V5LmVtaXQodW5kZWZpbmVkKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm91dFNlbGVjdGVkS2V5LmVtaXQoZXZlbnQua2V5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyRnVuY3Rpb25Db250cm9sKGV2ZW50OiBJRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudCkge1xuICAgIHRoaXMub3V0RnVuY3Rpb25Db250cm9sLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDaGFuZ0ZsYWdNb3VzZShmbGFnTW91c2U6IElGbGFnTW91c2UpIHtcbiAgICB0aGlzLm91dENoYW5nU3RhZ2VGbGFnTW91c2UuZW1pdChmbGFnTW91c2UpO1xuICB9XG4gIHByb3RlY3RlZCBjb252ZXJ0SXRlbVNlbGVjdGVkID0gKGl0ZW06IGFueSkgPT4ge1xuICAgIGlmICghaXRlbSB8fCAhdGhpcy50eXBlRGF0ZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGl0ZW0ubGFiZWxEaXNwbGF5ID0gY29udmVydEl0ZW1TZWxlY3RlZERlZmluZSh0aGlzLnR5cGVEYXRlKCkgPz8gJ21vbnRoJywgaXRlbSwgdGhpcy50cmFuc2xhdGUsIHRoaXMuZ2V0SXRlbVllYXJEaXNwbGF5KCksIHRoaXMuaWdub3JlQ29udmVydFllYXJTZWxlY3RlZCgpKTtcblxuICAgIHJldHVybiBpdGVtO1xuICB9O1xuICBwcml2YXRlIGNvbXB1dGVkVGV4dE5vU2VsZWN0RGlzcGxheSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZURhdGUoKSkge1xuICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgcmV0dXJuICdpMThuX3NlbGVjdF9kYXknO1xuXG4gICAgICBjYXNlICdtb250aCc6XG4gICAgICAgIHJldHVybiAnaTE4bl9zZWxlY3RfbW9udGgnO1xuXG4gICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgcmV0dXJuICdpMThuX3NlbGVjdF95ZWFyJztcblxuICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgIHJldHVybiAnaTE4bl9zZWxlY3RfcXVhcnRlcic7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnbW9udGgnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29tcHV0ZWRXaWR0aCgpIHtcbiAgICBpZiAodGhpcy53aWR0aEJ5RWxlbWVudCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5maXJzdCgpID8gYCR7dGhpcy53aWR0aERyb3Bkb3duKCl9cHhgIDogJzEwMCUnO1xuICAgIH1cblxuICAgIHJldHVybiBgJHt0aGlzLndpZHRoRHJvcGRvd24oKX1weGA7XG4gIH1cbn1cbiIsIkBpZiAodHlwZURhdGUoKSAmJiBodHRwUmVxdWVzdERldGFpbEl0ZW1CeUlkKCkpIHtcbiAgPGRpdiBbc3R5bGUud2lkdGhdPVwidXNpbmdXaWR0aCgpXCI+XG4gICAgPGxpYnNfdWktY29tcG9uZW50cy1kcm9wZG93blxuICAgICAgW2xpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbl09XCJsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24oKVwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkoKVwiXG4gICAgICBbdGV4dERpc3BsYXlXaGVuTm9TZWxlY3RdPVwidGV4dE5vU2VsZWN0RGlzcGxheSgpXCJcbiAgICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgICBbc2hvd0JvcmRlckVycm9yXT1cInNob3dCb3JkZXJFcnJvcigpXCJcbiAgICAgIFtsaXN0TWF4SXRlbVNob3ddPVwibGlzdE1heEl0ZW1TaG93KClcIlxuICAgICAgW2xpc3RDbGlja0V4YWN0bHldPVwiZmFsc2VcIlxuICAgICAgW3pJbmRleF09XCJ6SW5kZXgoKVwiXG4gICAgICBbbGFiZWxQb3BvdmVyQ29uZmlnXT1cInsgekluZGV4OiB6SW5kZXgoKSArIDEgfVwiXG4gICAgICBbbGlzdENvbmZpZ109XCJsaXN0Q29uZmlnKClcIlxuICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKVwiXG4gICAgICBbY29udmVydEl0ZW1TZWxlY3RlZF09XCJjb252ZXJ0SXRlbVNlbGVjdGVkXCJcbiAgICAgIFtvbmx5RW1pdERhdGFXaGVuUmVzZXRdPVwidHJ1ZVwiXG4gICAgICBbY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3RdPVwiY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3QoKVwiXG4gICAgICBbaHR0cFJlcXVlc3REZXRhaWxJdGVtQnlJZF09XCJodHRwUmVxdWVzdERldGFpbEl0ZW1CeUlkKClcIlxuICAgICAgW2xpc3RLZXlTZWxlY3RlZF09XCJsaXN0S2V5U2VsZWN0ZWQoKVwiXG4gICAgICAob3V0U2VsZWN0S2V5KT1cImhhbmRsZXJDaGFuZ2VTZWxlY3RlZEl0ZW0oJGV2ZW50KVwiXG4gICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25Db250cm9sKCRldmVudClcIlxuICAgICAgKG91dENoYW5nU3RhZ2VGbGFnTW91c2UpPVwiaGFuZGxlckNoYW5nRmxhZ01vdXNlKCRldmVudClcIiAvPlxuICA8L2Rpdj5cbn1cbkBpZiAoaXNFcnJvcigpKSB7XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtdC1bNHB4XVwiPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cImxpYnMtdWktdGV4dC1lcnJvciBsaWJzLXVpLWZvbnQtaDdyXCJcbiAgICAgIFtpbm5lckh0bWxdPVwidmFsaWRSZXF1aXJlZCgpPy5tZXNzYWdlIHx8ICdpMThuX3ZhbGlkX2VtcHR5X21lc3NhZ2UnIHwgdHJhbnNsYXRlOiB2YWxpZFJlcXVpcmVkKCk/LmludGVycG9sYXRlUGFyYW1zXCI+PC9zcGFuPlxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL2Ryb3Bkb3duL3NyYy9pdGVtL2NoaWxkL2NoaWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kYXRldGltZS9kcm9wZG93bi9zcmMvaXRlbS9jaGlsZC9jaGlsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFpRCxpQ0FBaUMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSWhJLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLHlCQUF5QixFQUFFLDhCQUE4QixFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQVU5SixNQUFNLE9BQU8sa0RBQWtEO0lBQzdELG1CQUFtQjtJQUNULHlCQUF5QixHQUFHLE1BQU0sQ0FBaUMsU0FBUyxDQUFDLENBQUM7SUFDOUUsVUFBVSxHQUFHLE1BQU0sQ0FBa0I7UUFDN0MsSUFBSSxFQUFFLE1BQU07UUFDWixrQkFBa0IsRUFBRSxNQUFNLENBQUM7WUFDekIsUUFBUSxFQUFFLElBQUk7WUFDZCx3QkFBd0IsRUFBRSxJQUFJO1NBQy9CLENBQUM7S0FDSCxDQUFDLENBQUM7SUFDTyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVF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bGljaXQtYW55ICovXG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElEcm9wZG93bkZ1bmN0aW9uQ29udHJvbEV2ZW50LCBJRW1pdFNlbGVjdEtleSwgTGlic1VpQ29tcG9uZW50c0Ryb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1kcm9wZG93bic7XG5pbXBvcnQgeyBJTGlzdENvbmZpZ0l0ZW0gfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWxpc3QnO1xuaW1wb3J0IHsgSUZsYWdNb3VzZSB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3Zlcic7XG5pbXBvcnQgeyBJSHR0cFJlcXVlc3RDb25maWcgfSBmcm9tICdAbGlicy11aS9zZXJ2aWNlcy1odHRwLXJlcXVlc3QnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBjb252ZXJ0R2V0VmFsdWUsIGNvbnZlcnRJdGVtU2VsZWN0ZWREZWZpbmUsIGdldENvbmZpZ0h0dHBSZXF1ZXN0RGV0YWlsRGF0ZSwgZ2V0Q29uZmlnSHR0cFJlcXVlc3RMaXN0RGF0ZSB9IGZyb20gJy4uLy4uL2RlZmluZXMvZGF0ZS1kcm9wZG93bi5kZWZpbmUnO1xuaW1wb3J0IHsgVFlQRV9EQVRFX0ZPUk1BVCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGF0ZS1kcm9wZG93bi5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtZHJvcGRvd24taXRlbS1jaGlsZCcsXG4gIHRlbXBsYXRlVXJsOiAnY2hpbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBMaWJzVWlDb21wb25lbnRzRHJvcGRvd25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVEcm9wZG93bkl0ZW1DaGlsZENvbXBvbmVudCB7XG4gIC8vICNyZWdpb24gUFJPUEVSVFlcbiAgcHJvdGVjdGVkIGh0dHBSZXF1ZXN0RGV0YWlsSXRlbUJ5SWQgPSBzaWduYWw8SUh0dHBSZXF1ZXN0Q29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgbGlzdENvbmZpZyA9IHNpZ25hbDxJTGlzdENvbmZpZ0l0ZW0+KHtcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgY29uZmlnVGVtcGxhdGVUZXh0OiBzaWduYWwoe1xuICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICBhdXRvU2Nyb2xsVG9JdGVtU2VsZWN0ZWQ6IHRydWUsXG4gICAgfSksXG4gIH0pO1xuICBwcm90ZWN0ZWQgdGV4dE5vU2VsZWN0RGlzcGxheSA9IGNvbXB1dGVkKHRoaXMuY29tcHV0ZWRUZXh0Tm9TZWxlY3REaXNwbGF5LmJpbmQodGhpcykpO1xuICBwcm90ZWN0ZWQgdXNpbmdXaWR0aCA9IGNvbXB1dGVkKHRoaXMuY29tcHV0ZWRXaWR0aC5iaW5kKHRoaXMpKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IHR5cGVEYXRlID0gaW5wdXQ8VFlQRV9EQVRFX0ZPUk1BVCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZ2V0SXRlbVllYXJEaXNwbGF5ID0gaW5wdXQ8KHllYXI6IHN0cmluZykgPT4gc3RyaW5nPigpO1xuICByZWFkb25seSBsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24gPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSByZWFkb25seSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgbGlzdERhdGEgPSBpbnB1dDxBcnJheTx7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfT4+KFtdKTtcbiAgcmVhZG9ubHkgc2hvd0JvcmRlckVycm9yID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbGlzdE1heEl0ZW1TaG93ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXI+KDYsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDYgfSk7XG4gIHJlYWRvbmx5IHpJbmRleCA9IGlucHV0PG51bWJlciwgbnVtYmVyPigxMDAwLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyAxMDAwIH0pO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVUZXh0RGlzcGxheVdoZW5Ob1NlbGVjdCA9IGlucHV0PHN0cmluZz4oJycpO1xuICByZWFkb25seSBsaXN0S2V5U2VsZWN0ZWQgPSBpbnB1dDxhbnk+KCk7XG4gIHJlYWRvbmx5IHdpZHRoRHJvcGRvd24gPSBpbnB1dDxudW1iZXI+KDEzNik7XG4gIHJlYWRvbmx5IGZpcnN0ID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaXNFcnJvciA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHdpZHRoQnlFbGVtZW50ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgaWdub3JlQ29udmVydFllYXJTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGxpc3RLZXlzRGlzYWJsZSA9IGlucHV0PEFycmF5PGFueT4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHZhbGlkUmVxdWlyZWQgPSBpbnB1dDx7XG4gICAgbWVzc2FnZT86IHN0cmluZztcbiAgICBpbnRlcnBvbGF0ZVBhcmFtcz86IHsgYW55OiBvYmplY3QgfTtcbiAgfT4oKTtcblxuICAvLyAjcmVnaW9uIE9VVFBVVFxuICByZWFkb25seSBvdXRTZWxlY3RlZEtleSA9IG91dHB1dDxhbnk+KCk7XG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uQ29udHJvbCA9IG91dHB1dDxJRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSA9IG91dHB1dDxJRmxhZ01vdXNlPigpO1xuXG4gIC8vICNyZWdpb24gSU5KRUNUXG4gIHByaXZhdGUgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0RGF0YSA9IHRoaXMubGlzdERhdGEoKTtcblxuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgdGhpcy5odHRwUmVxdWVzdERldGFpbEl0ZW1CeUlkLnNldChnZXRDb25maWdIdHRwUmVxdWVzdERldGFpbERhdGUobGlzdERhdGEpKTtcbiAgICAgICAgdGhpcy5saXN0Q29uZmlnLnVwZGF0ZSgoY3VycmVudCkgPT4ge1xuICAgICAgICAgIGlmICghY3VycmVudC5odHRwUmVxdWVzdERhdGEpIHtcbiAgICAgICAgICAgIGN1cnJlbnQuaHR0cFJlcXVlc3REYXRhID0gc2lnbmFsPElIdHRwUmVxdWVzdENvbmZpZz4oZ2V0Q29uZmlnSHR0cFJlcXVlc3RMaXN0RGF0ZShsaXN0RGF0YSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjdXJyZW50Lmh0dHBSZXF1ZXN0RGF0YS5zZXQoZ2V0Q29uZmlnSHR0cFJlcXVlc3RMaXN0RGF0ZShsaXN0RGF0YSkpO1xuICAgICAgICAgIGlmICghY3VycmVudC5jb25maWdUZW1wbGF0ZVRleHQpIHtcbiAgICAgICAgICAgIGN1cnJlbnQuY29uZmlnVGVtcGxhdGVUZXh0ID0gc2lnbmFsKHtcbiAgICAgICAgICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICAgICAgICAgIGF1dG9TY3JvbGxUb0l0ZW1TZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjdXJyZW50LmNvbmZpZ1RlbXBsYXRlVGV4dC5zZXQoe1xuICAgICAgICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICAgICAgICBhdXRvU2Nyb2xsVG9JdGVtU2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgICAgICBnZXRWYWx1ZTogKGl0ZW06IHsgbGFiZWw6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0R2V0VmFsdWUodGhpcy50eXBlRGF0ZSgpIHx8ICdtb250aCcsIGl0ZW0sIHRoaXMudHJhbnNsYXRlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nZVNlbGVjdGVkSXRlbShldmVudD86IElFbWl0U2VsZWN0S2V5KSB7XG4gICAgaWYgKHRoaXMubGlzdEtleVNlbGVjdGVkKCkgPT09IGV2ZW50Py5rZXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFldmVudCB8fCAhZXZlbnQua2V5KSB7XG4gICAgICB0aGlzLm91dFNlbGVjdGVkS2V5LmVtaXQodW5kZWZpbmVkKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm91dFNlbGVjdGVkS2V5LmVtaXQoZXZlbnQua2V5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyRnVuY3Rpb25Db250cm9sKGV2ZW50OiBJRHJvcGRvd25GdW5jdGlvbkNvbnRyb2xFdmVudCkge1xuICAgIHRoaXMub3V0RnVuY3Rpb25Db250cm9sLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDaGFuZ0ZsYWdNb3VzZShmbGFnTW91c2U6IElGbGFnTW91c2UpIHtcbiAgICB0aGlzLm91dENoYW5nU3RhZ2VGbGFnTW91c2UuZW1pdChmbGFnTW91c2UpO1xuICB9XG4gIHByb3RlY3RlZCBjb252ZXJ0SXRlbVNlbGVjdGVkID0gKGl0ZW06IGFueSkgPT4ge1xuICAgIGlmICghaXRlbSB8fCAhdGhpcy50eXBlRGF0ZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGl0ZW0ubGFiZWxEaXNwbGF5ID0gY29udmVydEl0ZW1TZWxlY3RlZERlZmluZSh0aGlzLnR5cGVEYXRlKCkgPz8gJ21vbnRoJywgaXRlbSwgdGhpcy50cmFuc2xhdGUsIHRoaXMuZ2V0SXRlbVllYXJEaXNwbGF5KCksIHRoaXMuaWdub3JlQ29udmVydFllYXJTZWxlY3RlZCgpKTtcblxuICAgIHJldHVybiBpdGVtO1xuICB9O1xuICBwcml2YXRlIGNvbXB1dGVkVGV4dE5vU2VsZWN0RGlzcGxheSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZURhdGUoKSkge1xuICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgcmV0dXJuICdpMThuX3NlbGVjdF9kYXknO1xuXG4gICAgICBjYXNlICdtb250aCc6XG4gICAgICAgIHJldHVybiAnaTE4bl9zZWxlY3RfbW9udGgnO1xuXG4gICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgcmV0dXJuICdpMThuX3NlbGVjdF95ZWFyJztcblxuICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgIHJldHVybiAnaTE4bl9zZWxlY3RfcXVhcnRlcic7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnbW9udGgnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29tcHV0ZWRXaWR0aCgpIHtcbiAgICBpZiAodGhpcy53aWR0aEJ5RWxlbWVudCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5maXJzdCgpID8gYCR7dGhpcy53aWR0aERyb3Bkb3duKCl9cHhgIDogJzEwMCUnO1xuICAgIH1cblxuICAgIHJldHVybiBgJHt0aGlzLndpZHRoRHJvcGRvd24oKX1weGA7XG4gIH1cbn1cbiIsIkBpZiAodHlwZURhdGUoKSAmJiBodHRwUmVxdWVzdERldGFpbEl0ZW1CeUlkKCkpIHtcbiAgPGRpdiBbc3R5bGUud2lkdGhdPVwidXNpbmdXaWR0aCgpXCI+XG4gICAgPGxpYnNfdWktY29tcG9uZW50cy1kcm9wZG93blxuICAgICAgW2xpc3RIYXNCdXR0b25VblNlbGVjdE9wdGlvbl09XCJsaXN0SGFzQnV0dG9uVW5TZWxlY3RPcHRpb24oKVwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkoKVwiXG4gICAgICBbdGV4dERpc3BsYXlXaGVuTm9TZWxlY3RdPVwidGV4dE5vU2VsZWN0RGlzcGxheSgpXCJcbiAgICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgICBbc2hvd0JvcmRlckVycm9yXT1cInNob3dCb3JkZXJFcnJvcigpXCJcbiAgICAgIFtsaXN0TWF4SXRlbVNob3ddPVwibGlzdE1heEl0ZW1TaG93KClcIlxuICAgICAgW2xpc3RDbGlja0V4YWN0bHldPVwiZmFsc2VcIlxuICAgICAgW3pJbmRleF09XCJ6SW5kZXgoKVwiXG4gICAgICBbbGFiZWxQb3BvdmVyQ29uZmlnXT1cInsgekluZGV4OiB6SW5kZXgoKSArIDEgfVwiXG4gICAgICBbbGlzdENvbmZpZ109XCJsaXN0Q29uZmlnKClcIlxuICAgICAgW2xpc3RLZXlzRGlzYWJsZV09XCJsaXN0S2V5c0Rpc2FibGUoKVwiXG4gICAgICBbY29udmVydEl0ZW1TZWxlY3RlZF09XCJjb252ZXJ0SXRlbVNlbGVjdGVkXCJcbiAgICAgIFtvbmx5RW1pdERhdGFXaGVuUmVzZXRdPVwidHJ1ZVwiXG4gICAgICBbY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3RdPVwiY2xhc3NJbmNsdWRlVGV4dERpc3BsYXlXaGVuTm9TZWxlY3QoKVwiXG4gICAgICBbaHR0cFJlcXVlc3REZXRhaWxJdGVtQnlJZF09XCJodHRwUmVxdWVzdERldGFpbEl0ZW1CeUlkKClcIlxuICAgICAgW2xpc3RLZXlTZWxlY3RlZF09XCJsaXN0S2V5U2VsZWN0ZWQoKVwiXG4gICAgICAob3V0U2VsZWN0S2V5KT1cImhhbmRsZXJDaGFuZ2VTZWxlY3RlZEl0ZW0oJGV2ZW50KVwiXG4gICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25Db250cm9sKCRldmVudClcIlxuICAgICAgKG91dENoYW5nU3RhZ2VGbGFnTW91c2UpPVwiaGFuZGxlckNoYW5nRmxhZ01vdXNlKCRldmVudClcIiAvPlxuICA8L2Rpdj5cbn1cbkBpZiAoaXNFcnJvcigpKSB7XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtdC1bNHB4XVwiPlxuICAgIEBsZXQgY29uc3RIdG1sTWVzc2FnZSA9IHZhbGlkUmVxdWlyZWQoKT8ubWVzc2FnZSB8fCAnaTE4bl92YWxpZF9lbXB0eV9tZXNzYWdlJztcbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJsaWJzLXVpLXRleHQtZXJyb3IgbGlicy11aS1mb250LWg3clwiXG4gICAgICBbaW5uZXJIdG1sXT1cImNvbnN0SHRtbE1lc3NhZ2UgfCB0cmFuc2xhdGU6IHZhbGlkUmVxdWlyZWQoKT8uaW50ZXJwb2xhdGVQYXJhbXNcIj48L3NwYW4+XG4gIDwvZGl2PlxufVxuIl19
|