fantasy-ngzorro 2.2.19 → 2.2.21
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/README.md +4 -0
- package/bundles/fantasy-ngzorro.umd.js +70 -9
- package/bundles/fantasy-ngzorro.umd.js.map +1 -1
- package/bundles/fantasy-ngzorro.umd.min.js +1 -1
- package/bundles/fantasy-ngzorro.umd.min.js.map +1 -1
- package/esm2015/hd-detail-lines/hd-detail-lines.component.js +3 -3
- package/esm2015/hd-filter/hd-filter.component.js +42 -5
- package/esm2015/hd-form-lines/hd-form-lines.component.js +3 -3
- package/esm2015/hd-table/hd-table.component.js +16 -2
- package/esm5/hd-detail-lines/hd-detail-lines.component.js +3 -3
- package/esm5/hd-filter/hd-filter.component.js +52 -5
- package/esm5/hd-form-lines/hd-form-lines.component.js +3 -3
- package/esm5/hd-table/hd-table.component.js +16 -2
- package/fantasy-ngzorro.metadata.json +1 -1
- package/fesm2015/fantasy-ngzorro.js +60 -9
- package/fesm2015/fantasy-ngzorro.js.map +1 -1
- package/fesm5/fantasy-ngzorro.js +70 -9
- package/fesm5/fantasy-ngzorro.js.map +1 -1
- package/hd-filter/hd-filter.component.d.ts +4 -0
- package/hd-table/hd-table.component.d.ts +2 -0
- package/package.json +2 -2
|
@@ -496,8 +496,8 @@ export class HdDetailLinesComponent {
|
|
|
496
496
|
HdDetailLinesComponent.decorators = [
|
|
497
497
|
{ type: Component, args: [{
|
|
498
498
|
selector: "hd-detail-lines",
|
|
499
|
-
template: "<ng-container>\n <hd-button-group *ngIf=\"showSearch\">\n <ng-template #buttonGroupLeft>\n <nz-input-group [nzSuffix]=\"suffixIconSearch\">\n <input type=\"text\" nz-input (keyup.enter)=\"searchLines()\" placeholder=\"\u8BF7\u8F93\u5165\u5185\u5BB9\u641C\u7D22\"
|
|
500
|
-
styles: ["::ng-deep .common-btn-group>a{font-size:14px;font-weight:400;color:#20b95d!important;white-space:nowrap}::ng-deep .common-btn-group .common-danger-btn:hover{color:#f05b24!important}::ng-deep .common-btn-group>a:hover{color:#20bd62!important}::ng-deep .common-btn-group>a:not(:last-child)::after{content:'';margin:0 2px}::ng-deep .common-billNumber>a{color:#3b77e3}button{box-shadow:unset;text-shadow:unset}::ng-deep .ant-form-item-label>label{color:#4b504e;font-size:14px}::ng-deep .ant-input-number-input{height:32px}::ng-deep .ant-input-number{height:32px}textarea.ant-input{height:auto;min-height:32px}::ng-deep .ant-select-selection--multiple{min-height:32px}::ng-deep .ant-select-selection--multiple .ant-select-selection__rendered>ul>li.ant-select-search--inline:only-child{margin-left:4px}::ng-deep .ant-select-selection__rendered>ul>li{height:26px!important;margin-top:3px!important;line-height:26px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:32px!important}::ng-deep .ant-input{height:32px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:32px!important}::ng-deep .ant-calendar-range-picker-input{text-align:left!important}::ng-deep .ant-calendar-picker{width:100%!important}::ng-deep .ant-row{margin-right:0!important;margin-left:0!important}::ng-deep .ant-col-6{padding-left:12px;padding-right:12px}::ng-deep .ant-col-12{padding-left:12px;padding-right:12px}::ng-deep .ant-col-18{padding-left:12px;padding-right:12px}::ng-deep .ant-col-24{padding-left:12px;padding-right:12px}::ng-deep .ant-alert-info{background-color:#f5f8f6;border:1px solid #cfe3d4}::ng-deep .hd-table-container .ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-th-right-sticky{z-index:2;transform:translateZ(0)}::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-right-sticky{background:#f5f8f6!important}::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-right-sticky{background:#fff}::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-right-sticky{background:#ecf8f1!important}::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-th-right-sticky{box-shadow:none!important}::ng-deep .hd-table-container .ant-table-fixed-right{right:0!important}:host ::ng-deep th{background:#f5f8f6!important;font-weight:700!important;white-space:nowrap;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#2a3634;padding:8px!important;box-sizing:border-box}:host ::ng-deep td{font-weight:400;font-style:normal;font-size:14px;color:#2a3634;text-align:left;white-space:nowrap;padding:8px!important;box-sizing:border-box}::ng-deep .ant-pagination-options{display:inline-flex;align-items:center}::ng-deep .ant-pagination-options .ant-select,::ng-deep .ant-pagination-options .ant-select-selection--single{min-width:100px}::ng-deep .ant-pagination-options-size-changer.ant-select{min-width:100px}::ng-deep .ant-time-picker{width:100%}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child{width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;min-width:var(--hd-cascader-menu-min-width,auto);max-width:560px}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child .ant-cascader-menu-item{white-space:nowrap}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}.hd-table-container ::ng-deep .ant-pagination-options-quick-jumper input{border-radius:2px;border:1px solid #d9d9d9}.hd-table-container ::ng-deep .ant-pagination-options .ant-select-selection{border-radius:2px}.hd-table-container ::ng-deep .ant-table-thead>tr>th{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr>td{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-right-sticky{background:#f7f8fa!important;color:#868a9c!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a{color:#20b95d!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a:hover{color:#20bd62!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group .common-danger-btn:hover{color:#f05b24!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-table-cell-value>a,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td>a{color:#20b95d}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-billNumber>a{color:#3b77e3}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-status-text{color:#868a9c!important}.hd-table-container ::ng-deep .hd-table-total>td{border:0!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-body{max-height:calc(100vh - 280px)!important;overflow-y:auto!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y).hd-detail-lines--with-search ::ng-deep .ant-table-body{max-height:calc(100vh - 320px)!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-thead>tr>th{position:-webkit-sticky;position:sticky;top:0;z-index:2;background:#fafafa}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-thead>tr>th.ant-table-th-left-sticky,.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-thead>tr>th.ant-table-th-right-sticky{z-index:4;background:#fafafa!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-tbody>tr>td.ant-table-td-left-sticky,.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-tbody>tr>td.ant-table-td-right-sticky{z-index:3}.hd-table-container:not(.hd-detail-lines--scroll-y):not(.hd-detail-lines--scroll-x) ::ng-deep .ant-table-body{max-height:none!important;overflow-y:visible!important}"]
|
|
499
|
+
template: "<ng-container>\n <hd-button-group *ngIf=\"showSearch\">\n <ng-template #buttonGroupLeft>\n <nz-input-group class=\"hd-lines-search\" [nzSuffix]=\"suffixIconSearch\">\n <input type=\"text\" nz-input (keyup.enter)=\"searchLines()\" placeholder=\"\u8BF7\u8F93\u5165\u5185\u5BB9\u641C\u7D22\"\n [(ngModel)]=\"filterStr\" />\n </nz-input-group>\n <ng-template #suffixIconSearch>\n <i nz-icon nzType=\"search\" (click)=\"searchLines()\"></i>\n </ng-template>\n </ng-template>\n </hd-button-group>\n\n <hd-space *ngIf=\"showSearch\" background=\"transparent\" type=\"row\" size=\"16\"></hd-space>\n\n <nz-table *ngIf=\"showTable\" #hdTable class=\"hd-table-container\"\n [class.hd-detail-lines--scroll-y]=\"!!(effectiveScroll && effectiveScroll.y)\"\n [class.hd-detail-lines--scroll-x]=\"!!(effectiveScroll && effectiveScroll.x)\"\n [class.hd-detail-lines--with-search]=\"showSearch\"\n [nzScroll]=\"effectiveScroll\" nzShowSizeChanger\n [nzFrontPagination]=\"hdFrontPagination\" [nzShowQuickJumper]=\"hdFrontPagination\" [nzShowTotal]=\"tableTotalTemplate\"\n nzSize=\"middle\" [nzData]=\"displayLines\" [nzLoading]=\"tableLoading\" [(nzPageSize)]=\"tablePageSize\"\n [nzPageSizeOptions]=\"[ 10, 50, 100, 200, 500, 1000 ]\"\n (nzCurrentPageDataChange)=\"showSelected ? currentPageDataChange($event) : null\">\n <thead>\n <tr>\n <th *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox [(nzChecked)]=\"isAllDisplayDataChecked\"\n [nzIndeterminate]=\"isIndeterminate\" (nzCheckedChange)=\"checkAll($event)\"></th>\n <ng-container *ngTemplateOutlet=\"detailLineHead\"></ng-container>\n </tr>\n </thead>\n <tbody *ngIf=\"!allowDrop;else allowDropTemplate\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: i}\"></ng-container>\n </tr>\n <!-- \u5408\u8BA1\u533A\u57DF -->\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value ===\n 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tbody>\n <ng-template #allowDropTemplate>\n <tbody cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let data of hdTable.data;index as i\" cdkDrag [class.hd-table-row-invalid]=\"isInvalidRow(data)\">\n <td *ngIf=\"showSelected\" nzWidth=\"40px\" nzLeft=\"0px\" nzShowCheckbox\n [nzChecked]=\"mapOfCheckedId[data[selectField]]\" [nzDisabled]=\"isSelectDisabled(data)\"\n (nzCheckedChange)=\"refreshStatus($event, data)\"></td>\n <ng-container *ngTemplateOutlet=\"detailLineBody;context:{$implicit: data, index: i}\"></ng-container>\n </tr>\n <!-- \u5408\u8BA1\u533A\u57DF -->\n <tr *ngIf=\"showTotal\" class=\"hd-table-total\">\n <td *ngIf=\"showSelected\"></td>\n <td>\u5408\u8BA1</td>\n <ng-container *ngFor=\"let totalOption of totalOptionList\">\n <td *ngIf=\"!totalOption.isHide\" [nzAlign]=\"totalOption.align ? totalOption.align : 'left'\">{{\n (totalOption.value || totalOption.value\n === 0) ? (((totalOption.value % 1 === 0) && !totalOption.showDecimal ) ? totalOption.value :\n LodashRound(totalOption.value, totalOption.preserveNumber).toFixed(totalOption.preserveNumber)) : '' }} </td>\n </ng-container>\n </tr>\n </tbody>\n </ng-template>\n <ng-template #tableTotalTemplate>\n \u5171 {{displayLines.length}} \u6761\u6570\u636E\n </ng-template>\n </nz-table>\n</ng-container>\n",
|
|
500
|
+
styles: ["::ng-deep .common-btn-group>a{font-size:14px;font-weight:400;color:#20b95d!important;white-space:nowrap}::ng-deep .common-btn-group .common-danger-btn:hover{color:#f05b24!important}::ng-deep .common-btn-group>a:hover{color:#20bd62!important}::ng-deep .common-btn-group>a:not(:last-child)::after{content:'';margin:0 2px}::ng-deep .common-billNumber>a{color:#3b77e3}button{box-shadow:unset;text-shadow:unset}::ng-deep .ant-form-item-label>label{color:#4b504e;font-size:14px}::ng-deep .ant-input-number-input{height:32px}::ng-deep .ant-input-number{height:32px}textarea.ant-input{height:auto;min-height:32px}::ng-deep .ant-select-selection--multiple{min-height:32px}::ng-deep .ant-select-selection--multiple .ant-select-selection__rendered>ul>li.ant-select-search--inline:only-child{margin-left:4px}::ng-deep .ant-select-selection__rendered>ul>li{height:26px!important;margin-top:3px!important;line-height:26px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:32px!important}::ng-deep .ant-input{height:32px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:32px!important}::ng-deep .ant-calendar-range-picker-input{text-align:left!important}::ng-deep .ant-calendar-picker{width:100%!important}::ng-deep .ant-row{margin-right:0!important;margin-left:0!important}::ng-deep .ant-col-6{padding-left:12px;padding-right:12px}::ng-deep .ant-col-12{padding-left:12px;padding-right:12px}::ng-deep .ant-col-18{padding-left:12px;padding-right:12px}::ng-deep .ant-col-24{padding-left:12px;padding-right:12px}::ng-deep .ant-alert-info{background-color:#f5f8f6;border:1px solid #cfe3d4}::ng-deep .hd-table-container .ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-th-right-sticky{z-index:2;transform:translateZ(0)}::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-left-sticky,::ng-deep .hd-table-container .ant-table-thead>tr>th.ant-table-th-right-sticky{background:#f5f8f6!important}::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr>td.ant-table-td-right-sticky{background:#fff}::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr.ant-table-row-hover>td.ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-left-sticky,::ng-deep .hd-table-container .ant-table-tbody>tr:hover>td.ant-table-td-right-sticky{background:#ecf8f1!important}::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-left .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-middle .ant-table-th-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-td-right-sticky,::ng-deep .hd-table-container .ant-table-scroll-position-right .ant-table-th-right-sticky{box-shadow:none!important}::ng-deep .hd-table-container .ant-table-fixed-right{right:0!important}:host ::ng-deep th{background:#f5f8f6!important;font-weight:700!important;white-space:nowrap;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#2a3634;padding:8px!important;box-sizing:border-box}:host ::ng-deep td{font-weight:400;font-style:normal;font-size:14px;color:#2a3634;text-align:left;white-space:nowrap;padding:8px!important;box-sizing:border-box}::ng-deep .ant-pagination-options{display:inline-flex;align-items:center}::ng-deep .ant-pagination-options .ant-select,::ng-deep .ant-pagination-options .ant-select-selection--single{min-width:100px}::ng-deep .ant-pagination-options-size-changer.ant-select{min-width:100px}::ng-deep .ant-time-picker{width:100%}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child{width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;min-width:var(--hd-cascader-menu-min-width,auto);max-width:560px}::ng-deep .cdk-overlay-pane .hd-cascader-menus.ant-cascader-menus>.ant-cascader-menu:only-child .ant-cascader-menu-item{white-space:nowrap}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}:host ::ng-deep .hd-lines-search{width:300px;flex-shrink:0}.hd-table-container ::ng-deep .ant-pagination-options-quick-jumper input{border-radius:2px;border:1px solid #d9d9d9}.hd-table-container ::ng-deep .ant-pagination-options .ant-select-selection{border-radius:2px}.hd-table-container ::ng-deep .ant-table-thead>tr>th{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr>td{border-bottom:1px solid #ecf1ed}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid.ant-table-row-hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid:hover>td.ant-table-td-right-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-left-sticky,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td.ant-table-td-right-sticky{background:#f7f8fa!important;color:#868a9c!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a{color:#20b95d!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group>a:hover{color:#20bd62!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-btn-group .common-danger-btn:hover{color:#f05b24!important}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-table-cell-value>a,.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid>td>a{color:#20b95d}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .common-billNumber>a{color:#3b77e3}.hd-table-container ::ng-deep .ant-table-tbody>tr.hd-table-row-invalid .hd-status-text{color:#868a9c!important}.hd-table-container ::ng-deep .hd-table-total>td{border:0!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-body{max-height:calc(100vh - 280px)!important;overflow-y:auto!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y).hd-detail-lines--with-search ::ng-deep .ant-table-body{max-height:calc(100vh - 320px)!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-thead>tr>th{position:-webkit-sticky;position:sticky;top:0;z-index:2;background:#fafafa}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-thead>tr>th.ant-table-th-left-sticky,.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-thead>tr>th.ant-table-th-right-sticky{z-index:4;background:#fafafa!important}.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-tbody>tr>td.ant-table-td-left-sticky,.hd-table-container.hd-detail-lines--scroll-x:not(.hd-detail-lines--scroll-y) ::ng-deep .ant-table-tbody>tr>td.ant-table-td-right-sticky{z-index:3}.hd-table-container:not(.hd-detail-lines--scroll-y):not(.hd-detail-lines--scroll-x) ::ng-deep .ant-table-body{max-height:none!important;overflow-y:visible!important}"]
|
|
501
501
|
}] }
|
|
502
502
|
];
|
|
503
503
|
/** @nocollapse */
|
|
@@ -646,4 +646,4 @@ if (false) {
|
|
|
646
646
|
*/
|
|
647
647
|
HdDetailLinesComponent.prototype.cdr;
|
|
648
648
|
}
|
|
649
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZGV0YWlsLWxpbmVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2ZhbnRhc3ktbmd6b3Jyby8iLCJzb3VyY2VzIjpbImhkLWRldGFpbC1saW5lcy9oZC1kZXRhaWwtbGluZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVE5SCxNQUFNLE9BQU8sc0JBQXNCOzs7O0lBOERqQyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTFEakIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixlQUFVLEdBQVksS0FBSyxDQUFDOztRQUU1QyxpQkFBWSxHQUFhLEVBQUUsQ0FBQzs7Ozs7UUFLNUIsV0FBTSxHQUE4QixFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMxRCxnQkFBVyxHQUErQixJQUFJLENBQUM7UUFDdEMsZ0JBQVcsR0FBVyxZQUFZLENBQUM7UUFZbEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDOztRQU1s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QTJCOztJQUMzQiw4Q0FBdUQ7O0lBQ3ZELDJDQUFvRDs7SUFDcEQsNENBQXFEOztJQUVyRCw4Q0FBcUM7Ozs7OztJQUtyQyx3Q0FBMEQ7O0lBQzFELDZDQUErQzs7SUFDL0MsNkNBQTRDOztJQUM1QywrQ0FBK0I7Ozs7OztJQUsvQixxREFBcUM7Ozs7OztJQUtyQyxpREFBaUM7O0lBQ2pDLDZDQUEyQzs7SUFDM0MsZ0RBQ2lDOztJQUNqQyxnREFDaUM7O0lBRWpDLDJDQUFvRDs7SUFDcEQsNkNBQThDOztJQUM5QywrQ0FBNEM7O0lBQzVDLG1EQUE0Qzs7SUFDNUMsaURBQXFCOztJQUVyQiwyQ0FBa0M7O0lBQ2xDLDhDQUE4Qjs7SUFFOUIsZ0RBQTJCOztJQUMzQiwrQ0FBcUM7O0lBRXJDLHlEQUFnQzs7SUFDaEMsaURBQXdCOztJQUN4QixtREFBdUI7O0lBQ3ZCLCtDQUFtQjs7SUFDbkIsaURBQWdEOztJQUNoRCxnREFBZ0Q7O0lBQ2hELGdEQUE0Qzs7SUFDNUMsMkNBQWtCOzs7OztJQUVsQiw4Q0FBOEI7Ozs7O0lBRTlCLDhDQUFxQjs7SUFDckIsb0RBQTZCOzs7OztJQUU3QiwyQ0FBaUI7Ozs7O0lBQ2pCLGtEQUFxRDs7Ozs7SUFFekMscUNBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IHJvdW5kIH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvY29yZVwiO1xuaW1wb3J0IHsgTnpUYWJsZUNvbXBvbmVudCB9IGZyb20gXCJuZy16b3Jyby1hbnRkL3RhYmxlXCI7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSBcIi4uL21vZGVsL2NvbW1vbi10eXBlXCI7XG5pbXBvcnQgeyBtZWFzdXJlVGFibGVDb2xXaWR0aCwgcmVzb2x2ZUF1dG9UYWJsZVNjcm9sbCwgYmluZE56VGFibGVIZWFkZXJCb2R5U2Nyb2xsU3luYyB9IGZyb20gXCIuLi91dGlscy9oZC10YWJsZS1zY3JvbGwudXRpbFwiO1xuaW1wb3J0IHsgVG90YWxPcHRpb24gfSBmcm9tIFwiLi9oZC1kZXRhaWwtbGluZXMuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiaGQtZGV0YWlsLWxpbmVzXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vaGQtZGV0YWlsLWxpbmVzLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9oZC1kZXRhaWwtbGluZXMuY29tcG9uZW50Lmxlc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEhkRGV0YWlsTGluZXNDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZChcImhkVGFibGVcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIG56VGFibGVDb21wb25lbnQ6IE56VGFibGVDb21wb25lbnQ7XG4gIEBJbnB1dCgpIGxpbmVzOiBBcnJheTxhbnk+O1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc2hvd1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBhbGxvd0Ryb3A6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHNob3dTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLy8g5LiN5Lyg6YCS6L+Z5Liq5a2X5q615pe26buY6K6k5Li65p+l6K+i5omA5pyJ5a2X5q615piv5ZCm5pyJ5Yy56YWN55qEXG4gIEBJbnB1dCgpIHNlYXJjaEZpZWxkczogc3RyaW5nW10gPSBbXTtcbiAgLyoqXG4gICAqIOaoquWQkea7muWKqOOAguWOhuWPsum7mOiupCBgeyB4OiAnMXB4JyB9YO+8iDIuMS4yOCDliY3kuIDnm7TlpoLmraTvvInvvJrlvIDlkK/mqKrmu5rkvYbkuI3plIHmrbvliJflrr3vvIxcbiAgICog5Lia5Yqh6aG15Y+v5LiN5YaZIHRoL3RkIHdpZHRo77yM55Sx5YaF5a656Ieq6YCC5bqU44CC5LygIG51bGwg5YiZ5oyJ5a655Zmo6Ieq5Yqo5rWL566X44CCXG4gICAqL1xuICBASW5wdXQoKSBzY3JvbGw6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7IHg6IFwiMXB4XCIgfTtcbiAgdGFibGVTY3JvbGw6IHsgeD86IHN0cmluZzsgeT86IHN0cmluZyB9ID0gbnVsbDtcbiAgQElucHV0KCkgc2VsZWN0RmllbGQ6IHN0cmluZyA9IFwiYmlsbE51bWJlclwiO1xuICBASW5wdXQoKSBzZWxlY3RlZEZpZWxkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiDooYzli77pgInnpoHnlKjlrZfmrrXlkI3jgILlrprkuYnlkI7lj5blvZPliY3ooYzor6XlrZfmrrXvvJpcbiAgICog5Li6IHRydWUg5pe256aB55So6K+l6KGM5Yu+6YCJ77yI5YWo6YCJ5Lmf5Lya6Lez6L+H77yJ44CCXG4gICAqL1xuICBASW5wdXQoKSBzZWxlY3REaXNhYmxlZEZpZWxkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiDooYzlpLHmlYjlrZfmrrXlkI3jgILlrprkuYnlkI7lj5blvZPliY3ooYzor6XlrZfmrrXvvJpcbiAgICog5Li6IHRydWUg5pe25pW06KGM6IOM5pmv6Imy5Li6ICNGN0Y4RkHjgIHmloflrZcgIzg2OEE5Q+OAglxuICAgKi9cbiAgQElucHV0KCkgcm93SW52YWxpZEZpZWxkOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBzZWxlY3RFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQENvbnRlbnRDaGlsZChcImRldGFpbExpbmVIZWFkXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBkZXRhaWxMaW5lSGVhZDogVGVtcGxhdGVSZWY8YW55PjtcbiAgQENvbnRlbnRDaGlsZChcImRldGFpbExpbmVCb2R5XCIsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBkZXRhaWxMaW5lQm9keTogVGVtcGxhdGVSZWY8YW55PjtcbiAgLy8g5ZCI6K6h5Yy65Z+fXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzaG93VG90YWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdG90YWxPcHRpb246IEFycmF5PFRvdGFsT3B0aW9uPiA9IFtdO1xuICBASW5wdXQoKSBjb2x1bW5zTnVtYmVyOiBudW1iZXIgfCBzdHJpbmcgPSAwO1xuICBASW5wdXQoKSBoZEZyb250UGFnaW5hdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICB0b3RhbE9wdGlvbkxpc3QgPSBbXTtcblxuICB0YWJsZURhdGE6IFBhZ2U8YW55PiA9IG5ldyBQYWdlKCk7XG4gIHRhYmxlTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAvLyDooajmoLzliIbpobXlj4LmlbBcbiAgdGFibGVQYWdlSW5kZXg6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIHRhYmxlUGFnZVNpemU6IG51bWJlciA9IDEwMDtcbiAgLy8g6KGo5qC85Yu+6YCJ5Y+C5pWwXG4gIGlzQWxsRGlzcGxheURhdGFDaGVja2VkID0gZmFsc2U7XG4gIGlzSW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICBsaXN0T2ZEaXNwbGF5RGF0YSA9IFtdO1xuICBsaXN0T2ZBbGxEYXRhID0gW107XG4gIGxpc3RPZlNlbGVjdGlvbjogQXJyYXk8YW55PiB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICBtYXBPZkNoZWNrZWRJZDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgbWFwT2ZDaGVja0xpc3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgZmlsdGVyU3RyOiBzdHJpbmc7XG4gIC8qKiDooajmoLzlrp7pmYXlsZXnpLrnmoTmlbDmja7vvIjnrZvpgInnu5PmnpzmiJblhajph4/vvIkgKi9cbiAgZGlzcGxheUxpbmVzOiBBcnJheTxhbnk+ID0gW107XG4gIC8qKiDmmK/lkKblpITkuo7nrZvpgInnirbmgIEgKi9cbiAgaXNGaWx0ZXJEYXRhID0gZmFsc2U7XG4gIHN0b3JlRm9ybUxpbmVzRGF0YTogYW55ID0gW107IC8vIOe8k+WtmOeahOaAu+eahOWIl+ihqOaVsOaNrlxuICAvKiog5o6n5Yi2IG56LXRhYmxlIOmHjeW7uu+8mnNjcm9sbC55IOS7juaXoOWIsOacieaXtuW/hemhu+mHjeW7uu+8jOWQpuWImeihqOWktOS4jei3n+aoqua7miAqL1xuICBzaG93VGFibGUgPSB0cnVlO1xuICBwcml2YXRlIHVuYmluZEJvZHlTY3JvbGw6ICgoKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBnZXQgZWZmZWN0aXZlU2Nyb2xsKCk6IHsgeD86IHN0cmluZzsgeT86IHN0cmluZyB9IHtcbiAgICAvLyDkuI3oh6rliqjooaUgbnpTY3JvbGwuee+8muaciSB5IOS8muaLhuihqOWktC/ooajkvZPvvIzml6DliJflrr3ml7bliJfplJnkvY3jgIJcbiAgICAvLyDku4XmnIkgeCDml7bnmoTnurXmu5rnlLEgbGVzc++8iG1heC1oZWlnaHQgKyBvdmVyZmxvdy1577yJ5om/5ouF77yM6KGo5aS0IHN0aWNreeOAglxuICAgIC8vIOS7heW9k+eItue7hOS7tuaYvuW8j+S8oOS6hiBzY3JvbGwueSDml7bmiY3otbAgbnotdGFibGUg5YiG5L2T57q15rua44CCXG4gICAgcmV0dXJuIHRoaXMuc2Nyb2xsICE9IG51bGwgPyB0aGlzLnNjcm9sbCA6IHRoaXMudGFibGVTY3JvbGw7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNTdG9yZUZyb21MaW5lc0lucHV0KCk7XG4gICAgdGhpcy5hcHBseURpc3BsYXlGcm9tU3RvcmUoKTtcbiAgICB0aGlzLmNvdW50U2VsZWN0ZWQoKTtcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbXCJsaW5lc1wiXSkge1xuICAgICAgaWYgKCF0aGlzLmlzRmlsdGVyRGF0YSkge1xuICAgICAgICB0aGlzLnN5bmNTdG9yZUZyb21MaW5lc0lucHV0KCk7XG4gICAgICAgIHRoaXMuZGlzcGxheUxpbmVzID0gdGhpcy5saW5lcyB8fCBbXTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICF0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSB8fFxuICAgICAgICB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5sZW5ndGggPT09IDBcbiAgICAgICkge1xuICAgICAgICB0aGlzLnN5bmNTdG9yZUZyb21MaW5lc0lucHV0KCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY291bnRTZWxlY3RlZCgpO1xuICAgIHRoaXMuY2FsY3VsYXRlVG90YWwoKTtcbiAgICBpZiAoY2hhbmdlc1tcImxpbmVzXCJdIHx8IGNoYW5nZXNbXCJzaG93U2VsZWN0ZWRcIl0pIHtcbiAgICAgIHRoaXMuc2NoZWR1bGVTeW5jSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2NoZWR1bGVTeW5jSG9yaXpvbnRhbFNjcm9sbChyZXRyeSA9IDApOiB2b2lkIHtcbiAgICBjb25zdCBkZWxheSA9IHJldHJ5ID09PSAwID8gMCA6IDUwO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc2Nyb2xsID09IG51bGwpIHtcbiAgICAgICAgdGhpcy5zeW5jSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoMCk7XG4gICAgICBjb25zdCBhZnRlclggPVxuICAgICAgICAodGhpcy5lZmZlY3RpdmVTY3JvbGwgJiYgdGhpcy5lZmZlY3RpdmVTY3JvbGwueCkgfHxcbiAgICAgICAgKHRoaXMudGFibGVTY3JvbGwgJiYgdGhpcy50YWJsZVNjcm9sbC54KTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5zY3JvbGwgPT0gbnVsbCAmJlxuICAgICAgICByZXRyeSA8IDUgJiZcbiAgICAgICAgdGhpcy5kaXNwbGF5TGluZXMgJiZcbiAgICAgICAgdGhpcy5kaXNwbGF5TGluZXMubGVuZ3RoID4gMCAmJlxuICAgICAgICAhYWZ0ZXJYICYmXG4gICAgICAgIG1lYXN1cmVUYWJsZUNvbFdpZHRoKHRoaXMubnpUYWJsZUNvbXBvbmVudCkgPT09IDBcbiAgICAgICkge1xuICAgICAgICB0aGlzLnNjaGVkdWxlU3luY0hvcml6b250YWxTY3JvbGwocmV0cnkgKyAxKTtcbiAgICAgIH1cbiAgICB9LCBkZWxheSk7XG4gIH1cblxuICBwcml2YXRlIHN5bmNIb3Jpem9udGFsU2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNjcm9sbCAhPSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGhhc0RhdGEgPSAhISh0aGlzLmRpc3BsYXlMaW5lcyAmJiB0aGlzLmRpc3BsYXlMaW5lcy5sZW5ndGgpO1xuICAgIGNvbnN0IG5leHRTY3JvbGwgPSByZXNvbHZlQXV0b1RhYmxlU2Nyb2xsKFxuICAgICAgdGhpcy5uelRhYmxlQ29tcG9uZW50LFxuICAgICAgaGFzRGF0YSxcbiAgICApO1xuICAgIGNvbnN0IG5leHRYID0gbmV4dFNjcm9sbCA/IG5leHRTY3JvbGwueCA6IG51bGw7XG4gICAgLy8g6Ieq5Yqo5rWL566X5Y+q6K6+IHjvvIzkuI3orr4gee+8iOS4jiAyLjEuNjQg5YmN5LiA6Ie077yM6YG/5YWN5peg5YiX5a695pe26KGo5aS0L+ihqOS9k+mUmeS9je+8iVxuICAgIGlmICh0aGlzLnRhYmxlU2Nyb2xsICYmIHRoaXMudGFibGVTY3JvbGwueCA9PT0gbmV4dFggJiYgIXRoaXMudGFibGVTY3JvbGwueSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwcmV2SGFzWSA9ICEhKHRoaXMudGFibGVTY3JvbGwgJiYgdGhpcy50YWJsZVNjcm9sbC55KTtcbiAgICB0aGlzLnRhYmxlU2Nyb2xsID0gbmV4dFggPyB7IHg6IG5leHRYIH0gOiBudWxsO1xuICAgIGlmIChwcmV2SGFzWSkge1xuICAgICAgdGhpcy5yZW1vdW50VGFibGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoMCk7XG4gIH1cblxuICAvKiog6YeN5bu6IG56LXRhYmxl77yM6K6pIGhlYWRlci9ib2R5IOa7muWKqOWQjOatpeWcqCBBZnRlclZpZXdJbml0IOmHjeaWsOe7keWumiAqL1xuICBwcml2YXRlIHJlbW91bnRUYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dUYWJsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG93VGFibGUgPSB0cnVlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmJpbmRIZWFkZXJCb2R5U2Nyb2xsU3luYygwKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiDooajkvZPmqKrmu5rml7blkIzmraXooajlpLTvvIjlhZzlupUgbmctem9ycm8g55uR5ZCs5Lii5aSx77yJ77ybRE9NIOacquWwsee7quaXtumHjeivlSAqL1xuICBwcml2YXRlIGJpbmRIZWFkZXJCb2R5U2Nyb2xsU3luYyhyZXRyeSA9IDApOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk7XG4gICAgaWYgKCF0aGlzLm56VGFibGVDb21wb25lbnQgfHwgISh0aGlzLmVmZmVjdGl2ZVNjcm9sbCAmJiB0aGlzLmVmZmVjdGl2ZVNjcm9sbC54KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB1bmJpbmQgPSBiaW5kTnpUYWJsZUhlYWRlckJvZHlTY3JvbGxTeW5jKHRoaXMubnpUYWJsZUNvbXBvbmVudCk7XG4gICAgaWYgKHVuYmluZCkge1xuICAgICAgdGhpcy51bmJpbmRCb2R5U2Nyb2xsID0gdW5iaW5kO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmV0cnkgPCA4KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKHJldHJ5ICsgMSksIDUwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnVuYmluZEJvZHlTY3JvbGwpIHtcbiAgICAgIHRoaXMudW5iaW5kQm9keVNjcm9sbCgpO1xuICAgICAgdGhpcy51bmJpbmRCb2R5U2Nyb2xsID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN5bmNTdG9yZUZyb21MaW5lc0lucHV0KHNvdXJjZT86IEFycmF5PGFueT4pOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhID0gc291cmNlIHx8IHRoaXMubGluZXM7XG4gICAgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEgPSBkYXRhID8gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhKSkgOiBbXTtcbiAgfVxuXG4gIC8qKiDmnKrnrZvpgInml7bkuI7niLbnu4Tku7YgbGluZXMg5ZCM5rqQ77yM6YG/5YWN5qih5p2/5YaFIG5nTW9kZWwg5LiO54i25pWw5o2u6ISx6IqCICovXG4gIHByaXZhdGUgYXBwbHlEaXNwbGF5RnJvbVN0b3JlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpbmVzICYmIHRoaXMubGluZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5kaXNwbGF5TGluZXMgPSB0aGlzLmxpbmVzO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc3BsYXlMaW5lcyA9IHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhXG4gICAgICA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEpKVxuICAgICAgOiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzdG9yZUZyb21TdG9yZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzRmlsdGVyRGF0YSA9IGZhbHNlO1xuICAgIHRoaXMuYXBwbHlEaXNwbGF5RnJvbVN0b3JlKCk7XG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNvdW50U2VsZWN0ZWQoKTtcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsKCk7XG4gICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gIH1cblxuICAvLyDlhajlsYDmgKfnmoTmkJzntKLvvIjmtrXnm5bpobXpnaLkuIrmiYDmnInnmoTlj6/op4bmloflrZfvvIlcbiAgc2VhcmNoTGluZXMoKSB7XG4gICAgLy8g5riF56m65pCc57Si77ya5Y2z5L2/5b2T5YmN5bGV56S65Li656m65Lmf6KaB6IO95LuO57yT5a2Y5oGi5aSN77yI5a+56b2QIGhkLWZvcm0tbGluZXPvvIlcbiAgICBpZiAoIXRoaXMuZmlsdGVyU3RyIHx8ICF0aGlzLmZpbHRlclN0ci50cmltKCkpIHtcbiAgICAgIGlmICghdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEgfHwgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEubGVuZ3RoIDwgMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnJlc3RvcmVGcm9tU3RvcmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSB8fCB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHRoaXMuZmlsdGVyU3RyLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIHRoaXMuaXNGaWx0ZXJEYXRhID0gdHJ1ZTtcblxuICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhLmZpbHRlcigoZGF0YTogYW55KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuc2VhcmNoRmllbGRzIHx8IHRoaXMuc2VhcmNoRmllbGRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgT2JqZWN0LmtleXMoZGF0YSkpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBkYXRhW2l0ZW1dICYmXG4gICAgICAgICAgICBkYXRhW2l0ZW1dLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5zZWFyY2hGaWVsZHMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRhdGFbaXRlbV0gJiZcbiAgICAgICAgICBkYXRhW2l0ZW1dLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICB0aGlzLmRpc3BsYXlMaW5lcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZmlsdGVyZWREYXRhKSk7XG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNvdW50U2VsZWN0ZWQoKTtcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsKCk7XG4gICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gIH1cblxuICBwcml2YXRlIGNvdW50U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5zaG93U2VsZWN0ZWQgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWVsZCAmJlxuICAgICAgdGhpcy5kaXNwbGF5TGluZXMgJiZcbiAgICAgIHRoaXMuZGlzcGxheUxpbmVzLmxlbmd0aFxuICAgICkge1xuICAgICAgdGhpcy5kaXNwbGF5TGluZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbVt0aGlzLnNlbGVjdGVkRmllbGRdID09PSB0cnVlICYmICF0aGlzLmlzU2VsZWN0RGlzYWJsZWQoaXRlbSkpIHtcbiAgICAgICAgICB0aGlzLm1hcE9mQ2hlY2tlZElkW2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLm1hcE9mQ2hlY2tMaXN0W2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dID0gaXRlbTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuZGlzcGxheUxpbmVzLmxlbmd0aCA9PT0gT2JqZWN0LmtleXModGhpcy5tYXBPZkNoZWNrTGlzdCkubGVuZ3RoXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5pc0FsbERpc3BsYXlEYXRhQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgTG9kYXNoUm91bmQoKSB7XG4gICAgcmV0dXJuIHJvdW5kO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KTogdm9pZCB7XG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZGlzcGxheUxpbmVzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuZGlzcGxheUxpbmVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRpc3BsYXlMaW5lcykpO1xuICAgIGlmICghdGhpcy5pc0ZpbHRlckRhdGEpIHtcbiAgICAgIHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRpc3BsYXlMaW5lcykpO1xuICAgIH1cbiAgfVxuXG4gIGNhbGN1bGF0ZVRvdGFsKCkge1xuICAgIC8vIOi/memHjOWkhOeQhuWQiOiuoeaVsOaNrlxuICAgIGlmICh0aGlzLnNob3dUb3RhbCAmJiB0aGlzLmRpc3BsYXlMaW5lcyAmJiB0aGlzLmRpc3BsYXlMaW5lcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudG90YWxPcHRpb25MaXN0ID0gbmV3IEFycmF5KE51bWJlcih0aGlzLmNvbHVtbnNOdW1iZXIpIC0gMSkuZmlsbChcIlwiKTtcbiAgICAgIHRoaXMudG90YWxPcHRpb24uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5pbnNlcnRJbmRleCAmJiAoaXRlbS5pbnNlcnRWYWx1ZSB8fCBpdGVtLmluc2VydFZhbHVlID09PSAwKSkge1xuICAgICAgICAgIHRoaXMudG90YWxPcHRpb25MaXN0W2l0ZW0uaW5zZXJ0SW5kZXggLSAxXSA9IHtcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLmluc2VydFZhbHVlLFxuICAgICAgICAgICAgYWxpZ246IGl0ZW0uYWxpZ24gfHwgXCJyaWdodFwiLFxuICAgICAgICAgICAgc2hvd0RlY2ltYWw6IGl0ZW0uc2hvd0RlY2ltYWwgfHwgZmFsc2UsXG4gICAgICAgICAgICBwcmVzZXJ2ZU51bWJlcjogaXRlbS5wcmVzZXJ2ZU51bWJlciAhPSBudWxsID8gaXRlbS5wcmVzZXJ2ZU51bWJlciA6IDIsXG4gICAgICAgICAgICBpc0hpZGU6IGl0ZW0uaXNIaWRlIHx8IGZhbHNlLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIOihqOagvOWLvumAiemAu+i+kVxuICBjdXJyZW50UGFnZURhdGFDaGFuZ2UoJGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RPZkRpc3BsYXlEYXRhID0gJGV2ZW50O1xuICAgIHRoaXMucmVmcmVzaFN0YXR1cygpO1xuICAgIHRoaXMuc2NoZWR1bGVTeW5jSG9yaXpvbnRhbFNjcm9sbCgpO1xuICB9XG5cbiAgcmVzZXRTdGF0dXMoKSB7XG4gICAgdGhpcy5pc0FsbERpc3BsYXlEYXRhQ2hlY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgdGhpcy5tYXBPZkNoZWNrZWRJZCA9IHt9O1xuICAgIHRoaXMubWFwT2ZDaGVja0xpc3QgPSB7fTtcbiAgICB0aGlzLnNlbGVjdEV2ZW50LmVtaXQoW10pO1xuICB9XG5cbiAgcmVmcmVzaFN0YXR1cyhldmVudDogYm9vbGVhbiA9IGZhbHNlLCBkYXRhOiBhbnkgPSBudWxsKTogdm9pZCB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGlmIChldmVudCAmJiB0aGlzLmlzU2VsZWN0RGlzYWJsZWQoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5tYXBPZkNoZWNrZWRJZFtkYXRhW3RoaXMuc2VsZWN0RmllbGRdXSA9IGV2ZW50O1xuICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICF0aGlzLm1hcE9mQ2hlY2tMaXN0W2RhdGFbdGhpcy5zZWxlY3RGaWVsZF1dICYmXG4gICAgICAgICAgKHRoaXMubWFwT2ZDaGVja0xpc3RbZGF0YVt0aGlzLnNlbGVjdEZpZWxkXV0gPSBkYXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWFwT2ZDaGVja0xpc3RbZGF0YVt0aGlzLnNlbGVjdEZpZWxkXV0gJiZcbiAgICAgICAgICBkZWxldGUgdGhpcy5tYXBPZkNoZWNrTGlzdFtkYXRhW3RoaXMuc2VsZWN0RmllbGRdXTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgc2VsZWN0YWJsZUxpc3QgPSB0aGlzLmxpc3RPZkRpc3BsYXlEYXRhLmZpbHRlcihcbiAgICAgIChpdGVtKSA9PiAhdGhpcy5pc1NlbGVjdERpc2FibGVkKGl0ZW0pLFxuICAgICk7XG4gICAgdGhpcy5pc0FsbERpc3BsYXlEYXRhQ2hlY2tlZCA9XG4gICAgICBzZWxlY3RhYmxlTGlzdC5sZW5ndGggPiAwICYmXG4gICAgICBzZWxlY3RhYmxlTGlzdC5ldmVyeSgoaXRlbSkgPT4gdGhpcy5tYXBPZkNoZWNrZWRJZFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXSk7XG4gICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPVxuICAgICAgc2VsZWN0YWJsZUxpc3Quc29tZShcbiAgICAgICAgKGl0ZW0pID0+IHRoaXMubWFwT2ZDaGVja2VkSWRbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0sXG4gICAgICApICYmICF0aGlzLmlzQWxsRGlzcGxheURhdGFDaGVja2VkO1xuICAgIC8vIOinpuWPkXNlbGVjdOS6i+S7tlxuICAgIGlmICh0aGlzLnNlbGVjdEV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdEV2ZW50LmVtaXQoT2JqZWN0LnZhbHVlcyh0aGlzLm1hcE9mQ2hlY2tMaXN0KSk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tBbGwodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RPZkRpc3BsYXlEYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmICh0aGlzLmlzU2VsZWN0RGlzYWJsZWQoaXRlbSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICF0aGlzLm1hcE9mQ2hlY2tMaXN0W2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dICYmXG4gICAgICAgICAgKHRoaXMubWFwT2ZDaGVja0xpc3RbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gPSBpdGVtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWFwT2ZDaGVja0xpc3RbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gJiZcbiAgICAgICAgICBkZWxldGUgdGhpcy5tYXBPZkNoZWNrTGlzdFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXTtcbiAgICAgIH1cbiAgICAgIHRoaXMubWFwT2ZDaGVja2VkSWRbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICB0aGlzLnJlZnJlc2hTdGF0dXMoKTtcbiAgfVxuXG4gIC8qKiDlvZPliY3ooYzmmK/lkKbnpoHnlKjli77pgIkgKi9cbiAgaXNTZWxlY3REaXNhYmxlZChkYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnNlbGVjdERpc2FibGVkRmllbGQgJiZcbiAgICAgIGRhdGEgJiZcbiAgICAgIGRhdGFbdGhpcy5zZWxlY3REaXNhYmxlZEZpZWxkXSA9PT0gdHJ1ZVxuICAgICk7XG4gIH1cblxuICAvKiog5b2T5YmN6KGM5piv5ZCm5aSx5pWIICovXG4gIGlzSW52YWxpZFJvdyhkYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnJvd0ludmFsaWRGaWVsZCAmJlxuICAgICAgZGF0YSAmJlxuICAgICAgZGF0YVt0aGlzLnJvd0ludmFsaWRGaWVsZF0gPT09IHRydWVcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
649
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZGV0YWlsLWxpbmVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2ZhbnRhc3ktbmd6b3Jyby8iLCJzb3VyY2VzIjpbImhkLWRldGFpbC1saW5lcy9oZC1kZXRhaWwtbGluZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVE5SCxNQUFNLE9BQU8sc0JBQXNCOzs7O0lBOERqQyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTFEakIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixlQUFVLEdBQVksS0FBSyxDQUFDOztRQUU1QyxpQkFBWSxHQUFhLEVBQUUsQ0FBQzs7Ozs7UUFLNUIsV0FBTSxHQUE4QixFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMxRCxnQkFBVyxHQUErQixJQUFJLENBQUM7UUFDdEMsZ0JBQVcsR0FBVyxZQUFZLENBQUM7UUFZbEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDOztRQU1s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QTJCOztJQUMzQiw4Q0FBdUQ7O0lBQ3ZELDJDQUFvRDs7SUFDcEQsNENBQXFEOztJQUVyRCw4Q0FBcUM7Ozs7OztJQUtyQyx3Q0FBMEQ7O0lBQzFELDZDQUErQzs7SUFDL0MsNkNBQTRDOztJQUM1QywrQ0FBK0I7Ozs7OztJQUsvQixxREFBcUM7Ozs7OztJQUtyQyxpREFBaUM7O0lBQ2pDLDZDQUEyQzs7SUFDM0MsZ0RBQ2lDOztJQUNqQyxnREFDaUM7O0lBRWpDLDJDQUFvRDs7SUFDcEQsNkNBQThDOztJQUM5QywrQ0FBNEM7O0lBQzVDLG1EQUE0Qzs7SUFDNUMsaURBQXFCOztJQUVyQiwyQ0FBa0M7O0lBQ2xDLDhDQUE4Qjs7SUFFOUIsZ0RBQTJCOztJQUMzQiwrQ0FBcUM7O0lBRXJDLHlEQUFnQzs7SUFDaEMsaURBQXdCOztJQUN4QixtREFBdUI7O0lBQ3ZCLCtDQUFtQjs7SUFDbkIsaURBQWdEOztJQUNoRCxnREFBZ0Q7O0lBQ2hELGdEQUE0Qzs7SUFDNUMsMkNBQWtCOzs7OztJQUVsQiw4Q0FBOEI7Ozs7O0lBRTlCLDhDQUFxQjs7SUFDckIsb0RBQTZCOzs7OztJQUU3QiwyQ0FBaUI7Ozs7O0lBQ2pCLGtEQUFxRDs7Ozs7SUFFekMscUNBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IHJvdW5kIH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvY29yZVwiO1xuaW1wb3J0IHsgTnpUYWJsZUNvbXBvbmVudCB9IGZyb20gXCJuZy16b3Jyby1hbnRkL3RhYmxlXCI7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSBcIi4uL21vZGVsL2NvbW1vbi10eXBlXCI7XG5pbXBvcnQgeyBtZWFzdXJlVGFibGVDb2xXaWR0aCwgcmVzb2x2ZUF1dG9UYWJsZVNjcm9sbCwgYmluZE56VGFibGVIZWFkZXJCb2R5U2Nyb2xsU3luYyB9IGZyb20gXCIuLi91dGlscy9oZC10YWJsZS1zY3JvbGwudXRpbFwiO1xuaW1wb3J0IHsgVG90YWxPcHRpb24gfSBmcm9tIFwiLi9oZC1kZXRhaWwtbGluZXMuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiaGQtZGV0YWlsLWxpbmVzXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vaGQtZGV0YWlsLWxpbmVzLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9oZC1kZXRhaWwtbGluZXMuY29tcG9uZW50Lmxlc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEhkRGV0YWlsTGluZXNDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZChcImhkVGFibGVcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIG56VGFibGVDb21wb25lbnQ6IE56VGFibGVDb21wb25lbnQ7XG4gIEBJbnB1dCgpIGxpbmVzOiBBcnJheTxhbnk+O1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc2hvd1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBhbGxvd0Ryb3A6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHNob3dTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLy8g5LiN5Lyg6YCS6L+Z5Liq5a2X5q615pe26buY6K6k5Li65p+l6K+i5omA5pyJ5a2X5q615piv5ZCm5pyJ5Yy56YWN55qEXG4gIEBJbnB1dCgpIHNlYXJjaEZpZWxkczogc3RyaW5nW10gPSBbXTtcbiAgLyoqXG4gICAqIOaoquWQkea7muWKqOOAguWOhuWPsum7mOiupCBgeyB4OiAnMXB4JyB9YO+8iDIuMS4yOCDliY3kuIDnm7TlpoLmraTvvInvvJrlvIDlkK/mqKrmu5rkvYbkuI3plIHmrbvliJflrr3vvIxcbiAgICog5Lia5Yqh6aG15Y+v5LiN5YaZIHRoL3RkIHdpZHRo77yM55Sx5YaF5a656Ieq6YCC5bqU44CC5LygIG51bGwg5YiZ5oyJ5a655Zmo6Ieq5Yqo5rWL566X44CCXG4gICAqL1xuICBASW5wdXQoKSBzY3JvbGw6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7IHg6IFwiMXB4XCIgfTtcbiAgdGFibGVTY3JvbGw6IHsgeD86IHN0cmluZzsgeT86IHN0cmluZyB9ID0gbnVsbDtcbiAgQElucHV0KCkgc2VsZWN0RmllbGQ6IHN0cmluZyA9IFwiYmlsbE51bWJlclwiO1xuICBASW5wdXQoKSBzZWxlY3RlZEZpZWxkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiDooYzli77pgInnpoHnlKjlrZfmrrXlkI3jgILlrprkuYnlkI7lj5blvZPliY3ooYzor6XlrZfmrrXvvJpcbiAgICog5Li6IHRydWUg5pe256aB55So6K+l6KGM5Yu+6YCJ77yI5YWo6YCJ5Lmf5Lya6Lez6L+H77yJ44CCXG4gICAqL1xuICBASW5wdXQoKSBzZWxlY3REaXNhYmxlZEZpZWxkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiDooYzlpLHmlYjlrZfmrrXlkI3jgILlrprkuYnlkI7lj5blvZPliY3ooYzor6XlrZfmrrXvvJpcbiAgICog5Li6IHRydWUg5pe25pW06KGM6IOM5pmv6Imy5Li6ICNGN0Y4RkHjgIHmloflrZcgIzg2OEE5Q+OAglxuICAgKi9cbiAgQElucHV0KCkgcm93SW52YWxpZEZpZWxkOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBzZWxlY3RFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQENvbnRlbnRDaGlsZChcImRldGFpbExpbmVIZWFkXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBkZXRhaWxMaW5lSGVhZDogVGVtcGxhdGVSZWY8YW55PjtcbiAgQENvbnRlbnRDaGlsZChcImRldGFpbExpbmVCb2R5XCIsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBkZXRhaWxMaW5lQm9keTogVGVtcGxhdGVSZWY8YW55PjtcbiAgLy8g5ZCI6K6h5Yy65Z+fXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzaG93VG90YWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdG90YWxPcHRpb246IEFycmF5PFRvdGFsT3B0aW9uPiA9IFtdO1xuICBASW5wdXQoKSBjb2x1bW5zTnVtYmVyOiBudW1iZXIgfCBzdHJpbmcgPSAwO1xuICBASW5wdXQoKSBoZEZyb250UGFnaW5hdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICB0b3RhbE9wdGlvbkxpc3QgPSBbXTtcblxuICB0YWJsZURhdGE6IFBhZ2U8YW55PiA9IG5ldyBQYWdlKCk7XG4gIHRhYmxlTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAvLyDooajmoLzliIbpobXlj4LmlbBcbiAgdGFibGVQYWdlSW5kZXg6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIHRhYmxlUGFnZVNpemU6IG51bWJlciA9IDEwMDtcbiAgLy8g6KGo5qC85Yu+6YCJ5Y+C5pWwXG4gIGlzQWxsRGlzcGxheURhdGFDaGVja2VkID0gZmFsc2U7XG4gIGlzSW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICBsaXN0T2ZEaXNwbGF5RGF0YSA9IFtdO1xuICBsaXN0T2ZBbGxEYXRhID0gW107XG4gIGxpc3RPZlNlbGVjdGlvbjogQXJyYXk8YW55PiB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICBtYXBPZkNoZWNrZWRJZDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgbWFwT2ZDaGVja0xpc3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgZmlsdGVyU3RyOiBzdHJpbmc7XG4gIC8qKiDooajmoLzlrp7pmYXlsZXnpLrnmoTmlbDmja7vvIjnrZvpgInnu5PmnpzmiJblhajph4/vvIkgKi9cbiAgZGlzcGxheUxpbmVzOiBBcnJheTxhbnk+ID0gW107XG4gIC8qKiDmmK/lkKblpITkuo7nrZvpgInnirbmgIEgKi9cbiAgaXNGaWx0ZXJEYXRhID0gZmFsc2U7XG4gIHN0b3JlRm9ybUxpbmVzRGF0YTogYW55ID0gW107IC8vIOe8k+WtmOeahOaAu+eahOWIl+ihqOaVsOaNrlxuICAvKiog5o6n5Yi2IG56LXRhYmxlIOmHjeW7uu+8mnNjcm9sbC55IOS7juaXoOWIsOacieaXtuW/hemhu+mHjeW7uu+8jOWQpuWImeihqOWktOS4jei3n+aoqua7miAqL1xuICBzaG93VGFibGUgPSB0cnVlO1xuICBwcml2YXRlIHVuYmluZEJvZHlTY3JvbGw6ICgoKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBnZXQgZWZmZWN0aXZlU2Nyb2xsKCk6IHsgeD86IHN0cmluZzsgeT86IHN0cmluZyB9IHtcbiAgICAvLyDkuI3oh6rliqjooaUgbnpTY3JvbGwuee+8muaciSB5IOS8muaLhuihqOWktC/ooajkvZPvvIzml6DliJflrr3ml7bliJfplJnkvY3jgIJcbiAgICAvLyDku4XmnIkgeCDml7bnmoTnurXmu5rnlLEgbGVzc++8iG1heC1oZWlnaHQgKyBvdmVyZmxvdy1577yJ5om/5ouF77yM6KGo5aS0IHN0aWNreeOAglxuICAgIC8vIOS7heW9k+eItue7hOS7tuaYvuW8j+S8oOS6hiBzY3JvbGwueSDml7bmiY3otbAgbnotdGFibGUg5YiG5L2T57q15rua44CCXG4gICAgcmV0dXJuIHRoaXMuc2Nyb2xsICE9IG51bGwgPyB0aGlzLnNjcm9sbCA6IHRoaXMudGFibGVTY3JvbGw7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNTdG9yZUZyb21MaW5lc0lucHV0KCk7XG4gICAgdGhpcy5hcHBseURpc3BsYXlGcm9tU3RvcmUoKTtcbiAgICB0aGlzLmNvdW50U2VsZWN0ZWQoKTtcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbXCJsaW5lc1wiXSkge1xuICAgICAgaWYgKCF0aGlzLmlzRmlsdGVyRGF0YSkge1xuICAgICAgICB0aGlzLnN5bmNTdG9yZUZyb21MaW5lc0lucHV0KCk7XG4gICAgICAgIHRoaXMuZGlzcGxheUxpbmVzID0gdGhpcy5saW5lcyB8fCBbXTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICF0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSB8fFxuICAgICAgICB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5sZW5ndGggPT09IDBcbiAgICAgICkge1xuICAgICAgICB0aGlzLnN5bmNTdG9yZUZyb21MaW5lc0lucHV0KCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY291bnRTZWxlY3RlZCgpO1xuICAgIHRoaXMuY2FsY3VsYXRlVG90YWwoKTtcbiAgICBpZiAoY2hhbmdlc1tcImxpbmVzXCJdIHx8IGNoYW5nZXNbXCJzaG93U2VsZWN0ZWRcIl0pIHtcbiAgICAgIHRoaXMuc2NoZWR1bGVTeW5jSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2NoZWR1bGVTeW5jSG9yaXpvbnRhbFNjcm9sbChyZXRyeSA9IDApOiB2b2lkIHtcbiAgICBjb25zdCBkZWxheSA9IHJldHJ5ID09PSAwID8gMCA6IDUwO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc2Nyb2xsID09IG51bGwpIHtcbiAgICAgICAgdGhpcy5zeW5jSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoMCk7XG4gICAgICBjb25zdCBhZnRlclggPVxuICAgICAgICAodGhpcy5lZmZlY3RpdmVTY3JvbGwgJiYgdGhpcy5lZmZlY3RpdmVTY3JvbGwueCkgfHxcbiAgICAgICAgKHRoaXMudGFibGVTY3JvbGwgJiYgdGhpcy50YWJsZVNjcm9sbC54KTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5zY3JvbGwgPT0gbnVsbCAmJlxuICAgICAgICByZXRyeSA8IDUgJiZcbiAgICAgICAgdGhpcy5kaXNwbGF5TGluZXMgJiZcbiAgICAgICAgdGhpcy5kaXNwbGF5TGluZXMubGVuZ3RoID4gMCAmJlxuICAgICAgICAhYWZ0ZXJYICYmXG4gICAgICAgIG1lYXN1cmVUYWJsZUNvbFdpZHRoKHRoaXMubnpUYWJsZUNvbXBvbmVudCkgPT09IDBcbiAgICAgICkge1xuICAgICAgICB0aGlzLnNjaGVkdWxlU3luY0hvcml6b250YWxTY3JvbGwocmV0cnkgKyAxKTtcbiAgICAgIH1cbiAgICB9LCBkZWxheSk7XG4gIH1cblxuICBwcml2YXRlIHN5bmNIb3Jpem9udGFsU2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNjcm9sbCAhPSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGhhc0RhdGEgPSAhISh0aGlzLmRpc3BsYXlMaW5lcyAmJiB0aGlzLmRpc3BsYXlMaW5lcy5sZW5ndGgpO1xuICAgIGNvbnN0IG5leHRTY3JvbGwgPSByZXNvbHZlQXV0b1RhYmxlU2Nyb2xsKFxuICAgICAgdGhpcy5uelRhYmxlQ29tcG9uZW50LFxuICAgICAgaGFzRGF0YSxcbiAgICApO1xuICAgIGNvbnN0IG5leHRYID0gbmV4dFNjcm9sbCA/IG5leHRTY3JvbGwueCA6IG51bGw7XG4gICAgLy8g6Ieq5Yqo5rWL566X5Y+q6K6+IHjvvIzkuI3orr4gee+8iOS4jiAyLjEuNjQg5YmN5LiA6Ie077yM6YG/5YWN5peg5YiX5a695pe26KGo5aS0L+ihqOS9k+mUmeS9je+8iVxuICAgIGlmICh0aGlzLnRhYmxlU2Nyb2xsICYmIHRoaXMudGFibGVTY3JvbGwueCA9PT0gbmV4dFggJiYgIXRoaXMudGFibGVTY3JvbGwueSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwcmV2SGFzWSA9ICEhKHRoaXMudGFibGVTY3JvbGwgJiYgdGhpcy50YWJsZVNjcm9sbC55KTtcbiAgICB0aGlzLnRhYmxlU2Nyb2xsID0gbmV4dFggPyB7IHg6IG5leHRYIH0gOiBudWxsO1xuICAgIGlmIChwcmV2SGFzWSkge1xuICAgICAgdGhpcy5yZW1vdW50VGFibGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5iaW5kSGVhZGVyQm9keVNjcm9sbFN5bmMoMCk7XG4gIH1cblxuICAvKiog6YeN5bu6IG56LXRhYmxl77yM6K6pIGhlYWRlci9ib2R5IOa7muWKqOWQjOatpeWcqCBBZnRlclZpZXdJbml0IOmHjeaWsOe7keWumiAqL1xuICBwcml2YXRlIHJlbW91bnRUYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dUYWJsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG93VGFibGUgPSB0cnVlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmJpbmRIZWFkZXJCb2R5U2Nyb2xsU3luYygwKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiDooajkvZPmqKrmu5rml7blkIzmraXooajlpLTvvIjlhZzlupUgbmctem9ycm8g55uR5ZCs5Lii5aSx77yJ77ybRE9NIOacquWwsee7quaXtumHjeivlSAqL1xuICBwcml2YXRlIGJpbmRIZWFkZXJCb2R5U2Nyb2xsU3luYyhyZXRyeSA9IDApOiB2b2lkIHtcbiAgICB0aGlzLnVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk7XG4gICAgaWYgKCF0aGlzLm56VGFibGVDb21wb25lbnQgfHwgISh0aGlzLmVmZmVjdGl2ZVNjcm9sbCAmJiB0aGlzLmVmZmVjdGl2ZVNjcm9sbC54KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB1bmJpbmQgPSBiaW5kTnpUYWJsZUhlYWRlckJvZHlTY3JvbGxTeW5jKHRoaXMubnpUYWJsZUNvbXBvbmVudCk7XG4gICAgaWYgKHVuYmluZCkge1xuICAgICAgdGhpcy51bmJpbmRCb2R5U2Nyb2xsID0gdW5iaW5kO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmV0cnkgPCA4KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKHJldHJ5ICsgMSksIDUwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVuYmluZEhlYWRlckJvZHlTY3JvbGxTeW5jKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnVuYmluZEJvZHlTY3JvbGwpIHtcbiAgICAgIHRoaXMudW5iaW5kQm9keVNjcm9sbCgpO1xuICAgICAgdGhpcy51bmJpbmRCb2R5U2Nyb2xsID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN5bmNTdG9yZUZyb21MaW5lc0lucHV0KHNvdXJjZT86IEFycmF5PGFueT4pOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhID0gc291cmNlIHx8IHRoaXMubGluZXM7XG4gICAgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEgPSBkYXRhID8gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhKSkgOiBbXTtcbiAgfVxuXG4gIC8qKiDmnKrnrZvpgInml7bkuI7niLbnu4Tku7YgbGluZXMg5ZCM5rqQ77yM6YG/5YWN5qih5p2/5YaFIG5nTW9kZWwg5LiO54i25pWw5o2u6ISx6IqCICovXG4gIHByaXZhdGUgYXBwbHlEaXNwbGF5RnJvbVN0b3JlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpbmVzICYmIHRoaXMubGluZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5kaXNwbGF5TGluZXMgPSB0aGlzLmxpbmVzO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc3BsYXlMaW5lcyA9IHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhXG4gICAgICA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEpKVxuICAgICAgOiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzdG9yZUZyb21TdG9yZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzRmlsdGVyRGF0YSA9IGZhbHNlO1xuICAgIHRoaXMuYXBwbHlEaXNwbGF5RnJvbVN0b3JlKCk7XG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNvdW50U2VsZWN0ZWQoKTtcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsKCk7XG4gICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gIH1cblxuICAvLyDlhajlsYDmgKfnmoTmkJzntKLvvIjmtrXnm5bpobXpnaLkuIrmiYDmnInnmoTlj6/op4bmloflrZfvvIlcbiAgc2VhcmNoTGluZXMoKSB7XG4gICAgLy8g5riF56m65pCc57Si77ya5Y2z5L2/5b2T5YmN5bGV56S65Li656m65Lmf6KaB6IO95LuO57yT5a2Y5oGi5aSN77yI5a+56b2QIGhkLWZvcm0tbGluZXPvvIlcbiAgICBpZiAoIXRoaXMuZmlsdGVyU3RyIHx8ICF0aGlzLmZpbHRlclN0ci50cmltKCkpIHtcbiAgICAgIGlmICghdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEgfHwgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEubGVuZ3RoIDwgMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnRhYmxlTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnJlc3RvcmVGcm9tU3RvcmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSB8fCB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHRoaXMuZmlsdGVyU3RyLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIHRoaXMuaXNGaWx0ZXJEYXRhID0gdHJ1ZTtcblxuICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhLmZpbHRlcigoZGF0YTogYW55KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuc2VhcmNoRmllbGRzIHx8IHRoaXMuc2VhcmNoRmllbGRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgT2JqZWN0LmtleXMoZGF0YSkpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBkYXRhW2l0ZW1dICYmXG4gICAgICAgICAgICBkYXRhW2l0ZW1dLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5zZWFyY2hGaWVsZHMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRhdGFbaXRlbV0gJiZcbiAgICAgICAgICBkYXRhW2l0ZW1dLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICB0aGlzLmRpc3BsYXlMaW5lcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZmlsdGVyZWREYXRhKSk7XG4gICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNvdW50U2VsZWN0ZWQoKTtcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsKCk7XG4gICAgdGhpcy5zY2hlZHVsZVN5bmNIb3Jpem9udGFsU2Nyb2xsKCk7XG4gIH1cblxuICBwcml2YXRlIGNvdW50U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5zaG93U2VsZWN0ZWQgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWVsZCAmJlxuICAgICAgdGhpcy5kaXNwbGF5TGluZXMgJiZcbiAgICAgIHRoaXMuZGlzcGxheUxpbmVzLmxlbmd0aFxuICAgICkge1xuICAgICAgdGhpcy5kaXNwbGF5TGluZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbVt0aGlzLnNlbGVjdGVkRmllbGRdID09PSB0cnVlICYmICF0aGlzLmlzU2VsZWN0RGlzYWJsZWQoaXRlbSkpIHtcbiAgICAgICAgICB0aGlzLm1hcE9mQ2hlY2tlZElkW2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLm1hcE9mQ2hlY2tMaXN0W2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dID0gaXRlbTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuZGlzcGxheUxpbmVzLmxlbmd0aCA9PT0gT2JqZWN0LmtleXModGhpcy5tYXBPZkNoZWNrTGlzdCkubGVuZ3RoXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5pc0FsbERpc3BsYXlEYXRhQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgTG9kYXNoUm91bmQoKSB7XG4gICAgcmV0dXJuIHJvdW5kO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KTogdm9pZCB7XG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZGlzcGxheUxpbmVzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuZGlzcGxheUxpbmVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRpc3BsYXlMaW5lcykpO1xuICAgIGlmICghdGhpcy5pc0ZpbHRlckRhdGEpIHtcbiAgICAgIHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRpc3BsYXlMaW5lcykpO1xuICAgIH1cbiAgfVxuXG4gIGNhbGN1bGF0ZVRvdGFsKCkge1xuICAgIC8vIOi/memHjOWkhOeQhuWQiOiuoeaVsOaNrlxuICAgIGlmICh0aGlzLnNob3dUb3RhbCAmJiB0aGlzLmRpc3BsYXlMaW5lcyAmJiB0aGlzLmRpc3BsYXlMaW5lcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudG90YWxPcHRpb25MaXN0ID0gbmV3IEFycmF5KE51bWJlcih0aGlzLmNvbHVtbnNOdW1iZXIpIC0gMSkuZmlsbChcIlwiKTtcbiAgICAgIHRoaXMudG90YWxPcHRpb24uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5pbnNlcnRJbmRleCAmJiAoaXRlbS5pbnNlcnRWYWx1ZSB8fCBpdGVtLmluc2VydFZhbHVlID09PSAwKSkge1xuICAgICAgICAgIHRoaXMudG90YWxPcHRpb25MaXN0W2l0ZW0uaW5zZXJ0SW5kZXggLSAxXSA9IHtcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLmluc2VydFZhbHVlLFxuICAgICAgICAgICAgYWxpZ246IGl0ZW0uYWxpZ24gfHwgXCJyaWdodFwiLFxuICAgICAgICAgICAgc2hvd0RlY2ltYWw6IGl0ZW0uc2hvd0RlY2ltYWwgfHwgZmFsc2UsXG4gICAgICAgICAgICBwcmVzZXJ2ZU51bWJlcjogaXRlbS5wcmVzZXJ2ZU51bWJlciAhPSBudWxsID8gaXRlbS5wcmVzZXJ2ZU51bWJlciA6IDIsXG4gICAgICAgICAgICBpc0hpZGU6IGl0ZW0uaXNIaWRlIHx8IGZhbHNlLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIOihqOagvOWLvumAiemAu+i+kVxuICBjdXJyZW50UGFnZURhdGFDaGFuZ2UoJGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RPZkRpc3BsYXlEYXRhID0gJGV2ZW50O1xuICAgIHRoaXMucmVmcmVzaFN0YXR1cygpO1xuICAgIHRoaXMuc2NoZWR1bGVTeW5jSG9yaXpvbnRhbFNjcm9sbCgpO1xuICB9XG5cbiAgcmVzZXRTdGF0dXMoKSB7XG4gICAgdGhpcy5pc0FsbERpc3BsYXlEYXRhQ2hlY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgdGhpcy5tYXBPZkNoZWNrZWRJZCA9IHt9O1xuICAgIHRoaXMubWFwT2ZDaGVja0xpc3QgPSB7fTtcbiAgICB0aGlzLnNlbGVjdEV2ZW50LmVtaXQoW10pO1xuICB9XG5cbiAgcmVmcmVzaFN0YXR1cyhldmVudDogYm9vbGVhbiA9IGZhbHNlLCBkYXRhOiBhbnkgPSBudWxsKTogdm9pZCB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGlmIChldmVudCAmJiB0aGlzLmlzU2VsZWN0RGlzYWJsZWQoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5tYXBPZkNoZWNrZWRJZFtkYXRhW3RoaXMuc2VsZWN0RmllbGRdXSA9IGV2ZW50O1xuICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICF0aGlzLm1hcE9mQ2hlY2tMaXN0W2RhdGFbdGhpcy5zZWxlY3RGaWVsZF1dICYmXG4gICAgICAgICAgKHRoaXMubWFwT2ZDaGVja0xpc3RbZGF0YVt0aGlzLnNlbGVjdEZpZWxkXV0gPSBkYXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWFwT2ZDaGVja0xpc3RbZGF0YVt0aGlzLnNlbGVjdEZpZWxkXV0gJiZcbiAgICAgICAgICBkZWxldGUgdGhpcy5tYXBPZkNoZWNrTGlzdFtkYXRhW3RoaXMuc2VsZWN0RmllbGRdXTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgc2VsZWN0YWJsZUxpc3QgPSB0aGlzLmxpc3RPZkRpc3BsYXlEYXRhLmZpbHRlcihcbiAgICAgIChpdGVtKSA9PiAhdGhpcy5pc1NlbGVjdERpc2FibGVkKGl0ZW0pLFxuICAgICk7XG4gICAgdGhpcy5pc0FsbERpc3BsYXlEYXRhQ2hlY2tlZCA9XG4gICAgICBzZWxlY3RhYmxlTGlzdC5sZW5ndGggPiAwICYmXG4gICAgICBzZWxlY3RhYmxlTGlzdC5ldmVyeSgoaXRlbSkgPT4gdGhpcy5tYXBPZkNoZWNrZWRJZFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXSk7XG4gICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPVxuICAgICAgc2VsZWN0YWJsZUxpc3Quc29tZShcbiAgICAgICAgKGl0ZW0pID0+IHRoaXMubWFwT2ZDaGVja2VkSWRbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0sXG4gICAgICApICYmICF0aGlzLmlzQWxsRGlzcGxheURhdGFDaGVja2VkO1xuICAgIC8vIOinpuWPkXNlbGVjdOS6i+S7tlxuICAgIGlmICh0aGlzLnNlbGVjdEV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdEV2ZW50LmVtaXQoT2JqZWN0LnZhbHVlcyh0aGlzLm1hcE9mQ2hlY2tMaXN0KSk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tBbGwodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RPZkRpc3BsYXlEYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmICh0aGlzLmlzU2VsZWN0RGlzYWJsZWQoaXRlbSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICF0aGlzLm1hcE9mQ2hlY2tMaXN0W2l0ZW1bdGhpcy5zZWxlY3RGaWVsZF1dICYmXG4gICAgICAgICAgKHRoaXMubWFwT2ZDaGVja0xpc3RbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gPSBpdGVtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWFwT2ZDaGVja0xpc3RbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gJiZcbiAgICAgICAgICBkZWxldGUgdGhpcy5tYXBPZkNoZWNrTGlzdFtpdGVtW3RoaXMuc2VsZWN0RmllbGRdXTtcbiAgICAgIH1cbiAgICAgIHRoaXMubWFwT2ZDaGVja2VkSWRbaXRlbVt0aGlzLnNlbGVjdEZpZWxkXV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICB0aGlzLnJlZnJlc2hTdGF0dXMoKTtcbiAgfVxuXG4gIC8qKiDlvZPliY3ooYzmmK/lkKbnpoHnlKjli77pgIkgKi9cbiAgaXNTZWxlY3REaXNhYmxlZChkYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnNlbGVjdERpc2FibGVkRmllbGQgJiZcbiAgICAgIGRhdGEgJiZcbiAgICAgIGRhdGFbdGhpcy5zZWxlY3REaXNhYmxlZEZpZWxkXSA9PT0gdHJ1ZVxuICAgICk7XG4gIH1cblxuICAvKiog5b2T5YmN6KGM5piv5ZCm5aSx5pWIICovXG4gIGlzSW52YWxpZFJvdyhkYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnJvd0ludmFsaWRGaWVsZCAmJlxuICAgICAgZGF0YSAmJlxuICAgICAgZGF0YVt0aGlzLnJvd0ludmFsaWRGaWVsZF0gPT09IHRydWVcbiAgICApO1xuICB9XG59XG4iXX0=
|