atr-components 2.0.208 → 2.0.210
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/lib/shared/form/form.component.mjs +19 -11
- package/esm2022/lib/shared/table/table-form-item/table-form-item.component.mjs +3 -3
- package/esm2022/lib/shared/upload/upload.component.mjs +1 -2
- package/fesm2022/atr-components.mjs +20 -13
- package/fesm2022/atr-components.mjs.map +1 -1
- package/lib/shared/form/form.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -73,7 +73,7 @@ export class TableFormItemComponent {
|
|
|
73
73
|
useExisting: forwardRef(() => TableFormItemComponent),
|
|
74
74
|
multi: true
|
|
75
75
|
}
|
|
76
|
-
], ngImport: i0, template: "<nz-form-item style=\"position: relative\" title=\"{{header.name}}\" nzFlex>\r\n <nz-form-control [nzSpan]=\"header.cspan || 24\" [ngSwitch]=\"header.type\">\r\n <nz-input-group [nzSuffix]=\"inputClearTpl\" *ngSwitchCase=\"'text'\">\r\n <input\r\n nz-input\r\n placeholder=\"{{header.name}}\"\r\n [attr.id]=\"header.key\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\"\r\n />\r\n\r\n </nz-input-group>\r\n\r\n <nz-select *ngSwitchCase=\"'select'\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n [nzMaxTagCount]=\"header.maxTagCount ||3\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n nzAllowClear=\"true\"\r\n [nzMode]=\"header.nzMode || 'default'\"\r\n nzServerSearch\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\"\r\n >\r\n <nz-option *ngFor=\"let o of dictList\" [nzLabel]=\"o.typeName\"\r\n [nzValue]=\"o.id\"></nz-option>\r\n </nz-select>\r\n <nz-select *ngSwitchCase=\"'selectCus'\"\r\n [nzMode]=\"header.nzMode || 'default'\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n nzAllowClear=\"true\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n [nzMaxTagCount]=\"header.maxTagCount ||3\"\r\n (ngModelChange)=\"onChange($event)\"\r\n >\r\n <nz-option *ngFor=\"let o of header.dictList\" nzCustomContent [nzLabel]=\"o.label\"\r\n [nzValue]=\"o.value\">\r\n <i class=\"select-icon\" *ngIf=\"header.icon?.isShow\" nz-icon [nzType]=\"header.icon.icon\"\r\n nzTheme=\"outline\" style=\"margin-right: 1rem;\"\r\n (click)=\"clickIcon(o.value,header,$event)\"></i>\r\n {{o.label}}\r\n </nz-option>\r\n\r\n </nz-select>\r\n <nz-cascader\r\n *ngSwitchCase=\"'cascader'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n style=\"flex: 1\" [nzAllowClear]=\"!header.disableClear\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [nzOptions]=\"header.dictList\"\r\n [(ngModel)]=\"value\"\r\n ></nz-cascader>\r\n <nz-tree-select\r\n *ngSwitchCase=\"'treeSelect'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n [nzNodes]=\"header.treeList\"\r\n nzHideUnMatched=\"true\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n [nzMultiple]=\"header.selectUrl.isMultiple\"\r\n [nzMaxTagCount]=\"header.maxTagCount || 3\"\r\n nzVirtualHeight=\"330px\"\r\n >\r\n </nz-tree-select>\r\n <nz-range-picker *ngSwitchCase=\"'dayRange'\" [(ngModel)]=\"value\" (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n style=\"width: 100%;\"\r\n nzAllowClear=\"true\"\r\n [nzPlaceHolder]=\"[header.name+'\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4']\"\r\n [nzDefaultPickerValue]=\"header.defaultVal\"\r\n ></nz-range-picker>\r\n <nz-range-picker\r\n *ngSwitchCase=\"'dateRange'\"\r\n [nzShowTime]=\"header.nzShowTime ? header.nzShowTime : false\"\r\n (ngModelChange)=\"onChange($event)\"\r\n\r\n [nzFormat]=\"header.nzShowTime && header.nzShowTime.nzFormat ?\r\n ('yyyy-MM-dd '+ header.nzShowTime.nzFormat) : 'yyyy-MM-dd HH:mm:ss'\"\r\n\r\n [nzShowNow]=\"header.nzShowTime && header.nzShowNow \"\r\n [(ngModel)]=\"value\"\r\n style=\"width: 100%;\"\r\n nzAllowClear=\"true\"\r\n [nzPlaceHolder]=\"[header.name+'\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4']\"\r\n [nzDefaultPickerValue]=\"header.defaultVal\"></nz-range-picker>\r\n <ng-container *ngSwitchCase=\"'sdate'\">\r\n <nz-date-picker style=\"width: 100%\" [nzFormat]=\"'yyyy-MM-dd'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n *ngIf=\"!header.dateMode\"\r\n nzAllowClear=\"true\"></nz-date-picker>\r\n <nz-date-picker style=\"width: 100%\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n *ngIf=\"header.dateMode\"\r\n [nzMode]=\"header.dateMode\"\r\n nzAllowClear=\"true\"></nz-date-picker>\r\n </ng-container>\r\n <nz-month-picker\r\n *ngSwitchCase=\"'smonth'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n [nzFormat]=\"'yyyy-MM'\"\r\n [nzPlaceHolder]=\"[header.name]\"\r\n nzAllowClear=\"true\"></nz-month-picker>\r\n <span class=\"label-title\">{{header.name}}</span>\r\n </nz-form-control>\r\n</nz-form-item>\r\n\r\n<ng-template #inputClearTpl>\r\n <i nz-icon class=\"ant-input-clear-icon\" nzTheme=\"fill\" nzType=\"close-circle\"\r\n *ngIf=\"!header.disableClear && value|isNotEmpty\" (click)=\"value = null;onChange()\"></i>\r\n</ng-template>\r\n", styles: [":host{margin-bottom:5px}:host .label-title{z-index:80}\n", ":host{width:100%;height:100%;display:-webkit-flex;display:flex;flex-direction:column}:host ::ng-deep .ant-modal{top:50px;padding:0}:host .ant-advanced-search-form{padding:10px 6px 6px;background:#fbfbfb;border:1px solid #d9d9d9;border-radius:6px;margin-bottom:5px}:host .select-icon:hover{color:#1890ff}:host ::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:5px}:host ::ng-deep .ant-table-column-title{font-size:.65rem}:host ::ng-deep .ant-table-tbody>tr.ant-table-row:hover>td{background:#d0eeea}:host ::ng-deep .ant-modal-header,:host ::ng-deep .ant-modal-content{border-radius:4px}:host ::ng-deep .ant-table-tbody>tr.selected:hover>td{background-color:#cfe1d0!important}:host ::ng-deep .ant-table{height:100%}:host ::ng-deep nz-pagination{position:absolute;bottom:0;right:0}:host .search-result-list{padding:1px;border:1px dashed #e9e9e9;border-radius:6px;background-color:#fff;flex:1;text-align:center;position:relative}:host [nz-form-label]{overflow:visible}:host button{margin:2px 4px}:host .collapse{margin-left:6px;font-size:12px}:host .action-area{text-align:left}:host .search-area{text-align:right}:host ::ng-deep .main-table{position:absolute;inset:0}:host ::ng-deep .main-table .ant-spin-nested-loading{height:100%}:host ::ng-deep .main-table .ant-spin-container{height:100%}:host ::ng-deep .ant-table-tbody>tr.selected>td{background-color:#cfe1d0}:host ::ng-deep .ant-table-tbody>tr>td>img{display:block;width:40%;margin:0 auto}:host ::ng-deep .ant-table-body{-ms-overflow-style:none;overflow:-moz-scrollbars-none}:host ::ng-deep .ant-table-body::-webkit-scrollbar,:host ::ng-deep .ant-table-header::-webkit-scrollbar{width:6px!important;height:6px!important}:host ::ng-deep .ant-table-body::-webkit-scrollbar-track,:host ::ng-deep .ant-table-header::-webkit-scrollbar-track{width:6px!important;cursor:pointer}:host ::ng-deep .ant-table-body::-webkit-scrollbar-thumb,:host ::ng-deep .ant-table-header::-webkit-scrollbar-thumb{background:#1890ff;border-radius:3px;cursor:pointer}:host ::ng-deep .ant-table-bordered .ant-table-thead>tr>th{border-right:1px solid #ddd}:host ::ng-deep .ant-table-header{-ms-overflow-style:none;overflow:-moz-scrollbars-none;margin-bottom:-5px!important}:host ::ng-deep .ant-table-placeholder{border-bottom:none!important;border-top:none!important}:host .tabel-colunmn{display:block;width:160px;height:300px;background:#fff;border:1px solid #ddd;padding:10px;border-radius:5px;overflow-x:hidden;overflow-y:auto;position:relative}:host .tabel-colunmn-header{position:fixed;top:0;left:0;right:0;height:30px;z-index:999;line-height:30px;border-bottom:1px solid #ddd;text-align:left;font-size:13px;padding-left:10px}:host .t-tr{background:#fff}:host .t-tr:nth-child(odd){background:#f8f9fa}:host ::ng-deep .ant-table-thead>tr>th{background:#e7ebef!important;border-radius:0;word-break:break-all;white-space:pre-wrap}:host ::ng-deep .ant-table-tbody>tr>td{word-break:break-all;white-space:pre-wrap}:host ::ng-deep .ant-table-header{background:#e7ebef!important}:host td{font-size:.65rem}:host .resize-trigger{height:100%}:host .nz-resizable-preview{border-width:0;border-right-width:1px}:host ::ng-deep .ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters>:not(.ant-table-column-sorter){position:unset}:host ::ng-deep .ant-table-tbody>tr>td{padding:5px}:host ::ng-deep .ant-table{line-height:15px}:host ::ng-deep .ant-table-middle .ant-table-footer,:host .ant-table-middle .ant-table-tbody>tr>td,:host .ant-table-middle .ant-table-thead>tr>th,:host .ant-table-middle .ant-table-title{padding:5px}:host ::ng-deep .ant-table-tbody>tr>td>img{width:35px}:host ::ng-deep .ant-modal-body{padding:10px}:host ::ng-deep .ant-table.ant-table-bordered tbody>tr>td{font-size:13px}:host ::ng-deep th{z-index:80!important}:host .left-zindex-header{z-index:90!important}:host .left-zindex{z-index:80!important}:host ::ng-deep input,:host ::ng-deep .ant-select-single:not(.ant-select-customize-input) .ant-select-selector,:host ::ng-deep .ant-picker{border-radius:5px}:host .border-text{width:100%;height:36px;line-height:36px;display:flex}:host .border-text .border-text-line{display:inline-block;border-top:1px solid #cccccc;margin-top:18px}:host .border-text .border-text-line-left{width:10px;border-left:1px solid #cccccc}:host .border-text .border-text-line-right{flex:1;border-right:1px solid #cccccc}:host .border-text .border-text-span{margin-left:5px;margin-right:5px}:host ::ng-deep .tabel-colunmn-header{position:absolute!important;top:0!important}:host ::ng-deep .ant-table-cell-fix-left,:host .ant-table-cell-fix-right{position:-webkit-sticky!important;position:sticky!important}.label-title{position:absolute;display:block;top:-7px;left:10px;background-color:#fff;color:#000;font-weight:600;font-size:12px;line-height:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "component", type: i4.NzCascaderComponent, selector: "nz-cascader, [nz-cascader]", inputs: ["nzOptionRender", "nzShowInput", "nzShowArrow", "nzAllowClear", "nzAutoFocus", "nzChangeOnSelect", "nzDisabled", "nzColumnClassName", "nzExpandTrigger", "nzValueProperty", "nzLabelRender", "nzLabelProperty", "nzNotFoundContent", "nzSize", "nzBackdrop", "nzShowSearch", "nzPlaceHolder", "nzMenuClassName", "nzMenuStyle", "nzMouseEnterDelay", "nzMouseLeaveDelay", "nzStatus", "nzTriggerAction", "nzChangeOn", "nzLoadData", "nzSuffixIcon", "nzExpandIcon", "nzOptions"], outputs: ["nzVisibleChange", "nzSelectionChange", "nzSelect", "nzClear"], exportAs: ["nzCascader"] }, { kind: "component", type: i5.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzOpen", "nzDisabledDate", "nzLocale", "nzPlaceHolder", "nzPopupStyle", "nzDropdownClassName", "nzSize", "nzStatus", "nzFormat", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzShowToday", "nzMode", "nzShowNow", "nzRanges", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzPlacement", "nzShowWeekNumber", "nzShowTime"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }, { kind: "directive", type: i5.NzRangePickerComponent, selector: "nz-range-picker", exportAs: ["nzRangePicker"] }, { kind: "directive", type: i5.NzMonthPickerComponent, selector: "nz-month-picker", exportAs: ["nzMonthPicker"] }, { kind: "directive", type: i6.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i6.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "component", type: i7.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i7.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "directive", type: i8.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: i9.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i9.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i9.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "component", type: i10.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i10.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { kind: "component", type: i11.NzTreeSelectComponent, selector: "nz-tree-select", inputs: ["nzId", "nzAllowClear", "nzShowExpand", "nzShowLine", "nzDropdownMatchSelectWidth", "nzCheckable", "nzHideUnMatched", "nzShowIcon", "nzShowSearch", "nzDisabled", "nzAsyncData", "nzMultiple", "nzDefaultExpandAll", "nzCheckStrictly", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzExpandedIcon", "nzNotFoundContent", "nzNodes", "nzOpen", "nzSize", "nzPlaceHolder", "nzDropdownStyle", "nzDropdownClassName", "nzBackdrop", "nzStatus", "nzPlacement", "nzExpandedKeys", "nzDisplayWith", "nzMaxTagCount", "nzMaxTagPlaceholder", "nzTreeTemplate"], outputs: ["nzOpenChange", "nzCleared", "nzRemoved", "nzExpandChange", "nzTreeClick", "nzTreeCheckBoxChange"], exportAs: ["nzTreeSelect"] }, { kind: "pipe", type: i12.IsNotEmptyPipe, name: "isNotEmpty" }] }); }
|
|
76
|
+
], ngImport: i0, template: "<nz-form-item style=\"position: relative\" title=\"{{header.name}}\" nzFlex>\r\n <nz-form-control [nzSpan]=\"header.cspan || 24\" [ngSwitch]=\"header.type\">\r\n <nz-input-group [nzSuffix]=\"inputClearTpl\" *ngSwitchCase=\"'text'\">\r\n <input\r\n nz-input\r\n placeholder=\"{{header.name}}\"\r\n [attr.id]=\"header.key\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\"\r\n />\r\n\r\n </nz-input-group>\r\n\r\n <nz-select *ngSwitchCase=\"'select'\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n [nzMaxTagCount]=\"header.maxTagCount ||3\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n nzAllowClear=\"true\"\r\n [nzMode]=\"header.nzMode || 'default'\"\r\n nzServerSearch\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\"\r\n >\r\n <nz-option *ngFor=\"let o of dictList\" [nzLabel]=\"o.typeName\"\r\n [nzValue]=\"o.id\"></nz-option>\r\n </nz-select>\r\n <nz-select *ngSwitchCase=\"'selectCus'\"\r\n [nzMode]=\"header.nzMode || 'default'\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n nzAllowClear=\"true\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n [nzMaxTagCount]=\"header.maxTagCount ||3\"\r\n (ngModelChange)=\"onChange($event)\"\r\n >\r\n <nz-option *ngFor=\"let o of header.dictList\" nzCustomContent [nzLabel]=\"o.label\"\r\n [nzValue]=\"o.value\">\r\n <i class=\"select-icon\" *ngIf=\"header.icon?.isShow\" nz-icon [nzType]=\"header.icon.icon\"\r\n nzTheme=\"outline\" style=\"margin-right: 1rem;\"\r\n (click)=\"clickIcon(o.value,header,$event)\"></i>\r\n {{o.label}}\r\n </nz-option>\r\n\r\n </nz-select>\r\n <nz-cascader\r\n *ngSwitchCase=\"'cascader'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n style=\"flex: 1\" [nzAllowClear]=\"!header.disableClear\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [nzOptions]=\"header.dictList\"\r\n [(ngModel)]=\"value\"\r\n ></nz-cascader>\r\n <ng-container *ngSwitchCase=\"'treeSelect'\">\r\n <nz-tree-select *ngIf=\"header.treeList\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n [nzNodes]=\"header.treeList\"\r\n nzHideUnMatched=\"true\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n [nzMultiple]=\"header.selectUrl.isMultiple\"\r\n [nzMaxTagCount]=\"header.maxTagCount || 3\"\r\n nzVirtualHeight=\"330px\"\r\n >\r\n </nz-tree-select>\r\n </ng-container>\r\n\r\n <nz-range-picker *ngSwitchCase=\"'dayRange'\" [(ngModel)]=\"value\" (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n style=\"width: 100%;\"\r\n nzAllowClear=\"true\"\r\n [nzPlaceHolder]=\"[header.name+'\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4']\"\r\n [nzDefaultPickerValue]=\"header.defaultVal\"\r\n ></nz-range-picker>\r\n <nz-range-picker\r\n *ngSwitchCase=\"'dateRange'\"\r\n [nzShowTime]=\"header.nzShowTime ? header.nzShowTime : false\"\r\n (ngModelChange)=\"onChange($event)\"\r\n\r\n [nzFormat]=\"header.nzShowTime && header.nzShowTime.nzFormat ?\r\n ('yyyy-MM-dd '+ header.nzShowTime.nzFormat) : 'yyyy-MM-dd HH:mm:ss'\"\r\n\r\n [nzShowNow]=\"header.nzShowTime && header.nzShowNow \"\r\n [(ngModel)]=\"value\"\r\n style=\"width: 100%;\"\r\n nzAllowClear=\"true\"\r\n [nzPlaceHolder]=\"[header.name+'\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4']\"\r\n [nzDefaultPickerValue]=\"header.defaultVal\"></nz-range-picker>\r\n <ng-container *ngSwitchCase=\"'sdate'\">\r\n <nz-date-picker style=\"width: 100%\" [nzFormat]=\"'yyyy-MM-dd'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n *ngIf=\"!header.dateMode\"\r\n nzAllowClear=\"true\"></nz-date-picker>\r\n <nz-date-picker style=\"width: 100%\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n *ngIf=\"header.dateMode\"\r\n [nzMode]=\"header.dateMode\"\r\n nzAllowClear=\"true\"></nz-date-picker>\r\n </ng-container>\r\n <nz-month-picker\r\n *ngSwitchCase=\"'smonth'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n [nzFormat]=\"'yyyy-MM'\"\r\n [nzPlaceHolder]=\"[header.name]\"\r\n nzAllowClear=\"true\"></nz-month-picker>\r\n <span class=\"label-title\">{{header.name}}</span>\r\n </nz-form-control>\r\n</nz-form-item>\r\n\r\n<ng-template #inputClearTpl>\r\n <i nz-icon class=\"ant-input-clear-icon\" nzTheme=\"fill\" nzType=\"close-circle\"\r\n *ngIf=\"!header.disableClear && value|isNotEmpty\" (click)=\"value = null;onChange()\"></i>\r\n</ng-template>\r\n", styles: [":host{margin-bottom:5px}:host .label-title{z-index:80}\n", ":host{width:100%;height:100%;display:-webkit-flex;display:flex;flex-direction:column}:host ::ng-deep .ant-modal{top:50px;padding:0}:host .ant-advanced-search-form{padding:10px 6px 6px;background:#fbfbfb;border:1px solid #d9d9d9;border-radius:6px;margin-bottom:5px}:host .select-icon:hover{color:#1890ff}:host ::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:5px}:host ::ng-deep .ant-table-column-title{font-size:.65rem}:host ::ng-deep .ant-table-tbody>tr.ant-table-row:hover>td{background:#d0eeea}:host ::ng-deep .ant-modal-header,:host ::ng-deep .ant-modal-content{border-radius:4px}:host ::ng-deep .ant-table-tbody>tr.selected:hover>td{background-color:#cfe1d0!important}:host ::ng-deep .ant-table{height:100%}:host ::ng-deep nz-pagination{position:absolute;bottom:0;right:0}:host .search-result-list{padding:1px;border:1px dashed #e9e9e9;border-radius:6px;background-color:#fff;flex:1;text-align:center;position:relative}:host [nz-form-label]{overflow:visible}:host button{margin:2px 4px}:host .collapse{margin-left:6px;font-size:12px}:host .action-area{text-align:left}:host .search-area{text-align:right}:host ::ng-deep .main-table{position:absolute;inset:0}:host ::ng-deep .main-table .ant-spin-nested-loading{height:100%}:host ::ng-deep .main-table .ant-spin-container{height:100%}:host ::ng-deep .ant-table-tbody>tr.selected>td{background-color:#cfe1d0}:host ::ng-deep .ant-table-tbody>tr>td>img{display:block;width:40%;margin:0 auto}:host ::ng-deep .ant-table-body{-ms-overflow-style:none;overflow:-moz-scrollbars-none}:host ::ng-deep .ant-table-body::-webkit-scrollbar,:host ::ng-deep .ant-table-header::-webkit-scrollbar{width:6px!important;height:6px!important}:host ::ng-deep .ant-table-body::-webkit-scrollbar-track,:host ::ng-deep .ant-table-header::-webkit-scrollbar-track{width:6px!important;cursor:pointer}:host ::ng-deep .ant-table-body::-webkit-scrollbar-thumb,:host ::ng-deep .ant-table-header::-webkit-scrollbar-thumb{background:#1890ff;border-radius:3px;cursor:pointer}:host ::ng-deep .ant-table-bordered .ant-table-thead>tr>th{border-right:1px solid #ddd}:host ::ng-deep .ant-table-header{-ms-overflow-style:none;overflow:-moz-scrollbars-none;margin-bottom:-5px!important}:host ::ng-deep .ant-table-placeholder{border-bottom:none!important;border-top:none!important}:host .tabel-colunmn{display:block;width:160px;height:300px;background:#fff;border:1px solid #ddd;padding:10px;border-radius:5px;overflow-x:hidden;overflow-y:auto;position:relative}:host .tabel-colunmn-header{position:fixed;top:0;left:0;right:0;height:30px;z-index:999;line-height:30px;border-bottom:1px solid #ddd;text-align:left;font-size:13px;padding-left:10px}:host .t-tr{background:#fff}:host .t-tr:nth-child(odd){background:#f8f9fa}:host ::ng-deep .ant-table-thead>tr>th{background:#e7ebef!important;border-radius:0;word-break:break-all;white-space:pre-wrap}:host ::ng-deep .ant-table-tbody>tr>td{word-break:break-all;white-space:pre-wrap}:host ::ng-deep .ant-table-header{background:#e7ebef!important}:host td{font-size:.65rem}:host .resize-trigger{height:100%}:host .nz-resizable-preview{border-width:0;border-right-width:1px}:host ::ng-deep .ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters>:not(.ant-table-column-sorter){position:unset}:host ::ng-deep .ant-table-tbody>tr>td{padding:5px}:host ::ng-deep .ant-table{line-height:15px}:host ::ng-deep .ant-table-middle .ant-table-footer,:host .ant-table-middle .ant-table-tbody>tr>td,:host .ant-table-middle .ant-table-thead>tr>th,:host .ant-table-middle .ant-table-title{padding:5px}:host ::ng-deep .ant-table-tbody>tr>td>img{width:35px}:host ::ng-deep .ant-modal-body{padding:10px}:host ::ng-deep .ant-table.ant-table-bordered tbody>tr>td{font-size:13px}:host ::ng-deep th{z-index:80!important}:host .left-zindex-header{z-index:90!important}:host .left-zindex{z-index:80!important}:host ::ng-deep input,:host ::ng-deep .ant-select-single:not(.ant-select-customize-input) .ant-select-selector,:host ::ng-deep .ant-picker{border-radius:5px}:host .border-text{width:100%;height:36px;line-height:36px;display:flex}:host .border-text .border-text-line{display:inline-block;border-top:1px solid #cccccc;margin-top:18px}:host .border-text .border-text-line-left{width:10px;border-left:1px solid #cccccc}:host .border-text .border-text-line-right{flex:1;border-right:1px solid #cccccc}:host .border-text .border-text-span{margin-left:5px;margin-right:5px}:host ::ng-deep .tabel-colunmn-header{position:absolute!important;top:0!important}:host ::ng-deep .ant-table-cell-fix-left,:host .ant-table-cell-fix-right{position:-webkit-sticky!important;position:sticky!important}.label-title{position:absolute;display:block;top:-7px;left:10px;background-color:#fff;color:#000;font-weight:600;font-size:12px;line-height:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "component", type: i4.NzCascaderComponent, selector: "nz-cascader, [nz-cascader]", inputs: ["nzOptionRender", "nzShowInput", "nzShowArrow", "nzAllowClear", "nzAutoFocus", "nzChangeOnSelect", "nzDisabled", "nzColumnClassName", "nzExpandTrigger", "nzValueProperty", "nzLabelRender", "nzLabelProperty", "nzNotFoundContent", "nzSize", "nzBackdrop", "nzShowSearch", "nzPlaceHolder", "nzMenuClassName", "nzMenuStyle", "nzMouseEnterDelay", "nzMouseLeaveDelay", "nzStatus", "nzTriggerAction", "nzChangeOn", "nzLoadData", "nzSuffixIcon", "nzExpandIcon", "nzOptions"], outputs: ["nzVisibleChange", "nzSelectionChange", "nzSelect", "nzClear"], exportAs: ["nzCascader"] }, { kind: "component", type: i5.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzOpen", "nzDisabledDate", "nzLocale", "nzPlaceHolder", "nzPopupStyle", "nzDropdownClassName", "nzSize", "nzStatus", "nzFormat", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzShowToday", "nzMode", "nzShowNow", "nzRanges", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzPlacement", "nzShowWeekNumber", "nzShowTime"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }, { kind: "directive", type: i5.NzRangePickerComponent, selector: "nz-range-picker", exportAs: ["nzRangePicker"] }, { kind: "directive", type: i5.NzMonthPickerComponent, selector: "nz-month-picker", exportAs: ["nzMonthPicker"] }, { kind: "directive", type: i6.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i6.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "component", type: i7.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i7.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "directive", type: i8.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: i9.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i9.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i9.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "component", type: i10.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i10.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { kind: "component", type: i11.NzTreeSelectComponent, selector: "nz-tree-select", inputs: ["nzId", "nzAllowClear", "nzShowExpand", "nzShowLine", "nzDropdownMatchSelectWidth", "nzCheckable", "nzHideUnMatched", "nzShowIcon", "nzShowSearch", "nzDisabled", "nzAsyncData", "nzMultiple", "nzDefaultExpandAll", "nzCheckStrictly", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzExpandedIcon", "nzNotFoundContent", "nzNodes", "nzOpen", "nzSize", "nzPlaceHolder", "nzDropdownStyle", "nzDropdownClassName", "nzBackdrop", "nzStatus", "nzPlacement", "nzExpandedKeys", "nzDisplayWith", "nzMaxTagCount", "nzMaxTagPlaceholder", "nzTreeTemplate"], outputs: ["nzOpenChange", "nzCleared", "nzRemoved", "nzExpandChange", "nzTreeClick", "nzTreeCheckBoxChange"], exportAs: ["nzTreeSelect"] }, { kind: "pipe", type: i12.IsNotEmptyPipe, name: "isNotEmpty" }] }); }
|
|
77
77
|
}
|
|
78
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: TableFormItemComponent, decorators: [{
|
|
79
79
|
type: Component,
|
|
@@ -83,7 +83,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
83
83
|
useExisting: forwardRef(() => TableFormItemComponent),
|
|
84
84
|
multi: true
|
|
85
85
|
}
|
|
86
|
-
], template: "<nz-form-item style=\"position: relative\" title=\"{{header.name}}\" nzFlex>\r\n <nz-form-control [nzSpan]=\"header.cspan || 24\" [ngSwitch]=\"header.type\">\r\n <nz-input-group [nzSuffix]=\"inputClearTpl\" *ngSwitchCase=\"'text'\">\r\n <input\r\n nz-input\r\n placeholder=\"{{header.name}}\"\r\n [attr.id]=\"header.key\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\"\r\n />\r\n\r\n </nz-input-group>\r\n\r\n <nz-select *ngSwitchCase=\"'select'\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n [nzMaxTagCount]=\"header.maxTagCount ||3\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n nzAllowClear=\"true\"\r\n [nzMode]=\"header.nzMode || 'default'\"\r\n nzServerSearch\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\"\r\n >\r\n <nz-option *ngFor=\"let o of dictList\" [nzLabel]=\"o.typeName\"\r\n [nzValue]=\"o.id\"></nz-option>\r\n </nz-select>\r\n <nz-select *ngSwitchCase=\"'selectCus'\"\r\n [nzMode]=\"header.nzMode || 'default'\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n nzAllowClear=\"true\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n [nzMaxTagCount]=\"header.maxTagCount ||3\"\r\n (ngModelChange)=\"onChange($event)\"\r\n >\r\n <nz-option *ngFor=\"let o of header.dictList\" nzCustomContent [nzLabel]=\"o.label\"\r\n [nzValue]=\"o.value\">\r\n <i class=\"select-icon\" *ngIf=\"header.icon?.isShow\" nz-icon [nzType]=\"header.icon.icon\"\r\n nzTheme=\"outline\" style=\"margin-right: 1rem;\"\r\n (click)=\"clickIcon(o.value,header,$event)\"></i>\r\n {{o.label}}\r\n </nz-option>\r\n\r\n </nz-select>\r\n <nz-cascader\r\n *ngSwitchCase=\"'cascader'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n style=\"flex: 1\" [nzAllowClear]=\"!header.disableClear\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [nzOptions]=\"header.dictList\"\r\n [(ngModel)]=\"value\"\r\n ></nz-cascader>\r\n <nz-tree-select\r\n *ngSwitchCase=\"'treeSelect'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n [nzNodes]=\"header.treeList\"\r\n nzHideUnMatched=\"true\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n [nzMultiple]=\"header.selectUrl.isMultiple\"\r\n [nzMaxTagCount]=\"header.maxTagCount || 3\"\r\n nzVirtualHeight=\"330px\"\r\n >\r\n </nz-tree-select>\r\n <nz-range-picker *ngSwitchCase=\"'dayRange'\" [(ngModel)]=\"value\" (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n style=\"width: 100%;\"\r\n nzAllowClear=\"true\"\r\n [nzPlaceHolder]=\"[header.name+'\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4']\"\r\n [nzDefaultPickerValue]=\"header.defaultVal\"\r\n ></nz-range-picker>\r\n <nz-range-picker\r\n *ngSwitchCase=\"'dateRange'\"\r\n [nzShowTime]=\"header.nzShowTime ? header.nzShowTime : false\"\r\n (ngModelChange)=\"onChange($event)\"\r\n\r\n [nzFormat]=\"header.nzShowTime && header.nzShowTime.nzFormat ?\r\n ('yyyy-MM-dd '+ header.nzShowTime.nzFormat) : 'yyyy-MM-dd HH:mm:ss'\"\r\n\r\n [nzShowNow]=\"header.nzShowTime && header.nzShowNow \"\r\n [(ngModel)]=\"value\"\r\n style=\"width: 100%;\"\r\n nzAllowClear=\"true\"\r\n [nzPlaceHolder]=\"[header.name+'\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4']\"\r\n [nzDefaultPickerValue]=\"header.defaultVal\"></nz-range-picker>\r\n <ng-container *ngSwitchCase=\"'sdate'\">\r\n <nz-date-picker style=\"width: 100%\" [nzFormat]=\"'yyyy-MM-dd'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n *ngIf=\"!header.dateMode\"\r\n nzAllowClear=\"true\"></nz-date-picker>\r\n <nz-date-picker style=\"width: 100%\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n *ngIf=\"header.dateMode\"\r\n [nzMode]=\"header.dateMode\"\r\n nzAllowClear=\"true\"></nz-date-picker>\r\n </ng-container>\r\n <nz-month-picker\r\n *ngSwitchCase=\"'smonth'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n [nzFormat]=\"'yyyy-MM'\"\r\n [nzPlaceHolder]=\"[header.name]\"\r\n nzAllowClear=\"true\"></nz-month-picker>\r\n <span class=\"label-title\">{{header.name}}</span>\r\n </nz-form-control>\r\n</nz-form-item>\r\n\r\n<ng-template #inputClearTpl>\r\n <i nz-icon class=\"ant-input-clear-icon\" nzTheme=\"fill\" nzType=\"close-circle\"\r\n *ngIf=\"!header.disableClear && value|isNotEmpty\" (click)=\"value = null;onChange()\"></i>\r\n</ng-template>\r\n", styles: [":host{margin-bottom:5px}:host .label-title{z-index:80}\n", ":host{width:100%;height:100%;display:-webkit-flex;display:flex;flex-direction:column}:host ::ng-deep .ant-modal{top:50px;padding:0}:host .ant-advanced-search-form{padding:10px 6px 6px;background:#fbfbfb;border:1px solid #d9d9d9;border-radius:6px;margin-bottom:5px}:host .select-icon:hover{color:#1890ff}:host ::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:5px}:host ::ng-deep .ant-table-column-title{font-size:.65rem}:host ::ng-deep .ant-table-tbody>tr.ant-table-row:hover>td{background:#d0eeea}:host ::ng-deep .ant-modal-header,:host ::ng-deep .ant-modal-content{border-radius:4px}:host ::ng-deep .ant-table-tbody>tr.selected:hover>td{background-color:#cfe1d0!important}:host ::ng-deep .ant-table{height:100%}:host ::ng-deep nz-pagination{position:absolute;bottom:0;right:0}:host .search-result-list{padding:1px;border:1px dashed #e9e9e9;border-radius:6px;background-color:#fff;flex:1;text-align:center;position:relative}:host [nz-form-label]{overflow:visible}:host button{margin:2px 4px}:host .collapse{margin-left:6px;font-size:12px}:host .action-area{text-align:left}:host .search-area{text-align:right}:host ::ng-deep .main-table{position:absolute;inset:0}:host ::ng-deep .main-table .ant-spin-nested-loading{height:100%}:host ::ng-deep .main-table .ant-spin-container{height:100%}:host ::ng-deep .ant-table-tbody>tr.selected>td{background-color:#cfe1d0}:host ::ng-deep .ant-table-tbody>tr>td>img{display:block;width:40%;margin:0 auto}:host ::ng-deep .ant-table-body{-ms-overflow-style:none;overflow:-moz-scrollbars-none}:host ::ng-deep .ant-table-body::-webkit-scrollbar,:host ::ng-deep .ant-table-header::-webkit-scrollbar{width:6px!important;height:6px!important}:host ::ng-deep .ant-table-body::-webkit-scrollbar-track,:host ::ng-deep .ant-table-header::-webkit-scrollbar-track{width:6px!important;cursor:pointer}:host ::ng-deep .ant-table-body::-webkit-scrollbar-thumb,:host ::ng-deep .ant-table-header::-webkit-scrollbar-thumb{background:#1890ff;border-radius:3px;cursor:pointer}:host ::ng-deep .ant-table-bordered .ant-table-thead>tr>th{border-right:1px solid #ddd}:host ::ng-deep .ant-table-header{-ms-overflow-style:none;overflow:-moz-scrollbars-none;margin-bottom:-5px!important}:host ::ng-deep .ant-table-placeholder{border-bottom:none!important;border-top:none!important}:host .tabel-colunmn{display:block;width:160px;height:300px;background:#fff;border:1px solid #ddd;padding:10px;border-radius:5px;overflow-x:hidden;overflow-y:auto;position:relative}:host .tabel-colunmn-header{position:fixed;top:0;left:0;right:0;height:30px;z-index:999;line-height:30px;border-bottom:1px solid #ddd;text-align:left;font-size:13px;padding-left:10px}:host .t-tr{background:#fff}:host .t-tr:nth-child(odd){background:#f8f9fa}:host ::ng-deep .ant-table-thead>tr>th{background:#e7ebef!important;border-radius:0;word-break:break-all;white-space:pre-wrap}:host ::ng-deep .ant-table-tbody>tr>td{word-break:break-all;white-space:pre-wrap}:host ::ng-deep .ant-table-header{background:#e7ebef!important}:host td{font-size:.65rem}:host .resize-trigger{height:100%}:host .nz-resizable-preview{border-width:0;border-right-width:1px}:host ::ng-deep .ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters>:not(.ant-table-column-sorter){position:unset}:host ::ng-deep .ant-table-tbody>tr>td{padding:5px}:host ::ng-deep .ant-table{line-height:15px}:host ::ng-deep .ant-table-middle .ant-table-footer,:host .ant-table-middle .ant-table-tbody>tr>td,:host .ant-table-middle .ant-table-thead>tr>th,:host .ant-table-middle .ant-table-title{padding:5px}:host ::ng-deep .ant-table-tbody>tr>td>img{width:35px}:host ::ng-deep .ant-modal-body{padding:10px}:host ::ng-deep .ant-table.ant-table-bordered tbody>tr>td{font-size:13px}:host ::ng-deep th{z-index:80!important}:host .left-zindex-header{z-index:90!important}:host .left-zindex{z-index:80!important}:host ::ng-deep input,:host ::ng-deep .ant-select-single:not(.ant-select-customize-input) .ant-select-selector,:host ::ng-deep .ant-picker{border-radius:5px}:host .border-text{width:100%;height:36px;line-height:36px;display:flex}:host .border-text .border-text-line{display:inline-block;border-top:1px solid #cccccc;margin-top:18px}:host .border-text .border-text-line-left{width:10px;border-left:1px solid #cccccc}:host .border-text .border-text-line-right{flex:1;border-right:1px solid #cccccc}:host .border-text .border-text-span{margin-left:5px;margin-right:5px}:host ::ng-deep .tabel-colunmn-header{position:absolute!important;top:0!important}:host ::ng-deep .ant-table-cell-fix-left,:host .ant-table-cell-fix-right{position:-webkit-sticky!important;position:sticky!important}.label-title{position:absolute;display:block;top:-7px;left:10px;background-color:#fff;color:#000;font-weight:600;font-size:12px;line-height:12px}\n"] }]
|
|
86
|
+
], template: "<nz-form-item style=\"position: relative\" title=\"{{header.name}}\" nzFlex>\r\n <nz-form-control [nzSpan]=\"header.cspan || 24\" [ngSwitch]=\"header.type\">\r\n <nz-input-group [nzSuffix]=\"inputClearTpl\" *ngSwitchCase=\"'text'\">\r\n <input\r\n nz-input\r\n placeholder=\"{{header.name}}\"\r\n [attr.id]=\"header.key\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\"\r\n />\r\n\r\n </nz-input-group>\r\n\r\n <nz-select *ngSwitchCase=\"'select'\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n [nzMaxTagCount]=\"header.maxTagCount ||3\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n nzAllowClear=\"true\"\r\n [nzMode]=\"header.nzMode || 'default'\"\r\n nzServerSearch\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onChange($event)\"\r\n >\r\n <nz-option *ngFor=\"let o of dictList\" [nzLabel]=\"o.typeName\"\r\n [nzValue]=\"o.id\"></nz-option>\r\n </nz-select>\r\n <nz-select *ngSwitchCase=\"'selectCus'\"\r\n [nzMode]=\"header.nzMode || 'default'\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n nzAllowClear=\"true\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n [nzMaxTagCount]=\"header.maxTagCount ||3\"\r\n (ngModelChange)=\"onChange($event)\"\r\n >\r\n <nz-option *ngFor=\"let o of header.dictList\" nzCustomContent [nzLabel]=\"o.label\"\r\n [nzValue]=\"o.value\">\r\n <i class=\"select-icon\" *ngIf=\"header.icon?.isShow\" nz-icon [nzType]=\"header.icon.icon\"\r\n nzTheme=\"outline\" style=\"margin-right: 1rem;\"\r\n (click)=\"clickIcon(o.value,header,$event)\"></i>\r\n {{o.label}}\r\n </nz-option>\r\n\r\n </nz-select>\r\n <nz-cascader\r\n *ngSwitchCase=\"'cascader'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n style=\"flex: 1\" [nzAllowClear]=\"!header.disableClear\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [nzOptions]=\"header.dictList\"\r\n [(ngModel)]=\"value\"\r\n ></nz-cascader>\r\n <ng-container *ngSwitchCase=\"'treeSelect'\">\r\n <nz-tree-select *ngIf=\"header.treeList\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [nzAllowClear]=\"!header.disableClear\"\r\n [nzNodes]=\"header.treeList\"\r\n nzHideUnMatched=\"true\"\r\n nzPlaceHolder=\"{{header.placeholder||header.name}}\"\r\n [nzShowSearch]=\"true\"\r\n [(ngModel)]=\"value\"\r\n [nzMultiple]=\"header.selectUrl.isMultiple\"\r\n [nzMaxTagCount]=\"header.maxTagCount || 3\"\r\n nzVirtualHeight=\"330px\"\r\n >\r\n </nz-tree-select>\r\n </ng-container>\r\n\r\n <nz-range-picker *ngSwitchCase=\"'dayRange'\" [(ngModel)]=\"value\" (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n style=\"width: 100%;\"\r\n nzAllowClear=\"true\"\r\n [nzPlaceHolder]=\"[header.name+'\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4']\"\r\n [nzDefaultPickerValue]=\"header.defaultVal\"\r\n ></nz-range-picker>\r\n <nz-range-picker\r\n *ngSwitchCase=\"'dateRange'\"\r\n [nzShowTime]=\"header.nzShowTime ? header.nzShowTime : false\"\r\n (ngModelChange)=\"onChange($event)\"\r\n\r\n [nzFormat]=\"header.nzShowTime && header.nzShowTime.nzFormat ?\r\n ('yyyy-MM-dd '+ header.nzShowTime.nzFormat) : 'yyyy-MM-dd HH:mm:ss'\"\r\n\r\n [nzShowNow]=\"header.nzShowTime && header.nzShowNow \"\r\n [(ngModel)]=\"value\"\r\n style=\"width: 100%;\"\r\n nzAllowClear=\"true\"\r\n [nzPlaceHolder]=\"[header.name+'\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4']\"\r\n [nzDefaultPickerValue]=\"header.defaultVal\"></nz-range-picker>\r\n <ng-container *ngSwitchCase=\"'sdate'\">\r\n <nz-date-picker style=\"width: 100%\" [nzFormat]=\"'yyyy-MM-dd'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n *ngIf=\"!header.dateMode\"\r\n nzAllowClear=\"true\"></nz-date-picker>\r\n <nz-date-picker style=\"width: 100%\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n *ngIf=\"header.dateMode\"\r\n [nzMode]=\"header.dateMode\"\r\n nzAllowClear=\"true\"></nz-date-picker>\r\n </ng-container>\r\n <nz-month-picker\r\n *ngSwitchCase=\"'smonth'\"\r\n (ngModelChange)=\"onChange($event)\"\r\n [(ngModel)]=\"value\"\r\n [nzFormat]=\"'yyyy-MM'\"\r\n [nzPlaceHolder]=\"[header.name]\"\r\n nzAllowClear=\"true\"></nz-month-picker>\r\n <span class=\"label-title\">{{header.name}}</span>\r\n </nz-form-control>\r\n</nz-form-item>\r\n\r\n<ng-template #inputClearTpl>\r\n <i nz-icon class=\"ant-input-clear-icon\" nzTheme=\"fill\" nzType=\"close-circle\"\r\n *ngIf=\"!header.disableClear && value|isNotEmpty\" (click)=\"value = null;onChange()\"></i>\r\n</ng-template>\r\n", styles: [":host{margin-bottom:5px}:host .label-title{z-index:80}\n", ":host{width:100%;height:100%;display:-webkit-flex;display:flex;flex-direction:column}:host ::ng-deep .ant-modal{top:50px;padding:0}:host .ant-advanced-search-form{padding:10px 6px 6px;background:#fbfbfb;border:1px solid #d9d9d9;border-radius:6px;margin-bottom:5px}:host .select-icon:hover{color:#1890ff}:host ::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:5px}:host ::ng-deep .ant-table-column-title{font-size:.65rem}:host ::ng-deep .ant-table-tbody>tr.ant-table-row:hover>td{background:#d0eeea}:host ::ng-deep .ant-modal-header,:host ::ng-deep .ant-modal-content{border-radius:4px}:host ::ng-deep .ant-table-tbody>tr.selected:hover>td{background-color:#cfe1d0!important}:host ::ng-deep .ant-table{height:100%}:host ::ng-deep nz-pagination{position:absolute;bottom:0;right:0}:host .search-result-list{padding:1px;border:1px dashed #e9e9e9;border-radius:6px;background-color:#fff;flex:1;text-align:center;position:relative}:host [nz-form-label]{overflow:visible}:host button{margin:2px 4px}:host .collapse{margin-left:6px;font-size:12px}:host .action-area{text-align:left}:host .search-area{text-align:right}:host ::ng-deep .main-table{position:absolute;inset:0}:host ::ng-deep .main-table .ant-spin-nested-loading{height:100%}:host ::ng-deep .main-table .ant-spin-container{height:100%}:host ::ng-deep .ant-table-tbody>tr.selected>td{background-color:#cfe1d0}:host ::ng-deep .ant-table-tbody>tr>td>img{display:block;width:40%;margin:0 auto}:host ::ng-deep .ant-table-body{-ms-overflow-style:none;overflow:-moz-scrollbars-none}:host ::ng-deep .ant-table-body::-webkit-scrollbar,:host ::ng-deep .ant-table-header::-webkit-scrollbar{width:6px!important;height:6px!important}:host ::ng-deep .ant-table-body::-webkit-scrollbar-track,:host ::ng-deep .ant-table-header::-webkit-scrollbar-track{width:6px!important;cursor:pointer}:host ::ng-deep .ant-table-body::-webkit-scrollbar-thumb,:host ::ng-deep .ant-table-header::-webkit-scrollbar-thumb{background:#1890ff;border-radius:3px;cursor:pointer}:host ::ng-deep .ant-table-bordered .ant-table-thead>tr>th{border-right:1px solid #ddd}:host ::ng-deep .ant-table-header{-ms-overflow-style:none;overflow:-moz-scrollbars-none;margin-bottom:-5px!important}:host ::ng-deep .ant-table-placeholder{border-bottom:none!important;border-top:none!important}:host .tabel-colunmn{display:block;width:160px;height:300px;background:#fff;border:1px solid #ddd;padding:10px;border-radius:5px;overflow-x:hidden;overflow-y:auto;position:relative}:host .tabel-colunmn-header{position:fixed;top:0;left:0;right:0;height:30px;z-index:999;line-height:30px;border-bottom:1px solid #ddd;text-align:left;font-size:13px;padding-left:10px}:host .t-tr{background:#fff}:host .t-tr:nth-child(odd){background:#f8f9fa}:host ::ng-deep .ant-table-thead>tr>th{background:#e7ebef!important;border-radius:0;word-break:break-all;white-space:pre-wrap}:host ::ng-deep .ant-table-tbody>tr>td{word-break:break-all;white-space:pre-wrap}:host ::ng-deep .ant-table-header{background:#e7ebef!important}:host td{font-size:.65rem}:host .resize-trigger{height:100%}:host .nz-resizable-preview{border-width:0;border-right-width:1px}:host ::ng-deep .ant-table-thead>tr>th .ant-table-header-column .ant-table-column-sorters>:not(.ant-table-column-sorter){position:unset}:host ::ng-deep .ant-table-tbody>tr>td{padding:5px}:host ::ng-deep .ant-table{line-height:15px}:host ::ng-deep .ant-table-middle .ant-table-footer,:host .ant-table-middle .ant-table-tbody>tr>td,:host .ant-table-middle .ant-table-thead>tr>th,:host .ant-table-middle .ant-table-title{padding:5px}:host ::ng-deep .ant-table-tbody>tr>td>img{width:35px}:host ::ng-deep .ant-modal-body{padding:10px}:host ::ng-deep .ant-table.ant-table-bordered tbody>tr>td{font-size:13px}:host ::ng-deep th{z-index:80!important}:host .left-zindex-header{z-index:90!important}:host .left-zindex{z-index:80!important}:host ::ng-deep input,:host ::ng-deep .ant-select-single:not(.ant-select-customize-input) .ant-select-selector,:host ::ng-deep .ant-picker{border-radius:5px}:host .border-text{width:100%;height:36px;line-height:36px;display:flex}:host .border-text .border-text-line{display:inline-block;border-top:1px solid #cccccc;margin-top:18px}:host .border-text .border-text-line-left{width:10px;border-left:1px solid #cccccc}:host .border-text .border-text-line-right{flex:1;border-right:1px solid #cccccc}:host .border-text .border-text-span{margin-left:5px;margin-right:5px}:host ::ng-deep .tabel-colunmn-header{position:absolute!important;top:0!important}:host ::ng-deep .ant-table-cell-fix-left,:host .ant-table-cell-fix-right{position:-webkit-sticky!important;position:sticky!important}.label-title{position:absolute;display:block;top:-7px;left:10px;background-color:#fff;color:#000;font-weight:600;font-size:12px;line-height:12px}\n"] }]
|
|
87
87
|
}], ctorParameters: () => [], propDecorators: { header: [{
|
|
88
88
|
type: Input
|
|
89
89
|
}], value: [{
|
|
@@ -93,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
93
93
|
}], headerAction: [{
|
|
94
94
|
type: Output
|
|
95
95
|
}] } });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZm9ybS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvdGFibGUvdGFibGUtZm9ybS1pdGVtL3RhYmxlLWZvcm0taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL3RhYmxlL3RhYmxlLWZvcm0taXRlbS90YWJsZS1mb3JtLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQXVCLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQWMzRCxNQUFNLE9BQU8sc0JBQXNCO0lBVS9CO1FBUFMsYUFBUSxHQUFPLEVBQUUsQ0FBQztRQUNqQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFJM0QsV0FBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUE7SUFHdkIsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQXFCO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtJQUVyQyxDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLENBQUE7UUFDOUIsSUFBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCO1NBQ3ZEO1FBQ0QsSUFBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxtQkFBbUI7U0FDaEQ7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVMsRUFBRSxJQUFRO1FBQzVCLHFCQUFxQjtRQUNyQixJQUFJLE1BQU0sR0FBZ0I7WUFDdEIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2hCLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRztZQUNkLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLEtBQUs7U0FDZixDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFbEMsQ0FBQztJQUNELFNBQVMsQ0FBQyxLQUFTLEVBQUUsSUFBb0IsRUFBRSxNQUFVO1FBQ2pELE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QiwwQkFBMEI7UUFDMUIsSUFBSSxNQUFNLEdBQWdCO1lBQ3RCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUEsQ0FBQyxDQUFBLEVBQUU7WUFDMUMsSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUUsS0FBSztTQUNmLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsQyxDQUFDOzhHQWxFUSxzQkFBc0I7a0dBQXRCLHNCQUFzQiw2SkFScEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2dCQUNyRCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osMEJDaEJMLDR1S0FxSEE7OzJGRG5HYSxzQkFBc0I7a0JBWmxDLFNBQVM7K0JBQ0kscUJBQXFCLGFBR3BCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDOzRCQUNyRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjt3REFHUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge056TWVzc2FnZVNlcnZpY2V9IGZyb20gXCJuZy16b3Jyby1hbnRkL21lc3NhZ2VcIjtcclxuaW1wb3J0IHtBdHJRdWVyeUhlYWRlciwgVGFibGVBY3Rpb259IGZyb20gXCIuLi8uLi8uLi8uLi9jb3JlL2Jhc2UvYXRyLWNvbW1vblwiO1xyXG5pbXBvcnQge1Rvb2xzVXRpbH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvcmUvdXRpbHMvVG9vbHNVdGlsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLXRhYmxlLWZvcm0taXRlbScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtZm9ybS1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3RhYmxlLWZvcm0taXRlbS5jb21wb25lbnQuc2NzcycsICcuLi90YWJsZS5jb21wb25lbnQubGVzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGFibGVGb3JtSXRlbUNvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVGb3JtSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gICAgQElucHV0KCkgaGVhZGVyOkF0clF1ZXJ5SGVhZGVyIHxhbnk7XHJcbiAgICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nIHwgYW55OyAvLyDnu4Tku7blr7nlupTnmoQg4oCcIG5nTW9kZWwg4oCdXHJcbiAgICBASW5wdXQoKSBkaWN0TGlzdDphbnkgPSBbXTtcclxuICAgIEBPdXRwdXQoKSBoZWFkZXJBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmxlQWN0aW9uPigpO1xyXG5cclxuICAgIG9uQ2hhbmdlTGlzdGVuZXI6IGFueTsgLy8g5pS55Y+Y5YC85Zue6LCDXHJcbiAgICBvblRvdWNoZWRMaXN0ZW5lcjogYW55OyAvLyDkuqTkupLlm57osINcclxuICBpc051bGwgPSBUb29sc1V0aWwuaXNOdWxsXHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgYW55W10pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3JlZ2lzdGVyT25DaGFuZ2UnKVxyXG4gICAgICAgIHRoaXMub25DaGFuZ2VMaXN0ZW5lciA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zb2xlLmxvZygncmVnaXN0ZXJPblRvdWNoZWQnKVxyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkTGlzdGVuZXIgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKGU/OmFueSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdmb3JtIGNoYW5nZScsdGhpcy52YWx1ZSlcclxuICAgICAgICBjb25zb2xlLmxvZygnZm9ybSBjaGFuZ2UgZScsZSlcclxuICAgICAgICBpZih0aGlzLm9uQ2hhbmdlTGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUxpc3RlbmVyKGUpOyAvLyDlkYror4lmb3Jt77yM5L2g55qE6KGo5Y2V5YC85pS55Y+Y5oiQ5LqGcGF5bG9hZFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLm9uVG91Y2hlZExpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkTGlzdGVuZXIoKTsgLy8g5ZGK6K+JZm9ybe+8jOS9oOeahOihqOWNleacieS6pOS6kuWPkeeUn1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RDaGFuZ2UodmFsdWU6YW55LCBpdGVtOmFueSkge1xyXG4gICAgICAgIC8vY29uc29sZS5sb2codmFsdWUpO1xyXG4gICAgICAgIGxldCBhY3Rpb246IFRhYmxlQWN0aW9uID0ge1xyXG4gICAgICAgICAgICBuYW1lOiBpdGVtLmxhYmVsLFxyXG4gICAgICAgICAgICBjb2RlOiBpdGVtLmtleSxcclxuICAgICAgICAgICAgZGF0YTogaXRlbSxcclxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5oZWFkZXJBY3Rpb24uZW1pdChhY3Rpb24pXHJcblxyXG4gICAgfVxyXG4gICAgY2xpY2tJY29uKHZhbHVlOmFueSwgaXRlbTogQXRyUXVlcnlIZWFkZXIsICRldmVudDphbnkpIHtcclxuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyh2YWx1ZSxpdGVtKTtcclxuICAgICAgICBsZXQgYWN0aW9uOiBUYWJsZUFjdGlvbiA9IHtcclxuICAgICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgICBjb2RlOiBpdGVtLmljb24/LmNvZGUgPyBpdGVtLmljb24/LmNvZGU6XCJcIixcclxuICAgICAgICAgICAgZGF0YTogaXRlbSxcclxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5oZWFkZXJBY3Rpb24uZW1pdChhY3Rpb24pXHJcbiAgICB9XHJcbn1cclxuIiwiPG56LWZvcm0taXRlbSBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiIHRpdGxlPVwie3toZWFkZXIubmFtZX19XCIgbnpGbGV4PlxyXG4gIDxuei1mb3JtLWNvbnRyb2wgW256U3Bhbl09XCJoZWFkZXIuY3NwYW4gfHwgMjRcIiBbbmdTd2l0Y2hdPVwiaGVhZGVyLnR5cGVcIj5cclxuICAgIDxuei1pbnB1dC1ncm91cCBbbnpTdWZmaXhdPVwiaW5wdXRDbGVhclRwbFwiICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgbnotaW5wdXRcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7aGVhZGVyLm5hbWV9fVwiXHJcbiAgICAgICAgW2F0dHIuaWRdPVwiaGVhZGVyLmtleVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgPC9uei1pbnB1dC1ncm91cD5cclxuXHJcbiAgICA8bnotc2VsZWN0ICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgIFtuekFsbG93Q2xlYXJdPVwiIWhlYWRlci5kaXNhYmxlQ2xlYXJcIlxyXG4gICAgICAgICAgICAgICBbbnpNYXhUYWdDb3VudF09XCJoZWFkZXIubWF4VGFnQ291bnQgfHwzXCJcclxuICAgICAgICAgICAgICAgbnpQbGFjZUhvbGRlcj1cInt7aGVhZGVyLnBsYWNlaG9sZGVyfHxoZWFkZXIubmFtZX19XCJcclxuICAgICAgICAgICAgICAgbnpBbGxvd0NsZWFyPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgIFtuek1vZGVdPVwiaGVhZGVyLm56TW9kZSB8fCAnZGVmYXVsdCdcIlxyXG4gICAgICAgICAgICAgICBuelNlcnZlclNlYXJjaFxyXG4gICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxuei1vcHRpb24gKm5nRm9yPVwibGV0IG8gb2YgZGljdExpc3RcIiBbbnpMYWJlbF09XCJvLnR5cGVOYW1lXCJcclxuICAgICAgICAgICAgICAgICBbbnpWYWx1ZV09XCJvLmlkXCI+PC9uei1vcHRpb24+XHJcbiAgICA8L256LXNlbGVjdD5cclxuICAgIDxuei1zZWxlY3QgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3RDdXMnXCJcclxuICAgICAgICAgICAgICAgW256TW9kZV09XCJoZWFkZXIubnpNb2RlIHx8ICdkZWZhdWx0J1wiXHJcbiAgICAgICAgICAgICAgIFtuekFsbG93Q2xlYXJdPVwiIWhlYWRlci5kaXNhYmxlQ2xlYXJcIlxyXG4gICAgICAgICAgICAgICBuelBsYWNlSG9sZGVyPVwie3toZWFkZXIucGxhY2Vob2xkZXJ8fGhlYWRlci5uYW1lfX1cIlxyXG4gICAgICAgICAgICAgICBuekFsbG93Q2xlYXI9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgW256U2hvd1NlYXJjaF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgIFtuek1heFRhZ0NvdW50XT1cImhlYWRlci5tYXhUYWdDb3VudCB8fDNcIlxyXG4gICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgPG56LW9wdGlvbiAqbmdGb3I9XCJsZXQgbyBvZiBoZWFkZXIuZGljdExpc3RcIiBuekN1c3RvbUNvbnRlbnQgW256TGFiZWxdPVwiby5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgW256VmFsdWVdPVwiby52YWx1ZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwic2VsZWN0LWljb25cIiAqbmdJZj1cImhlYWRlci5pY29uPy5pc1Nob3dcIiBuei1pY29uIFtuelR5cGVdPVwiaGVhZGVyLmljb24uaWNvblwiXHJcbiAgICAgICAgICAgbnpUaGVtZT1cIm91dGxpbmVcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMXJlbTtcIlxyXG4gICAgICAgICAgIChjbGljayk9XCJjbGlja0ljb24oby52YWx1ZSxoZWFkZXIsJGV2ZW50KVwiPjwvaT5cclxuICAgICAgICB7e28ubGFiZWx9fVxyXG4gICAgICA8L256LW9wdGlvbj5cclxuXHJcbiAgICA8L256LXNlbGVjdD5cclxuICAgIDxuei1jYXNjYWRlclxyXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2Nhc2NhZGVyJ1wiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBzdHlsZT1cImZsZXg6IDFcIiBbbnpBbGxvd0NsZWFyXT1cIiFoZWFkZXIuZGlzYWJsZUNsZWFyXCJcclxuICAgICAgbnpQbGFjZUhvbGRlcj1cInt7aGVhZGVyLnBsYWNlaG9sZGVyfHxoZWFkZXIubmFtZX19XCJcclxuICAgICAgW256U2hvd1NlYXJjaF09XCJ0cnVlXCJcclxuICAgICAgW256T3B0aW9uc109XCJoZWFkZXIuZGljdExpc3RcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgID48L256LWNhc2NhZGVyPlxyXG4gICAgPG56LXRyZWUtc2VsZWN0XHJcbiAgICAgICpuZ1N3aXRjaENhc2U9XCIndHJlZVNlbGVjdCdcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW256QWxsb3dDbGVhcl09XCIhaGVhZGVyLmRpc2FibGVDbGVhclwiXHJcbiAgICAgIFtuek5vZGVzXT1cImhlYWRlci50cmVlTGlzdFwiXHJcbiAgICAgIG56SGlkZVVuTWF0Y2hlZD1cInRydWVcIlxyXG4gICAgICBuelBsYWNlSG9sZGVyPVwie3toZWFkZXIucGxhY2Vob2xkZXJ8fGhlYWRlci5uYW1lfX1cIlxyXG4gICAgICBbbnpTaG93U2VhcmNoXT1cInRydWVcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgW256TXVsdGlwbGVdPVwiaGVhZGVyLnNlbGVjdFVybC5pc011bHRpcGxlXCJcclxuICAgICAgW256TWF4VGFnQ291bnRdPVwiaGVhZGVyLm1heFRhZ0NvdW50IHx8IDNcIlxyXG4gICAgICBuelZpcnR1YWxIZWlnaHQ9XCIzMzBweFwiXHJcbiAgICA+XHJcbiAgICA8L256LXRyZWUtc2VsZWN0PlxyXG4gICAgPG56LXJhbmdlLXBpY2tlciAgKm5nU3dpdGNoQ2FzZT1cIidkYXlSYW5nZSdcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7XCJcclxuICAgICAgICAgICAgICAgICAgICAgIG56QWxsb3dDbGVhcj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW256UGxhY2VIb2xkZXJdPVwiW2hlYWRlci5uYW1lKyflvIDlp4vml7bpl7QnLCfnu5PmnZ/ml7bpl7QnXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbnpEZWZhdWx0UGlja2VyVmFsdWVdPVwiaGVhZGVyLmRlZmF1bHRWYWxcIlxyXG4gICAgPjwvbnotcmFuZ2UtcGlja2VyPlxyXG4gICAgPG56LXJhbmdlLXBpY2tlclxyXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGVSYW5nZSdcIlxyXG4gICAgICBbbnpTaG93VGltZV09XCJoZWFkZXIubnpTaG93VGltZSA/IGhlYWRlci5uelNob3dUaW1lIDogZmFsc2VcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuXHJcbiAgICAgIFtuekZvcm1hdF09XCJoZWFkZXIubnpTaG93VGltZSAmJiBoZWFkZXIubnpTaG93VGltZS5uekZvcm1hdCAgP1xyXG4gICAgICAoJ3l5eXktTU0tZGQgJysgaGVhZGVyLm56U2hvd1RpbWUubnpGb3JtYXQpIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnXCJcclxuXHJcbiAgICAgIFtuelNob3dOb3ddPVwiaGVhZGVyLm56U2hvd1RpbWUgJiYgaGVhZGVyLm56U2hvd05vdyBcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIlxyXG4gICAgICBuekFsbG93Q2xlYXI9XCJ0cnVlXCJcclxuICAgICAgW256UGxhY2VIb2xkZXJdPVwiW2hlYWRlci5uYW1lKyflvIDlp4vml7bpl7QnLCfnu5PmnZ/ml7bpl7QnXVwiXHJcbiAgICAgIFtuekRlZmF1bHRQaWNrZXJWYWx1ZV09XCJoZWFkZXIuZGVmYXVsdFZhbFwiPjwvbnotcmFuZ2UtcGlja2VyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NkYXRlJ1wiPlxyXG4gICAgICA8bnotZGF0ZS1waWNrZXIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiIFtuekZvcm1hdF09XCIneXl5eS1NTS1kZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWhlYWRlci5kYXRlTW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBuekFsbG93Q2xlYXI9XCJ0cnVlXCI+PC9uei1kYXRlLXBpY2tlcj5cclxuICAgICAgPG56LWRhdGUtcGlja2VyIHN0eWxlPVwid2lkdGg6IDEwMCVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVhZGVyLmRhdGVNb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuek1vZGVdPVwiaGVhZGVyLmRhdGVNb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIG56QWxsb3dDbGVhcj1cInRydWVcIj48L256LWRhdGUtcGlja2VyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bnotbW9udGgtcGlja2VyXHJcbiAgICAgICpuZ1N3aXRjaENhc2U9XCInc21vbnRoJ1wiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgW256Rm9ybWF0XT1cIid5eXl5LU1NJ1wiXHJcbiAgICAgIFtuelBsYWNlSG9sZGVyXT1cIltoZWFkZXIubmFtZV1cIlxyXG4gICAgICBuekFsbG93Q2xlYXI9XCJ0cnVlXCI+PC9uei1tb250aC1waWNrZXI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImxhYmVsLXRpdGxlXCI+e3toZWFkZXIubmFtZX19PC9zcGFuPlxyXG4gIDwvbnotZm9ybS1jb250cm9sPlxyXG48L256LWZvcm0taXRlbT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaW5wdXRDbGVhclRwbD5cclxuICA8aSBuei1pY29uIGNsYXNzPVwiYW50LWlucHV0LWNsZWFyLWljb25cIiBuelRoZW1lPVwiZmlsbFwiIG56VHlwZT1cImNsb3NlLWNpcmNsZVwiXHJcbiAgICAgKm5nSWY9XCIhaGVhZGVyLmRpc2FibGVDbGVhciAmJiB2YWx1ZXxpc05vdEVtcHR5XCIgKGNsaWNrKT1cInZhbHVlID0gbnVsbDtvbkNoYW5nZSgpXCI+PC9pPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZm9ybS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvdGFibGUvdGFibGUtZm9ybS1pdGVtL3RhYmxlLWZvcm0taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL3RhYmxlL3RhYmxlLWZvcm0taXRlbS90YWJsZS1mb3JtLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQXVCLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQWMzRCxNQUFNLE9BQU8sc0JBQXNCO0lBVS9CO1FBUFMsYUFBUSxHQUFPLEVBQUUsQ0FBQztRQUNqQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFJM0QsV0FBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUE7SUFHdkIsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQXFCO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtJQUVyQyxDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDLENBQUE7UUFDOUIsSUFBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCO1NBQ3ZEO1FBQ0QsSUFBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxtQkFBbUI7U0FDaEQ7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVMsRUFBRSxJQUFRO1FBQzVCLHFCQUFxQjtRQUNyQixJQUFJLE1BQU0sR0FBZ0I7WUFDdEIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2hCLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRztZQUNkLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLEtBQUs7U0FDZixDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFbEMsQ0FBQztJQUNELFNBQVMsQ0FBQyxLQUFTLEVBQUUsSUFBb0IsRUFBRSxNQUFVO1FBQ2pELE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QiwwQkFBMEI7UUFDMUIsSUFBSSxNQUFNLEdBQWdCO1lBQ3RCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUEsQ0FBQyxDQUFBLEVBQUU7WUFDMUMsSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUUsS0FBSztTQUNmLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsQyxDQUFDOzhHQWxFUSxzQkFBc0I7a0dBQXRCLHNCQUFzQiw2SkFScEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2dCQUNyRCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osMEJDaEJMLDg4S0F1SEE7OzJGRHJHYSxzQkFBc0I7a0JBWmxDLFNBQVM7K0JBQ0kscUJBQXFCLGFBR3BCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDOzRCQUNyRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjt3REFHUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge056TWVzc2FnZVNlcnZpY2V9IGZyb20gXCJuZy16b3Jyby1hbnRkL21lc3NhZ2VcIjtcclxuaW1wb3J0IHtBdHJRdWVyeUhlYWRlciwgVGFibGVBY3Rpb259IGZyb20gXCIuLi8uLi8uLi8uLi9jb3JlL2Jhc2UvYXRyLWNvbW1vblwiO1xyXG5pbXBvcnQge1Rvb2xzVXRpbH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvcmUvdXRpbHMvVG9vbHNVdGlsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLXRhYmxlLWZvcm0taXRlbScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtZm9ybS1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3RhYmxlLWZvcm0taXRlbS5jb21wb25lbnQuc2NzcycsICcuLi90YWJsZS5jb21wb25lbnQubGVzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGFibGVGb3JtSXRlbUNvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVGb3JtSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gICAgQElucHV0KCkgaGVhZGVyOkF0clF1ZXJ5SGVhZGVyIHxhbnk7XHJcbiAgICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nIHwgYW55OyAvLyDnu4Tku7blr7nlupTnmoQg4oCcIG5nTW9kZWwg4oCdXHJcbiAgICBASW5wdXQoKSBkaWN0TGlzdDphbnkgPSBbXTtcclxuICAgIEBPdXRwdXQoKSBoZWFkZXJBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmxlQWN0aW9uPigpO1xyXG5cclxuICAgIG9uQ2hhbmdlTGlzdGVuZXI6IGFueTsgLy8g5pS55Y+Y5YC85Zue6LCDXHJcbiAgICBvblRvdWNoZWRMaXN0ZW5lcjogYW55OyAvLyDkuqTkupLlm57osINcclxuICBpc051bGwgPSBUb29sc1V0aWwuaXNOdWxsXHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgYW55W10pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3JlZ2lzdGVyT25DaGFuZ2UnKVxyXG4gICAgICAgIHRoaXMub25DaGFuZ2VMaXN0ZW5lciA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zb2xlLmxvZygncmVnaXN0ZXJPblRvdWNoZWQnKVxyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkTGlzdGVuZXIgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKGU/OmFueSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdmb3JtIGNoYW5nZScsdGhpcy52YWx1ZSlcclxuICAgICAgICBjb25zb2xlLmxvZygnZm9ybSBjaGFuZ2UgZScsZSlcclxuICAgICAgICBpZih0aGlzLm9uQ2hhbmdlTGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUxpc3RlbmVyKGUpOyAvLyDlkYror4lmb3Jt77yM5L2g55qE6KGo5Y2V5YC85pS55Y+Y5oiQ5LqGcGF5bG9hZFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLm9uVG91Y2hlZExpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkTGlzdGVuZXIoKTsgLy8g5ZGK6K+JZm9ybe+8jOS9oOeahOihqOWNleacieS6pOS6kuWPkeeUn1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RDaGFuZ2UodmFsdWU6YW55LCBpdGVtOmFueSkge1xyXG4gICAgICAgIC8vY29uc29sZS5sb2codmFsdWUpO1xyXG4gICAgICAgIGxldCBhY3Rpb246IFRhYmxlQWN0aW9uID0ge1xyXG4gICAgICAgICAgICBuYW1lOiBpdGVtLmxhYmVsLFxyXG4gICAgICAgICAgICBjb2RlOiBpdGVtLmtleSxcclxuICAgICAgICAgICAgZGF0YTogaXRlbSxcclxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5oZWFkZXJBY3Rpb24uZW1pdChhY3Rpb24pXHJcblxyXG4gICAgfVxyXG4gICAgY2xpY2tJY29uKHZhbHVlOmFueSwgaXRlbTogQXRyUXVlcnlIZWFkZXIsICRldmVudDphbnkpIHtcclxuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyh2YWx1ZSxpdGVtKTtcclxuICAgICAgICBsZXQgYWN0aW9uOiBUYWJsZUFjdGlvbiA9IHtcclxuICAgICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgICBjb2RlOiBpdGVtLmljb24/LmNvZGUgPyBpdGVtLmljb24/LmNvZGU6XCJcIixcclxuICAgICAgICAgICAgZGF0YTogaXRlbSxcclxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5oZWFkZXJBY3Rpb24uZW1pdChhY3Rpb24pXHJcbiAgICB9XHJcbn1cclxuIiwiPG56LWZvcm0taXRlbSBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiIHRpdGxlPVwie3toZWFkZXIubmFtZX19XCIgbnpGbGV4PlxyXG4gIDxuei1mb3JtLWNvbnRyb2wgW256U3Bhbl09XCJoZWFkZXIuY3NwYW4gfHwgMjRcIiBbbmdTd2l0Y2hdPVwiaGVhZGVyLnR5cGVcIj5cclxuICAgIDxuei1pbnB1dC1ncm91cCBbbnpTdWZmaXhdPVwiaW5wdXRDbGVhclRwbFwiICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgbnotaW5wdXRcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7aGVhZGVyLm5hbWV9fVwiXHJcbiAgICAgICAgW2F0dHIuaWRdPVwiaGVhZGVyLmtleVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgPC9uei1pbnB1dC1ncm91cD5cclxuXHJcbiAgICA8bnotc2VsZWN0ICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgIFtuekFsbG93Q2xlYXJdPVwiIWhlYWRlci5kaXNhYmxlQ2xlYXJcIlxyXG4gICAgICAgICAgICAgICBbbnpNYXhUYWdDb3VudF09XCJoZWFkZXIubWF4VGFnQ291bnQgfHwzXCJcclxuICAgICAgICAgICAgICAgbnpQbGFjZUhvbGRlcj1cInt7aGVhZGVyLnBsYWNlaG9sZGVyfHxoZWFkZXIubmFtZX19XCJcclxuICAgICAgICAgICAgICAgbnpBbGxvd0NsZWFyPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgIFtuek1vZGVdPVwiaGVhZGVyLm56TW9kZSB8fCAnZGVmYXVsdCdcIlxyXG4gICAgICAgICAgICAgICBuelNlcnZlclNlYXJjaFxyXG4gICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxuei1vcHRpb24gKm5nRm9yPVwibGV0IG8gb2YgZGljdExpc3RcIiBbbnpMYWJlbF09XCJvLnR5cGVOYW1lXCJcclxuICAgICAgICAgICAgICAgICBbbnpWYWx1ZV09XCJvLmlkXCI+PC9uei1vcHRpb24+XHJcbiAgICA8L256LXNlbGVjdD5cclxuICAgIDxuei1zZWxlY3QgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3RDdXMnXCJcclxuICAgICAgICAgICAgICAgW256TW9kZV09XCJoZWFkZXIubnpNb2RlIHx8ICdkZWZhdWx0J1wiXHJcbiAgICAgICAgICAgICAgIFtuekFsbG93Q2xlYXJdPVwiIWhlYWRlci5kaXNhYmxlQ2xlYXJcIlxyXG4gICAgICAgICAgICAgICBuelBsYWNlSG9sZGVyPVwie3toZWFkZXIucGxhY2Vob2xkZXJ8fGhlYWRlci5uYW1lfX1cIlxyXG4gICAgICAgICAgICAgICBuekFsbG93Q2xlYXI9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgW256U2hvd1NlYXJjaF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgIFtuek1heFRhZ0NvdW50XT1cImhlYWRlci5tYXhUYWdDb3VudCB8fDNcIlxyXG4gICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgPG56LW9wdGlvbiAqbmdGb3I9XCJsZXQgbyBvZiBoZWFkZXIuZGljdExpc3RcIiBuekN1c3RvbUNvbnRlbnQgW256TGFiZWxdPVwiby5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgW256VmFsdWVdPVwiby52YWx1ZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwic2VsZWN0LWljb25cIiAqbmdJZj1cImhlYWRlci5pY29uPy5pc1Nob3dcIiBuei1pY29uIFtuelR5cGVdPVwiaGVhZGVyLmljb24uaWNvblwiXHJcbiAgICAgICAgICAgbnpUaGVtZT1cIm91dGxpbmVcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMXJlbTtcIlxyXG4gICAgICAgICAgIChjbGljayk9XCJjbGlja0ljb24oby52YWx1ZSxoZWFkZXIsJGV2ZW50KVwiPjwvaT5cclxuICAgICAgICB7e28ubGFiZWx9fVxyXG4gICAgICA8L256LW9wdGlvbj5cclxuXHJcbiAgICA8L256LXNlbGVjdD5cclxuICAgIDxuei1jYXNjYWRlclxyXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2Nhc2NhZGVyJ1wiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBzdHlsZT1cImZsZXg6IDFcIiBbbnpBbGxvd0NsZWFyXT1cIiFoZWFkZXIuZGlzYWJsZUNsZWFyXCJcclxuICAgICAgbnpQbGFjZUhvbGRlcj1cInt7aGVhZGVyLnBsYWNlaG9sZGVyfHxoZWFkZXIubmFtZX19XCJcclxuICAgICAgW256U2hvd1NlYXJjaF09XCJ0cnVlXCJcclxuICAgICAgW256T3B0aW9uc109XCJoZWFkZXIuZGljdExpc3RcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgID48L256LWNhc2NhZGVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RyZWVTZWxlY3QnXCI+XHJcbiAgICAgIDxuei10cmVlLXNlbGVjdCAqbmdJZj1cImhlYWRlci50cmVlTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuekFsbG93Q2xlYXJdPVwiIWhlYWRlci5kaXNhYmxlQ2xlYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW256Tm9kZXNdPVwiaGVhZGVyLnRyZWVMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIG56SGlkZVVuTWF0Y2hlZD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbnpQbGFjZUhvbGRlcj1cInt7aGVhZGVyLnBsYWNlaG9sZGVyfHxoZWFkZXIubmFtZX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuelNob3dTZWFyY2hdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuek11bHRpcGxlXT1cImhlYWRlci5zZWxlY3RVcmwuaXNNdWx0aXBsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbnpNYXhUYWdDb3VudF09XCJoZWFkZXIubWF4VGFnQ291bnQgfHwgM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBuelZpcnR1YWxIZWlnaHQ9XCIzMzBweFwiXHJcbiAgICAgID5cclxuICAgICAgPC9uei10cmVlLXNlbGVjdD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuei1yYW5nZS1waWNrZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXlSYW5nZSdcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIG56QWxsb3dDbGVhcj1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbbnpQbGFjZUhvbGRlcl09XCJbaGVhZGVyLm5hbWUrJ+W8gOWni+aXtumXtCcsJ+e7k+adn+aXtumXtCddXCJcclxuICAgICAgICAgICAgICAgICAgICAgW256RGVmYXVsdFBpY2tlclZhbHVlXT1cImhlYWRlci5kZWZhdWx0VmFsXCJcclxuICAgID48L256LXJhbmdlLXBpY2tlcj5cclxuICAgIDxuei1yYW5nZS1waWNrZXJcclxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIidkYXRlUmFuZ2UnXCJcclxuICAgICAgW256U2hvd1RpbWVdPVwiaGVhZGVyLm56U2hvd1RpbWUgPyBoZWFkZXIubnpTaG93VGltZSA6IGZhbHNlXCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcblxyXG4gICAgICBbbnpGb3JtYXRdPVwiaGVhZGVyLm56U2hvd1RpbWUgJiYgaGVhZGVyLm56U2hvd1RpbWUubnpGb3JtYXQgID9cclxuICAgICAgKCd5eXl5LU1NLWRkICcrIGhlYWRlci5uelNob3dUaW1lLm56Rm9ybWF0KSA6ICd5eXl5LU1NLWRkIEhIOm1tOnNzJ1wiXHJcblxyXG4gICAgICBbbnpTaG93Tm93XT1cImhlYWRlci5uelNob3dUaW1lICYmIGhlYWRlci5uelNob3dOb3cgXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7XCJcclxuICAgICAgbnpBbGxvd0NsZWFyPVwidHJ1ZVwiXHJcbiAgICAgIFtuelBsYWNlSG9sZGVyXT1cIltoZWFkZXIubmFtZSsn5byA5aeL5pe26Ze0Jywn57uT5p2f5pe26Ze0J11cIlxyXG4gICAgICBbbnpEZWZhdWx0UGlja2VyVmFsdWVdPVwiaGVhZGVyLmRlZmF1bHRWYWxcIj48L256LXJhbmdlLXBpY2tlcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzZGF0ZSdcIj5cclxuICAgICAgPG56LWRhdGUtcGlja2VyIHN0eWxlPVwid2lkdGg6IDEwMCVcIiBbbnpGb3JtYXRdPVwiJ3l5eXktTU0tZGQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFoZWFkZXIuZGF0ZU1vZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbnpBbGxvd0NsZWFyPVwidHJ1ZVwiPjwvbnotZGF0ZS1waWNrZXI+XHJcbiAgICAgIDxuei1kYXRlLXBpY2tlciBzdHlsZT1cIndpZHRoOiAxMDAlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhlYWRlci5kYXRlTW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbnpNb2RlXT1cImhlYWRlci5kYXRlTW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBuekFsbG93Q2xlYXI9XCJ0cnVlXCI+PC9uei1kYXRlLXBpY2tlcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG56LW1vbnRoLXBpY2tlclxyXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3Ntb250aCdcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgIFtuekZvcm1hdF09XCIneXl5eS1NTSdcIlxyXG4gICAgICBbbnpQbGFjZUhvbGRlcl09XCJbaGVhZGVyLm5hbWVdXCJcclxuICAgICAgbnpBbGxvd0NsZWFyPVwidHJ1ZVwiPjwvbnotbW9udGgtcGlja2VyPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJsYWJlbC10aXRsZVwiPnt7aGVhZGVyLm5hbWV9fTwvc3Bhbj5cclxuICA8L256LWZvcm0tY29udHJvbD5cclxuPC9uei1mb3JtLWl0ZW0+XHJcblxyXG48bmctdGVtcGxhdGUgI2lucHV0Q2xlYXJUcGw+XHJcbiAgPGkgbnotaWNvbiBjbGFzcz1cImFudC1pbnB1dC1jbGVhci1pY29uXCIgbnpUaGVtZT1cImZpbGxcIiBuelR5cGU9XCJjbG9zZS1jaXJjbGVcIlxyXG4gICAgICpuZ0lmPVwiIWhlYWRlci5kaXNhYmxlQ2xlYXIgJiYgdmFsdWV8aXNOb3RFbXB0eVwiIChjbGljayk9XCJ2YWx1ZSA9IG51bGw7b25DaGFuZ2UoKVwiPjwvaT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -53,7 +53,6 @@ export class UploadComponent {
|
|
|
53
53
|
return true;
|
|
54
54
|
};
|
|
55
55
|
this.beforeUpload = (file, fileList) => {
|
|
56
|
-
debugger;
|
|
57
56
|
return new Observable(observe => {
|
|
58
57
|
let fileName;
|
|
59
58
|
if (this.opts.keepName) {
|
|
@@ -271,4 +270,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
271
270
|
}], onBeforeUpload: [{
|
|
272
271
|
type: Output
|
|
273
272
|
}] } });
|
|
274
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL3VwbG9hZC91cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUMsV0FBVyxFQUFhLGFBQWEsRUFBRSxZQUFZLEVBQTBCLE1BQU0sc0JBQXNCLENBQUM7QUFJbEgsT0FBTyxFQUFDLGdCQUFnQixFQUFZLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFReEQsTUFBTSxPQUFPLGVBQWU7SUE2QjFCLFlBQW9CLFFBQWtCLEVBQVUsY0FBOEIsRUFDMUQsVUFBc0IsRUFBVSxZQUE0QjtRQUQ1RCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzFELGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUEzQnZFLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUUvQixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBRXBCLGVBQVUsR0FBUSxFQUFFLENBQUE7UUFFWCxtQkFBYyxHQUF1STtZQUM1SixlQUFlLEVBQUUsSUFB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T0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7OEdBL1FVLGVBQWU7a0dBQWYsZUFBZSx5UUNoQjVCLG11S0F1SEE7OzJGRHZHYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLGdCQUFnQjtnS0FNakIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBT04sV0FBVztzQkFEVixNQUFNO2dCQUlQLFVBQVU7c0JBRFQsTUFBTTtnQkFHUCxjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0h0dHBSZXF1ZXN0LCBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUsIEh0dHBSZXNwb25zZSwgSHR0cENsaWVudCwgSHR0cEhlYWRlcnN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtOek1vZGFsUmVmLCBOek1vZGFsU2VydmljZX0gZnJvbSAnbmctem9ycm8tYW50ZC9tb2RhbCc7XHJcbmltcG9ydCB7TnpVcGxvYWRDaGFuZ2VQYXJhbSwgTnpVcGxvYWRGaWxlLCBOelVwbG9hZFhIUkFyZ3N9IGZyb20gJ25nLXpvcnJvLWFudGQvdXBsb2FkJztcclxuaW1wb3J0IHtlbnZpcm9ubWVudH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvY29yZS9lbnZpcm9ubWVudHNcIjtcclxuaW1wb3J0IHthdHJfc3RhdGljX2RhdGFzLCBJbWFnZU9wdHN9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2Jhc2UvYXRyLWNvbW1vblwiO1xyXG5pbXBvcnQge0h0dHBTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9odHRwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUb29sc1V0aWx9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3V0aWxzL1Rvb2xzVXRpbFwiO1xyXG5pbXBvcnQge056SW1hZ2VTZXJ2aWNlfSBmcm9tICduZy16b3Jyby1hbnRkL2ltYWdlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXRyLWltZy11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBvcHRzOiBJbWFnZU9wdHMgfCBhbnk7XHJcbiAgQElucHV0KCkgaXNFZGl0ID0gdHJ1ZTtcclxuICBASW5wdXQoKSBhbGxvd0NoYW5nU2VxID0gZmFsc2U7XHJcbiAgdHBsTW9kYWw6IE56TW9kYWxSZWYgfCBhbnk7XHJcbiAgdXBsb2FkVXJsOiBhbnkgPSBcIlwiO1xyXG5cclxuICB1cGxvYWREYXRhOiBhbnkgPSB7fVxyXG5cclxuICBASW5wdXQoKSBzaG93VXBsb2FkTGlzdDogYm9vbGVhbiB8IHsgc2hvd1ByZXZpZXdJY29uPzogYm9vbGVhbiwgc2hvd1JlbW92ZUljb24/OiBib29sZWFuLCBzaG93RG93bmxvYWRJY29uPzogYm9vbGVhbiwgaGlkZVByZXZpZXdJY29uSW5Ob25JbWFnZT86IGJvb2xlYW4gfSA9IHtcclxuICAgIHNob3dQcmV2aWV3SWNvbjogdHJ1ZSxcclxuICAgIHNob3dSZW1vdmVJY29uOiB0cnVlLFxyXG4gICAgaGlkZVByZXZpZXdJY29uSW5Ob25JbWFnZTogdHJ1ZVxyXG4gIH07XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGFmdGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb3B0c0NoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25CZWZvcmVVcGxvYWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHJcbiAgcHJldmlld0ltYWdlOiBzdHJpbmcgfCBhbnkgPSAnJztcclxuICBwcmV2aWV3VmlzaWJsZSA9IGZhbHNlO1xyXG4gIGNoYW5nZVZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgbnpJbWFnZVNlcnZpY2U6IE56SW1hZ2VTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCwgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE56TW9kYWxTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIGdldEZpbGVUeWVJY29uKGZpbGVUeXBlOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGxldCB0aHVtYlVybCA9IHRoaXMuZ2V0RmlsZVRodW1iVXJsKGZpbGVUeXBlKTtcclxuICAgIGlmICh0aHVtYlVybCA9PT0gJycpIHtcclxuICAgICAgdGh1bWJVcmwgPSB0aGlzLmdldFRodW1iVXJsKGZpbGVOYW1lKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aHVtYlVybDtcclxuICB9XHJcblxyXG4gIGdldFRodW1iVXJsKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XHJcblxyXG4gICAgaWYgKCFwYXRoKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIC8vIOWQjue8gOiOt+WPllxyXG4gICAgaWYgKHBhdGguZW5kc1dpdGgoJy5tcDQnKSkge1xyXG4gICAgICByZXR1cm4gJy4uLy4uLy4uL2Fzc2V0cy92aWRlby5qcGcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RmlsZVRodW1iVXJsKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgdGh1bWJVcmwgPSAnJztcclxuICAgIGlmICh0eXBlID09PSAndmlkZW8vbXA0JyB8fCB0eXBlID09PSAnbXA0Jykge1xyXG4gICAgICB0aHVtYlVybCA9ICcuLi8uLi8uLi9hc3NldHMvdmlkZW8uanBnJztcclxuICAgIH1cclxuICAgIHJldHVybiB0aHVtYlVybDtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKHBhcmFtczogTnpVcGxvYWRDaGFuZ2VQYXJhbSkge1xyXG4gICAgY29uc29sZS5sb2cocGFyYW1zKTtcclxuICAgIGlmIChwYXJhbXMudHlwZSA9PSBcInN1Y2Nlc3NcIiB8fCBwYXJhbXMudHlwZSA9PSBcInJlbW92ZWRcIikge1xyXG5cclxuICAgICAgdGhpcy5vcHRzLmltYWdlTGlzdCA9IFtdO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLm9wdHMuaW1hZ2VMaXN0ID0gcGFyYW1zLmZpbGVMaXN0Lm1hcCgoZmlsZTogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgaWYgKGZpbGUudHlwZSA9PSAndmlkZW8vbXA0JyAmJiBmaWxlLnVpZCA9PT0gcGFyYW1zLmZpbGUudWlkKSB7XHJcbiAgICAgICAgICAgIGxldCB0aHVtYlVybCA9IHRoaXMuZ2V0RmlsZVR5ZUljb24oZmlsZS50eXBlLCBmaWxlLm5hbWUpO1xyXG4gICAgICAgICAgICBmaWxlLnRodW1iVXJsID0gdGh1bWJVcmwgPyB0aHVtYlVybCA6IGZpbGUudGh1bWJVcmw7XHJcbiAgICAgICAgICAgIGZpbGUudXJsID0gZmlsZS5vcmlnaW5GaWxlT2JqID8gYXRyX3N0YXRpY19kYXRhcy5PU1NfVVJMICsgZmlsZS5vcmlnaW5GaWxlT2JqWydrZXknXSA6IGZpbGVbJ3BhdGgnXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBmaWxlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LCA1MCk7XHJcbiAgICAgIGxldCBmaWxlVXJsczogYW55W10gPSBbXTtcclxuICAgICAgZm9yIChsZXQgZmlsZSBvZiBwYXJhbXMuZmlsZUxpc3QpIHtcclxuICAgICAgICBpZiAoZmlsZVtcImtleVwiXSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIGZpbGVVcmxzLnB1c2goZmlsZVtcImtleVwiXSk7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZpbGUub3JpZ2luRmlsZU9iaikge1xyXG4gICAgICAgICAgbGV0IG9yaWdpbkZpbGVPYmo6IGFueSA9IGZpbGUub3JpZ2luRmlsZU9ialxyXG4gICAgICAgICAgaWYgKG9yaWdpbkZpbGVPYmpbXCJrZXlcIl0gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGZpbGVVcmxzLnB1c2gob3JpZ2luRmlsZU9ialtcImtleVwiXSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuYWZ0ZXJDaGFuZ2UuZW1pdCh7a2V5OiB0aGlzLm9wdHMua2V5LCB2YWx1ZXM6IGZpbGVVcmxzLmpvaW4oXCIsXCIpfSk7XHJcbiAgICAgIHRoaXMub3B0c0NoYW5nZS5lbWl0KHRoaXMub3B0cylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IGh0dHBTZXJ2aWNlKCk6IEh0dHBTZXJ2aWNlIHtcclxuICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChIdHRwU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVQcmV2aWV3ID0gKGZpbGU6IE56VXBsb2FkRmlsZSkgPT4ge1xyXG4gICAgdGhpcy5wcmV2aWV3SW1hZ2UgPSBmaWxlLnVybCB8fCBmaWxlLnRodW1iVXJsO1xyXG4gICAgdGhpcy5wcmV2aWV3VmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgcmVtb3ZlID0gKGZpbGU6IE56VXBsb2FkRmlsZSkgPT4ge1xyXG4gICAgaWYgKCF0aGlzLmlzRWRpdCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhmaWxlKTtcclxuICAgIGlmICh0aGlzLm9wdHMgJiYgdGhpcy5vcHRzLnJlbW92ZUFjdGlvbikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGJlZm9yZVVwbG9hZCA9IChmaWxlOiBOelVwbG9hZEZpbGUsIGZpbGVMaXN0OiBOelVwbG9hZEZpbGVbXSk6YW55ID0+IHtcclxuICAgIGRlYnVnZ2VyXHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIGxldCBmaWxlTmFtZTtcclxuICAgICAgaWYgKHRoaXMub3B0cy5rZWVwTmFtZSkge1xyXG4gICAgICAgIGZpbGVOYW1lID0gZmlsZS5uYW1lO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZpbGVOYW1lID0gVG9vbHNVdGlsLmdldFJhbmRvbUZpbGVOYW1lKCkgKyBcIi5cIiArIFRvb2xzVXRpbC5nZXRGaWxlRXh0KGZpbGUubmFtZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vbkJlZm9yZVVwbG9hZC5lbWl0KHtjb2RlOiAnZ2V0RmlsZScsIGRhdGE6IHtmaWxlOiBmaWxlLCBmaWxlTGlzdDogZmlsZUxpc3R9fSlcclxuICAgICAgdGhpcy5odHRwU2VydmljZS5wb3N0KGF0cl9zdGF0aWNfZGF0YXMuT1NTX1BPTElDWSwge1xyXG4gICAgICAgIGRpcjogdGhpcy5vcHRzLnVwbG9hZERpcixcclxuICAgICAgICBmaWxlTmFtZTogZmlsZU5hbWUsXHJcbiAgICAgICAgJ3N1Y2Nlc3NfYWN0aW9uX3N0YXR1cyc6ICcyMDAnXHJcbiAgICAgIH0sIFRvb2xzVXRpbC5nZXRIdHRwT3B0aW9ucygpKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgcmVzdWx0ID0+IHtcclxuXHJcbiAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy51cGxvYWREYXRhW2ZpbGUudWlkXSA9IHJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICBvYnNlcnZlLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICB9IGVsc2VcclxuICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG4gIGN1c3RvbVJlcSA9IChpdGVtOiBOelVwbG9hZFhIUkFyZ3MpOmFueSA9PiB7XHJcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgbGV0IHVwbG9hZERhdGEgPSB0aGlzLnVwbG9hZERhdGFbaXRlbS5maWxlLnVpZF07XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gdXBsb2FkRGF0YSkge1xyXG4gICAgICBpZiAoa2V5ICE9ICdob3N0JylcclxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCB1cGxvYWREYXRhW2tleV0pXHJcbiAgICB9XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBpdGVtLmZpbGUgYXMgYW55KTtcclxuICAgIGNvbnN0IHJlcSA9IG5ldyBIdHRwUmVxdWVzdCgnUE9TVCcsIHVwbG9hZERhdGEuaG9zdCEsIGZvcm1EYXRhLCB7XHJcbiAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3QocmVxKS5zdWJzY3JpYmUoXHJcbiAgICAgIChldmVudDogSHR0cEV2ZW50PGFueT4pID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykge1xyXG4gICAgICAgICAgaWYgKGV2ZW50LnRvdGFsISA+IDApIHtcclxuICAgICAgICAgICAgKGV2ZW50IGFzIGFueSkucGVyY2VudCA9IChldmVudC5sb2FkZWQgLyBldmVudC50b3RhbCEpICogMTAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaXRlbS5vblByb2dyZXNzIShldmVudCwgaXRlbS5maWxlISk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG4gICAgICAgICAgaXRlbS5maWxlW1wia2V5XCJdID0gdXBsb2FkRGF0YS5rZXk7XHJcbiAgICAgICAgICBpdGVtLm9uU3VjY2VzcyEoZXZlbnQuYm9keSwgaXRlbS5maWxlISwgZXZlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyID0+IHtcclxuICAgICAgICBpdGVtLm9uRXJyb3IhKGVyciwgaXRlbS5maWxlISk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfTtcclxuXHJcbiAgb3BlbkJhbm5lclNlcSh0cGxDb250ZW50OiBhbnksIHRwbEZvb3RlcjogYW55KSB7XHJcbiAgICB0aGlzLnRwbE1vZGFsID0gdGhpcy5tb2RhbFNlcnZpY2UuY3JlYXRlKHtcclxuICAgICAgbnpUaXRsZTogXCLkv67mlLnlm77niYfpobrluo9cIixcclxuICAgICAgbnpDb250ZW50OiB0cGxDb250ZW50LFxyXG4gICAgICBuekZvb3RlcjogdHBsRm9vdGVyLFxyXG4gICAgICBuek1hc2tDbG9zYWJsZTogZmFsc2UsXHJcbiAgICAgIG56Q2xvc2FibGU6IGZhbHNlLFxyXG4gICAgICBuek9uT2s6ICgpID0+IGNvbnNvbGUubG9nKCdDbGljayBvaycpXHJcbiAgICB9KTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMub3B0cy5pbWFnZUxpc3QpO1xyXG4gICAgdGhpcy5jaGFuZ2VWaXNpYmxlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3lUcGxNb2RhbCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRwbE1vZGFsKVxyXG4gICAgICB0aGlzLnRwbE1vZGFsLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIGFycm93VXAoaW5kZXg6IGFueSkge1xyXG4gICAgbGV0IGltZyA9IHRoaXMub3B0cy5pbWFnZUxpc3RbaW5kZXhdO1xyXG4gICAgdGhpcy5vcHRzLmltYWdlTGlzdFtpbmRleF0gPSB0aGlzLm9wdHMuaW1hZ2VMaXN0W2luZGV4IC0gMV07XHJcbiAgICB0aGlzLm9wdHMuaW1hZ2VMaXN0W2luZGV4IC0gMV0gPSBpbWc7XHJcbiAgfVxyXG5cclxuICBhcnJvd0Rvd24oaW5kZXg6IGFueSkge1xyXG4gICAgbGV0IGltZyA9IHRoaXMub3B0cy5pbWFnZUxpc3RbaW5kZXhdO1xyXG4gICAgdGhpcy5vcHRzLmltYWdlTGlzdFtpbmRleF0gPSB0aGlzLm9wdHMuaW1hZ2VMaXN0W2luZGV4ICsgMV07XHJcbiAgICB0aGlzLm9wdHMuaW1hZ2VMaXN0W2luZGV4ICsgMV0gPSBpbWc7XHJcbiAgfVxyXG5cclxuICBzYXZlU2VxKCkge1xyXG4gICAgdGhpcy5kZXN0cm95VHBsTW9kYWwoKTtcclxuICAgIGxldCBpbWdzID0gdGhpcy5vcHRzLmltYWdlTGlzdDtcclxuICAgIHRoaXMub3B0cy5pbWFnZUxpc3QgPSBbXTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLm9wdHMuaW1hZ2VMaXN0ID0gaW1ncztcclxuICAgICAgY29uc29sZS5sb2codGhpcy5vcHRzLmltYWdlTGlzdCk7XHJcbiAgICAgIGxldCBmaWxlVXJsczogYW55ID0gW107XHJcbiAgICAgIGZvciAobGV0IGZpbGUgb2YgdGhpcy5vcHRzLmltYWdlTGlzdCkge1xyXG4gICAgICAgIGlmIChmaWxlW1wia2V5XCJdICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgZmlsZVVybHMucHVzaChmaWxlW1wia2V5XCJdKTtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZmlsZS5vcmlnaW5GaWxlT2JqICYmIGZpbGUub3JpZ2luRmlsZU9ialtcImtleVwiXSAhPSB1bmRlZmluZWQpXHJcbiAgICAgICAgICBmaWxlVXJscy5wdXNoKGZpbGUub3JpZ2luRmlsZU9ialtcImtleVwiXSlcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5hZnRlckNoYW5nZS5lbWl0KHtrZXk6IHRoaXMub3B0cy5rZXksIHZhbHVlczogZmlsZVVybHMuam9pbihcIixcIil9KTtcclxuICAgIH0sIDUwKVxyXG5cclxuICB9XHJcblxyXG4gIGRyYWdudW1iZXIobnVtZXI6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2cobnVtZXIpO1xyXG4gICAgY29uc29sZS5sb2coJ29yJywgdGhpcy5vcHRzLmltYWdlTGlzdClcclxuICAgIGNvbnNvbGUubG9nKCduZXcnLCBudW1lcilcclxuICAgIHRoaXMuc2F2ZVNlcSgpO1xyXG4gICAgLy8gdGhpcy5vcHRzLmltYWdlTGlzdCA9IG51bWVyXHJcbiAgfVxyXG5cclxuICBkZWxJbWcobnVtZXI6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2cobnVtZXIpO1xyXG4gICAgdGhpcy5vcHRzLmltYWdlTGlzdCA9IHRoaXMub3B0cy5pbWFnZUxpc3QuZmlsdGVyKCh2OiBhbnksIGk6IGFueSkgPT4gaSAhPSBudW1lcilcclxuICAgIGxldCBmaWxlVXJsczogYW55ID0gW107XHJcbiAgICBmb3IgKGxldCBmaWxlIG9mIHRoaXMub3B0cy5pbWFnZUxpc3QpIHtcclxuICAgICAgaWYgKGZpbGVbXCJrZXlcIl0gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgZmlsZVVybHMucHVzaChmaWxlW1wia2V5XCJdKTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZmlsZS5vcmlnaW5GaWxlT2JqICYmIGZpbGUub3JpZ2luRmlsZU9ialtcImtleVwiXSAhPSB1bmRlZmluZWQpXHJcbiAgICAgICAgZmlsZVVybHMucHVzaChmaWxlLm9yaWdpbkZpbGVPYmpbXCJrZXlcIl0pXHJcbiAgICB9XHJcbiAgICB0aGlzLmFmdGVyQ2hhbmdlLmVtaXQoe2tleTogdGhpcy5vcHRzLmtleSwgdmFsdWVzOiBmaWxlVXJscy5qb2luKFwiLFwiKX0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmlld0ltZyhpbWc6IGFueSkge1xyXG4gICAgbGV0IHVybCA9IFRvb2xzVXRpbC5nZXRPc3NVcmwodGhpcy5nZXRJbWdVcmwoaW1nKSlcclxuICAgIGNvbnNvbGUubG9nKHVybClcclxuICAgIHRoaXMubnpJbWFnZVNlcnZpY2UucHJldmlldyhbe1xyXG4gICAgICBzcmM6IHVybCxcclxuICAgICAgYWx0OiAnbmctem9ycm8nXHJcbiAgICB9XSwge256Wm9vbTogMS41LCBuelJvdGF0ZTogMH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW1nVXJsKGltZzogYW55KSB7XHJcbiAgICBpZiAoaW1nLm9yaWdpbkZpbGVPYmogJiYgaW1nLm9yaWdpbkZpbGVPYmoua2V5KSB7XHJcbiAgICAgIHJldHVybiBpbWcub3JpZ2luRmlsZU9iai5rZXlcclxuICAgIH1cclxuICAgIHJldHVybiAoaW1nLnVybCB8fCBpbWcudGh1bWJVcmwpXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPlxyXG4gIDxuei11cGxvYWRcclxuICAgICpuZ0lmPVwib3B0cyAmJiBvcHRzPy51cGxvYWRUeXBlID09ICdkcmFnJ1wiXHJcbiAgICBuelR5cGU9XCJkcmFnXCJcclxuICAgIG56QWN0aW9uPVwiXCJcclxuICAgIFtuekJlZm9yZVVwbG9hZF09XCJiZWZvcmVVcGxvYWRcIlxyXG4gICAgW256UmVtb3ZlXT1cInJlbW92ZVwiXHJcbiAgICBbbnpTaXplXT1cIm9wdHMubnpTaXplIHx8IDBcIlxyXG4gICAgW256Q3VzdG9tUmVxdWVzdF09XCJjdXN0b21SZXFcIlxyXG4gICAgKG56Q2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgW256VHlwZV09XCJvcHRzPy51cGxvYWRUeXBlXCJcclxuICAgIFtuekFjY2VwdF09XCJvcHRzLm56RmlsZVR5cGVcIlxyXG4gICAgW256TGltaXRdPVwiJzEnXCJcclxuICA+XHJcbiAgICA8cCBjbGFzcz1cImFudC11cGxvYWQtZHJhZy1pY29uXCI+XHJcbiAgICAgIDxpIG56LWljb24gbnpUeXBlPVwiaW5ib3hcIj48L2k+XHJcbiAgICA8L3A+XHJcbiAgICA8cCBjbGFzcz1cImFudC11cGxvYWQtdGV4dFwiPuWNleWHu+aIluaLluWKqOaWh+S7tuWIsOatpOWMuuWfn+S4iuS8oDwvcD5cclxuICA8L256LXVwbG9hZD5cclxuICA8bnotdXBsb2FkXHJcbiAgICAqbmdJZj1cIm9wdHMgJiYgb3B0cz8udXBsb2FkVHlwZSA9PSAnYnV0dG9uJ1wiXHJcbiAgICBuelR5cGU9XCJkcmFnXCJcclxuICAgIG56QWN0aW9uPVwiXCJcclxuICAgIFtuelNpemVdPVwib3B0cy5uelNpemUgfHwgMFwiXHJcbiAgICBbbnpTaG93VXBsb2FkTGlzdF09XCJzaG93VXBsb2FkTGlzdFwiXHJcbiAgICBbbnpCZWZvcmVVcGxvYWRdPVwiYmVmb3JlVXBsb2FkXCJcclxuICAgIFtuelJlbW92ZV09XCJyZW1vdmVcIlxyXG4gICAgW256Q3VzdG9tUmVxdWVzdF09XCJjdXN0b21SZXFcIlxyXG4gICAgKG56Q2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgW256VHlwZV09XCJvcHRzPy51cGxvYWRUeXBlXCJcclxuICAgIFtuekFjY2VwdF09XCJvcHRzLm56RmlsZVR5cGVcIlxyXG4gICAgW256TGltaXRdPVwiJzEnXCJcclxuICA+XHJcbiAgICA8YnV0dG9uIG56LWJ1dHRvbiBuelNpemU9XCJzbWFsbFwiPjxpIG56LWljb24gbnpUeXBlPVwidXBsb2FkXCIgc3R5bGU9XCJmb250LXNpemU6IDE2cHhcIj48L2k+PHNwYW4+IHt7b3B0cy5idG5OYW1lfX08L3NwYW4+PC9idXR0b24+XHJcbiAgPC9uei11cGxvYWQ+XHJcbiAgPG56LXVwbG9hZFxyXG4gICAgKm5nSWY9XCJvcHRzICYmICFvcHRzPy51cGxvYWRUeXBlIFwiXHJcbiAgICBuekFjdGlvbj1cIlwiXHJcbiAgICBuekxpc3RUeXBlPVwicGljdHVyZS1jYXJkXCJcclxuICAgIFtuelNpemVdPVwib3B0cy5uelNpemUgfHwgMFwiXHJcbiAgICBbKG56RmlsZUxpc3QpXT1cIm9wdHMuaW1hZ2VMaXN0XCJcclxuICAgIFtuelNob3dCdXR0b25dPVwib3B0cy5pbWFnZUxpc3QubGVuZ3RoIDwgb3B0cy5saW1pdFwiXHJcbiAgICBbbnpTaG93VXBsb2FkTGlzdF09XCJzaG93VXBsb2FkTGlzdFwiXHJcbiAgICBbbnpQcmV2aWV3XT1cImhhbmRsZVByZXZpZXdcIlxyXG4gICAgW256UmVtb3ZlXT1cInJlbW92ZVwiXHJcbiAgICBbbnpCZWZvcmVVcGxvYWRdPVwiYmVmb3JlVXBsb2FkXCJcclxuICAgIFtuekN1c3RvbVJlcXVlc3RdPVwiY3VzdG9tUmVxXCJcclxuICAgIChuekNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgIFtuelR5cGVdPVwib3B0cz8udXBsb2FkVHlwZVwiXHJcbiAgICBbbnpBY2NlcHRdPVwib3B0cy5uekZpbGVUeXBlXCJcclxuICAgIFtuekRpc2FibGVkXT1cIiFpc0VkaXRcIlxyXG4gICAgW256TGltaXRdPVwiJzEnXCJcclxuICAgIFtuekZpbGVMaXN0UmVuZGVyXT1cIm9wdHMgJiYgaXNFZGl0ICYmIGFsbG93Q2hhbmdTZXEgJiYgb3B0cy5pbWFnZUxpc3QubGVuZ3RoID4gMCA/IGZpbGVMaXN0VG1wIDogbnVsbFwiXHJcbiAgPlxyXG4gICAgPGkgbnotaWNvbiBuelR5cGU9XCJwbHVzXCI+PC9pPlxyXG4gICAgPGRpdiBjbGFzcz1cImFudC11cGxvYWQtdGV4dFwiPnt7b3B0cy5idG5OYW1lP29wdHMuYnRuTmFtZTon5LiK5Lyg5Zu+54mHJ319PC9kaXY+XHJcbiAgPC9uei11cGxvYWQ+XHJcbiAgPCEtLSA8YSAqbmdJZj1cImFsbG93Q2hhbmdTZXEgJiYgaXNFZGl0ICYmIG9wdHMuaW1hZ2VMaXN0Lmxlbmd0aCA+IDFcIiAoY2xpY2spPVwib3BlbkJhbm5lclNlcShpbWdzQ29udGVudCwgdHBsRm9vdGVyKVwiXHJcbiAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDEwcHg7IFwiXHJcbiAgID48aSBuei1pY29uIG56VHlwZT1cInBsdXNcIiBuelRoZW1lPVwib3V0bGluZVwiIHN0eWxlPVwiY29sb3I6ICMxODkwZmY7IGZvbnQtc2l6ZTogMTVweFwiPjwvaT7osIPmlbTlm77niYfpobrluo88L2E+LS0+XHJcbiAgPG56LW1vZGFsXHJcbiAgICBbbnpWaXNpYmxlXT1cInByZXZpZXdWaXNpYmxlXCJcclxuICAgIFtuekNvbnRlbnRdPVwibW9kYWxDb250ZW50XCJcclxuICAgIFtuekZvb3Rlcl09XCJudWxsXCJcclxuICAgIChuek9uQ2FuY2VsKT1cInByZXZpZXdWaXNpYmxlID0gZmFsc2VcIlxyXG4gID5cclxuICAgIDxuZy10ZW1wbGF0ZSAjbW9kYWxDb250ZW50PlxyXG4gICAgICA8aW1nICpuZ0lmPVwiIXByZXZpZXdJbWFnZS5lbmRzV2l0aCgnLm1wNCcpXCIgW3NyY109XCJwcmV2aWV3SW1hZ2VcIiBbbmdTdHlsZV09XCJ7IHdpZHRoOiAnMTAwJScgfVwiLz5cclxuICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlO21hcmdpbi10b3A6IDE1cHhcIj5cclxuICAgICAgICA8YXBwLXZpZGVvICpuZ0lmPVwicHJldmlld0ltYWdlLmVuZHNXaXRoKCcubXA0JylcIiBbdXJsXT1cInByZXZpZXdJbWFnZVwiPjwvYXBwLXZpZGVvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9uei1tb2RhbD5cclxuICA8bmctdGVtcGxhdGUgI2ltZ3NDb250ZW50PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdHMgJiYgb3B0cy5pbWFnZUxpc3RcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaW1ncyBvZiBvcHRzLmltYWdlTGlzdDtsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImltZy1kaXZcIj5cclxuICAgICAgICAgIDxpbWcgW3NyY109XCJpbWdzLnVybCB8fCBpbWdzLnRodW1iVXJsXCIgW25nU3R5bGVdPVwieyB3aWR0aDogJzEwMHB4JyxkaXNwbGF5OiAnaW5saW5lLWJsb2NrJywgbWFyZ2luOicxMHB4JyB9XCIvPlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMjBweFwiPlxyXG4gICAgICAgICAgICA8YSB0aXRsZT1cIuS4iuenu1wiICpuZ0lmPVwiIGkgPiAwXCIgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIiAoY2xpY2spPVwiYXJyb3dVcChpKVwiPjxpIG56LWljb24gbnpUeXBlPVwiYXJyb3ctdXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG56VGhlbWU9XCJvdXRsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImNvbG9yOiAjMTg5MGZmOyBmb250LXNpemU6IDE1cHg7XCI+PC9pPlxyXG4gICAgICAgICAgICAgIOS4iuenuzwvYT5cclxuICAgICAgICAgICAgPGEgdGl0bGU9XCLkuIvnp7tcIiAqbmdJZj1cIiBpIDwgb3B0cy5pbWFnZUxpc3QubGVuZ3RoIC0gMVwiIChjbGljayk9XCJhcnJvd0Rvd24oaSlcIj48aSBuei1pY29uIG56VHlwZT1cImFycm93LWRvd25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnpUaGVtZT1cIm91dGxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJjb2xvcjogIzE4OTBmZjsgZm9udC1zaXplOiAxNXB4XCI+PC9pPlxyXG4gICAgICAgICAgICAgIOS4i+enuzwvYT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDwhLS0gIDwvbnotbW9kYWw+LS0+XHJcbjwvZGl2PlxyXG48bmctdGVtcGxhdGUgI2ZpbGVMaXN0VG1wPlxyXG4gIDxkaXYgZHJhZ3VsYT1cImRyYWd1bGFCYWdcIiBbKGRyYWd1bGFNb2RlbCldPVwib3B0cy5pbWFnZUxpc3RcIiAoZHJhZ3VsYU1vZGVsQ2hhbmdlKT1cImRyYWdudW1iZXIoJGV2ZW50KVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaW1ncyBvZiBvcHRzLmltYWdlTGlzdDtsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbWctZGl2IGltZy1wcmVcIiBzdHlsZT1cIlwiPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJnZXRJbWdVcmwoaW1ncykgfG9zc0ltZ1wiIFtuZ1N0eWxlXT1cInsgd2lkdGg6ICcxMDBweCcsZGlzcGxheTogJ2lubGluZS1ibG9jaycsIG1hcmdpbjonMTBweCcgfVwiLz5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPHNwYW4gKGNsaWNrKT1cInByaXZpZXdJbWcoaW1ncylcIiBuei1pY29uIG56VHlwZT1cImV5ZVwiIG56VGhlbWU9XCJvdXRsaW5lXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKGNsaWNrKT1cImRlbEltZyhpKVwiIG56LWljb24gbnpUeXBlPVwiZGVsZXRlXCIgbnpUaGVtZT1cIm91dGxpbmVcIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcblxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3RwbEZvb3Rlcj5cclxuICA8YnV0dG9uIG56LWJ1dHRvbiBuelR5cGU9XCJkZWZhdWx0XCIgKGNsaWNrKT1cImRlc3Ryb3lUcGxNb2RhbCgpXCI+XHJcbiAgICDlj5bmtohcclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uIG56LWJ1dHRvbiBuelR5cGU9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInNhdmVTZXEoKVwiPlxyXG4gICAg5L+d5a2Y6aG65bqPXHJcbiAgPC9idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuIl19
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL3VwbG9hZC91cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUMsV0FBVyxFQUFhLGFBQWEsRUFBRSxZQUFZLEVBQTBCLE1BQU0sc0JBQXNCLENBQUM7QUFJbEgsT0FBTyxFQUFDLGdCQUFnQixFQUFZLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFReEQsTUFBTSxPQUFPLGVBQWU7SUE2QjFCLFlBQW9CLFFBQWtCLEVBQVUsY0FBOEIsRUFDMUQsVUFBc0IsRUFBVSxZQUE0QjtRQUQ1RCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzFELGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUEzQnZFLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUUvQixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBRXBCLGVBQVUsR0FBUSxFQUFFLENBQUE7UUFFWCxtQkFBYyxHQUF1STtZQUM1SixlQUFlLEVBQUUsSUFB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R0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBVTtRQUNsQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN2QyxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDekIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakMsSUFBSSxRQUFRLEdBQVEsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ3BDLElBQUksSUFBSSxDQUFDLEtBQUss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Q0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7OEdBOVFVLGVBQWU7a0dBQWYsZUFBZSx5UUNoQjVCLG11S0F1SEE7OzJGRHZHYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLGdCQUFnQjtnS0FNakIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBT04sV0FBVztzQkFEVixNQUFNO2dCQUlQLFVBQVU7c0JBRFQsTUFBTTtnQkFHUCxjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0h0dHBSZXF1ZXN0LCBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUsIEh0dHBSZXNwb25zZSwgSHR0cENsaWVudCwgSHR0cEhlYWRlcnN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtOek1vZGFsUmVmLCBOek1vZGFsU2VydmljZX0gZnJvbSAnbmctem9ycm8tYW50ZC9tb2RhbCc7XHJcbmltcG9ydCB7TnpVcGxvYWRDaGFuZ2VQYXJhbSwgTnpVcGxvYWRGaWxlLCBOelVwbG9hZFhIUkFyZ3N9IGZyb20gJ25nLXpvcnJvLWFudGQvdXBsb2FkJztcclxuaW1wb3J0IHtlbnZpcm9ubWVudH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvY29yZS9lbnZpcm9ubWVudHNcIjtcclxuaW1wb3J0IHthdHJfc3RhdGljX2RhdGFzLCBJbWFnZU9wdHN9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2Jhc2UvYXRyLWNvbW1vblwiO1xyXG5pbXBvcnQge0h0dHBTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9odHRwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUb29sc1V0aWx9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3V0aWxzL1Rvb2xzVXRpbFwiO1xyXG5pbXBvcnQge056SW1hZ2VTZXJ2aWNlfSBmcm9tICduZy16b3Jyby1hbnRkL2ltYWdlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXRyLWltZy11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBvcHRzOiBJbWFnZU9wdHMgfCBhbnk7XHJcbiAgQElucHV0KCkgaXNFZGl0ID0gdHJ1ZTtcclxuICBASW5wdXQoKSBhbGxvd0NoYW5nU2VxID0gZmFsc2U7XHJcbiAgdHBsTW9kYWw6IE56TW9kYWxSZWYgfCBhbnk7XHJcbiAgdXBsb2FkVXJsOiBhbnkgPSBcIlwiO1xyXG5cclxuICB1cGxvYWREYXRhOiBhbnkgPSB7fVxyXG5cclxuICBASW5wdXQoKSBzaG93VXBsb2FkTGlzdDogYm9vbGVhbiB8IHsgc2hvd1ByZXZpZXdJY29uPzogYm9vbGVhbiwgc2hvd1JlbW92ZUljb24/OiBib29sZWFuLCBzaG93RG93bmxvYWRJY29uPzogYm9vbGVhbiwgaGlkZVByZXZpZXdJY29uSW5Ob25JbWFnZT86IGJvb2xlYW4gfSA9IHtcclxuICAgIHNob3dQcmV2aWV3SWNvbjogdHJ1ZSxcclxuICAgIHNob3dSZW1vdmVJY29uOiB0cnVlLFxyXG4gICAgaGlkZVByZXZpZXdJY29uSW5Ob25JbWFnZTogdHJ1ZVxyXG4gIH07XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGFmdGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb3B0c0NoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25CZWZvcmVVcGxvYWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHJcbiAgcHJldmlld0ltYWdlOiBzdHJpbmcgfCBhbnkgPSAnJztcclxuICBwcmV2aWV3VmlzaWJsZSA9IGZhbHNlO1xyXG4gIGNoYW5nZVZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgbnpJbWFnZVNlcnZpY2U6IE56SW1hZ2VTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCwgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE56TW9kYWxTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIGdldEZpbGVUeWVJY29uKGZpbGVUeXBlOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGxldCB0aHVtYlVybCA9IHRoaXMuZ2V0RmlsZVRodW1iVXJsKGZpbGVUeXBlKTtcclxuICAgIGlmICh0aHVtYlVybCA9PT0gJycpIHtcclxuICAgICAgdGh1bWJVcmwgPSB0aGlzLmdldFRodW1iVXJsKGZpbGVOYW1lKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aHVtYlVybDtcclxuICB9XHJcblxyXG4gIGdldFRodW1iVXJsKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XHJcblxyXG4gICAgaWYgKCFwYXRoKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIC8vIOWQjue8gOiOt+WPllxyXG4gICAgaWYgKHBhdGguZW5kc1dpdGgoJy5tcDQnKSkge1xyXG4gICAgICByZXR1cm4gJy4uLy4uLy4uL2Fzc2V0cy92aWRlby5qcGcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RmlsZVRodW1iVXJsKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgdGh1bWJVcmwgPSAnJztcclxuICAgIGlmICh0eXBlID09PSAndmlkZW8vbXA0JyB8fCB0eXBlID09PSAnbXA0Jykge1xyXG4gICAgICB0aHVtYlVybCA9ICcuLi8uLi8uLi9hc3NldHMvdmlkZW8uanBnJztcclxuICAgIH1cclxuICAgIHJldHVybiB0aHVtYlVybDtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKHBhcmFtczogTnpVcGxvYWRDaGFuZ2VQYXJhbSkge1xyXG4gICAgY29uc29sZS5sb2cocGFyYW1zKTtcclxuICAgIGlmIChwYXJhbXMudHlwZSA9PSBcInN1Y2Nlc3NcIiB8fCBwYXJhbXMudHlwZSA9PSBcInJlbW92ZWRcIikge1xyXG5cclxuICAgICAgdGhpcy5vcHRzLmltYWdlTGlzdCA9IFtdO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLm9wdHMuaW1hZ2VMaXN0ID0gcGFyYW1zLmZpbGVMaXN0Lm1hcCgoZmlsZTogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgaWYgKGZpbGUudHlwZSA9PSAndmlkZW8vbXA0JyAmJiBmaWxlLnVpZCA9PT0gcGFyYW1zLmZpbGUudWlkKSB7XHJcbiAgICAgICAgICAgIGxldCB0aHVtYlVybCA9IHRoaXMuZ2V0RmlsZVR5ZUljb24oZmlsZS50eXBlLCBmaWxlLm5hbWUpO1xyXG4gICAgICAgICAgICBmaWxlLnRodW1iVXJsID0gdGh1bWJVcmwgPyB0aHVtYlVybCA6IGZpbGUudGh1bWJVcmw7XHJcbiAgICAgICAgICAgIGZpbGUudXJsID0gZmlsZS5vcmlnaW5GaWxlT2JqID8gYXRyX3N0YXRpY19kYXRhcy5PU1NfVVJMICsgZmlsZS5vcmlnaW5GaWxlT2JqWydrZXknXSA6IGZpbGVbJ3BhdGgnXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBmaWxlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LCA1MCk7XHJcbiAgICAgIGxldCBmaWxlVXJsczogYW55W10gPSBbXTtcclxuICAgICAgZm9yIChsZXQgZmlsZSBvZiBwYXJhbXMuZmlsZUxpc3QpIHtcclxuICAgICAgICBpZiAoZmlsZVtcImtleVwiXSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIGZpbGVVcmxzLnB1c2goZmlsZVtcImtleVwiXSk7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZpbGUub3JpZ2luRmlsZU9iaikge1xyXG4gICAgICAgICAgbGV0IG9yaWdpbkZpbGVPYmo6IGFueSA9IGZpbGUub3JpZ2luRmlsZU9ialxyXG4gICAgICAgICAgaWYgKG9yaWdpbkZpbGVPYmpbXCJrZXlcIl0gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGZpbGVVcmxzLnB1c2gob3JpZ2luRmlsZU9ialtcImtleVwiXSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuYWZ0ZXJDaGFuZ2UuZW1pdCh7a2V5OiB0aGlzLm9wdHMua2V5LCB2YWx1ZXM6IGZpbGVVcmxzLmpvaW4oXCIsXCIpfSk7XHJcbiAgICAgIHRoaXMub3B0c0NoYW5nZS5lbWl0KHRoaXMub3B0cylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IGh0dHBTZXJ2aWNlKCk6IEh0dHBTZXJ2aWNlIHtcclxuICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChIdHRwU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVQcmV2aWV3ID0gKGZpbGU6IE56VXBsb2FkRmlsZSkgPT4ge1xyXG4gICAgdGhpcy5wcmV2aWV3SW1hZ2UgPSBmaWxlLnVybCB8fCBmaWxlLnRodW1iVXJsO1xyXG4gICAgdGhpcy5wcmV2aWV3VmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgcmVtb3ZlID0gKGZpbGU6IE56VXBsb2FkRmlsZSkgPT4ge1xyXG4gICAgaWYgKCF0aGlzLmlzRWRpdCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhmaWxlKTtcclxuICAgIGlmICh0aGlzLm9wdHMgJiYgdGhpcy5vcHRzLnJlbW92ZUFjdGlvbikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGJlZm9yZVVwbG9hZCA9IChmaWxlOiBOelVwbG9hZEZpbGUsIGZpbGVMaXN0OiBOelVwbG9hZEZpbGVbXSk6YW55ID0+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPihvYnNlcnZlID0+IHtcclxuICAgICAgbGV0IGZpbGVOYW1lO1xyXG4gICAgICBpZiAodGhpcy5vcHRzLmtlZXBOYW1lKSB7XHJcbiAgICAgICAgZmlsZU5hbWUgPSBmaWxlLm5hbWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZmlsZU5hbWUgPSBUb29sc1V0aWwuZ2V0UmFuZG9tRmlsZU5hbWUoKSArIFwiLlwiICsgVG9vbHNVdGlsLmdldEZpbGVFeHQoZmlsZS5uYW1lKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9uQmVmb3JlVXBsb2FkLmVtaXQoe2NvZGU6ICdnZXRGaWxlJywgZGF0YToge2ZpbGU6IGZpbGUsIGZpbGVMaXN0OiBmaWxlTGlzdH19KVxyXG4gICAgICB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoYXRyX3N0YXRpY19kYXRhcy5PU1NfUE9MSUNZLCB7XHJcbiAgICAgICAgZGlyOiB0aGlzLm9wdHMudXBsb2FkRGlyLFxyXG4gICAgICAgIGZpbGVOYW1lOiBmaWxlTmFtZSxcclxuICAgICAgICAnc3VjY2Vzc19hY3Rpb25fc3RhdHVzJzogJzIwMCdcclxuICAgICAgfSwgVG9vbHNVdGlsLmdldEh0dHBPcHRpb25zKCkpLnN1YnNjcmliZShcclxuICAgICAgICByZXN1bHQgPT4ge1xyXG5cclxuICAgICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnVwbG9hZERhdGFbZmlsZS51aWRdID0gcmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICAgIG9ic2VydmUubmV4dCh0cnVlKTtcclxuICAgICAgICAgIH0gZWxzZVxyXG4gICAgICAgICAgICBvYnNlcnZlLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgICBvYnNlcnZlLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICB9KVxyXG5cclxuICB9XHJcbiAgY3VzdG9tUmVxID0gKGl0ZW06IE56VXBsb2FkWEhSQXJncyk6YW55ID0+IHtcclxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBsZXQgdXBsb2FkRGF0YSA9IHRoaXMudXBsb2FkRGF0YVtpdGVtLmZpbGUudWlkXTtcclxuICAgIGZvciAobGV0IGtleSBpbiB1cGxvYWREYXRhKSB7XHJcbiAgICAgIGlmIChrZXkgIT0gJ2hvc3QnKVxyXG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChrZXksIHVwbG9hZERhdGFba2V5XSlcclxuICAgIH1cclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGl0ZW0uZmlsZSBhcyBhbnkpO1xyXG4gICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgdXBsb2FkRGF0YS5ob3N0ISwgZm9ybURhdGEsIHtcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWVcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdChyZXEpLnN1YnNjcmliZShcclxuICAgICAgKGV2ZW50OiBIdHRwRXZlbnQ8YW55PikgPT4ge1xyXG4gICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKSB7XHJcbiAgICAgICAgICBpZiAoZXZlbnQudG90YWwhID4gMCkge1xyXG4gICAgICAgICAgICAoZXZlbnQgYXMgYW55KS5wZXJjZW50ID0gKGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsISkgKiAxMDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpdGVtLm9uUHJvZ3Jlc3MhKGV2ZW50LCBpdGVtLmZpbGUhKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICBpdGVtLmZpbGVbXCJrZXlcIl0gPSB1cGxvYWREYXRhLmtleTtcclxuICAgICAgICAgIGl0ZW0ub25TdWNjZXNzIShldmVudC5ib2R5LCBpdGVtLmZpbGUhLCBldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnIgPT4ge1xyXG4gICAgICAgIGl0ZW0ub25FcnJvciEoZXJyLCBpdGVtLmZpbGUhKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9O1xyXG5cclxuICBvcGVuQmFubmVyU2VxKHRwbENvbnRlbnQ6IGFueSwgdHBsRm9vdGVyOiBhbnkpIHtcclxuICAgIHRoaXMudHBsTW9kYWwgPSB0aGlzLm1vZGFsU2VydmljZS5jcmVhdGUoe1xyXG4gICAgICBuelRpdGxlOiBcIuS/ruaUueWbvueJh+mhuuW6j1wiLFxyXG4gICAgICBuekNvbnRlbnQ6IHRwbENvbnRlbnQsXHJcbiAgICAgIG56Rm9vdGVyOiB0cGxGb290ZXIsXHJcbiAgICAgIG56TWFza0Nsb3NhYmxlOiBmYWxzZSxcclxuICAgICAgbnpDbG9zYWJsZTogZmFsc2UsXHJcbiAgICAgIG56T25PazogKCkgPT4gY29uc29sZS5sb2coJ0NsaWNrIG9rJylcclxuICAgIH0pO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5vcHRzLmltYWdlTGlzdCk7XHJcbiAgICB0aGlzLmNoYW5nZVZpc2libGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveVRwbE1vZGFsKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudHBsTW9kYWwpXHJcbiAgICAgIHRoaXMudHBsTW9kYWwuZGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbiAgYXJyb3dVcChpbmRleDogYW55KSB7XHJcbiAgICBsZXQgaW1nID0gdGhpcy5vcHRzLmltYWdlTGlzdFtpbmRleF07XHJcbiAgICB0aGlzLm9wdHMuaW1hZ2VMaXN0W2luZGV4XSA9IHRoaXMub3B0cy5pbWFnZUxpc3RbaW5kZXggLSAxXTtcclxuICAgIHRoaXMub3B0cy5pbWFnZUxpc3RbaW5kZXggLSAxXSA9IGltZztcclxuICB9XHJcblxyXG4gIGFycm93RG93bihpbmRleDogYW55KSB7XHJcbiAgICBsZXQgaW1nID0gdGhpcy5vcHRzLmltYWdlTGlzdFtpbmRleF07XHJcbiAgICB0aGlzLm9wdHMuaW1hZ2VMaXN0W2luZGV4XSA9IHRoaXMub3B0cy5pbWFnZUxpc3RbaW5kZXggKyAxXTtcclxuICAgIHRoaXMub3B0cy5pbWFnZUxpc3RbaW5kZXggKyAxXSA9IGltZztcclxuICB9XHJcblxyXG4gIHNhdmVTZXEoKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3lUcGxNb2RhbCgpO1xyXG4gICAgbGV0IGltZ3MgPSB0aGlzLm9wdHMuaW1hZ2VMaXN0O1xyXG4gICAgdGhpcy5vcHRzLmltYWdlTGlzdCA9IFtdO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMub3B0cy5pbWFnZUxpc3QgPSBpbWdzO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLm9wdHMuaW1hZ2VMaXN0KTtcclxuICAgICAgbGV0IGZpbGVVcmxzOiBhbnkgPSBbXTtcclxuICAgICAgZm9yIChsZXQgZmlsZSBvZiB0aGlzLm9wdHMuaW1hZ2VMaXN0KSB7XHJcbiAgICAgICAgaWYgKGZpbGVbXCJrZXlcIl0gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBmaWxlVXJscy5wdXNoKGZpbGVbXCJrZXlcIl0pO1xyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmaWxlLm9yaWdpbkZpbGVPYmogJiYgZmlsZS5vcmlnaW5GaWxlT2JqW1wia2V5XCJdICE9IHVuZGVmaW5lZClcclxuICAgICAgICAgIGZpbGVVcmxzLnB1c2goZmlsZS5vcmlnaW5GaWxlT2JqW1wia2V5XCJdKVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmFmdGVyQ2hhbmdlLmVtaXQoe2tleTogdGhpcy5vcHRzLmtleSwgdmFsdWVzOiBmaWxlVXJscy5qb2luKFwiLFwiKX0pO1xyXG4gICAgfSwgNTApXHJcblxyXG4gIH1cclxuXHJcbiAgZHJhZ251bWJlcihudW1lcjogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhudW1lcik7XHJcbiAgICBjb25zb2xlLmxvZygnb3InLCB0aGlzLm9wdHMuaW1hZ2VMaXN0KVxyXG4gICAgY29uc29sZS5sb2coJ25ldycsIG51bWVyKVxyXG4gICAgdGhpcy5zYXZlU2VxKCk7XHJcbiAgICAvLyB0aGlzLm9wdHMuaW1hZ2VMaXN0ID0gbnVtZXJcclxuICB9XHJcblxyXG4gIGRlbEltZyhudW1lcjogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhudW1lcik7XHJcbiAgICB0aGlzLm9wdHMuaW1hZ2VMaXN0ID0gdGhpcy5vcHRzLmltYWdlTGlzdC5maWx0ZXIoKHY6IGFueSwgaTogYW55KSA9PiBpICE9IG51bWVyKVxyXG4gICAgbGV0IGZpbGVVcmxzOiBhbnkgPSBbXTtcclxuICAgIGZvciAobGV0IGZpbGUgb2YgdGhpcy5vcHRzLmltYWdlTGlzdCkge1xyXG4gICAgICBpZiAoZmlsZVtcImtleVwiXSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICBmaWxlVXJscy5wdXNoKGZpbGVbXCJrZXlcIl0pO1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChmaWxlLm9yaWdpbkZpbGVPYmogJiYgZmlsZS5vcmlnaW5GaWxlT2JqW1wia2V5XCJdICE9IHVuZGVmaW5lZClcclxuICAgICAgICBmaWxlVXJscy5wdXNoKGZpbGUub3JpZ2luRmlsZU9ialtcImtleVwiXSlcclxuICAgIH1cclxuICAgIHRoaXMuYWZ0ZXJDaGFuZ2UuZW1pdCh7a2V5OiB0aGlzLm9wdHMua2V5LCB2YWx1ZXM6IGZpbGVVcmxzLmpvaW4oXCIsXCIpfSk7XHJcbiAgfVxyXG5cclxuICBwcml2aWV3SW1nKGltZzogYW55KSB7XHJcbiAgICBsZXQgdXJsID0gVG9vbHNVdGlsLmdldE9zc1VybCh0aGlzLmdldEltZ1VybChpbWcpKVxyXG4gICAgY29uc29sZS5sb2codXJsKVxyXG4gICAgdGhpcy5uekltYWdlU2VydmljZS5wcmV2aWV3KFt7XHJcbiAgICAgIHNyYzogdXJsLFxyXG4gICAgICBhbHQ6ICduZy16b3JybydcclxuICAgIH1dLCB7bnpab29tOiAxLjUsIG56Um90YXRlOiAwfSk7XHJcbiAgfVxyXG5cclxuICBnZXRJbWdVcmwoaW1nOiBhbnkpIHtcclxuICAgIGlmIChpbWcub3JpZ2luRmlsZU9iaiAmJiBpbWcub3JpZ2luRmlsZU9iai5rZXkpIHtcclxuICAgICAgcmV0dXJuIGltZy5vcmlnaW5GaWxlT2JqLmtleVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIChpbWcudXJsIHx8IGltZy50aHVtYlVybClcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNsZWFyZml4XCI+XHJcbiAgPG56LXVwbG9hZFxyXG4gICAgKm5nSWY9XCJvcHRzICYmIG9wdHM/LnVwbG9hZFR5cGUgPT0gJ2RyYWcnXCJcclxuICAgIG56VHlwZT1cImRyYWdcIlxyXG4gICAgbnpBY3Rpb249XCJcIlxyXG4gICAgW256QmVmb3JlVXBsb2FkXT1cImJlZm9yZVVwbG9hZFwiXHJcbiAgICBbbnpSZW1vdmVdPVwicmVtb3ZlXCJcclxuICAgIFtuelNpemVdPVwib3B0cy5uelNpemUgfHwgMFwiXHJcbiAgICBbbnpDdXN0b21SZXF1ZXN0XT1cImN1c3RvbVJlcVwiXHJcbiAgICAobnpDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICBbbnpUeXBlXT1cIm9wdHM/LnVwbG9hZFR5cGVcIlxyXG4gICAgW256QWNjZXB0XT1cIm9wdHMubnpGaWxlVHlwZVwiXHJcbiAgICBbbnpMaW1pdF09XCInMSdcIlxyXG4gID5cclxuICAgIDxwIGNsYXNzPVwiYW50LXVwbG9hZC1kcmFnLWljb25cIj5cclxuICAgICAgPGkgbnotaWNvbiBuelR5cGU9XCJpbmJveFwiPjwvaT5cclxuICAgIDwvcD5cclxuICAgIDxwIGNsYXNzPVwiYW50LXVwbG9hZC10ZXh0XCI+5Y2V5Ye75oiW5ouW5Yqo5paH5Lu25Yiw5q2k5Yy65Z+f5LiK5LygPC9wPlxyXG4gIDwvbnotdXBsb2FkPlxyXG4gIDxuei11cGxvYWRcclxuICAgICpuZ0lmPVwib3B0cyAmJiBvcHRzPy51cGxvYWRUeXBlID09ICdidXR0b24nXCJcclxuICAgIG56VHlwZT1cImRyYWdcIlxyXG4gICAgbnpBY3Rpb249XCJcIlxyXG4gICAgW256U2l6ZV09XCJvcHRzLm56U2l6ZSB8fCAwXCJcclxuICAgIFtuelNob3dVcGxvYWRMaXN0XT1cInNob3dVcGxvYWRMaXN0XCJcclxuICAgIFtuekJlZm9yZVVwbG9hZF09XCJiZWZvcmVVcGxvYWRcIlxyXG4gICAgW256UmVtb3ZlXT1cInJlbW92ZVwiXHJcbiAgICBbbnpDdXN0b21SZXF1ZXN0XT1cImN1c3RvbVJlcVwiXHJcbiAgICAobnpDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICBbbnpUeXBlXT1cIm9wdHM/LnVwbG9hZFR5cGVcIlxyXG4gICAgW256QWNjZXB0XT1cIm9wdHMubnpGaWxlVHlwZVwiXHJcbiAgICBbbnpMaW1pdF09XCInMSdcIlxyXG4gID5cclxuICAgIDxidXR0b24gbnotYnV0dG9uIG56U2l6ZT1cInNtYWxsXCI+PGkgbnotaWNvbiBuelR5cGU9XCJ1cGxvYWRcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTZweFwiPjwvaT48c3Bhbj4ge3tvcHRzLmJ0bk5hbWV9fTwvc3Bhbj48L2J1dHRvbj5cclxuICA8L256LXVwbG9hZD5cclxuICA8bnotdXBsb2FkXHJcbiAgICAqbmdJZj1cIm9wdHMgJiYgIW9wdHM/LnVwbG9hZFR5cGUgXCJcclxuICAgIG56QWN0aW9uPVwiXCJcclxuICAgIG56TGlzdFR5cGU9XCJwaWN0dXJlLWNhcmRcIlxyXG4gICAgW256U2l6ZV09XCJvcHRzLm56U2l6ZSB8fCAwXCJcclxuICAgIFsobnpGaWxlTGlzdCldPVwib3B0cy5pbWFnZUxpc3RcIlxyXG4gICAgW256U2hvd0J1dHRvbl09XCJvcHRzLmltYWdlTGlzdC5sZW5ndGggPCBvcHRzLmxpbWl0XCJcclxuICAgIFtuelNob3dVcGxvYWRMaXN0XT1cInNob3dVcGxvYWRMaXN0XCJcclxuICAgIFtuelByZXZpZXddPVwiaGFuZGxlUHJldmlld1wiXHJcbiAgICBbbnpSZW1vdmVdPVwicmVtb3ZlXCJcclxuICAgIFtuekJlZm9yZVVwbG9hZF09XCJiZWZvcmVVcGxvYWRcIlxyXG4gICAgW256Q3VzdG9tUmVxdWVzdF09XCJjdXN0b21SZXFcIlxyXG4gICAgKG56Q2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgW256VHlwZV09XCJvcHRzPy51cGxvYWRUeXBlXCJcclxuICAgIFtuekFjY2VwdF09XCJvcHRzLm56RmlsZVR5cGVcIlxyXG4gICAgW256RGlzYWJsZWRdPVwiIWlzRWRpdFwiXHJcbiAgICBbbnpMaW1pdF09XCInMSdcIlxyXG4gICAgW256RmlsZUxpc3RSZW5kZXJdPVwib3B0cyAmJiBpc0VkaXQgJiYgYWxsb3dDaGFuZ1NlcSAmJiBvcHRzLmltYWdlTGlzdC5sZW5ndGggPiAwID8gZmlsZUxpc3RUbXAgOiBudWxsXCJcclxuICA+XHJcbiAgICA8aSBuei1pY29uIG56VHlwZT1cInBsdXNcIj48L2k+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYW50LXVwbG9hZC10ZXh0XCI+e3tvcHRzLmJ0bk5hbWU/b3B0cy5idG5OYW1lOifkuIrkvKDlm77niYcnfX08L2Rpdj5cclxuICA8L256LXVwbG9hZD5cclxuICA8IS0tIDxhICpuZ0lmPVwiYWxsb3dDaGFuZ1NlcSAmJiBpc0VkaXQgJiYgb3B0cy5pbWFnZUxpc3QubGVuZ3RoID4gMVwiIChjbGljayk9XCJvcGVuQmFubmVyU2VxKGltZ3NDb250ZW50LCB0cGxGb290ZXIpXCJcclxuICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogMTBweDsgXCJcclxuICAgPjxpIG56LWljb24gbnpUeXBlPVwicGx1c1wiIG56VGhlbWU9XCJvdXRsaW5lXCIgc3R5bGU9XCJjb2xvcjogIzE4OTBmZjsgZm9udC1zaXplOiAxNXB4XCI+PC9pPuiwg+aVtOWbvueJh+mhuuW6jzwvYT4tLT5cclxuICA8bnotbW9kYWxcclxuICAgIFtuelZpc2libGVdPVwicHJldmlld1Zpc2libGVcIlxyXG4gICAgW256Q29udGVudF09XCJtb2RhbENvbnRlbnRcIlxyXG4gICAgW256Rm9vdGVyXT1cIm51bGxcIlxyXG4gICAgKG56T25DYW5jZWwpPVwicHJldmlld1Zpc2libGUgPSBmYWxzZVwiXHJcbiAgPlxyXG4gICAgPG5nLXRlbXBsYXRlICNtb2RhbENvbnRlbnQ+XHJcbiAgICAgIDxpbWcgKm5nSWY9XCIhcHJldmlld0ltYWdlLmVuZHNXaXRoKCcubXA0JylcIiBbc3JjXT1cInByZXZpZXdJbWFnZVwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6ICcxMDAlJyB9XCIvPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCU7bWFyZ2luLXRvcDogMTVweFwiPlxyXG4gICAgICAgIDxhcHAtdmlkZW8gKm5nSWY9XCJwcmV2aWV3SW1hZ2UuZW5kc1dpdGgoJy5tcDQnKVwiIFt1cmxdPVwicHJldmlld0ltYWdlXCI+PC9hcHAtdmlkZW8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L256LW1vZGFsPlxyXG4gIDxuZy10ZW1wbGF0ZSAjaW1nc0NvbnRlbnQ+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0cyAmJiBvcHRzLmltYWdlTGlzdFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpbWdzIG9mIG9wdHMuaW1hZ2VMaXN0O2xldCBpID0gaW5kZXhcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW1nLWRpdlwiPlxyXG4gICAgICAgICAgPGltZyBbc3JjXT1cImltZ3MudXJsIHx8IGltZ3MudGh1bWJVcmxcIiBbbmdTdHlsZV09XCJ7IHdpZHRoOiAnMTAwcHgnLGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLCBtYXJnaW46JzEwcHgnIH1cIi8+XHJcbiAgICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAyMHB4XCI+XHJcbiAgICAgICAgICAgIDxhIHRpdGxlPVwi5LiK56e7XCIgKm5nSWY9XCIgaSA+IDBcIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiIChjbGljayk9XCJhcnJvd1VwKGkpXCI+PGkgbnotaWNvbiBuelR5cGU9XCJhcnJvdy11cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnpUaGVtZT1cIm91dGxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiY29sb3I6ICMxODkwZmY7IGZvbnQtc2l6ZTogMTVweDtcIj48L2k+XHJcbiAgICAgICAgICAgICAg5LiK56e7PC9hPlxyXG4gICAgICAgICAgICA8YSB0aXRsZT1cIuS4i+enu1wiICpuZ0lmPVwiIGkgPCBvcHRzLmltYWdlTGlzdC5sZW5ndGggLSAxXCIgKGNsaWNrKT1cImFycm93RG93bihpKVwiPjxpIG56LWljb24gbnpUeXBlPVwiYXJyb3ctZG93blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuelRoZW1lPVwib3V0bGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImNvbG9yOiAjMTg5MGZmOyBmb250LXNpemU6IDE1cHhcIj48L2k+XHJcbiAgICAgICAgICAgICAg5LiL56e7PC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPCEtLSAgPC9uei1tb2RhbD4tLT5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZSAjZmlsZUxpc3RUbXA+XHJcbiAgPGRpdiBkcmFndWxhPVwiZHJhZ3VsYUJhZ1wiIFsoZHJhZ3VsYU1vZGVsKV09XCJvcHRzLmltYWdlTGlzdFwiIChkcmFndWxhTW9kZWxDaGFuZ2UpPVwiZHJhZ251bWJlcigkZXZlbnQpXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpbWdzIG9mIG9wdHMuaW1hZ2VMaXN0O2xldCBpID0gaW5kZXhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImltZy1kaXYgaW1nLXByZVwiIHN0eWxlPVwiXCI+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cImdldEltZ1VybChpbWdzKSB8b3NzSW1nXCIgW25nU3R5bGVdPVwieyB3aWR0aDogJzEwMHB4JyxkaXNwbGF5OiAnaW5saW5lLWJsb2NrJywgbWFyZ2luOicxMHB4JyB9XCIvPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8c3BhbiAoY2xpY2spPVwicHJpdmlld0ltZyhpbWdzKVwiIG56LWljb24gbnpUeXBlPVwiZXllXCIgbnpUaGVtZT1cIm91dGxpbmVcIj48L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAoY2xpY2spPVwiZGVsSW1nKGkpXCIgbnotaWNvbiBuelR5cGU9XCJkZWxldGVcIiBuelRoZW1lPVwib3V0bGluZVwiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuXHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjdHBsRm9vdGVyPlxyXG4gIDxidXR0b24gbnotYnV0dG9uIG56VHlwZT1cImRlZmF1bHRcIiAoY2xpY2spPVwiZGVzdHJveVRwbE1vZGFsKClcIj5cclxuICAgIOWPlua2iFxyXG4gIDwvYnV0dG9uPlxyXG4gIDxidXR0b24gbnotYnV0dG9uIG56VHlwZT1cInByaW1hcnlcIiAoY2xpY2spPVwic2F2ZVNlcSgpXCI+XHJcbiAgICDkv53lrZjpobrluo9cclxuICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG4iXX0=
|