Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@farris/app-navigation-be

Package Overview
Dependencies
Maintainers
24
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@farris/app-navigation-be - npm Package Compare versions

Comparing version 0.0.1 to 0.0.2

19

bundles/farris-app-navigation-be.umd.js

@@ -216,2 +216,21 @@ (function (global, factory) {

var source = this.editorParams.source || 'Bo';
this.modalConfig = this.editorParams.source == 'Bo' ? {
title: '选择业务实体',
width: 900,
height: 500,
minWidth: 650,
minHeight: 300,
resizable: false,
showButtons: true,
showMaxButton: false
} : {
title: '选择视图模型',
width: 900,
height: 500,
minWidth: 650,
minHeight: 300,
resizable: false,
showButtons: true,
showMaxButton: false
};
/** @type {?} */

@@ -218,0 +237,0 @@ var http$$1 = this.injector.get(http.HttpClient);

2

bundles/farris-app-navigation-be.umd.min.js

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@farris/designer-services"),require("lodash-es"),require("@farris/ui-notify"),require("@angular/core"),require("@angular/common"),require("@farris/ui-input-group"),require("@angular/common/http"),require("@farris/ui-pagination")):"function"==typeof define&&define.amd?define("@farris/app-navigation-be",["exports","@farris/designer-services","lodash-es","@farris/ui-notify","@angular/core","@angular/common","@farris/ui-input-group","@angular/common/http","@farris/ui-pagination"],t):t((e.farris=e.farris||{},e.farris["app-navigation-be"]={}),e.designerServices,e.lodashEs,e.uiNotify,e.ng.core,e.ng.common,e.uiInputGroup,e.ng.common.http,e.uiPagination)}(this,function(e,t,i,a,n,o,s,r,c){"use strict";p.prototype.ngOnInit=function(){this.beData=[],this.getAllDataInfo(),this.getRecentDataInfo(),this.getRecommandDataInfo(),this.chooseRecommand=!0},p.prototype.onPageChange=function(e){this.pageIndex!==e.pageIndex&&(this.pageIndex=e.pageIndex,this.paginationOptions.currentPage=e.pageIndex)},p.prototype.getAllDataInfo=function(){var t=this,e=this.injector.get(r.HttpClient),a=this.formBasicService.formMetaBasicInfo.relativePath;return e.get("/api/dev/main/v1.0/mdservice/unionmdlist?path="+a+"&pageIndex=1&pageSize=1000&metadataTypeList=.be",{headers:new r.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.reinvokeInterface(e),t.beAllData=i.cloneDeep(t.getFormData(e,"all")),t.beAllDataCopy=i.cloneDeep(t.beAllData)})},p.prototype.getRecentDataInfo=function(){var t=this,e=this.injector.get(r.HttpClient),a=this.formBasicService.formMetaBasicInfo.relativePath||"",a="/"==a[0]?a.split("/")[1]:a.split("/")[0];return e.get("/api/dev/main/v1.0/mdservice/getmdrecentuse?appId="+a+"&metadataTypeList=.be",{headers:new r.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.beRecentData=i.cloneDeep(t.getFormData(e,"recent")),t.beRecentData&&t.beRecentData.length&&(t.showRecommandData(),t.getUniqueData(t.beData))})},p.prototype.getRecommandDataInfo=function(){var t=this,e=this.editorParams.source||"Bo",a=this.injector.get(r.HttpClient),n=this.formBasicService.formMetaBasicInfo.relativePath;return a.get("/api/dev/main/v1.0/mdservice/metadataListIn"+e+"?path="+n+"&metadataTypeList=.be",{headers:new r.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.beRecommandData=i.cloneDeep(t.getFormData(e,"local")),t.beRecommandData&&t.beRecommandData.length&&(t.showRecommandData(),t.getUniqueData(t.beData))})},p.prototype.getFormData=function(e,a){var n=[],e=e.metadataIndexItems||e;return e&&e.forEach(function(e,t){t={id:t,name:e.name,label:e.code,source:e.nameSpace,hide:!1,active:!1,data:e,category:a};n.push(t)}),n},p.prototype.showRecommandData=function(){var t=this;this.chooseRecommand=!0,this.beData=[],this.beRecommandData&&this.beRecommandData.length&&this.beRecommandData.forEach(function(e){t.beData.push(i.cloneDeep(e))}),this.beRecentData&&this.beRecentData.length&&this.beRecentData.forEach(function(e){t.beData.push(i.cloneDeep(e))}),this.getUniqueData(this.beData),this.beData=this.onSearchValueChanged(this.searchValue)},p.prototype.showAllData=function(){this.beData=i.cloneDeep(this.beAllData),this.chooseRecommand=!1,this.beData=this.onSearchValueChanged(this.searchValue)},p.prototype.onSearchValueChanged=function(e){var a,t=this.chooseRecommand?this.beData:this.beAllDataCopy;return t&&(e=(e=e==undefined?"":e).originalEvent!=undefined?e.value||"":e,this.searchValue=e,this.supportPaging=""==this.searchValue,a=""==(a=e.replaceAll(" ","").replaceAll(">",""))?" ":a,t.forEach(function(e){var t=e.name+" "+e.label;e.hide=0==t.includes(a)})),this.beData=i.cloneDeep(t),this.beData},p.prototype.getBeDataItem=function(t){var a=this;this.beData.forEach(function(e){t.id==e.id?(e.active=!e.active,a.selectedCommand=i.cloneDeep(t)):e.active=!1})},p.prototype.clickConfirm=function(){var e,t,a,n,i=this;return this.selectedCommand&&this.selectedCommand.active?(e=this.injector.get(r.HttpClient),t="/api/dev/main/v1.0/mdservice/pickMetadata?currentPath="+this.formBasicService.formMetaBasicInfo.relativePath,a=this.selectedCommand.data,n={headers:new r.HttpHeaders({"Content-Type":"application/json"})},e.post(t,a,n).subscribe(function(e){i.submitModal.emit(e)})):(this.notifyService.info("未选择业务实体"),null)},p.prototype.onClear=function(){this.beData=this.onSearchValueChanged("")},p.prototype.clickCancel=function(){this.closeModal.emit()},p.prototype.foldInRecent=function(){this.foldRecent=!this.foldRecent,this.beData&&!this.searchValue&&this.beData.forEach(function(e){"recent"==e.category&&(e.hide=!e.hide)})},p.prototype.foldInLocal=function(){this.foldLocal=!this.foldLocal,this.beData&&!this.searchValue&&this.beData.forEach(function(e){"local"==e.category&&(e.hide=!e.hide)})},p.prototype.getUniqueData=function(e){if(e){for(var t=i.cloneDeep(e),a=0;a<t.length;a++)for(var n=a+1;n<t.length;n++)t[a].id==t[n].id&&(t.splice(n,1),n--);e=i.cloneDeep(t)}return e},p.prototype.reinvokeInterface=function(e){var t=this;if(e.page){var a,n,e=e.page.total||0;if(1e3<e)return a=this.injector.get(r.HttpClient),n=this.editorParams.relativePath,a.get("/api/dev/main/v1.0/mdservice/unionmdlist?path="+n+"&pageIndex=1&pageSize="+e+"&metadataTypeList=.be",{headers:new r.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.beAllData=i.cloneDeep(t.getFormData(e,"all")),t.beAllDataCopy=i.cloneDeep(t.beAllData)})}},p.decorators=[{type:n.Component,args:[{selector:"farris-appNavigationBe",template:'<div class="f-navBe">\n <div class="f-navBe-header">\n <div class="f-navBe-recent" (click)="showRecommandData()">\n <div\n [ngClass]="{\'f-navBe-recent-text-focus\':chooseRecommand,\'f-navBe-recent-text\':!chooseRecommand}">\n 推荐</div>\n </div>\n <div class="f-navBe-allData" (click)="showAllData()">\n <div\n [ngClass]="{\'f-navBe-allData-text-focus\':!chooseRecommand,\'f-navBe-allData-text\':chooseRecommand}">\n 全部</div>\n </div>\n <div class="f-navBe-remainder">\n <div class="f-navBe-search">\n <input-group [groupText]="groupIcon" [(value)]="searchValue"\n (clickHandle)="onSearchValueChanged($event)" (valueChange)="onSearchValueChanged($event)"\n (clear)="onClear()" placeholder="请输入名称/首字母/编号搜索" style="font-size:2px;"></input-group>\n </div>\n </div>\n </div>\n <div class="f-navBe-content" *ngIf="chooseRecommand">\n <div class="f-navBe-content-recent" *ngIf="chooseRecommand && !recentFoldIn">\n <div class="f-navBe-recentHeader" (click)="foldInRecent()">\n <div *ngIf="foldRecent" class="f-icon f-icon-arrow-60-right"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div *ngIf="!foldRecent" class="f-icon f-icon-arrow-60-down"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div class="f-navBe-recommandLabel">最近使用</div>\n </div>\n <ng-container *ngFor="let beDataItem of beData">\n <ng-container *ngIf="!beDataItem.hide && beDataItem.category == \'recent\'">\n <div [ngClass]="{\'f-navBe-item\':!beDataItem.active,\'f-navBe-item-active\':beDataItem.active}"\n (click)="getBeDataItem(beDataItem)">\n <div class="f-navBe-itemIcon">\n <div class="f-icon f-icon-window"\n style="color:#2BA85E;font-size:3px; width: 12px;height: 12px;padding: 0px 0px 2px 1px;">\n </div>\n </div>\n <div class="f-navBe-name">{{beDataItem.name}} ({{beDataItem.label}})</div>\n <div class="f-navBe-source">{{beDataItem.source}}</div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n <div class="f-navBe-content-local" *ngIf="chooseRecommand && !localFoldIn">\n <div class="f-navBe-localHeader" (click)="foldInLocal()">\n <div *ngIf="foldLocal" class="f-icon f-icon-arrow-60-right"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div *ngIf="!foldLocal" class="f-icon f-icon-arrow-60-down"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div class="f-navBe-recommandLabel">本地元数据</div>\n </div>\n <ng-container *ngFor="let beDataItem of beData">\n <ng-container *ngIf="!beDataItem.hide && beDataItem.category == \'local\'">\n <div [ngClass]="{\'f-navBe-item\':!beDataItem.active,\'f-navBe-item-active\':beDataItem.active}"\n (click)="getBeDataItem(beDataItem)">\n <div class="f-navBe-itemIcon">\n <div class="f-icon f-icon-window"\n style="color:#2BA85E;font-size:3px; width: 12px;height: 12px;padding: 0px 0px 2px 1px;">\n </div>\n </div>\n <div class="f-navBe-name">{{beDataItem.name}} ({{beDataItem.label}})</div>\n <div class="f-navBe-source">{{beDataItem.source}}</div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class="f-navBe-content2" *ngIf="!chooseRecommand">\n \x3c!-- <ng-container *ngFor="let beDataItem of beData">\n <ng-container *ngIf="!beDataItem.hide">\n <div [ngClass]="{\'f-navBe-item\':!beDataItem.active,\'f-navBe-item-active\':beDataItem.active}"\n (click)="getBeDataItem(beDataItem)">\n <div class="f-navBe-itemIcon">\n <div class="f-icon f-icon-window"\n style="color:#2BA85E;font-size:3px; width: 12px;height: 12px;padding: 0px 0px 2px 1px;">\n </div>\n </div>\n <div class="f-navBe-name">{{beDataItem.name}} ({{beDataItem.label}})</div>\n <div class="f-navBe-source">{{beDataItem.source}}</div>\n </div>\n </ng-container>\n </ng-container> --\x3e\n <div *ngFor="let beDataItem of (supportPaging ? (beData | paginate: paginationOptions) : beData)">\n <ng-container *ngIf="!beDataItem.hide">\n <div [ngClass]="{\'f-navBe-item\':!beDataItem.active,\'f-navBe-item-active\':beDataItem.active}"\n (click)="getBeDataItem(beDataItem)">\n <div class="f-navBe-itemIcon">\n <div class="f-icon f-icon-window"\n style="color:#2BA85E;font-size:3px; width: 12px;height: 12px;padding: 0px 0px 2px 0px;">\n </div>\n </div>\n <div class="f-navBe-name">{{beDataItem.name}} ({{beDataItem.label}})</div>\n <div class="f-navBe-source">{{beDataItem.source}}</div>\n </div>\n </ng-container>\n </div>\n <div *ngIf="supportPaging" class="f-navBe-content2-paging">\n <pagination-controls #pager [id]="paginationOptions?.id" [maxSize]="pagerLabelSize" [directionLinks]="true"\n [autoHide]="false" [responsive]="true" [previousLabel]="\' \'" [nextLabel]="\' \'"\n [showPageInfo]="showPageInfo" [showPageNumber]="showPageNumber" [showPageList]="showPageList"\n (pageChange)="onPageChange($event)">\n </pagination-controls>\n </div>\n </div>\n</div>\n<ng-template #footer>\n <button type="button" class="btn btn-secondary" (click)="clickCancel()">取消</button>\n <button type="button" class="btn btn-primary" (click)="clickConfirm()">确定</button>\n</ng-template>',styles:[":host{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.f-navBe{background-color:#fff;height:400px}.f-navBe-header{display:flex;min-width:400px;width:100%;height:44px;align-items:center;border:1px solid #e5e9ef;background:#f9f9fc;position:absolute;top:0;z-index:2}.f-navBe-allData{flex:2;text-align:center;display:flex;justify-content:center;align-items:center}.f-navBe-allData-text{width:32px;height:44px;font-family:PingFangSC-Medium;font-size:16px;color:#2d2f33;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-allData-text-focus{width:32px;height:44px;color:#2a87ff;border-bottom:3px solid #00f;font-family:PingFangSC-Medium;font-size:16px;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-recent{flex:2;text-align:center;display:flex;justify-content:center;align-items:center}.f-navBe-recent-text{width:32px;height:44px;font-family:PingFangSC-Medium;font-size:16px;color:#2d2f33;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-recent-text-focus{width:32px;height:44px;color:#2a87ff;border-bottom:3px solid #00f;font-family:PingFangSC-Medium;font-size:16px;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-remainder{flex:12}.f-navBe-search{width:220px;height:26.6px;background:#fff;border-radius:6px;float:right;margin-right:40px}.f-navBe-content{width:100%;min-width:400px;height:399px;overflow:scroll}.f-navBe-content2{width:100%;min-width:400px;margin-top:44px;height:325px;overflow:scroll}.f-navBe-content2-paging{position:absolute;top:360px;right:50px}.f-navBe-content-recent{width:100%;min-width:400px;margin-top:44px}.f-navBe-content-local{width:100%;min-width:400px}.f-navBe-recommandLabel{height:18px;font-family:PingFangSC-Regular;font-size:13px;color:#3d4c6b;font-weight:400;cursor:pointer}.f-navBe-localHeader,.f-navBe-recentHeader{height:32px;background:#fafaff;width:100%;display:flex;align-items:center;padding-left:10px;cursor:pointer;border:1px solid rgba(233,236,243,1)}.f-navBe-item{height:62px;padding:15px 0 8px 18px;border:1px solid #e5e9ef}.f-navBe-item:hover{background-color:#edf5fc!important;cursor:pointer}.f-navBe-item-active{height:62px;padding:15px 0 8px 18px;border:1px solid #e5e9ef;background-color:#edf5fc!important}.f-navBe-itemIcon{width:16px;height:16px;padding:1px;margin-right:6px;background-color:#dcf4e8;display:inline-block}.f-navBe-name{width:80%;height:18px;font-family:PingFangSC-Regular;font-size:13px;color:#2d2f33;font-weight:400;overflow:hidden;display:inline-block;vertical-align:top}.f-navBe-source{width:100%;height:17px;font-family:PingFangSC-Regular;font-size:12px;color:#949ba7;font-weight:400}"]}]}],p.ctorParameters=function(){return[{type:t.FormBasicService},{type:n.Injector},{type:a.NotifyService}]},p.propDecorators={editorParams:[{type:n.Input}],closeModal:[{type:n.Output}],submitModal:[{type:n.Output}],modalFooter:[{type:n.ViewChild,args:["footer"]}]};var l=p;function p(e,t,a){this.formBasicService=e,this.injector=t,this.notifyService=a,this.closeModal=new n.EventEmitter,this.submitModal=new n.EventEmitter,this.groupIcon='<span class="k-icon k-i-search"></span>',this.chooseRecommand=!0,this.recentFoldIn=!1,this.localFoldIn=!1,this.modalConfig={title:"选择业务实体",width:900,height:500,minWidth:650,minHeight:300,resizable:!1,showButtons:!0,showMaxButton:!1},this.metadataPath="",this.isDeisgnerEnv=!0,this.foldLocal=!1,this.foldRecent=!1,this.pagerOnServer=!1,this.pageList=[20,50,100],this.pageIndex=1,this.pageSize=20,this.pagerHeight=56,this.showPageList=!1,this.showPageInfo=!0,this.showPageNumber=!0,this.pagerLabelSize=7,this.total=0,this.supportPaging=!0,this.paginationOptions={id:"Farris-beMetadata-Pagination_",itemsPerPage:this.pageSize,currentPage:this.pageIndex,pageList:this.pageList,totalItems:this.total,remote:this.pagerOnServer}}d.decorators=[{type:n.NgModule,args:[{declarations:[l],imports:[o.CommonModule,s.InputGroupModule,r.HttpClientModule,c.PaginationModule],entryComponents:[c.PaginationControlsComponent],exports:[l]}]}];o=d;function d(){}e.AppNavigationBeComponent=l,e.AppNavigationBeModule=o,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@farris/designer-services"),require("lodash-es"),require("@farris/ui-notify"),require("@angular/core"),require("@angular/common"),require("@farris/ui-input-group"),require("@angular/common/http"),require("@farris/ui-pagination")):"function"==typeof define&&define.amd?define("@farris/app-navigation-be",["exports","@farris/designer-services","lodash-es","@farris/ui-notify","@angular/core","@angular/common","@farris/ui-input-group","@angular/common/http","@farris/ui-pagination"],t):t((e.farris=e.farris||{},e.farris["app-navigation-be"]={}),e.designerServices,e.lodashEs,e.uiNotify,e.ng.core,e.ng.common,e.uiInputGroup,e.ng.common.http,e.uiPagination)}(this,function(e,t,i,a,n,o,s,r,c){"use strict";d.prototype.ngOnInit=function(){this.beData=[],this.getAllDataInfo(),this.getRecentDataInfo(),this.getRecommandDataInfo(),this.chooseRecommand=!0},d.prototype.onPageChange=function(e){this.pageIndex!==e.pageIndex&&(this.pageIndex=e.pageIndex,this.paginationOptions.currentPage=e.pageIndex)},d.prototype.getAllDataInfo=function(){var t=this,e=this.injector.get(r.HttpClient),a=this.formBasicService.formMetaBasicInfo.relativePath;return e.get("/api/dev/main/v1.0/mdservice/unionmdlist?path="+a+"&pageIndex=1&pageSize=1000&metadataTypeList=.be",{headers:new r.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.reinvokeInterface(e),t.beAllData=i.cloneDeep(t.getFormData(e,"all")),t.beAllDataCopy=i.cloneDeep(t.beAllData)})},d.prototype.getRecentDataInfo=function(){var t=this,e=this.injector.get(r.HttpClient),a=this.formBasicService.formMetaBasicInfo.relativePath||"",a="/"==a[0]?a.split("/")[1]:a.split("/")[0];return e.get("/api/dev/main/v1.0/mdservice/getmdrecentuse?appId="+a+"&metadataTypeList=.be",{headers:new r.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.beRecentData=i.cloneDeep(t.getFormData(e,"recent")),t.beRecentData&&t.beRecentData.length&&(t.showRecommandData(),t.getUniqueData(t.beData))})},d.prototype.getRecommandDataInfo=function(){var t=this,e=this.editorParams.source||"Bo",a=(this.modalConfig="Bo"==this.editorParams.source?{title:"选择业务实体",width:900,height:500,minWidth:650,minHeight:300,resizable:!1,showButtons:!0,showMaxButton:!1}:{title:"选择视图模型",width:900,height:500,minWidth:650,minHeight:300,resizable:!1,showButtons:!0,showMaxButton:!1},this.injector.get(r.HttpClient)),n=this.formBasicService.formMetaBasicInfo.relativePath;return a.get("/api/dev/main/v1.0/mdservice/metadataListIn"+e+"?path="+n+"&metadataTypeList=.be",{headers:new r.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.beRecommandData=i.cloneDeep(t.getFormData(e,"local")),t.beRecommandData&&t.beRecommandData.length&&(t.showRecommandData(),t.getUniqueData(t.beData))})},d.prototype.getFormData=function(e,a){var n=[],e=e.metadataIndexItems||e;return e&&e.forEach(function(e,t){t={id:t,name:e.name,label:e.code,source:e.nameSpace,hide:!1,active:!1,data:e,category:a};n.push(t)}),n},d.prototype.showRecommandData=function(){var t=this;this.chooseRecommand=!0,this.beData=[],this.beRecommandData&&this.beRecommandData.length&&this.beRecommandData.forEach(function(e){t.beData.push(i.cloneDeep(e))}),this.beRecentData&&this.beRecentData.length&&this.beRecentData.forEach(function(e){t.beData.push(i.cloneDeep(e))}),this.getUniqueData(this.beData),this.beData=this.onSearchValueChanged(this.searchValue)},d.prototype.showAllData=function(){this.beData=i.cloneDeep(this.beAllData),this.chooseRecommand=!1,this.beData=this.onSearchValueChanged(this.searchValue)},d.prototype.onSearchValueChanged=function(e){var a,t=this.chooseRecommand?this.beData:this.beAllDataCopy;return t&&(e=(e=e==undefined?"":e).originalEvent!=undefined?e.value||"":e,this.searchValue=e,this.supportPaging=""==this.searchValue,a=""==(a=e.replaceAll(" ","").replaceAll(">",""))?" ":a,t.forEach(function(e){var t=e.name+" "+e.label;e.hide=0==t.includes(a)})),this.beData=i.cloneDeep(t),this.beData},d.prototype.getBeDataItem=function(t){var a=this;this.beData.forEach(function(e){t.id==e.id?(e.active=!e.active,a.selectedCommand=i.cloneDeep(t)):e.active=!1})},d.prototype.clickConfirm=function(){var e,t,a,n,i=this;return this.selectedCommand&&this.selectedCommand.active?(e=this.injector.get(r.HttpClient),t="/api/dev/main/v1.0/mdservice/pickMetadata?currentPath="+this.formBasicService.formMetaBasicInfo.relativePath,a=this.selectedCommand.data,n={headers:new r.HttpHeaders({"Content-Type":"application/json"})},e.post(t,a,n).subscribe(function(e){i.submitModal.emit(e)})):(this.notifyService.info("未选择业务实体"),null)},d.prototype.onClear=function(){this.beData=this.onSearchValueChanged("")},d.prototype.clickCancel=function(){this.closeModal.emit()},d.prototype.foldInRecent=function(){this.foldRecent=!this.foldRecent,this.beData&&!this.searchValue&&this.beData.forEach(function(e){"recent"==e.category&&(e.hide=!e.hide)})},d.prototype.foldInLocal=function(){this.foldLocal=!this.foldLocal,this.beData&&!this.searchValue&&this.beData.forEach(function(e){"local"==e.category&&(e.hide=!e.hide)})},d.prototype.getUniqueData=function(e){if(e){for(var t=i.cloneDeep(e),a=0;a<t.length;a++)for(var n=a+1;n<t.length;n++)t[a].id==t[n].id&&(t.splice(n,1),n--);e=i.cloneDeep(t)}return e},d.prototype.reinvokeInterface=function(e){var t=this;if(e.page){var a,n,e=e.page.total||0;if(1e3<e)return a=this.injector.get(r.HttpClient),n=this.editorParams.relativePath,a.get("/api/dev/main/v1.0/mdservice/unionmdlist?path="+n+"&pageIndex=1&pageSize="+e+"&metadataTypeList=.be",{headers:new r.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.beAllData=i.cloneDeep(t.getFormData(e,"all")),t.beAllDataCopy=i.cloneDeep(t.beAllData)})}},d.decorators=[{type:n.Component,args:[{selector:"farris-appNavigationBe",template:'<div class="f-navBe">\n <div class="f-navBe-header">\n <div class="f-navBe-recent" (click)="showRecommandData()">\n <div\n [ngClass]="{\'f-navBe-recent-text-focus\':chooseRecommand,\'f-navBe-recent-text\':!chooseRecommand}">\n 推荐</div>\n </div>\n <div class="f-navBe-allData" (click)="showAllData()">\n <div\n [ngClass]="{\'f-navBe-allData-text-focus\':!chooseRecommand,\'f-navBe-allData-text\':chooseRecommand}">\n 全部</div>\n </div>\n <div class="f-navBe-remainder">\n <div class="f-navBe-search">\n <input-group [groupText]="groupIcon" [(value)]="searchValue"\n (clickHandle)="onSearchValueChanged($event)" (valueChange)="onSearchValueChanged($event)"\n (clear)="onClear()" placeholder="请输入名称/首字母/编号搜索" style="font-size:2px;"></input-group>\n </div>\n </div>\n </div>\n <div class="f-navBe-content" *ngIf="chooseRecommand">\n <div class="f-navBe-content-recent" *ngIf="chooseRecommand && !recentFoldIn">\n <div class="f-navBe-recentHeader" (click)="foldInRecent()">\n <div *ngIf="foldRecent" class="f-icon f-icon-arrow-60-right"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div *ngIf="!foldRecent" class="f-icon f-icon-arrow-60-down"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div class="f-navBe-recommandLabel">最近使用</div>\n </div>\n <ng-container *ngFor="let beDataItem of beData">\n <ng-container *ngIf="!beDataItem.hide && beDataItem.category == \'recent\'">\n <div [ngClass]="{\'f-navBe-item\':!beDataItem.active,\'f-navBe-item-active\':beDataItem.active}"\n (click)="getBeDataItem(beDataItem)">\n <div class="f-navBe-itemIcon">\n <div class="f-icon f-icon-window"\n style="color:#2BA85E;font-size:3px; width: 12px;height: 12px;padding: 0px 0px 2px 1px;">\n </div>\n </div>\n <div class="f-navBe-name">{{beDataItem.name}} ({{beDataItem.label}})</div>\n <div class="f-navBe-source">{{beDataItem.source}}</div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n <div class="f-navBe-content-local" *ngIf="chooseRecommand && !localFoldIn">\n <div class="f-navBe-localHeader" (click)="foldInLocal()">\n <div *ngIf="foldLocal" class="f-icon f-icon-arrow-60-right"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div *ngIf="!foldLocal" class="f-icon f-icon-arrow-60-down"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div class="f-navBe-recommandLabel">本地元数据</div>\n </div>\n <ng-container *ngFor="let beDataItem of beData">\n <ng-container *ngIf="!beDataItem.hide && beDataItem.category == \'local\'">\n <div [ngClass]="{\'f-navBe-item\':!beDataItem.active,\'f-navBe-item-active\':beDataItem.active}"\n (click)="getBeDataItem(beDataItem)">\n <div class="f-navBe-itemIcon">\n <div class="f-icon f-icon-window"\n style="color:#2BA85E;font-size:3px; width: 12px;height: 12px;padding: 0px 0px 2px 1px;">\n </div>\n </div>\n <div class="f-navBe-name">{{beDataItem.name}} ({{beDataItem.label}})</div>\n <div class="f-navBe-source">{{beDataItem.source}}</div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class="f-navBe-content2" *ngIf="!chooseRecommand">\n \x3c!-- <ng-container *ngFor="let beDataItem of beData">\n <ng-container *ngIf="!beDataItem.hide">\n <div [ngClass]="{\'f-navBe-item\':!beDataItem.active,\'f-navBe-item-active\':beDataItem.active}"\n (click)="getBeDataItem(beDataItem)">\n <div class="f-navBe-itemIcon">\n <div class="f-icon f-icon-window"\n style="color:#2BA85E;font-size:3px; width: 12px;height: 12px;padding: 0px 0px 2px 1px;">\n </div>\n </div>\n <div class="f-navBe-name">{{beDataItem.name}} ({{beDataItem.label}})</div>\n <div class="f-navBe-source">{{beDataItem.source}}</div>\n </div>\n </ng-container>\n </ng-container> --\x3e\n <div *ngFor="let beDataItem of (supportPaging ? (beData | paginate: paginationOptions) : beData)">\n <ng-container *ngIf="!beDataItem.hide">\n <div [ngClass]="{\'f-navBe-item\':!beDataItem.active,\'f-navBe-item-active\':beDataItem.active}"\n (click)="getBeDataItem(beDataItem)">\n <div class="f-navBe-itemIcon">\n <div class="f-icon f-icon-window"\n style="color:#2BA85E;font-size:3px; width: 12px;height: 12px;padding: 0px 0px 2px 0px;">\n </div>\n </div>\n <div class="f-navBe-name">{{beDataItem.name}} ({{beDataItem.label}})</div>\n <div class="f-navBe-source">{{beDataItem.source}}</div>\n </div>\n </ng-container>\n </div>\n <div *ngIf="supportPaging" class="f-navBe-content2-paging">\n <pagination-controls #pager [id]="paginationOptions?.id" [maxSize]="pagerLabelSize" [directionLinks]="true"\n [autoHide]="false" [responsive]="true" [previousLabel]="\' \'" [nextLabel]="\' \'"\n [showPageInfo]="showPageInfo" [showPageNumber]="showPageNumber" [showPageList]="showPageList"\n (pageChange)="onPageChange($event)">\n </pagination-controls>\n </div>\n </div>\n</div>\n<ng-template #footer>\n <button type="button" class="btn btn-secondary" (click)="clickCancel()">取消</button>\n <button type="button" class="btn btn-primary" (click)="clickConfirm()">确定</button>\n</ng-template>',styles:[":host{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.f-navBe{background-color:#fff;height:400px}.f-navBe-header{display:flex;min-width:400px;width:100%;height:44px;align-items:center;border:1px solid #e5e9ef;background:#f9f9fc;position:absolute;top:0;z-index:2}.f-navBe-allData{flex:2;text-align:center;display:flex;justify-content:center;align-items:center}.f-navBe-allData-text{width:32px;height:44px;font-family:PingFangSC-Medium;font-size:16px;color:#2d2f33;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-allData-text-focus{width:32px;height:44px;color:#2a87ff;border-bottom:3px solid #00f;font-family:PingFangSC-Medium;font-size:16px;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-recent{flex:2;text-align:center;display:flex;justify-content:center;align-items:center}.f-navBe-recent-text{width:32px;height:44px;font-family:PingFangSC-Medium;font-size:16px;color:#2d2f33;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-recent-text-focus{width:32px;height:44px;color:#2a87ff;border-bottom:3px solid #00f;font-family:PingFangSC-Medium;font-size:16px;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-remainder{flex:12}.f-navBe-search{width:220px;height:26.6px;background:#fff;border-radius:6px;float:right;margin-right:40px}.f-navBe-content{width:100%;min-width:400px;height:399px;overflow:scroll}.f-navBe-content2{width:100%;min-width:400px;margin-top:44px;height:325px;overflow:scroll}.f-navBe-content2-paging{position:absolute;top:360px;right:50px}.f-navBe-content-recent{width:100%;min-width:400px;margin-top:44px}.f-navBe-content-local{width:100%;min-width:400px}.f-navBe-recommandLabel{height:18px;font-family:PingFangSC-Regular;font-size:13px;color:#3d4c6b;font-weight:400;cursor:pointer}.f-navBe-localHeader,.f-navBe-recentHeader{height:32px;background:#fafaff;width:100%;display:flex;align-items:center;padding-left:10px;cursor:pointer;border:1px solid rgba(233,236,243,1)}.f-navBe-item{height:62px;padding:15px 0 8px 18px;border:1px solid #e5e9ef}.f-navBe-item:hover{background-color:#edf5fc!important;cursor:pointer}.f-navBe-item-active{height:62px;padding:15px 0 8px 18px;border:1px solid #e5e9ef;background-color:#edf5fc!important}.f-navBe-itemIcon{width:16px;height:16px;padding:1px;margin-right:6px;background-color:#dcf4e8;display:inline-block}.f-navBe-name{width:80%;height:18px;font-family:PingFangSC-Regular;font-size:13px;color:#2d2f33;font-weight:400;overflow:hidden;display:inline-block;vertical-align:top}.f-navBe-source{width:100%;height:17px;font-family:PingFangSC-Regular;font-size:12px;color:#949ba7;font-weight:400}"]}]}],d.ctorParameters=function(){return[{type:t.FormBasicService},{type:n.Injector},{type:a.NotifyService}]},d.propDecorators={editorParams:[{type:n.Input}],closeModal:[{type:n.Output}],submitModal:[{type:n.Output}],modalFooter:[{type:n.ViewChild,args:["footer"]}]};var l=d;function d(e,t,a){this.formBasicService=e,this.injector=t,this.notifyService=a,this.closeModal=new n.EventEmitter,this.submitModal=new n.EventEmitter,this.groupIcon='<span class="k-icon k-i-search"></span>',this.chooseRecommand=!0,this.recentFoldIn=!1,this.localFoldIn=!1,this.modalConfig={title:"选择业务实体",width:900,height:500,minWidth:650,minHeight:300,resizable:!1,showButtons:!0,showMaxButton:!1},this.metadataPath="",this.isDeisgnerEnv=!0,this.foldLocal=!1,this.foldRecent=!1,this.pagerOnServer=!1,this.pageList=[20,50,100],this.pageIndex=1,this.pageSize=20,this.pagerHeight=56,this.showPageList=!1,this.showPageInfo=!0,this.showPageNumber=!0,this.pagerLabelSize=7,this.total=0,this.supportPaging=!0,this.paginationOptions={id:"Farris-beMetadata-Pagination_",itemsPerPage:this.pageSize,currentPage:this.pageIndex,pageList:this.pageList,totalItems:this.total,remote:this.pagerOnServer}}p.decorators=[{type:n.NgModule,args:[{declarations:[l],imports:[o.CommonModule,s.InputGroupModule,r.HttpClientModule,c.PaginationModule],entryComponents:[c.PaginationControlsComponent],exports:[l]}]}];o=p;function p(){}e.AppNavigationBeComponent=l,e.AppNavigationBeModule=o,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=farris-app-navigation-be.umd.min.js.map

@@ -195,2 +195,21 @@ /**

const source = this.editorParams.source || 'Bo';
this.modalConfig = this.editorParams.source == 'Bo' ? {
title: '选择业务实体',
width: 900,
height: 500,
minWidth: 650,
minHeight: 300,
resizable: false,
showButtons: true,
showMaxButton: false
} : {
title: '选择视图模型',
width: 900,
height: 500,
minWidth: 650,
minHeight: 300,
resizable: false,
showButtons: true,
showMaxButton: false
};
/** @type {?} */

@@ -644,2 +663,2 @@ const http = this.injector.get(HttpClient);

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLW5hdmlnYXRpb24tYmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZhcnJpcy9hcHAtbmF2aWdhdGlvbi1iZS8iLCJzb3VyY2VzIjpbImxpYi9hcHAtbmF2aWdhdGlvbi1iZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFRbEQsTUFBTSxPQUFPLHdCQUF3Qjs7Ozs7O0lBaUZuQyxZQUNVLGdCQUFrQyxFQUNuQyxRQUFrQixFQUNqQixhQUE0QjtRQUY1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQWU7O1FBaEY1QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQzs7UUFFckMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBTWhELGNBQVMsR0FBRyx5Q0FBeUMsQ0FBQzs7OztRQUV0RCxvQkFBZSxHQUFZLElBQUksQ0FBQzs7OztRQVVoQyxpQkFBWSxHQUFZLEtBQUssQ0FBQzs7OztRQUU5QixnQkFBVyxHQUFZLEtBQUssQ0FBQzs7OztRQUU3QixnQkFBVyxHQUFHO1lBQ1osS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsR0FBRztZQUNWLE1BQU0sRUFBRSxHQUFHO1lBQ1gsUUFBUSxF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OENBQTRCOzs7OztJQUU1QixpREFBYzs7Ozs7SUFHZCxpREFBc0I7Ozs7O0lBRXRCLDRDQUF5Qjs7Ozs7SUFFekIsNkNBQWM7Ozs7O0lBRWQsNENBQWM7Ozs7O0lBRWQsK0NBQWlCOzs7OztJQUVqQixnREFBcUI7Ozs7O0lBRXJCLGdEQUFvQjs7Ozs7SUFFcEIsa0RBQXNCOzs7OztJQUV0QixrREFBbUI7Ozs7O0lBRW5CLHlDQUFVOzs7OztJQUVWLGlEQUFxQjs7SUFFckIscURBT0U7Ozs7O0lBR0Esb0RBQTBDOztJQUMxQyw0Q0FBeUI7Ozs7O0lBQ3pCLGlEQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIEluamVjdG9yLCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQmFzaWNTZXJ2aWNlIH0gZnJvbSAnQGZhcnJpcy9kZXNpZ25lci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBOb3RpZnlTZXJ2aWNlIH0gZnJvbSAnQGZhcnJpcy91aS1ub3RpZnknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmYXJyaXMtYXBwTmF2aWdhdGlvbkJlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC1uYXZpZ2F0aW9uLWJlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwLW5hdmlnYXRpb24tYmUuY29tcG9uZW50LmNzcyddXG59KVxuXG5leHBvcnQgY2xhc3MgQXBwTmF2aWdhdGlvbkJlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqIOWFpeWPgiAqL1xuICBASW5wdXQoKSBlZGl0b3JQYXJhbXM6IGFueTtcbiAgLy8g5qih5oCB5qGG5YWz6ZetXG4gIEBPdXRwdXQoKSBjbG9zZU1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIC8vIOaooeaAgeahhuehruWumuWQjuWFs+mXre+8jOW5tuS8oOmAkuWPguaVsFxuICBAT3V0cHV0KCkgc3VibWl0TW9kYWwgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZCgnZm9vdGVyJykgbW9kYWxGb290ZXI6IFRlbXBsYXRlUmVmPGFueT47XG4gIC8qKiDljp/lp4vmlbDmja4gKi9cbiAgYmVEYXRhOiBhbnk7XG4gIC8qKiDmkJzntKLmoYbovpPlhaXlgLwgKi9cbiAgc2VhcmNoVmFsdWU6IHN0cmluZztcbiAgZ3JvdXBJY29uID0gJzxzcGFuIGNsYXNzPVwiay1pY29uIGstaS1zZWFyY2hcIj48L3NwYW4+JztcbiAgLyoqIOW9k+WJjemAieS4reeahOWxleekuuaVsOaNriAqL1xuICBjaG9vc2VSZWNvbW1hbmQ6IGJvb2xlYW4gPSB0cnVlO1xuICAvKiog55So5oi36YCJ5oup55qE5pWw5o2uICovXG4gIHNlbGVjdGVkQ29tbWFuZDogYW55O1xuICAvKiog5o6o6I2Q5pWw5o2uICovXG4gIGJlUmVjb21tYW5kRGF0YTogYW55O1xuICAvKiog5pyA6L+R5pWw5o2uICovXG4gIGJlUmVjZW50RGF0YTogYW55O1xuICAvKiog5YWo6YOo5pWw5o2uKi9cbiAgYmVBbGxEYXRhO1xuICAvKiog5pS25oqY5pyA6L+R55u45YWz55qE5pWw5o2uICovXG4gIHJlY2VudEZvbGRJbjogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiog5pS25oqY5pys5Zyw55u45YWz55qE5pWw5o2uICovXG4gIGxvY2FsRm9sZEluOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiDlvLnnqpforr7lrprlgLwgKi9cbiAgbW9kYWxDb25maWcgPSB7XG4gICAgdGl0bGU6ICfpgInmi6nkuJrliqHlrp7kvZMnLFxuICAgIHdpZHRoOiA5MDAsXG4gICAgaGVpZ2h0OiA1MDAsXG4gICAgbWluV2lkdGg6IDY1MCxcbiAgICBtaW5IZWlnaHQ6IDMwMCxcbiAgICByZXNpemFibGU6IGZhbHNlLFxuICAgIHNob3dCdXR0b25zOiB0cnVlLFxuICAgIHNob3dNYXhCdXR0b246IGZhbHNlXG4gIH07XG4gIC8vIOi3r+W+hO+8iOiuvuiuoeaXtueUqO+8iVxuICBtZXRhZGF0YVBhdGggPSAnJztcbiAgLy8g5b2T5YmN546v5aKD5piv5ZCm6K6+6K6h5pe2XG4gIGlzRGVpc2duZXJFbnYgPSB0cnVlO1xuICAvKiog5pS25oqY5pys5Zyw5pWw5o2uICovXG4gIGZvbGRMb2NhbDogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiog5pS25oqY5pyA6L+R5pWw5o2uICovXG4gIGZvbGRSZWNlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIOKAnOWFqOmDqOKAneaVsOaNrueahOWJr+acrCAqL1xuICBiZUFsbERhdGFDb3B5O1xuXG4gIC8qKiDlkK/nlKjmnI3liqHlmajnq6/liIbpobUgKi9cbiAgcGFnZXJPblNlcnZlciA9IGZhbHNlO1xuICAvKiog5q+P6aG16K6w5b2V5pWwICovXG4gIHBhZ2VMaXN0ID0gWzIwLCA1MCwgMTAwXTtcbiAgLyoqIOW9k+WJjemhteeggSAqL1xuICBwYWdlSW5kZXggPSAxO1xuICAvKiog5q+P6aG16K6w5b2V5pWwICovXG4gIHBhZ2VTaXplID0gMjA7XG4gIC8qKiDliIbpobXljLrpq5jluqYgKi9cbiAgcGFnZXJIZWlnaHQgPSA1NjtcbiAgLyoqIOaYvuekuuavj+mhteiusOW9leaVsCAqL1xuICBzaG93UGFnZUxpc3QgPSBmYWxzZTtcbiAgLyoqIOaYvuekuuWIhumhteS/oeaBryAqL1xuICBzaG93UGFnZUluZm8gPSB0cnVlO1xuICAvKiog5pi+56S66aG156CBICovXG4gIHNob3dQYWdlTnVtYmVyID0gdHJ1ZTtcbiAgLyoqIOaYvuekuumhteeggeacgOWkp+aVsOmHjyAqL1xuICBwYWdlckxhYmVsU2l6ZSA9IDc7XG4gIC8qKiDmgLvorrDlvZXmlbAgKi9cbiAgdG90YWwgPSAwO1xuICAvKiog5piv5ZCm5pSv5oyB5YiG6aG1ICovXG4gIHN1cHBvcnRQYWdpbmcgPSB0cnVlO1xuXG4gIHBhZ2luYXRpb25PcHRpb25zID0ge1xuICAgIGlkOiAnRmFycmlzLWJlTWV0YWRhdGEtUGFnaW5hdGlvbl8nLFxuICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5wYWdlU2l6ZSxcbiAgICBjdXJyZW50UGFnZTogdGhpcy5wYWdlSW5kZXgsXG4gICAgcGFnZUxpc3Q6IHRoaXMucGFnZUxpc3QsXG4gICAgdG90YWxJdGVtczogdGhpcy50b3RhbCxcbiAgICByZW1vdGU6IHRoaXMucGFnZXJPblNlcnZlclxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybUJhc2ljU2VydmljZTogRm9ybUJhc2ljU2VydmljZSxcbiAgICBwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgbm90aWZ5U2VydmljZTogTm90aWZ5U2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYmVEYXRhID0gW107XG4gICAgdGhpcy5nZXRBbGxEYXRhSW5mbygpO1xuICAgIHRoaXMuZ2V0UmVjZW50RGF0YUluZm8oKTtcbiAgICB0aGlzLmdldFJlY29tbWFuZERhdGFJbmZvKCk7XG4gICAgdGhpcy5jaG9vc2VSZWNvbW1hbmQgPSB0cnVlO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlKHBhZ2U6IHsgcGFnZUluZGV4OiBudW1iZXIgfSkge1xuICAgIGlmICh0aGlzLnBhZ2VJbmRleCAhPT0gcGFnZS5wYWdlSW5kZXgpIHtcbiAgICAgIHRoaXMucGFnZUluZGV4ID0gcGFnZS5wYWdlSW5kZXg7XG4gICAgICB0aGlzLnBhZ2luYXRpb25PcHRpb25zLmN1cnJlbnRQYWdlID0gcGFnZS5wYWdlSW5kZXg7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiDojrflj5blhajpg6jmlbDmja5cbiAgICovXG4gIGdldEFsbERhdGFJbmZvKCkge1xuICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmZvcm1CYXNpY1NlcnZpY2UuZm9ybU1ldGFCYXNpY0luZm8ucmVsYXRpdmVQYXRoO1xuICAgIGNvbnN0IHBhZ2VTaXplID0gMTAwMDtcbiAgICByZXR1cm4gaHR0cC5nZXQoJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvdW5pb25tZGxpc3Q/cGF0aD0nICsgcmVsYXRpdmVQYXRoICsgJyZwYWdlSW5kZXg9MSZwYWdlU2l6ZT0nICsgcGFnZVNpemUgKyAnJm1ldGFkYXRhVHlwZUxpc3Q9LmJlJywge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nXG4gICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5yZWludm9rZUludGVyZmFjZShkYXRhKTtcbiAgICAgIHRoaXMuYmVBbGxEYXRhID0gY2xvbmVEZWVwKHRoaXMuZ2V0Rm9ybURhdGEoZGF0YSwgJ2FsbCcpKTtcbiAgICAgIHRoaXMuYmVBbGxEYXRhQ29weSA9IGNsb25lRGVlcCh0aGlzLmJlQWxsRGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiog6I635Y+W5pyA6L+R5pWw5o2uICovXG4gIGdldFJlY2VudERhdGFJbmZvKCkge1xuICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmZvcm1CYXNpY1NlcnZpY2UuZm9ybU1ldGFCYXNpY0luZm8ucmVsYXRpdmVQYXRoIHx8ICcnO1xuICAgIGNvbnN0IGFwcElkID0gcmVsYXRpdmVQYXRoWzBdID09ICcvJyA/IHJlbGF0aXZlUGF0aC5zcGxpdCgnLycpWzFdIDogcmVsYXRpdmVQYXRoLnNwbGl0KCcvJylbMF07XG4gICAgcmV0dXJuIGh0dHAuZ2V0KCcvYXBpL2Rldi9tYWluL3YxLjAvbWRzZXJ2aWNlL2dldG1kcmVjZW50dXNlP2FwcElkPScgKyBhcHBJZCArICcmbWV0YWRhdGFUeXBlTGlzdD0uYmUnLCB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLmJlUmVjZW50RGF0YSA9IGNsb25lRGVlcCh0aGlzLmdldEZvcm1EYXRhKGRhdGEsICdyZWNlbnQnKSk7XG4gICAgICBpZiAodGhpcy5iZVJlY2VudERhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuYmVSZWNlbnREYXRhLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuc2hvd1JlY29tbWFuZERhdGEoKTtcbiAgICAgICAgICB0aGlzLmdldFVuaXF1ZURhdGEodGhpcy5iZURhdGEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiog6I635Y+W5o6o6I2Q5pWw5o2uICovXG4gIGdldFJlY29tbWFuZERhdGFJbmZvKCkge1xuICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuZWRpdG9yUGFyYW1zLnNvdXJjZSB8fCAnQm8nO1xuICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmZvcm1CYXNpY1NlcnZpY2UuZm9ybU1ldGFCYXNpY0luZm8ucmVsYXRpdmVQYXRoO1xuICAgIC8vIOaOqOiNkFxuICAgIHJldHVybiBodHRwLmdldCgnL2FwaS9kZXYvbWFpbi92MS4wL21kc2VydmljZS9tZXRhZGF0YUxpc3RJbicgKyBzb3VyY2UgKyAnP3BhdGg9JyArIHJlbGF0aXZlUGF0aCArICcmbWV0YWRhdGFUeXBlTGlzdD0uYmUnLCB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLmJlUmVjb21tYW5kRGF0YSA9IGNsb25lRGVlcCh0aGlzLmdldEZvcm1EYXRhKGRhdGEsICdsb2NhbCcpKTtcbiAgICAgIGlmICh0aGlzLmJlUmVjb21tYW5kRGF0YSkge1xuICAgICAgICBpZiAodGhpcy5iZVJlY29tbWFuZERhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5zaG93UmVjb21tYW5kRGF0YSgpO1xuICAgICAgICAgIHRoaXMuZ2V0VW5pcXVlRGF0YSh0aGlzLmJlRGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICAvKiog6I635Y+W5pWw5o2uICovXG4gIGdldEZvcm1EYXRhKGRhdGEsIGNhdGVnb3J5KSB7XG4gICAgbGV0IG1ldGFkYXRhID0gW107XG4gICAgY29uc3QgYmVNZXRhZGF0YSA9IGRhdGFbJ21ldGFkYXRhSW5kZXhJdGVtcyddID8gZGF0YVsnbWV0YWRhdGFJbmRleEl0ZW1zJ10gOiBkYXRhO1xuICAgIGlmIChiZU1ldGFkYXRhKSB7XG4gICAgICBiZU1ldGFkYXRhLmZvckVhY2goZnVuY3Rpb24gKGJlTWV0YWRhdGFJdGVtLCBpbmRleCkge1xuICAgICAgICBsZXQgYmVNZXRhZGF0YUl0ZW1UZW1wID0ge1xuICAgICAgICAgIGlkOiBpbmRleCxcbiAgICAgICAgICBuYW1lOiBiZU1ldGFkYXRhSXRlbS5uYW1lLFxuICAgICAgICAgIGxhYmVsOiBiZU1ldGFkYXRhSXRlbS5jb2RlLFxuICAgICAgICAgIHNvdXJjZTogYmVNZXRhZGF0YUl0ZW0ubmFtZVNwYWNlLFxuICAgICAgICAgIGhpZGU6IGZhbHNlLFxuICAgICAgICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgZGF0YTogYmVNZXRhZGF0YUl0ZW0sXG4gICAgICAgICAgY2F0ZWdvcnk6IGNhdGVnb3J5XG4gICAgICAgIH1cbiAgICAgICAgbWV0YWRhdGEucHVzaChiZU1ldGFkYXRhSXRlbVRlbXApO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBtZXRhZGF0YTtcbiAgfVxuXG4gIC8qKiDlsZXnpLrigJzmjqjojZDigJ3kuIDmoI8gKi9cbiAgc2hvd1JlY29tbWFuZERhdGEoKSB7XG4gICAgdGhpcy5jaG9vc2VSZWNvbW1hbmQgPSB0cnVlO1xuICAgIHRoaXMuYmVEYXRhID0gW107XG4gICAgaWYgKHRoaXMuYmVSZWNvbW1hbmREYXRhKSB7XG4gICAgICBpZiAodGhpcy5iZVJlY29tbWFuZERhdGEubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuYmVSZWNvbW1hbmREYXRhLmZvckVhY2goYmVSZWNvbW1hbmREYXRhSXRlbSA9PiB7XG4gICAgICAgICAgdGhpcy5iZURhdGEucHVzaChjbG9uZURlZXAoYmVSZWNvbW1hbmREYXRhSXRlbSkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuYmVSZWNlbnREYXRhKSB7XG4gICAgICBpZiAodGhpcy5iZVJlY2VudERhdGEubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuYmVSZWNlbnREYXRhLmZvckVhY2goYmVSZWNlbnREYXRhSXRlbSA9PiB7XG4gICAgICAgICAgdGhpcy5iZURhdGEucHVzaChjbG9uZURlZXAoYmVSZWNlbnREYXRhSXRlbSkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5nZXRVbmlxdWVEYXRhKHRoaXMuYmVEYXRhKTtcbiAgICB0aGlzLmJlRGF0YSA9IHRoaXMub25TZWFyY2hWYWx1ZUNoYW5nZWQodGhpcy5zZWFyY2hWYWx1ZSk7XG4gIH1cblxuICAvKiog5bGV56S64oCc5YWo6YOo4oCd5LiA5qCPICovXG4gIHNob3dBbGxEYXRhKCkge1xuICAgIHRoaXMuYmVEYXRhID0gY2xvbmVEZWVwKHRoaXMuYmVBbGxEYXRhKTtcbiAgICB0aGlzLmNob29zZVJlY29tbWFuZCA9IGZhbHNlO1xuICAgIHRoaXMuYmVEYXRhID0gdGhpcy5vblNlYXJjaFZhbHVlQ2hhbmdlZCh0aGlzLnNlYXJjaFZhbHVlKTtcbiAgfVxuXG4gIC8qKiDmkJzntKLpobkgKi9cbiAgb25TZWFyY2hWYWx1ZUNoYW5nZWQoc2VhcmNoVmFsdWUpIHtcbiAgICBjb25zdCBzZWFyY2hlZERhdGEgPSB0aGlzLmNob29zZVJlY29tbWFuZCA/IHRoaXMuYmVEYXRhIDogdGhpcy5iZUFsbERhdGFDb3B5O1xuICAgIGlmIChzZWFyY2hlZERhdGEpIHtcbiAgICAgIHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUgPT0gdW5kZWZpbmVkID8gJycgOiBzZWFyY2hWYWx1ZTtcbiAgICAgIHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWVbJ29yaWdpbmFsRXZlbnQnXSAhPSB1bmRlZmluZWQgPyBzZWFyY2hWYWx1ZS52YWx1ZSB8fCAnJyA6IHNlYXJjaFZhbHVlO1xuICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlO1xuICAgICAgLy8g5pCc57Si5qGG5pyJ5YC85pe25YWz6Zet5YiG6aG1XG4gICAgICB0aGlzLnN1cHBvcnRQYWdpbmcgPSB0aGlzLnNlYXJjaFZhbHVlID09ICcnID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgbGV0IHZhbHVlID0gc2VhcmNoVmFsdWUucmVwbGFjZUFsbCgnICcsICcnKS5yZXBsYWNlQWxsKCc+JywgJycpO1xuICAgICAgdmFsdWUgPSB2YWx1ZSA9PSAnJyA/ICcgJyA6IHZhbHVlO1xuICAgICAgc2VhcmNoZWREYXRhLmZvckVhY2goYmVEYXRhSXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGAke2JlRGF0YUl0ZW0ubmFtZX0gJHtiZURhdGFJdGVtLmxhYmVsfWA7XG4gICAgICAgIGJlRGF0YUl0ZW0uaGlkZSA9IHNlbGVjdGVkSXRlbS5pbmNsdWRlcyh2YWx1ZSkgPT0gZmFsc2UgPyB0cnVlIDogZmFsc2U7XG4gICAgICB9KVxuICAgIH1cbiAgICB0aGlzLmJlRGF0YSA9IGNsb25lRGVlcChzZWFyY2hlZERhdGEpO1xuICAgIHJldHVybiB0aGlzLmJlRGF0YTtcbiAgfVxuXG4gIC8qKiDnlKjmiLfpgInmi6nlgLwgKi9cbiAgZ2V0QmVEYXRhSXRlbShzZWxlY3RlZEJlRGF0YUl0ZW0pIHtcbiAgICB0aGlzLmJlRGF0YS5mb3JFYWNoKGJlRGF0YUl0ZW0gPT4ge1xuICAgICAgaWYgKHNlbGVjdGVkQmVEYXRhSXRlbS5pZCA9PSBiZURhdGFJdGVtLmlkKSB7XG4gICAgICAgIGJlRGF0YUl0ZW0uYWN0aXZlID0gIWJlRGF0YUl0ZW0uYWN0aXZlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ29tbWFuZCA9IGNsb25lRGVlcChzZWxlY3RlZEJlRGF0YUl0ZW0pO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGJlRGF0YUl0ZW0uYWN0aXZlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSlcblxuICB9XG5cbiAgLyoqIOeUqOaIt+eCueWHu+ehruWumuaXtuiwg+eUqHBvc3RBcGnkvKDlh7rlj4LmlbAgKi9cbiAgLyoqIOeUqOaItyAqL1xuICBjbGlja0NvbmZpcm0oKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDb21tYW5kICYmIHRoaXMuc2VsZWN0ZWRDb21tYW5kWydhY3RpdmUnXSkge1xuICAgICAgY29uc3QgaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5mb3JtQmFzaWNTZXJ2aWNlLmZvcm1NZXRhQmFzaWNJbmZvLnJlbGF0aXZlUGF0aDtcbiAgICAgIGNvbnN0IHBhdGggPSAnL2FwaS9kZXYvbWFpbi92MS4wL21kc2VydmljZS9waWNrTWV0YWRhdGE/Y3VycmVudFBhdGg9JyArIHJlbGF0aXZlUGF0aDtcbiAgICAgIGNvbnN0IGJvZHkgPSB0aGlzLnNlbGVjdGVkQ29tbWFuZC5kYXRhO1xuICAgICAgY29uc3QgaGVhZGVyT3B0aW9uID0ge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXG4gICAgICB9XG4gICAgICByZXR1cm4gaHR0cC5wb3N0KHBhdGgsIGJvZHksIGhlYWRlck9wdGlvbikuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLnN1Ym1pdE1vZGFsLmVtaXQoZGF0YSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLm5vdGlmeVNlcnZpY2VbJ2luZm8nXSgn5pyq6YCJ5oup5Lia5Yqh5a6e5L2TJyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKiog5riF56m65pCc57Si5YaF5a65ICovXG4gIG9uQ2xlYXIoKSB7XG4gICAgdGhpcy5iZURhdGEgPSB0aGlzLm9uU2VhcmNoVmFsdWVDaGFuZ2VkKCcnKTtcbiAgfVxuXG5cblxuICBjbGlja0NhbmNlbCgpIHtcbiAgICB0aGlzLmNsb3NlTW9kYWwuZW1pdCgpO1xuICB9XG5cbiAgZm9sZEluUmVjZW50KCkge1xuICAgIHRoaXMuZm9sZFJlY2VudCA9ICF0aGlzLmZvbGRSZWNlbnQ7XG4gICAgaWYgKHRoaXMuYmVEYXRhICYmICF0aGlzLnNlYXJjaFZhbHVlKSB7XG4gICAgICB0aGlzLmJlRGF0YS5mb3JFYWNoKGJlRGF0YUl0ZW0gPT4ge1xuICAgICAgICBpZiAoYmVEYXRhSXRlbS5jYXRlZ29yeSA9PSAncmVjZW50Jykge1xuICAgICAgICAgIGJlRGF0YUl0ZW0uaGlkZSA9ICFiZURhdGFJdGVtLmhpZGU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGZvbGRJbkxvY2FsKCkge1xuICAgIHRoaXMuZm9sZExvY2FsID0gIXRoaXMuZm9sZExvY2FsO1xuICAgIGlmICh0aGlzLmJlRGF0YSAmJiAhKHRoaXMuc2VhcmNoVmFsdWUpKSB7XG4gICAgICB0aGlzLmJlRGF0YS5mb3JFYWNoKGJlRGF0YUl0ZW0gPT4ge1xuICAgICAgICBpZiAoYmVEYXRhSXRlbS5jYXRlZ29yeSA9PSAnbG9jYWwnKSB7XG4gICAgICAgICAgYmVEYXRhSXRlbS5oaWRlID0gIWJlRGF0YUl0ZW0uaGlkZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIOWOu+mHjSovXG4gIGdldFVuaXF1ZURhdGEoZGF0YSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBsZXQgdmFsdWUgPSBjbG9uZURlZXAoZGF0YSk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IHZhbHVlLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgaWYgKHZhbHVlW2ldWydpZCddID09IHZhbHVlW2pdWydpZCddKSB7XG4gICAgICAgICAgICB2YWx1ZS5zcGxpY2UoaiwgMSk7XG4gICAgICAgICAgICBqLS07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBkYXRhID0gY2xvbmVEZWVwKHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbiAgLyoqIOaOpeWPo+aVsOaNrui2hei/hzEwMDDmnaHml7bvvIzph43mlrDosIPlj5bmiYDmnInmlbDmja4gKi9cbiAgcmVpbnZva2VJbnRlcmZhY2UoZGF0YSkge1xuICAgIGlmIChkYXRhWydwYWdlJ10pIHtcbiAgICAgIGNvbnN0IHRvdGFsTnVtID0gZGF0YVsncGFnZSddWyd0b3RhbCddIHx8IDA7XG4gICAgICBpZiAodG90YWxOdW0gPiAxMDAwKSB7XG4gICAgICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5lZGl0b3JQYXJhbXMucmVsYXRpdmVQYXRoO1xuICAgICAgICByZXR1cm4gaHR0cC5nZXQoJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvdW5pb25tZGxpc3Q/cGF0aD0nICsgcmVsYXRpdmVQYXRoICsgJyZwYWdlSW5kZXg9MSZwYWdlU2l6ZT0nICsgdG90YWxOdW0gKyAnJm1ldGFkYXRhVHlwZUxpc3Q9LmJlJywge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSksXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICAgICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMuYmVBbGxEYXRhID0gY2xvbmVEZWVwKHRoaXMuZ2V0Rm9ybURhdGEoZGF0YSwgJ2FsbCcpKTtcbiAgICAgICAgICB0aGlzLmJlQWxsRGF0YUNvcHkgPSBjbG9uZURlZXAodGhpcy5iZUFsbERhdGEpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLW5hdmlnYXRpb24tYmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZhcnJpcy9hcHAtbmF2aWdhdGlvbi1iZS8iLCJzb3VyY2VzIjpbImxpYi9hcHAtbmF2aWdhdGlvbi1iZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFRbEQsTUFBTSxPQUFPLHdCQUF3Qjs7Ozs7O0lBaUZuQyxZQUNVLGdCQUFrQyxFQUNuQyxRQUFrQixFQUNqQixhQUE0QjtRQUY1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQWU7O1FBaEY1QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQzs7UUFFckMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBTWhELGNBQVMsR0FBRyx5Q0FBeUMsQ0FBQzs7OztRQUV0RCxvQkFBZSxHQUFZLElBQUksQ0FBQzs7OztRQVVoQyxpQkFBWSxHQUFZLEtBQUssQ0FBQzs7OztRQUU5QixnQkFBVyxHQUFZLEtBQUssQ0FBQzs7OztRQUU3QixnQkFBVyxHQUFHO1lBQ1osS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsR0FBRztZQUNWLE1BQU0sRUFBRSxHQUFHO1lBQ1gsUUFBUSxFQUFFLEdBQUc7WUFDYixTQUFTLEVBQUUsR0FBRztZQUNkLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxLQUFLO1NBQ3JCLENBQUM7O1FBRUYsaUJBQVksR0FBRyxFQUFFLENBQUM7O1FBRWxCLGtCQUFhLEdBQUcsSUFBSSxDQUFDOzs7O1FBRXJCLGNBQVMsR0FBWSxLQUFLLENBQUM7Ozs7UUFFM0IsZUFBVSxHQUFZLEtBQUssQ0FBQzs7OztRQUs1QixrQkFBYSxHQUFHLEtBQUssQ0FBQzs7OztRQUV0QixhQUFRLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDOzs7O1FBRXpCLGNBQVMsR0FBRyxDQUFDLENBQUM7Ozs7UUFFZCxhQUFRLEdBQUcsRUFBRSxDQUFDOzs7O1FBRWQsZ0JBQVcsR0FBRyxFQUFFLENBQUM7Ozs7UUFFakIsaUJBQVksR0FBRyxLQUFLLENBQUM7Ozs7UUFFckIsaUJBQVksR0FBRyxJQUFJLENBQUM7Ozs7UUFFcEIsbUJBQWMsR0FBRyxJQUFJLENBQUM7Ozs7UUFFdEIsbUJBQWMsR0FBRyxDQUFDLENBQUM7Ozs7UUFFbkIsVUFBSyxHQUFHLENBQUMsQ0FBQzs7OztRQUVWLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBRXJCLHNCQUFpQixHQUFHO1lBQ2xCLEVBQUUsRUFBRSwrQkFBK0I7WUFDbkMsWUFBWSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQzNCLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUztZQUMzQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ3RCLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYTtTQUMzQixDQUFDO0lBTUUsQ0FBQzs7OztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQzs7Ozs7SUFFRCxZQUFZLENBQUMsSUFBMkI7UUFDdEMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUNyRDtJQUNILENBQUM7Ozs7O0lBSUQsY0FBYzs7Y0FDTixJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDOztjQUNwQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLFlBQVk7O2NBQ25FLFFBQVEsR0FBRyxJQUFJO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsR0FBRyxZQUFZLEdBQUcsd0JBQXdCLEdBQUcsUUFBUSxHQUFHLHVCQUF1QixFQUFFO1lBQy9JLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1lBQ2hFLFlBQVksRUFBRSxNQUFNO1NBQ3JCLENBQUMsQ0FBQyxTQUFTOzs7O1FBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7SUFHRCxpQkFBaUI7O2NBQ1QsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQzs7Y0FDcEMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLElBQUksRUFBRTs7Y0FDekUsS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxvREFBb0QsR0FBRyxLQUFLLEdBQUcsdUJBQXVCLEVBQUU7WUFDdEcsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUM7WUFDaEUsWUFBWSxFQUFFLE1BQU07U0FDckIsQ0FBQyxDQUFDLFNBQVM7Ozs7UUFBQyxJQUFJLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDckIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtvQkFDNUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNqQzthQUNGO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7OztJQUdELG9CQUFvQjs7Y0FDWixNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksSUFBSTtRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQSxDQUFDLENBQUM7WUFDbkQsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsR0FBRztZQUNWLE1BQU0sRUFBRSxHQUFHO1lBQ1gsUUFBUSxFQUFFLEdBQUc7WUFDYixTQUFTLEVBQUUsR0FBRztZQUNkLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxLQUFLO1NBQ3JCLENBQUMsQ0FBQyxDQUFBO1lBQ0QsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsR0FBRztZQUNWLE1BQU0sRUFBRSxHQUFHO1lBQ1gsUUFBUSxFQUFFLEdBQUc7WUFDYixTQUFTLEVBQUUsR0FBRztZQUNkLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxLQUFLO1NBQ3JCLENBQUE7O2NBQ0ssSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQzs7Y0FDcEMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZO1FBQ3pFLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsNkNBQTZDLEdBQUcsTUFBTSxHQUFHLFFBQVEsR0FBRyxZQUFZLEdBQUcsdUJBQXVCLEVBQUU7WUFDMUgsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUM7WUFDaEUsWUFBWSxFQUFFLE1BQU07U0FDckIsQ0FBQyxDQUFDLFNBQVM7Ozs7UUFBQyxJQUFJLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDeEIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtvQkFDL0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNqQzthQUNGO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7O0lBRUQsV0FBVyxDQUFDLElBQUksRUFBRSxRQUFROztZQUNwQixRQUFRLEdBQUcsRUFBRTs7Y0FDWCxVQUFVLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ2pGLElBQUksVUFBVSxFQUFFO1lBQ2QsVUFBVSxDQUFDLE9BQU87Ozs7O1lBQUMsVUFBVSxjQUFjLEVBQUUsS0FBSzs7b0JBQzVDLGtCQUFrQixHQUFHO29CQUN2QixFQUFFLEVBQUUsS0FBSztvQkFDVCxJQUFJLEVBQUUsY0FBYyxDQUFDLElBQUk7b0JBQ3pCLEtBQUssRUFBRSxjQUFjLENBQUMsSUFBSTtvQkFDMUIsTUFBTSxFQUFFLGNBQWMsQ0FBQyxTQUFTO29CQUNoQyxJQUFJLEVBQUUsS0FBSztvQkFDWCxNQUFNLEVBQUUsS0FBSztvQkFDYixJQUFJLEVBQUUsY0FBYztvQkFDcEIsUUFBUSxFQUFFLFFBQVE7aUJBQ25CO2dCQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNwQyxDQUFDLEVBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7Ozs7SUFHRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPOzs7O2dCQUFDLG1CQUFtQixDQUFDLEVBQUU7b0JBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ25ELENBQUMsRUFBQyxDQUFDO2FBQ0o7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU87Ozs7Z0JBQUMsZ0JBQWdCLENBQUMsRUFBRTtvQkFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztnQkFDaEQsQ0FBQyxFQUFDLENBQUM7YUFDSjtTQUNGO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVELENBQUM7Ozs7O0lBR0QsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7Ozs7O0lBR0Qsb0JBQW9CLENBQUMsV0FBVzs7Y0FDeEIsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhO1FBQzVFLElBQUksWUFBWSxFQUFFO1lBQ2hCLFdBQVcsR0FBRyxXQUFXLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUMxRCxXQUFXLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUNoRyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUMvQixhQUFhO1lBQ2IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7O2dCQUN2RCxLQUFLLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDL0QsS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ2xDLFlBQVksQ0FBQyxPQUFPOzs7O1lBQUMsVUFBVSxDQUFDLEVBQUU7O3NCQUMxQixZQUFZLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUU7Z0JBQzdELFVBQVUsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3pFLENBQUMsRUFBQyxDQUFBO1NBQ0g7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQzs7Ozs7O0lBR0QsYUFBYSxDQUFDLGtCQUFrQjtRQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87Ozs7UUFBQyxVQUFVLENBQUMsRUFBRTtZQUMvQixJQUFJLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxVQUFVLENBQUMsRUFBRSxFQUFFO2dCQUMxQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQzthQUN0RDtpQkFDSTtnQkFDSCxVQUFVLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQzthQUMzQjtRQUNILENBQUMsRUFBQyxDQUFBO0lBRUosQ0FBQzs7Ozs7O0lBSUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFOztrQkFDcEQsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQzs7a0JBQ3BDLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsWUFBWTs7a0JBQ25FLElBQUksR0FBRyx3REFBd0QsR0FBRyxZQUFZOztrQkFDOUUsSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSTs7a0JBQ2hDLFlBQVksR0FBRztnQkFDbkIsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUM7YUFDakU7WUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxTQUFTOzs7O1lBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzFELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLENBQUMsRUFBQyxDQUFDO1NBQ0o7YUFDSTtZQUNILElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEMsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7Ozs7O0lBR0QsT0FBTztRQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7Ozs7SUFJRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs7O0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPOzs7O1lBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQy9CLElBQUksVUFBVSxDQUFDLFFBQVEsSUFBSSxRQUFRLEVBQUU7b0JBQ25DLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2lCQUNwQztZQUNILENBQUMsRUFBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzs7O0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTzs7OztZQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLFVBQVUsQ0FBQyxRQUFRLElBQUksT0FBTyxFQUFFO29CQUNsQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztpQkFDcEM7WUFDSCxDQUFDLEVBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7Ozs7O0lBR0QsYUFBYSxDQUFDLElBQUk7UUFDaEIsSUFBSSxJQUFJLEVBQUU7O2dCQUNKLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQzNCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNyQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ3pDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDcEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQ25CLENBQUMsRUFBRSxDQUFDO3FCQUNMO2lCQUNGO2FBQ0Y7WUFDRCxJQUFJLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7Ozs7SUFFRCxpQkFBaUIsQ0FBQyxJQUFJO1FBQ3BCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFOztrQkFDVixRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDM0MsSUFBSSxRQUFRLEdBQUcsSUFBSSxFQUFFOztzQkFDYixJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDOztzQkFDcEMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWTtnQkFDbkQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGdEQUFnRCxHQUFHLFlBQVksR0FBRyx3QkFBd0IsR0FBRyxRQUFRLEdBQUcsdUJBQXVCLEVBQUU7b0JBQy9JLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO29CQUNoRSxZQUFZLEVBQUUsTUFBTTtpQkFDckIsQ0FBQyxDQUFDLFNBQVM7Ozs7Z0JBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQzFELElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDakQsQ0FBQyxFQUFDLENBQUM7YUFDSjtTQUNGO0lBQ0gsQ0FBQzs7O1lBaFdGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxndE5BQWlEOzthQUVsRDs7OztZQVRRLGdCQUFnQjtZQURnQyxRQUFRO1lBSXhELGFBQWE7OzsyQkFVbkIsS0FBSzt5QkFFTCxNQUFNOzBCQUVOLE1BQU07MEJBQ04sU0FBUyxTQUFDLFFBQVE7Ozs7Ozs7SUFMbkIsZ0RBQTJCOztJQUUzQiw4Q0FBK0M7O0lBRS9DLCtDQUFnRDs7SUFDaEQsK0NBQW1EOzs7OztJQUVuRCwwQ0FBWTs7Ozs7SUFFWiwrQ0FBb0I7O0lBQ3BCLDZDQUFzRDs7Ozs7SUFFdEQsbURBQWdDOzs7OztJQUVoQyxtREFBcUI7Ozs7O0lBRXJCLG1EQUFxQjs7Ozs7SUFFckIsZ0RBQWtCOzs7OztJQUVsQiw2Q0FBVTs7Ozs7SUFFVixnREFBOEI7Ozs7O0lBRTlCLCtDQUE2Qjs7Ozs7SUFFN0IsK0NBU0U7O0lBRUYsZ0RBQWtCOztJQUVsQixpREFBcUI7Ozs7O0lBRXJCLDZDQUEyQjs7Ozs7SUFFM0IsOENBQTRCOzs7OztJQUU1QixpREFBYzs7Ozs7SUFHZCxpREFBc0I7Ozs7O0lBRXRCLDRDQUF5Qjs7Ozs7SUFFekIsNkNBQWM7Ozs7O0lBRWQsNENBQWM7Ozs7O0lBRWQsK0NBQWlCOzs7OztJQUVqQixnREFBcUI7Ozs7O0lBRXJCLGdEQUFvQjs7Ozs7SUFFcEIsa0RBQXNCOzs7OztJQUV0QixrREFBbUI7Ozs7O0lBRW5CLHlDQUFVOzs7OztJQUVWLGlEQUFxQjs7SUFFckIscURBT0U7Ozs7O0lBR0Esb0RBQTBDOztJQUMxQyw0Q0FBeUI7Ozs7O0lBQ3pCLGlEQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIEluamVjdG9yLCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQmFzaWNTZXJ2aWNlIH0gZnJvbSAnQGZhcnJpcy9kZXNpZ25lci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBOb3RpZnlTZXJ2aWNlIH0gZnJvbSAnQGZhcnJpcy91aS1ub3RpZnknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmYXJyaXMtYXBwTmF2aWdhdGlvbkJlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC1uYXZpZ2F0aW9uLWJlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwLW5hdmlnYXRpb24tYmUuY29tcG9uZW50LmNzcyddXG59KVxuXG5leHBvcnQgY2xhc3MgQXBwTmF2aWdhdGlvbkJlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqIOWFpeWPgiAqL1xuICBASW5wdXQoKSBlZGl0b3JQYXJhbXM6IGFueTtcbiAgLy8g5qih5oCB5qGG5YWz6ZetXG4gIEBPdXRwdXQoKSBjbG9zZU1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIC8vIOaooeaAgeahhuehruWumuWQjuWFs+mXre+8jOW5tuS8oOmAkuWPguaVsFxuICBAT3V0cHV0KCkgc3VibWl0TW9kYWwgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZCgnZm9vdGVyJykgbW9kYWxGb290ZXI6IFRlbXBsYXRlUmVmPGFueT47XG4gIC8qKiDljp/lp4vmlbDmja4gKi9cbiAgYmVEYXRhOiBhbnk7XG4gIC8qKiDmkJzntKLmoYbovpPlhaXlgLwgKi9cbiAgc2VhcmNoVmFsdWU6IHN0cmluZztcbiAgZ3JvdXBJY29uID0gJzxzcGFuIGNsYXNzPVwiay1pY29uIGstaS1zZWFyY2hcIj48L3NwYW4+JztcbiAgLyoqIOW9k+WJjemAieS4reeahOWxleekuuaVsOaNriAqL1xuICBjaG9vc2VSZWNvbW1hbmQ6IGJvb2xlYW4gPSB0cnVlO1xuICAvKiog55So5oi36YCJ5oup55qE5pWw5o2uICovXG4gIHNlbGVjdGVkQ29tbWFuZDogYW55O1xuICAvKiog5o6o6I2Q5pWw5o2uICovXG4gIGJlUmVjb21tYW5kRGF0YTogYW55O1xuICAvKiog5pyA6L+R5pWw5o2uICovXG4gIGJlUmVjZW50RGF0YTogYW55O1xuICAvKiog5YWo6YOo5pWw5o2uKi9cbiAgYmVBbGxEYXRhO1xuICAvKiog5pS25oqY5pyA6L+R55u45YWz55qE5pWw5o2uICovXG4gIHJlY2VudEZvbGRJbjogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiog5pS25oqY5pys5Zyw55u45YWz55qE5pWw5o2uICovXG4gIGxvY2FsRm9sZEluOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiDlvLnnqpforr7lrprlgLwgKi9cbiAgbW9kYWxDb25maWcgPSB7XG4gICAgdGl0bGU6ICfpgInmi6nkuJrliqHlrp7kvZMnLFxuICAgIHdpZHRoOiA5MDAsXG4gICAgaGVpZ2h0OiA1MDAsXG4gICAgbWluV2lkdGg6IDY1MCxcbiAgICBtaW5IZWlnaHQ6IDMwMCxcbiAgICByZXNpemFibGU6IGZhbHNlLFxuICAgIHNob3dCdXR0b25zOiB0cnVlLFxuICAgIHNob3dNYXhCdXR0b246IGZhbHNlXG4gIH07XG4gIC8vIOi3r+W+hO+8iOiuvuiuoeaXtueUqO+8iVxuICBtZXRhZGF0YVBhdGggPSAnJztcbiAgLy8g5b2T5YmN546v5aKD5piv5ZCm6K6+6K6h5pe2XG4gIGlzRGVpc2duZXJFbnYgPSB0cnVlO1xuICAvKiog5pS25oqY5pys5Zyw5pWw5o2uICovXG4gIGZvbGRMb2NhbDogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiog5pS25oqY5pyA6L+R5pWw5o2uICovXG4gIGZvbGRSZWNlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIOKAnOWFqOmDqOKAneaVsOaNrueahOWJr+acrCAqL1xuICBiZUFsbERhdGFDb3B5O1xuXG4gIC8qKiDlkK/nlKjmnI3liqHlmajnq6/liIbpobUgKi9cbiAgcGFnZXJPblNlcnZlciA9IGZhbHNlO1xuICAvKiog5q+P6aG16K6w5b2V5pWwICovXG4gIHBhZ2VMaXN0ID0gWzIwLCA1MCwgMTAwXTtcbiAgLyoqIOW9k+WJjemhteeggSAqL1xuICBwYWdlSW5kZXggPSAxO1xuICAvKiog5q+P6aG16K6w5b2V5pWwICovXG4gIHBhZ2VTaXplID0gMjA7XG4gIC8qKiDliIbpobXljLrpq5jluqYgKi9cbiAgcGFnZXJIZWlnaHQgPSA1NjtcbiAgLyoqIOaYvuekuuavj+mhteiusOW9leaVsCAqL1xuICBzaG93UGFnZUxpc3QgPSBmYWxzZTtcbiAgLyoqIOaYvuekuuWIhumhteS/oeaBryAqL1xuICBzaG93UGFnZUluZm8gPSB0cnVlO1xuICAvKiog5pi+56S66aG156CBICovXG4gIHNob3dQYWdlTnVtYmVyID0gdHJ1ZTtcbiAgLyoqIOaYvuekuumhteeggeacgOWkp+aVsOmHjyAqL1xuICBwYWdlckxhYmVsU2l6ZSA9IDc7XG4gIC8qKiDmgLvorrDlvZXmlbAgKi9cbiAgdG90YWwgPSAwO1xuICAvKiog5piv5ZCm5pSv5oyB5YiG6aG1ICovXG4gIHN1cHBvcnRQYWdpbmcgPSB0cnVlO1xuXG4gIHBhZ2luYXRpb25PcHRpb25zID0ge1xuICAgIGlkOiAnRmFycmlzLWJlTWV0YWRhdGEtUGFnaW5hdGlvbl8nLFxuICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5wYWdlU2l6ZSxcbiAgICBjdXJyZW50UGFnZTogdGhpcy5wYWdlSW5kZXgsXG4gICAgcGFnZUxpc3Q6IHRoaXMucGFnZUxpc3QsXG4gICAgdG90YWxJdGVtczogdGhpcy50b3RhbCxcbiAgICByZW1vdGU6IHRoaXMucGFnZXJPblNlcnZlclxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybUJhc2ljU2VydmljZTogRm9ybUJhc2ljU2VydmljZSxcbiAgICBwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgbm90aWZ5U2VydmljZTogTm90aWZ5U2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYmVEYXRhID0gW107XG4gICAgdGhpcy5nZXRBbGxEYXRhSW5mbygpO1xuICAgIHRoaXMuZ2V0UmVjZW50RGF0YUluZm8oKTtcbiAgICB0aGlzLmdldFJlY29tbWFuZERhdGFJbmZvKCk7XG4gICAgdGhpcy5jaG9vc2VSZWNvbW1hbmQgPSB0cnVlO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlKHBhZ2U6IHsgcGFnZUluZGV4OiBudW1iZXIgfSkge1xuICAgIGlmICh0aGlzLnBhZ2VJbmRleCAhPT0gcGFnZS5wYWdlSW5kZXgpIHtcbiAgICAgIHRoaXMucGFnZUluZGV4ID0gcGFnZS5wYWdlSW5kZXg7XG4gICAgICB0aGlzLnBhZ2luYXRpb25PcHRpb25zLmN1cnJlbnRQYWdlID0gcGFnZS5wYWdlSW5kZXg7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiDojrflj5blhajpg6jmlbDmja5cbiAgICovXG4gIGdldEFsbERhdGFJbmZvKCkge1xuICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmZvcm1CYXNpY1NlcnZpY2UuZm9ybU1ldGFCYXNpY0luZm8ucmVsYXRpdmVQYXRoO1xuICAgIGNvbnN0IHBhZ2VTaXplID0gMTAwMDtcbiAgICByZXR1cm4gaHR0cC5nZXQoJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvdW5pb25tZGxpc3Q/cGF0aD0nICsgcmVsYXRpdmVQYXRoICsgJyZwYWdlSW5kZXg9MSZwYWdlU2l6ZT0nICsgcGFnZVNpemUgKyAnJm1ldGFkYXRhVHlwZUxpc3Q9LmJlJywge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nXG4gICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5yZWludm9rZUludGVyZmFjZShkYXRhKTtcbiAgICAgIHRoaXMuYmVBbGxEYXRhID0gY2xvbmVEZWVwKHRoaXMuZ2V0Rm9ybURhdGEoZGF0YSwgJ2FsbCcpKTtcbiAgICAgIHRoaXMuYmVBbGxEYXRhQ29weSA9IGNsb25lRGVlcCh0aGlzLmJlQWxsRGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiog6I635Y+W5pyA6L+R5pWw5o2uICovXG4gIGdldFJlY2VudERhdGFJbmZvKCkge1xuICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmZvcm1CYXNpY1NlcnZpY2UuZm9ybU1ldGFCYXNpY0luZm8ucmVsYXRpdmVQYXRoIHx8ICcnO1xuICAgIGNvbnN0IGFwcElkID0gcmVsYXRpdmVQYXRoWzBdID09ICcvJyA/IHJlbGF0aXZlUGF0aC5zcGxpdCgnLycpWzFdIDogcmVsYXRpdmVQYXRoLnNwbGl0KCcvJylbMF07XG4gICAgcmV0dXJuIGh0dHAuZ2V0KCcvYXBpL2Rldi9tYWluL3YxLjAvbWRzZXJ2aWNlL2dldG1kcmVjZW50dXNlP2FwcElkPScgKyBhcHBJZCArICcmbWV0YWRhdGFUeXBlTGlzdD0uYmUnLCB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLmJlUmVjZW50RGF0YSA9IGNsb25lRGVlcCh0aGlzLmdldEZvcm1EYXRhKGRhdGEsICdyZWNlbnQnKSk7XG4gICAgICBpZiAodGhpcy5iZVJlY2VudERhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuYmVSZWNlbnREYXRhLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuc2hvd1JlY29tbWFuZERhdGEoKTtcbiAgICAgICAgICB0aGlzLmdldFVuaXF1ZURhdGEodGhpcy5iZURhdGEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiog6I635Y+W5o6o6I2Q5pWw5o2uICovXG4gIGdldFJlY29tbWFuZERhdGFJbmZvKCkge1xuICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuZWRpdG9yUGFyYW1zLnNvdXJjZSB8fCAnQm8nO1xuICAgIHRoaXMubW9kYWxDb25maWcgPSB0aGlzLmVkaXRvclBhcmFtcy5zb3VyY2UgPT0gJ0JvJz8ge1xuICAgICAgdGl0bGU6ICfpgInmi6nkuJrliqHlrp7kvZMnLFxuICAgICAgd2lkdGg6IDkwMCxcbiAgICAgIGhlaWdodDogNTAwLFxuICAgICAgbWluV2lkdGg6IDY1MCxcbiAgICAgIG1pbkhlaWdodDogMzAwLFxuICAgICAgcmVzaXphYmxlOiBmYWxzZSxcbiAgICAgIHNob3dCdXR0b25zOiB0cnVlLFxuICAgICAgc2hvd01heEJ1dHRvbjogZmFsc2VcbiAgICB9IDp7XG4gICAgICB0aXRsZTogJ+mAieaLqeinhuWbvuaooeWeiycsXG4gICAgICB3aWR0aDogOTAwLFxuICAgICAgaGVpZ2h0OiA1MDAsXG4gICAgICBtaW5XaWR0aDogNjUwLFxuICAgICAgbWluSGVpZ2h0OiAzMDAsXG4gICAgICByZXNpemFibGU6IGZhbHNlLFxuICAgICAgc2hvd0J1dHRvbnM6IHRydWUsXG4gICAgICBzaG93TWF4QnV0dG9uOiBmYWxzZVxuICAgIH1cbiAgICBjb25zdCBodHRwID0gdGhpcy5pbmplY3Rvci5nZXQoSHR0cENsaWVudCk7XG4gICAgY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5mb3JtQmFzaWNTZXJ2aWNlLmZvcm1NZXRhQmFzaWNJbmZvLnJlbGF0aXZlUGF0aDtcbiAgICAvLyDmjqjojZBcbiAgICByZXR1cm4gaHR0cC5nZXQoJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvbWV0YWRhdGFMaXN0SW4nICsgc291cmNlICsgJz9wYXRoPScgKyByZWxhdGl2ZVBhdGggKyAnJm1ldGFkYXRhVHlwZUxpc3Q9LmJlJywge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nXG4gICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5iZVJlY29tbWFuZERhdGEgPSBjbG9uZURlZXAodGhpcy5nZXRGb3JtRGF0YShkYXRhLCAnbG9jYWwnKSk7XG4gICAgICBpZiAodGhpcy5iZVJlY29tbWFuZERhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuYmVSZWNvbW1hbmREYXRhLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuc2hvd1JlY29tbWFuZERhdGEoKTtcbiAgICAgICAgICB0aGlzLmdldFVuaXF1ZURhdGEodGhpcy5iZURhdGEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgLyoqIOiOt+WPluaVsOaNriAqL1xuICBnZXRGb3JtRGF0YShkYXRhLCBjYXRlZ29yeSkge1xuICAgIGxldCBtZXRhZGF0YSA9IFtdO1xuICAgIGNvbnN0IGJlTWV0YWRhdGEgPSBkYXRhWydtZXRhZGF0YUluZGV4SXRlbXMnXSA/IGRhdGFbJ21ldGFkYXRhSW5kZXhJdGVtcyddIDogZGF0YTtcbiAgICBpZiAoYmVNZXRhZGF0YSkge1xuICAgICAgYmVNZXRhZGF0YS5mb3JFYWNoKGZ1bmN0aW9uIChiZU1ldGFkYXRhSXRlbSwgaW5kZXgpIHtcbiAgICAgICAgbGV0IGJlTWV0YWRhdGFJdGVtVGVtcCA9IHtcbiAgICAgICAgICBpZDogaW5kZXgsXG4gICAgICAgICAgbmFtZTogYmVNZXRhZGF0YUl0ZW0ubmFtZSxcbiAgICAgICAgICBsYWJlbDogYmVNZXRhZGF0YUl0ZW0uY29kZSxcbiAgICAgICAgICBzb3VyY2U6IGJlTWV0YWRhdGFJdGVtLm5hbWVTcGFjZSxcbiAgICAgICAgICBoaWRlOiBmYWxzZSxcbiAgICAgICAgICBhY3RpdmU6IGZhbHNlLFxuICAgICAgICAgIGRhdGE6IGJlTWV0YWRhdGFJdGVtLFxuICAgICAgICAgIGNhdGVnb3J5OiBjYXRlZ29yeVxuICAgICAgICB9XG4gICAgICAgIG1ldGFkYXRhLnB1c2goYmVNZXRhZGF0YUl0ZW1UZW1wKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH1cblxuICAvKiog5bGV56S64oCc5o6o6I2Q4oCd5LiA5qCPICovXG4gIHNob3dSZWNvbW1hbmREYXRhKCkge1xuICAgIHRoaXMuY2hvb3NlUmVjb21tYW5kID0gdHJ1ZTtcbiAgICB0aGlzLmJlRGF0YSA9IFtdO1xuICAgIGlmICh0aGlzLmJlUmVjb21tYW5kRGF0YSkge1xuICAgICAgaWYgKHRoaXMuYmVSZWNvbW1hbmREYXRhLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmJlUmVjb21tYW5kRGF0YS5mb3JFYWNoKGJlUmVjb21tYW5kRGF0YUl0ZW0gPT4ge1xuICAgICAgICAgIHRoaXMuYmVEYXRhLnB1c2goY2xvbmVEZWVwKGJlUmVjb21tYW5kRGF0YUl0ZW0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmJlUmVjZW50RGF0YSkge1xuICAgICAgaWYgKHRoaXMuYmVSZWNlbnREYXRhLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmJlUmVjZW50RGF0YS5mb3JFYWNoKGJlUmVjZW50RGF0YUl0ZW0gPT4ge1xuICAgICAgICAgIHRoaXMuYmVEYXRhLnB1c2goY2xvbmVEZWVwKGJlUmVjZW50RGF0YUl0ZW0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZ2V0VW5pcXVlRGF0YSh0aGlzLmJlRGF0YSk7XG4gICAgdGhpcy5iZURhdGEgPSB0aGlzLm9uU2VhcmNoVmFsdWVDaGFuZ2VkKHRoaXMuc2VhcmNoVmFsdWUpO1xuICB9XG5cbiAgLyoqIOWxleekuuKAnOWFqOmDqOKAneS4gOagjyAqL1xuICBzaG93QWxsRGF0YSgpIHtcbiAgICB0aGlzLmJlRGF0YSA9IGNsb25lRGVlcCh0aGlzLmJlQWxsRGF0YSk7XG4gICAgdGhpcy5jaG9vc2VSZWNvbW1hbmQgPSBmYWxzZTtcbiAgICB0aGlzLmJlRGF0YSA9IHRoaXMub25TZWFyY2hWYWx1ZUNoYW5nZWQodGhpcy5zZWFyY2hWYWx1ZSk7XG4gIH1cblxuICAvKiog5pCc57Si6aG5ICovXG4gIG9uU2VhcmNoVmFsdWVDaGFuZ2VkKHNlYXJjaFZhbHVlKSB7XG4gICAgY29uc3Qgc2VhcmNoZWREYXRhID0gdGhpcy5jaG9vc2VSZWNvbW1hbmQgPyB0aGlzLmJlRGF0YSA6IHRoaXMuYmVBbGxEYXRhQ29weTtcbiAgICBpZiAoc2VhcmNoZWREYXRhKSB7XG4gICAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlID09IHVuZGVmaW5lZCA/ICcnIDogc2VhcmNoVmFsdWU7XG4gICAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlWydvcmlnaW5hbEV2ZW50J10gIT0gdW5kZWZpbmVkID8gc2VhcmNoVmFsdWUudmFsdWUgfHwgJycgOiBzZWFyY2hWYWx1ZTtcbiAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZTtcbiAgICAgIC8vIOaQnOe0ouahhuacieWAvOaXtuWFs+mXreWIhumhtVxuICAgICAgdGhpcy5zdXBwb3J0UGFnaW5nID0gdGhpcy5zZWFyY2hWYWx1ZSA9PSAnJyA/IHRydWUgOiBmYWxzZTtcbiAgICAgIGxldCB2YWx1ZSA9IHNlYXJjaFZhbHVlLnJlcGxhY2VBbGwoJyAnLCAnJykucmVwbGFjZUFsbCgnPicsICcnKTtcbiAgICAgIHZhbHVlID0gdmFsdWUgPT0gJycgPyAnICcgOiB2YWx1ZTtcbiAgICAgIHNlYXJjaGVkRGF0YS5mb3JFYWNoKGJlRGF0YUl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBgJHtiZURhdGFJdGVtLm5hbWV9ICR7YmVEYXRhSXRlbS5sYWJlbH1gO1xuICAgICAgICBiZURhdGFJdGVtLmhpZGUgPSBzZWxlY3RlZEl0ZW0uaW5jbHVkZXModmFsdWUpID09IGZhbHNlID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgfSlcbiAgICB9XG4gICAgdGhpcy5iZURhdGEgPSBjbG9uZURlZXAoc2VhcmNoZWREYXRhKTtcbiAgICByZXR1cm4gdGhpcy5iZURhdGE7XG4gIH1cblxuICAvKiog55So5oi36YCJ5oup5YC8ICovXG4gIGdldEJlRGF0YUl0ZW0oc2VsZWN0ZWRCZURhdGFJdGVtKSB7XG4gICAgdGhpcy5iZURhdGEuZm9yRWFjaChiZURhdGFJdGVtID0+IHtcbiAgICAgIGlmIChzZWxlY3RlZEJlRGF0YUl0ZW0uaWQgPT0gYmVEYXRhSXRlbS5pZCkge1xuICAgICAgICBiZURhdGFJdGVtLmFjdGl2ZSA9ICFiZURhdGFJdGVtLmFjdGl2ZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvbW1hbmQgPSBjbG9uZURlZXAoc2VsZWN0ZWRCZURhdGFJdGVtKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBiZURhdGFJdGVtLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pXG5cbiAgfVxuXG4gIC8qKiDnlKjmiLfngrnlh7vnoa7lrprml7bosIPnlKhwb3N0QXBp5Lyg5Ye65Y+C5pWwICovXG4gIC8qKiDnlKjmiLcgKi9cbiAgY2xpY2tDb25maXJtKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ29tbWFuZCAmJiB0aGlzLnNlbGVjdGVkQ29tbWFuZFsnYWN0aXZlJ10pIHtcbiAgICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZm9ybUJhc2ljU2VydmljZS5mb3JtTWV0YUJhc2ljSW5mby5yZWxhdGl2ZVBhdGg7XG4gICAgICBjb25zdCBwYXRoID0gJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvcGlja01ldGFkYXRhP2N1cnJlbnRQYXRoPScgKyByZWxhdGl2ZVBhdGg7XG4gICAgICBjb25zdCBib2R5ID0gdGhpcy5zZWxlY3RlZENvbW1hbmQuZGF0YTtcbiAgICAgIGNvbnN0IGhlYWRlck9wdGlvbiA9IHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuIGh0dHAucG9zdChwYXRoLCBib2R5LCBoZWFkZXJPcHRpb24pLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgdGhpcy5zdWJtaXRNb2RhbC5lbWl0KGRhdGEpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5ub3RpZnlTZXJ2aWNlWydpbmZvJ10oJ+acqumAieaLqeS4muWKoeWunuS9kycpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqIOa4heepuuaQnOe0ouWGheWuuSAqL1xuICBvbkNsZWFyKCkge1xuICAgIHRoaXMuYmVEYXRhID0gdGhpcy5vblNlYXJjaFZhbHVlQ2hhbmdlZCgnJyk7XG4gIH1cblxuXG5cbiAgY2xpY2tDYW5jZWwoKSB7XG4gICAgdGhpcy5jbG9zZU1vZGFsLmVtaXQoKTtcbiAgfVxuXG4gIGZvbGRJblJlY2VudCgpIHtcbiAgICB0aGlzLmZvbGRSZWNlbnQgPSAhdGhpcy5mb2xkUmVjZW50O1xuICAgIGlmICh0aGlzLmJlRGF0YSAmJiAhdGhpcy5zZWFyY2hWYWx1ZSkge1xuICAgICAgdGhpcy5iZURhdGEuZm9yRWFjaChiZURhdGFJdGVtID0+IHtcbiAgICAgICAgaWYgKGJlRGF0YUl0ZW0uY2F0ZWdvcnkgPT0gJ3JlY2VudCcpIHtcbiAgICAgICAgICBiZURhdGFJdGVtLmhpZGUgPSAhYmVEYXRhSXRlbS5oaWRlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmb2xkSW5Mb2NhbCgpIHtcbiAgICB0aGlzLmZvbGRMb2NhbCA9ICF0aGlzLmZvbGRMb2NhbDtcbiAgICBpZiAodGhpcy5iZURhdGEgJiYgISh0aGlzLnNlYXJjaFZhbHVlKSkge1xuICAgICAgdGhpcy5iZURhdGEuZm9yRWFjaChiZURhdGFJdGVtID0+IHtcbiAgICAgICAgaWYgKGJlRGF0YUl0ZW0uY2F0ZWdvcnkgPT0gJ2xvY2FsJykge1xuICAgICAgICAgIGJlRGF0YUl0ZW0uaGlkZSA9ICFiZURhdGFJdGVtLmhpZGU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiDljrvph40qL1xuICBnZXRVbmlxdWVEYXRhKGRhdGEpIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgbGV0IHZhbHVlID0gY2xvbmVEZWVwKGRhdGEpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCB2YWx1ZS5sZW5ndGg7IGorKykge1xuICAgICAgICAgIGlmICh2YWx1ZVtpXVsnaWQnXSA9PSB2YWx1ZVtqXVsnaWQnXSkge1xuICAgICAgICAgICAgdmFsdWUuc3BsaWNlKGosIDEpO1xuICAgICAgICAgICAgai0tO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZGF0YSA9IGNsb25lRGVlcCh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG4gIC8qKiDmjqXlj6PmlbDmja7otoXov4cxMDAw5p2h5pe277yM6YeN5paw6LCD5Y+W5omA5pyJ5pWw5o2uICovXG4gIHJlaW52b2tlSW50ZXJmYWNlKGRhdGEpIHtcbiAgICBpZiAoZGF0YVsncGFnZSddKSB7XG4gICAgICBjb25zdCB0b3RhbE51bSA9IGRhdGFbJ3BhZ2UnXVsndG90YWwnXSB8fCAwO1xuICAgICAgaWYgKHRvdGFsTnVtID4gMTAwMCkge1xuICAgICAgICBjb25zdCBodHRwID0gdGhpcy5pbmplY3Rvci5nZXQoSHR0cENsaWVudCk7XG4gICAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZWRpdG9yUGFyYW1zLnJlbGF0aXZlUGF0aDtcbiAgICAgICAgcmV0dXJuIGh0dHAuZ2V0KCcvYXBpL2Rldi9tYWluL3YxLjAvbWRzZXJ2aWNlL3VuaW9ubWRsaXN0P3BhdGg9JyArIHJlbGF0aXZlUGF0aCArICcmcGFnZUluZGV4PTEmcGFnZVNpemU9JyArIHRvdGFsTnVtICsgJyZtZXRhZGF0YVR5cGVMaXN0PS5iZScsIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pLFxuICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nXG4gICAgICAgIH0pLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICB0aGlzLmJlQWxsRGF0YSA9IGNsb25lRGVlcCh0aGlzLmdldEZvcm1EYXRhKGRhdGEsICdhbGwnKSk7XG4gICAgICAgICAgdGhpcy5iZUFsbERhdGFDb3B5ID0gY2xvbmVEZWVwKHRoaXMuYmVBbGxEYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiJdfQ==

@@ -217,2 +217,21 @@ /**

var source = this.editorParams.source || 'Bo';
this.modalConfig = this.editorParams.source == 'Bo' ? {
title: '选择业务实体',
width: 900,
height: 500,
minWidth: 650,
minHeight: 300,
resizable: false,
showButtons: true,
showMaxButton: false
} : {
title: '选择视图模型',
width: 900,
height: 500,
minWidth: 650,
minHeight: 300,
resizable: false,
showButtons: true,
showMaxButton: false
};
/** @type {?} */

@@ -734,2 +753,2 @@ var http = this.injector.get(HttpClient);

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLW5hdmlnYXRpb24tYmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZhcnJpcy9hcHAtbmF2aWdhdGlvbi1iZS8iLCJzb3VyY2VzIjpbImxpYi9hcHAtbmF2aWdhdGlvbi1iZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQ7SUF1RkUsa0NBQ1UsZ0JBQWtDLEVBQ25DLFFBQWtCLEVBQ2pCLGFBQTRCO1FBRjVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbkMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTs7UUFoRjVCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDOztRQUVyQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFNaEQsY0FBUyxHQUFHLHlDQUF5QyxDQUFDOzs7O1FBRXRELG9CQUFlLEdBQVksSUFBSSxDQUFDOzs7O1FBVWhDLGlCQUFZLEdBQVksS0FBSyxDQUFDOzs7O1FBRTlCLGdCQUFXLEdBQVksS0FBSyxDQUFDOzs7O1FBRTdCLGdCQUFXLEdBQUc7WUFDWixLQUFLLEVBQUUsUUFBUTtZQUNmLEtBQUssRUFBRSxHQUFHO1lBQ1YsTUFBTSxFQUFFLEdBQUc7WUFDWCxRQUFRLEVBQUUsR0FBRztZQUNiLFNBQVMsRUFB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QWlVckIsK0JBQUM7Q0FBQSxBQTlVRCxJQThVQztTQXhVWSx3QkFBd0I7Ozs7OztJQUVuQyxnREFBMkI7O0lBRTNCLDhDQUErQzs7SUFFL0MsK0NBQWdEOztJQUNoRCwrQ0FBbUQ7Ozs7O0lBRW5ELDBDQUFZOzs7OztJQUVaLCtDQUFvQjs7SUFDcEIsNkNBQXNEOzs7OztJQUV0RCxtREFBZ0M7Ozs7O0lBRWhDLG1EQUFxQjs7Ozs7SUFFckIsbURBQXFCOzs7OztJQUVyQixnREFBa0I7Ozs7O0lBRWxCLDZDQUFVOzs7OztJQUVWLGdEQUE4Qjs7Ozs7SUFFOUIsK0NBQTZCOzs7OztJQUU3QiwrQ0FTRTs7SUFFRixnREFBa0I7O0lBRWxCLGlEQUFxQjs7Ozs7SUFFckIsNkNBQTJCOzs7OztJQUUzQiw4Q0FBNEI7Ozs7O0lBRTVCLGlEQUFjOzs7OztJQUdkLGlEQUFzQjs7Ozs7SUFFdEIsNENBQXlCOzs7OztJQUV6Qiw2Q0FBYzs7Ozs7SUFFZCw0Q0FBYzs7Ozs7SUFFZCwrQ0FBaUI7Ozs7O0lBRWpCLGdEQUFxQjs7Ozs7SUFFckIsZ0RBQW9COzs7OztJQUVwQixrREFBc0I7Ozs7O0lBRXRCLGtEQUFtQjs7Ozs7SUFFbkIseUNBQVU7Ozs7O0lBRVYsaURBQXFCOztJQUVyQixxREFPRTs7Ozs7SUFHQSxvREFBMEM7O0lBQzFDLDRDQUF5Qjs7Ozs7SUFDekIsaURBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgSW5qZWN0b3IsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CYXNpY1NlcnZpY2UgfSBmcm9tICdAZmFycmlzL2Rlc2lnbmVyLXNlcnZpY2VzJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE5vdGlmeVNlcnZpY2UgfSBmcm9tICdAZmFycmlzL3VpLW5vdGlmeSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZhcnJpcy1hcHBOYXZpZ2F0aW9uQmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLW5hdmlnYXRpb24tYmUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcHAtbmF2aWdhdGlvbi1iZS5jb21wb25lbnQuY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBBcHBOYXZpZ2F0aW9uQmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiog5YWl5Y+CICovXG4gIEBJbnB1dCgpIGVkaXRvclBhcmFtczogYW55O1xuICAvLyDmqKHmgIHmoYblhbPpl61cbiAgQE91dHB1dCgpIGNsb3NlTW9kYWwgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgLy8g5qih5oCB5qGG56Gu5a6a5ZCO5YWz6Zet77yM5bm25Lyg6YCS5Y+C5pWwXG4gIEBPdXRwdXQoKSBzdWJtaXRNb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAVmlld0NoaWxkKCdmb290ZXInKSBtb2RhbEZvb3RlcjogVGVtcGxhdGVSZWY8YW55PjtcbiAgLyoqIOWOn+Wni+aVsOaNriAqL1xuICBiZURhdGE6IGFueTtcbiAgLyoqIOaQnOe0ouahhui+k+WFpeWAvCAqL1xuICBzZWFyY2hWYWx1ZTogc3RyaW5nO1xuICBncm91cEljb24gPSAnPHNwYW4gY2xhc3M9XCJrLWljb24gay1pLXNlYXJjaFwiPjwvc3Bhbj4nO1xuICAvKiog5b2T5YmN6YCJ5Lit55qE5bGV56S65pWw5o2uICovXG4gIGNob29zZVJlY29tbWFuZDogYm9vbGVhbiA9IHRydWU7XG4gIC8qKiDnlKjmiLfpgInmi6nnmoTmlbDmja4gKi9cbiAgc2VsZWN0ZWRDb21tYW5kOiBhbnk7XG4gIC8qKiDmjqjojZDmlbDmja4gKi9cbiAgYmVSZWNvbW1hbmREYXRhOiBhbnk7XG4gIC8qKiDmnIDov5HmlbDmja4gKi9cbiAgYmVSZWNlbnREYXRhOiBhbnk7XG4gIC8qKiDlhajpg6jmlbDmja4qL1xuICBiZUFsbERhdGE7XG4gIC8qKiDmlLbmipjmnIDov5Hnm7jlhbPnmoTmlbDmja4gKi9cbiAgcmVjZW50Rm9sZEluOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiDmlLbmipjmnKzlnLDnm7jlhbPnmoTmlbDmja4gKi9cbiAgbG9jYWxGb2xkSW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIOW8ueeql+iuvuWumuWAvCAqL1xuICBtb2RhbENvbmZpZyA9IHtcbiAgICB0aXRsZTogJ+mAieaLqeS4muWKoeWunuS9kycsXG4gICAgd2lkdGg6IDkwMCxcbiAgICBoZWlnaHQ6IDUwMCxcbiAgICBtaW5XaWR0aDogNjUwLFxuICAgIG1pbkhlaWdodDogMzAwLFxuICAgIHJlc2l6YWJsZTogZmFsc2UsXG4gICAgc2hvd0J1dHRvbnM6IHRydWUsXG4gICAgc2hvd01heEJ1dHRvbjogZmFsc2VcbiAgfTtcbiAgLy8g6Lev5b6E77yI6K6+6K6h5pe255So77yJXG4gIG1ldGFkYXRhUGF0aCA9ICcnO1xuICAvLyDlvZPliY3njq/looPmmK/lkKborr7orqHml7ZcbiAgaXNEZWlzZ25lckVudiA9IHRydWU7XG4gIC8qKiDmlLbmipjmnKzlnLDmlbDmja4gKi9cbiAgZm9sZExvY2FsOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiDmlLbmipjmnIDov5HmlbDmja4gKi9cbiAgZm9sZFJlY2VudDogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiog4oCc5YWo6YOo4oCd5pWw5o2u55qE5Ymv5pysICovXG4gIGJlQWxsRGF0YUNvcHk7XG5cbiAgLyoqIOWQr+eUqOacjeWKoeWZqOerr+WIhumhtSAqL1xuICBwYWdlck9uU2VydmVyID0gZmFsc2U7XG4gIC8qKiDmr4/pobXorrDlvZXmlbAgKi9cbiAgcGFnZUxpc3QgPSBbMjAsIDUwLCAxMDBdO1xuICAvKiog5b2T5YmN6aG156CBICovXG4gIHBhZ2VJbmRleCA9IDE7XG4gIC8qKiDmr4/pobXorrDlvZXmlbAgKi9cbiAgcGFnZVNpemUgPSAyMDtcbiAgLyoqIOWIhumhteWMuumrmOW6piAqL1xuICBwYWdlckhlaWdodCA9IDU2O1xuICAvKiog5pi+56S65q+P6aG16K6w5b2V5pWwICovXG4gIHNob3dQYWdlTGlzdCA9IGZhbHNlO1xuICAvKiog5pi+56S65YiG6aG15L+h5oGvICovXG4gIHNob3dQYWdlSW5mbyA9IHRydWU7XG4gIC8qKiDmmL7npLrpobXnoIEgKi9cbiAgc2hvd1BhZ2VOdW1iZXIgPSB0cnVlO1xuICAvKiog5pi+56S66aG156CB5pyA5aSn5pWw6YePICovXG4gIHBhZ2VyTGFiZWxTaXplID0gNztcbiAgLyoqIOaAu+iusOW9leaVsCAqL1xuICB0b3RhbCA9IDA7XG4gIC8qKiDmmK/lkKbmlK/mjIHliIbpobUgKi9cbiAgc3VwcG9ydFBhZ2luZyA9IHRydWU7XG5cbiAgcGFnaW5hdGlvbk9wdGlvbnMgPSB7XG4gICAgaWQ6ICdGYXJyaXMtYmVNZXRhZGF0YS1QYWdpbmF0aW9uXycsXG4gICAgaXRlbXNQZXJQYWdlOiB0aGlzLnBhZ2VTaXplLFxuICAgIGN1cnJlbnRQYWdlOiB0aGlzLnBhZ2VJbmRleCxcbiAgICBwYWdlTGlzdDogdGhpcy5wYWdlTGlzdCxcbiAgICB0b3RhbEl0ZW1zOiB0aGlzLnRvdGFsLFxuICAgIHJlbW90ZTogdGhpcy5wYWdlck9uU2VydmVyXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmb3JtQmFzaWNTZXJ2aWNlOiBGb3JtQmFzaWNTZXJ2aWNlLFxuICAgIHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBub3RpZnlTZXJ2aWNlOiBOb3RpZnlTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5iZURhdGEgPSBbXTtcbiAgICB0aGlzLmdldEFsbERhdGFJbmZvKCk7XG4gICAgdGhpcy5nZXRSZWNlbnREYXRhSW5mbygpO1xuICAgIHRoaXMuZ2V0UmVjb21tYW5kRGF0YUluZm8oKTtcbiAgICB0aGlzLmNob29zZVJlY29tbWFuZCA9IHRydWU7XG4gIH1cblxuICBvblBhZ2VDaGFuZ2UocGFnZTogeyBwYWdlSW5kZXg6IG51bWJlciB9KSB7XG4gICAgaWYgKHRoaXMucGFnZUluZGV4ICE9PSBwYWdlLnBhZ2VJbmRleCkge1xuICAgICAgdGhpcy5wYWdlSW5kZXggPSBwYWdlLnBhZ2VJbmRleDtcbiAgICAgIHRoaXMucGFnaW5hdGlvbk9wdGlvbnMuY3VycmVudFBhZ2UgPSBwYWdlLnBhZ2VJbmRleDtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIOiOt+WPluWFqOmDqOaVsOaNrlxuICAgKi9cbiAgZ2V0QWxsRGF0YUluZm8oKSB7XG4gICAgY29uc3QgaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZm9ybUJhc2ljU2VydmljZS5mb3JtTWV0YUJhc2ljSW5mby5yZWxhdGl2ZVBhdGg7XG4gICAgY29uc3QgcGFnZVNpemUgPSAxMDAwO1xuICAgIHJldHVybiBodHRwLmdldCgnL2FwaS9kZXYvbWFpbi92MS4wL21kc2VydmljZS91bmlvbm1kbGlzdD9wYXRoPScgKyByZWxhdGl2ZVBhdGggKyAnJnBhZ2VJbmRleD0xJnBhZ2VTaXplPScgKyBwYWdlU2l6ZSArICcmbWV0YWRhdGFUeXBlTGlzdD0uYmUnLCB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLnJlaW52b2tlSW50ZXJmYWNlKGRhdGEpO1xuICAgICAgdGhpcy5iZUFsbERhdGEgPSBjbG9uZURlZXAodGhpcy5nZXRGb3JtRGF0YShkYXRhLCAnYWxsJykpO1xuICAgICAgdGhpcy5iZUFsbERhdGFDb3B5ID0gY2xvbmVEZWVwKHRoaXMuYmVBbGxEYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiDojrflj5bmnIDov5HmlbDmja4gKi9cbiAgZ2V0UmVjZW50RGF0YUluZm8oKSB7XG4gICAgY29uc3QgaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZm9ybUJhc2ljU2VydmljZS5mb3JtTWV0YUJhc2ljSW5mby5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgY29uc3QgYXBwSWQgPSByZWxhdGl2ZVBhdGhbMF0gPT0gJy8nID8gcmVsYXRpdmVQYXRoLnNwbGl0KCcvJylbMV0gOiByZWxhdGl2ZVBhdGguc3BsaXQoJy8nKVswXTtcbiAgICByZXR1cm4gaHR0cC5nZXQoJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvZ2V0bWRyZWNlbnR1c2U/YXBwSWQ9JyArIGFwcElkICsgJyZtZXRhZGF0YVR5cGVMaXN0PS5iZScsIHtcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSksXG4gICAgICByZXNwb25zZVR5cGU6ICdqc29uJ1xuICAgIH0pLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHRoaXMuYmVSZWNlbnREYXRhID0gY2xvbmVEZWVwKHRoaXMuZ2V0Rm9ybURhdGEoZGF0YSwgJ3JlY2VudCcpKTtcbiAgICAgIGlmICh0aGlzLmJlUmVjZW50RGF0YSkge1xuICAgICAgICBpZiAodGhpcy5iZVJlY2VudERhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5zaG93UmVjb21tYW5kRGF0YSgpO1xuICAgICAgICAgIHRoaXMuZ2V0VW5pcXVlRGF0YSh0aGlzLmJlRGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiDojrflj5bmjqjojZDmlbDmja4gKi9cbiAgZ2V0UmVjb21tYW5kRGF0YUluZm8oKSB7XG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5lZGl0b3JQYXJhbXMuc291cmNlIHx8ICdCbyc7XG4gICAgY29uc3QgaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZm9ybUJhc2ljU2VydmljZS5mb3JtTWV0YUJhc2ljSW5mby5yZWxhdGl2ZVBhdGg7XG4gICAgLy8g5o6o6I2QXG4gICAgcmV0dXJuIGh0dHAuZ2V0KCcvYXBpL2Rldi9tYWluL3YxLjAvbWRzZXJ2aWNlL21ldGFkYXRhTGlzdEluJyArIHNvdXJjZSArICc/cGF0aD0nICsgcmVsYXRpdmVQYXRoICsgJyZtZXRhZGF0YVR5cGVMaXN0PS5iZScsIHtcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSksXG4gICAgICByZXNwb25zZVR5cGU6ICdqc29uJ1xuICAgIH0pLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHRoaXMuYmVSZWNvbW1hbmREYXRhID0gY2xvbmVEZWVwKHRoaXMuZ2V0Rm9ybURhdGEoZGF0YSwgJ2xvY2FsJykpO1xuICAgICAgaWYgKHRoaXMuYmVSZWNvbW1hbmREYXRhKSB7XG4gICAgICAgIGlmICh0aGlzLmJlUmVjb21tYW5kRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnNob3dSZWNvbW1hbmREYXRhKCk7XG4gICAgICAgICAgdGhpcy5nZXRVbmlxdWVEYXRhKHRoaXMuYmVEYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8qKiDojrflj5bmlbDmja4gKi9cbiAgZ2V0Rm9ybURhdGEoZGF0YSwgY2F0ZWdvcnkpIHtcbiAgICBsZXQgbWV0YWRhdGEgPSBbXTtcbiAgICBjb25zdCBiZU1ldGFkYXRhID0gZGF0YVsnbWV0YWRhdGFJbmRleEl0ZW1zJ10gPyBkYXRhWydtZXRhZGF0YUluZGV4SXRlbXMnXSA6IGRhdGE7XG4gICAgaWYgKGJlTWV0YWRhdGEpIHtcbiAgICAgIGJlTWV0YWRhdGEuZm9yRWFjaChmdW5jdGlvbiAoYmVNZXRhZGF0YUl0ZW0sIGluZGV4KSB7XG4gICAgICAgIGxldCBiZU1ldGFkYXRhSXRlbVRlbXAgPSB7XG4gICAgICAgICAgaWQ6IGluZGV4LFxuICAgICAgICAgIG5hbWU6IGJlTWV0YWRhdGFJdGVtLm5hbWUsXG4gICAgICAgICAgbGFiZWw6IGJlTWV0YWRhdGFJdGVtLmNvZGUsXG4gICAgICAgICAgc291cmNlOiBiZU1ldGFkYXRhSXRlbS5uYW1lU3BhY2UsXG4gICAgICAgICAgaGlkZTogZmFsc2UsXG4gICAgICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICBkYXRhOiBiZU1ldGFkYXRhSXRlbSxcbiAgICAgICAgICBjYXRlZ29yeTogY2F0ZWdvcnlcbiAgICAgICAgfVxuICAgICAgICBtZXRhZGF0YS5wdXNoKGJlTWV0YWRhdGFJdGVtVGVtcCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9XG5cbiAgLyoqIOWxleekuuKAnOaOqOiNkOKAneS4gOagjyAqL1xuICBzaG93UmVjb21tYW5kRGF0YSgpIHtcbiAgICB0aGlzLmNob29zZVJlY29tbWFuZCA9IHRydWU7XG4gICAgdGhpcy5iZURhdGEgPSBbXTtcbiAgICBpZiAodGhpcy5iZVJlY29tbWFuZERhdGEpIHtcbiAgICAgIGlmICh0aGlzLmJlUmVjb21tYW5kRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5iZVJlY29tbWFuZERhdGEuZm9yRWFjaChiZVJlY29tbWFuZERhdGFJdGVtID0+IHtcbiAgICAgICAgICB0aGlzLmJlRGF0YS5wdXNoKGNsb25lRGVlcChiZVJlY29tbWFuZERhdGFJdGVtKSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5iZVJlY2VudERhdGEpIHtcbiAgICAgIGlmICh0aGlzLmJlUmVjZW50RGF0YS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5iZVJlY2VudERhdGEuZm9yRWFjaChiZVJlY2VudERhdGFJdGVtID0+IHtcbiAgICAgICAgICB0aGlzLmJlRGF0YS5wdXNoKGNsb25lRGVlcChiZVJlY2VudERhdGFJdGVtKSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmdldFVuaXF1ZURhdGEodGhpcy5iZURhdGEpO1xuICAgIHRoaXMuYmVEYXRhID0gdGhpcy5vblNlYXJjaFZhbHVlQ2hhbmdlZCh0aGlzLnNlYXJjaFZhbHVlKTtcbiAgfVxuXG4gIC8qKiDlsZXnpLrigJzlhajpg6jigJ3kuIDmoI8gKi9cbiAgc2hvd0FsbERhdGEoKSB7XG4gICAgdGhpcy5iZURhdGEgPSBjbG9uZURlZXAodGhpcy5iZUFsbERhdGEpO1xuICAgIHRoaXMuY2hvb3NlUmVjb21tYW5kID0gZmFsc2U7XG4gICAgdGhpcy5iZURhdGEgPSB0aGlzLm9uU2VhcmNoVmFsdWVDaGFuZ2VkKHRoaXMuc2VhcmNoVmFsdWUpO1xuICB9XG5cbiAgLyoqIOaQnOe0oumhuSAqL1xuICBvblNlYXJjaFZhbHVlQ2hhbmdlZChzZWFyY2hWYWx1ZSkge1xuICAgIGNvbnN0IHNlYXJjaGVkRGF0YSA9IHRoaXMuY2hvb3NlUmVjb21tYW5kID8gdGhpcy5iZURhdGEgOiB0aGlzLmJlQWxsRGF0YUNvcHk7XG4gICAgaWYgKHNlYXJjaGVkRGF0YSkge1xuICAgICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSA9PSB1bmRlZmluZWQgPyAnJyA6IHNlYXJjaFZhbHVlO1xuICAgICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZVsnb3JpZ2luYWxFdmVudCddICE9IHVuZGVmaW5lZCA/IHNlYXJjaFZhbHVlLnZhbHVlIHx8ICcnIDogc2VhcmNoVmFsdWU7XG4gICAgICB0aGlzLnNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWU7XG4gICAgICAvLyDmkJzntKLmoYbmnInlgLzml7blhbPpl63liIbpobVcbiAgICAgIHRoaXMuc3VwcG9ydFBhZ2luZyA9IHRoaXMuc2VhcmNoVmFsdWUgPT0gJycgPyB0cnVlIDogZmFsc2U7XG4gICAgICBsZXQgdmFsdWUgPSBzZWFyY2hWYWx1ZS5yZXBsYWNlQWxsKCcgJywgJycpLnJlcGxhY2VBbGwoJz4nLCAnJyk7XG4gICAgICB2YWx1ZSA9IHZhbHVlID09ICcnID8gJyAnIDogdmFsdWU7XG4gICAgICBzZWFyY2hlZERhdGEuZm9yRWFjaChiZURhdGFJdGVtID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gYCR7YmVEYXRhSXRlbS5uYW1lfSAke2JlRGF0YUl0ZW0ubGFiZWx9YDtcbiAgICAgICAgYmVEYXRhSXRlbS5oaWRlID0gc2VsZWN0ZWRJdGVtLmluY2x1ZGVzKHZhbHVlKSA9PSBmYWxzZSA/IHRydWUgOiBmYWxzZTtcbiAgICAgIH0pXG4gICAgfVxuICAgIHRoaXMuYmVEYXRhID0gY2xvbmVEZWVwKHNlYXJjaGVkRGF0YSk7XG4gICAgcmV0dXJuIHRoaXMuYmVEYXRhO1xuICB9XG5cbiAgLyoqIOeUqOaIt+mAieaLqeWAvCAqL1xuICBnZXRCZURhdGFJdGVtKHNlbGVjdGVkQmVEYXRhSXRlbSkge1xuICAgIHRoaXMuYmVEYXRhLmZvckVhY2goYmVEYXRhSXRlbSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWRCZURhdGFJdGVtLmlkID09IGJlRGF0YUl0ZW0uaWQpIHtcbiAgICAgICAgYmVEYXRhSXRlbS5hY3RpdmUgPSAhYmVEYXRhSXRlbS5hY3RpdmU7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb21tYW5kID0gY2xvbmVEZWVwKHNlbGVjdGVkQmVEYXRhSXRlbSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgYmVEYXRhSXRlbS5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KVxuXG4gIH1cblxuICAvKiog55So5oi354K55Ye756Gu5a6a5pe26LCD55SocG9zdEFwaeS8oOWHuuWPguaVsCAqL1xuICAvKiog55So5oi3ICovXG4gIGNsaWNrQ29uZmlybSgpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENvbW1hbmQgJiYgdGhpcy5zZWxlY3RlZENvbW1hbmRbJ2FjdGl2ZSddKSB7XG4gICAgICBjb25zdCBodHRwID0gdGhpcy5pbmplY3Rvci5nZXQoSHR0cENsaWVudCk7XG4gICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmZvcm1CYXNpY1NlcnZpY2UuZm9ybU1ldGFCYXNpY0luZm8ucmVsYXRpdmVQYXRoO1xuICAgICAgY29uc3QgcGF0aCA9ICcvYXBpL2Rldi9tYWluL3YxLjAvbWRzZXJ2aWNlL3BpY2tNZXRhZGF0YT9jdXJyZW50UGF0aD0nICsgcmVsYXRpdmVQYXRoO1xuICAgICAgY29uc3QgYm9keSA9IHRoaXMuc2VsZWN0ZWRDb21tYW5kLmRhdGE7XG4gICAgICBjb25zdCBoZWFkZXJPcHRpb24gPSB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSlcbiAgICAgIH1cbiAgICAgIHJldHVybiBodHRwLnBvc3QocGF0aCwgYm9keSwgaGVhZGVyT3B0aW9uKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuc3VibWl0TW9kYWwuZW1pdChkYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMubm90aWZ5U2VydmljZVsnaW5mbyddKCfmnKrpgInmi6nkuJrliqHlrp7kvZMnKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKiDmuIXnqbrmkJzntKLlhoXlrrkgKi9cbiAgb25DbGVhcigpIHtcbiAgICB0aGlzLmJlRGF0YSA9IHRoaXMub25TZWFyY2hWYWx1ZUNoYW5nZWQoJycpO1xuICB9XG5cblxuXG4gIGNsaWNrQ2FuY2VsKCkge1xuICAgIHRoaXMuY2xvc2VNb2RhbC5lbWl0KCk7XG4gIH1cblxuICBmb2xkSW5SZWNlbnQoKSB7XG4gICAgdGhpcy5mb2xkUmVjZW50ID0gIXRoaXMuZm9sZFJlY2VudDtcbiAgICBpZiAodGhpcy5iZURhdGEgJiYgIXRoaXMuc2VhcmNoVmFsdWUpIHtcbiAgICAgIHRoaXMuYmVEYXRhLmZvckVhY2goYmVEYXRhSXRlbSA9PiB7XG4gICAgICAgIGlmIChiZURhdGFJdGVtLmNhdGVnb3J5ID09ICdyZWNlbnQnKSB7XG4gICAgICAgICAgYmVEYXRhSXRlbS5oaWRlID0gIWJlRGF0YUl0ZW0uaGlkZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZm9sZEluTG9jYWwoKSB7XG4gICAgdGhpcy5mb2xkTG9jYWwgPSAhdGhpcy5mb2xkTG9jYWw7XG4gICAgaWYgKHRoaXMuYmVEYXRhICYmICEodGhpcy5zZWFyY2hWYWx1ZSkpIHtcbiAgICAgIHRoaXMuYmVEYXRhLmZvckVhY2goYmVEYXRhSXRlbSA9PiB7XG4gICAgICAgIGlmIChiZURhdGFJdGVtLmNhdGVnb3J5ID09ICdsb2NhbCcpIHtcbiAgICAgICAgICBiZURhdGFJdGVtLmhpZGUgPSAhYmVEYXRhSXRlbS5oaWRlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKiog5Y676YeNKi9cbiAgZ2V0VW5pcXVlRGF0YShkYXRhKSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGxldCB2YWx1ZSA9IGNsb25lRGVlcChkYXRhKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgdmFsdWUubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBpZiAodmFsdWVbaV1bJ2lkJ10gPT0gdmFsdWVbal1bJ2lkJ10pIHtcbiAgICAgICAgICAgIHZhbHVlLnNwbGljZShqLCAxKTtcbiAgICAgICAgICAgIGotLTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGRhdGEgPSBjbG9uZURlZXAodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICAvKiog5o6l5Y+j5pWw5o2u6LaF6L+HMTAwMOadoeaXtu+8jOmHjeaWsOiwg+WPluaJgOacieaVsOaNriAqL1xuICByZWludm9rZUludGVyZmFjZShkYXRhKSB7XG4gICAgaWYgKGRhdGFbJ3BhZ2UnXSkge1xuICAgICAgY29uc3QgdG90YWxOdW0gPSBkYXRhWydwYWdlJ11bJ3RvdGFsJ10gfHwgMDtcbiAgICAgIGlmICh0b3RhbE51bSA+IDEwMDApIHtcbiAgICAgICAgY29uc3QgaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmVkaXRvclBhcmFtcy5yZWxhdGl2ZVBhdGg7XG4gICAgICAgIHJldHVybiBodHRwLmdldCgnL2FwaS9kZXYvbWFpbi92MS4wL21kc2VydmljZS91bmlvbm1kbGlzdD9wYXRoPScgKyByZWxhdGl2ZVBhdGggKyAnJnBhZ2VJbmRleD0xJnBhZ2VTaXplPScgKyB0b3RhbE51bSArICcmbWV0YWRhdGFUeXBlTGlzdD0uYmUnLCB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KSxcbiAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJ1xuICAgICAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgdGhpcy5iZUFsbERhdGEgPSBjbG9uZURlZXAodGhpcy5nZXRGb3JtRGF0YShkYXRhLCAnYWxsJykpO1xuICAgICAgICAgIHRoaXMuYmVBbGxEYXRhQ29weSA9IGNsb25lRGVlcCh0aGlzLmJlQWxsRGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLW5hdmlnYXRpb24tYmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZhcnJpcy9hcHAtbmF2aWdhdGlvbi1iZS8iLCJzb3VyY2VzIjpbImxpYi9hcHAtbmF2aWdhdGlvbi1iZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQ7SUF1RkUsa0NBQ1UsZ0JBQWtDLEVBQ25DLFFBQWtCLEVBQ2pCLGFBQTRCO1FBRjVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbkMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTs7UUFoRjVCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDOztRQUVyQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFNaEQsY0FBUyxHQUFHLHlDQUF5QyxDQUFDOzs7O1FBRXRELG9CQUFlLEdBQVksSUFBSSxDQUFDOzs7O1FBVWhDLGlCQUFZLEdBQVksS0FBSyxDQUFDOzs7O1FBRTlCLGdCQUFXLEdBQVksS0FBSyxDQUFDOzs7O1FBRTdCLGdCQUFXLEdBQUc7WUFDWixLQUFLLEVBQUUsUUFBUTtZQUNmLEtBQUssRUFBRSxHQUFHO1lBQ1YsTUFBTSxFQUFFLEdBQUc7WUFDWCxRQUFRLEVBQUUsR0FBRztZQUNiLFNBQVMsRUFB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QW9COzs7OztJQUVwQixrREFBc0I7Ozs7O0lBRXRCLGtEQUFtQjs7Ozs7SUFFbkIseUNBQVU7Ozs7O0lBRVYsaURBQXFCOztJQUVyQixxREFPRTs7Ozs7SUFHQSxvREFBMEM7O0lBQzFDLDRDQUF5Qjs7Ozs7SUFDekIsaURBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgSW5qZWN0b3IsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CYXNpY1NlcnZpY2UgfSBmcm9tICdAZmFycmlzL2Rlc2lnbmVyLXNlcnZpY2VzJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE5vdGlmeVNlcnZpY2UgfSBmcm9tICdAZmFycmlzL3VpLW5vdGlmeSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZhcnJpcy1hcHBOYXZpZ2F0aW9uQmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLW5hdmlnYXRpb24tYmUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcHAtbmF2aWdhdGlvbi1iZS5jb21wb25lbnQuY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBBcHBOYXZpZ2F0aW9uQmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiog5YWl5Y+CICovXG4gIEBJbnB1dCgpIGVkaXRvclBhcmFtczogYW55O1xuICAvLyDmqKHmgIHmoYblhbPpl61cbiAgQE91dHB1dCgpIGNsb3NlTW9kYWwgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgLy8g5qih5oCB5qGG56Gu5a6a5ZCO5YWz6Zet77yM5bm25Lyg6YCS5Y+C5pWwXG4gIEBPdXRwdXQoKSBzdWJtaXRNb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAVmlld0NoaWxkKCdmb290ZXInKSBtb2RhbEZvb3RlcjogVGVtcGxhdGVSZWY8YW55PjtcbiAgLyoqIOWOn+Wni+aVsOaNriAqL1xuICBiZURhdGE6IGFueTtcbiAgLyoqIOaQnOe0ouahhui+k+WFpeWAvCAqL1xuICBzZWFyY2hWYWx1ZTogc3RyaW5nO1xuICBncm91cEljb24gPSAnPHNwYW4gY2xhc3M9XCJrLWljb24gay1pLXNlYXJjaFwiPjwvc3Bhbj4nO1xuICAvKiog5b2T5YmN6YCJ5Lit55qE5bGV56S65pWw5o2uICovXG4gIGNob29zZVJlY29tbWFuZDogYm9vbGVhbiA9IHRydWU7XG4gIC8qKiDnlKjmiLfpgInmi6nnmoTmlbDmja4gKi9cbiAgc2VsZWN0ZWRDb21tYW5kOiBhbnk7XG4gIC8qKiDmjqjojZDmlbDmja4gKi9cbiAgYmVSZWNvbW1hbmREYXRhOiBhbnk7XG4gIC8qKiDmnIDov5HmlbDmja4gKi9cbiAgYmVSZWNlbnREYXRhOiBhbnk7XG4gIC8qKiDlhajpg6jmlbDmja4qL1xuICBiZUFsbERhdGE7XG4gIC8qKiDmlLbmipjmnIDov5Hnm7jlhbPnmoTmlbDmja4gKi9cbiAgcmVjZW50Rm9sZEluOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiDmlLbmipjmnKzlnLDnm7jlhbPnmoTmlbDmja4gKi9cbiAgbG9jYWxGb2xkSW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIOW8ueeql+iuvuWumuWAvCAqL1xuICBtb2RhbENvbmZpZyA9IHtcbiAgICB0aXRsZTogJ+mAieaLqeS4muWKoeWunuS9kycsXG4gICAgd2lkdGg6IDkwMCxcbiAgICBoZWlnaHQ6IDUwMCxcbiAgICBtaW5XaWR0aDogNjUwLFxuICAgIG1pbkhlaWdodDogMzAwLFxuICAgIHJlc2l6YWJsZTogZmFsc2UsXG4gICAgc2hvd0J1dHRvbnM6IHRydWUsXG4gICAgc2hvd01heEJ1dHRvbjogZmFsc2VcbiAgfTtcbiAgLy8g6Lev5b6E77yI6K6+6K6h5pe255So77yJXG4gIG1ldGFkYXRhUGF0aCA9ICcnO1xuICAvLyDlvZPliY3njq/looPmmK/lkKborr7orqHml7ZcbiAgaXNEZWlzZ25lckVudiA9IHRydWU7XG4gIC8qKiDmlLbmipjmnKzlnLDmlbDmja4gKi9cbiAgZm9sZExvY2FsOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiDmlLbmipjmnIDov5HmlbDmja4gKi9cbiAgZm9sZFJlY2VudDogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiog4oCc5YWo6YOo4oCd5pWw5o2u55qE5Ymv5pysICovXG4gIGJlQWxsRGF0YUNvcHk7XG5cbiAgLyoqIOWQr+eUqOacjeWKoeWZqOerr+WIhumhtSAqL1xuICBwYWdlck9uU2VydmVyID0gZmFsc2U7XG4gIC8qKiDmr4/pobXorrDlvZXmlbAgKi9cbiAgcGFnZUxpc3QgPSBbMjAsIDUwLCAxMDBdO1xuICAvKiog5b2T5YmN6aG156CBICovXG4gIHBhZ2VJbmRleCA9IDE7XG4gIC8qKiDmr4/pobXorrDlvZXmlbAgKi9cbiAgcGFnZVNpemUgPSAyMDtcbiAgLyoqIOWIhumhteWMuumrmOW6piAqL1xuICBwYWdlckhlaWdodCA9IDU2O1xuICAvKiog5pi+56S65q+P6aG16K6w5b2V5pWwICovXG4gIHNob3dQYWdlTGlzdCA9IGZhbHNlO1xuICAvKiog5pi+56S65YiG6aG15L+h5oGvICovXG4gIHNob3dQYWdlSW5mbyA9IHRydWU7XG4gIC8qKiDmmL7npLrpobXnoIEgKi9cbiAgc2hvd1BhZ2VOdW1iZXIgPSB0cnVlO1xuICAvKiog5pi+56S66aG156CB5pyA5aSn5pWw6YePICovXG4gIHBhZ2VyTGFiZWxTaXplID0gNztcbiAgLyoqIOaAu+iusOW9leaVsCAqL1xuICB0b3RhbCA9IDA7XG4gIC8qKiDmmK/lkKbmlK/mjIHliIbpobUgKi9cbiAgc3VwcG9ydFBhZ2luZyA9IHRydWU7XG5cbiAgcGFnaW5hdGlvbk9wdGlvbnMgPSB7XG4gICAgaWQ6ICdGYXJyaXMtYmVNZXRhZGF0YS1QYWdpbmF0aW9uXycsXG4gICAgaXRlbXNQZXJQYWdlOiB0aGlzLnBhZ2VTaXplLFxuICAgIGN1cnJlbnRQYWdlOiB0aGlzLnBhZ2VJbmRleCxcbiAgICBwYWdlTGlzdDogdGhpcy5wYWdlTGlzdCxcbiAgICB0b3RhbEl0ZW1zOiB0aGlzLnRvdGFsLFxuICAgIHJlbW90ZTogdGhpcy5wYWdlck9uU2VydmVyXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmb3JtQmFzaWNTZXJ2aWNlOiBGb3JtQmFzaWNTZXJ2aWNlLFxuICAgIHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBub3RpZnlTZXJ2aWNlOiBOb3RpZnlTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5iZURhdGEgPSBbXTtcbiAgICB0aGlzLmdldEFsbERhdGFJbmZvKCk7XG4gICAgdGhpcy5nZXRSZWNlbnREYXRhSW5mbygpO1xuICAgIHRoaXMuZ2V0UmVjb21tYW5kRGF0YUluZm8oKTtcbiAgICB0aGlzLmNob29zZVJlY29tbWFuZCA9IHRydWU7XG4gIH1cblxuICBvblBhZ2VDaGFuZ2UocGFnZTogeyBwYWdlSW5kZXg6IG51bWJlciB9KSB7XG4gICAgaWYgKHRoaXMucGFnZUluZGV4ICE9PSBwYWdlLnBhZ2VJbmRleCkge1xuICAgICAgdGhpcy5wYWdlSW5kZXggPSBwYWdlLnBhZ2VJbmRleDtcbiAgICAgIHRoaXMucGFnaW5hdGlvbk9wdGlvbnMuY3VycmVudFBhZ2UgPSBwYWdlLnBhZ2VJbmRleDtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIOiOt+WPluWFqOmDqOaVsOaNrlxuICAgKi9cbiAgZ2V0QWxsRGF0YUluZm8oKSB7XG4gICAgY29uc3QgaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZm9ybUJhc2ljU2VydmljZS5mb3JtTWV0YUJhc2ljSW5mby5yZWxhdGl2ZVBhdGg7XG4gICAgY29uc3QgcGFnZVNpemUgPSAxMDAwO1xuICAgIHJldHVybiBodHRwLmdldCgnL2FwaS9kZXYvbWFpbi92MS4wL21kc2VydmljZS91bmlvbm1kbGlzdD9wYXRoPScgKyByZWxhdGl2ZVBhdGggKyAnJnBhZ2VJbmRleD0xJnBhZ2VTaXplPScgKyBwYWdlU2l6ZSArICcmbWV0YWRhdGFUeXBlTGlzdD0uYmUnLCB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLnJlaW52b2tlSW50ZXJmYWNlKGRhdGEpO1xuICAgICAgdGhpcy5iZUFsbERhdGEgPSBjbG9uZURlZXAodGhpcy5nZXRGb3JtRGF0YShkYXRhLCAnYWxsJykpO1xuICAgICAgdGhpcy5iZUFsbERhdGFDb3B5ID0gY2xvbmVEZWVwKHRoaXMuYmVBbGxEYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiDojrflj5bmnIDov5HmlbDmja4gKi9cbiAgZ2V0UmVjZW50RGF0YUluZm8oKSB7XG4gICAgY29uc3QgaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZm9ybUJhc2ljU2VydmljZS5mb3JtTWV0YUJhc2ljSW5mby5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgY29uc3QgYXBwSWQgPSByZWxhdGl2ZVBhdGhbMF0gPT0gJy8nID8gcmVsYXRpdmVQYXRoLnNwbGl0KCcvJylbMV0gOiByZWxhdGl2ZVBhdGguc3BsaXQoJy8nKVswXTtcbiAgICByZXR1cm4gaHR0cC5nZXQoJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvZ2V0bWRyZWNlbnR1c2U/YXBwSWQ9JyArIGFwcElkICsgJyZtZXRhZGF0YVR5cGVMaXN0PS5iZScsIHtcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSksXG4gICAgICByZXNwb25zZVR5cGU6ICdqc29uJ1xuICAgIH0pLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHRoaXMuYmVSZWNlbnREYXRhID0gY2xvbmVEZWVwKHRoaXMuZ2V0Rm9ybURhdGEoZGF0YSwgJ3JlY2VudCcpKTtcbiAgICAgIGlmICh0aGlzLmJlUmVjZW50RGF0YSkge1xuICAgICAgICBpZiAodGhpcy5iZVJlY2VudERhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5zaG93UmVjb21tYW5kRGF0YSgpO1xuICAgICAgICAgIHRoaXMuZ2V0VW5pcXVlRGF0YSh0aGlzLmJlRGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiDojrflj5bmjqjojZDmlbDmja4gKi9cbiAgZ2V0UmVjb21tYW5kRGF0YUluZm8oKSB7XG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5lZGl0b3JQYXJhbXMuc291cmNlIHx8ICdCbyc7XG4gICAgdGhpcy5tb2RhbENvbmZpZyA9IHRoaXMuZWRpdG9yUGFyYW1zLnNvdXJjZSA9PSAnQm8nPyB7XG4gICAgICB0aXRsZTogJ+mAieaLqeS4muWKoeWunuS9kycsXG4gICAgICB3aWR0aDogOTAwLFxuICAgICAgaGVpZ2h0OiA1MDAsXG4gICAgICBtaW5XaWR0aDogNjUwLFxuICAgICAgbWluSGVpZ2h0OiAzMDAsXG4gICAgICByZXNpemFibGU6IGZhbHNlLFxuICAgICAgc2hvd0J1dHRvbnM6IHRydWUsXG4gICAgICBzaG93TWF4QnV0dG9uOiBmYWxzZVxuICAgIH0gOntcbiAgICAgIHRpdGxlOiAn6YCJ5oup6KeG5Zu+5qih5Z6LJyxcbiAgICAgIHdpZHRoOiA5MDAsXG4gICAgICBoZWlnaHQ6IDUwMCxcbiAgICAgIG1pbldpZHRoOiA2NTAsXG4gICAgICBtaW5IZWlnaHQ6IDMwMCxcbiAgICAgIHJlc2l6YWJsZTogZmFsc2UsXG4gICAgICBzaG93QnV0dG9uczogdHJ1ZSxcbiAgICAgIHNob3dNYXhCdXR0b246IGZhbHNlXG4gICAgfVxuICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmZvcm1CYXNpY1NlcnZpY2UuZm9ybU1ldGFCYXNpY0luZm8ucmVsYXRpdmVQYXRoO1xuICAgIC8vIOaOqOiNkFxuICAgIHJldHVybiBodHRwLmdldCgnL2FwaS9kZXYvbWFpbi92MS4wL21kc2VydmljZS9tZXRhZGF0YUxpc3RJbicgKyBzb3VyY2UgKyAnP3BhdGg9JyArIHJlbGF0aXZlUGF0aCArICcmbWV0YWRhdGFUeXBlTGlzdD0uYmUnLCB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLmJlUmVjb21tYW5kRGF0YSA9IGNsb25lRGVlcCh0aGlzLmdldEZvcm1EYXRhKGRhdGEsICdsb2NhbCcpKTtcbiAgICAgIGlmICh0aGlzLmJlUmVjb21tYW5kRGF0YSkge1xuICAgICAgICBpZiAodGhpcy5iZVJlY29tbWFuZERhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5zaG93UmVjb21tYW5kRGF0YSgpO1xuICAgICAgICAgIHRoaXMuZ2V0VW5pcXVlRGF0YSh0aGlzLmJlRGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICAvKiog6I635Y+W5pWw5o2uICovXG4gIGdldEZvcm1EYXRhKGRhdGEsIGNhdGVnb3J5KSB7XG4gICAgbGV0IG1ldGFkYXRhID0gW107XG4gICAgY29uc3QgYmVNZXRhZGF0YSA9IGRhdGFbJ21ldGFkYXRhSW5kZXhJdGVtcyddID8gZGF0YVsnbWV0YWRhdGFJbmRleEl0ZW1zJ10gOiBkYXRhO1xuICAgIGlmIChiZU1ldGFkYXRhKSB7XG4gICAgICBiZU1ldGFkYXRhLmZvckVhY2goZnVuY3Rpb24gKGJlTWV0YWRhdGFJdGVtLCBpbmRleCkge1xuICAgICAgICBsZXQgYmVNZXRhZGF0YUl0ZW1UZW1wID0ge1xuICAgICAgICAgIGlkOiBpbmRleCxcbiAgICAgICAgICBuYW1lOiBiZU1ldGFkYXRhSXRlbS5uYW1lLFxuICAgICAgICAgIGxhYmVsOiBiZU1ldGFkYXRhSXRlbS5jb2RlLFxuICAgICAgICAgIHNvdXJjZTogYmVNZXRhZGF0YUl0ZW0ubmFtZVNwYWNlLFxuICAgICAgICAgIGhpZGU6IGZhbHNlLFxuICAgICAgICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgZGF0YTogYmVNZXRhZGF0YUl0ZW0sXG4gICAgICAgICAgY2F0ZWdvcnk6IGNhdGVnb3J5XG4gICAgICAgIH1cbiAgICAgICAgbWV0YWRhdGEucHVzaChiZU1ldGFkYXRhSXRlbVRlbXApO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBtZXRhZGF0YTtcbiAgfVxuXG4gIC8qKiDlsZXnpLrigJzmjqjojZDigJ3kuIDmoI8gKi9cbiAgc2hvd1JlY29tbWFuZERhdGEoKSB7XG4gICAgdGhpcy5jaG9vc2VSZWNvbW1hbmQgPSB0cnVlO1xuICAgIHRoaXMuYmVEYXRhID0gW107XG4gICAgaWYgKHRoaXMuYmVSZWNvbW1hbmREYXRhKSB7XG4gICAgICBpZiAodGhpcy5iZVJlY29tbWFuZERhdGEubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuYmVSZWNvbW1hbmREYXRhLmZvckVhY2goYmVSZWNvbW1hbmREYXRhSXRlbSA9PiB7XG4gICAgICAgICAgdGhpcy5iZURhdGEucHVzaChjbG9uZURlZXAoYmVSZWNvbW1hbmREYXRhSXRlbSkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuYmVSZWNlbnREYXRhKSB7XG4gICAgICBpZiAodGhpcy5iZVJlY2VudERhdGEubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuYmVSZWNlbnREYXRhLmZvckVhY2goYmVSZWNlbnREYXRhSXRlbSA9PiB7XG4gICAgICAgICAgdGhpcy5iZURhdGEucHVzaChjbG9uZURlZXAoYmVSZWNlbnREYXRhSXRlbSkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5nZXRVbmlxdWVEYXRhKHRoaXMuYmVEYXRhKTtcbiAgICB0aGlzLmJlRGF0YSA9IHRoaXMub25TZWFyY2hWYWx1ZUNoYW5nZWQodGhpcy5zZWFyY2hWYWx1ZSk7XG4gIH1cblxuICAvKiog5bGV56S64oCc5YWo6YOo4oCd5LiA5qCPICovXG4gIHNob3dBbGxEYXRhKCkge1xuICAgIHRoaXMuYmVEYXRhID0gY2xvbmVEZWVwKHRoaXMuYmVBbGxEYXRhKTtcbiAgICB0aGlzLmNob29zZVJlY29tbWFuZCA9IGZhbHNlO1xuICAgIHRoaXMuYmVEYXRhID0gdGhpcy5vblNlYXJjaFZhbHVlQ2hhbmdlZCh0aGlzLnNlYXJjaFZhbHVlKTtcbiAgfVxuXG4gIC8qKiDmkJzntKLpobkgKi9cbiAgb25TZWFyY2hWYWx1ZUNoYW5nZWQoc2VhcmNoVmFsdWUpIHtcbiAgICBjb25zdCBzZWFyY2hlZERhdGEgPSB0aGlzLmNob29zZVJlY29tbWFuZCA/IHRoaXMuYmVEYXRhIDogdGhpcy5iZUFsbERhdGFDb3B5O1xuICAgIGlmIChzZWFyY2hlZERhdGEpIHtcbiAgICAgIHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUgPT0gdW5kZWZpbmVkID8gJycgOiBzZWFyY2hWYWx1ZTtcbiAgICAgIHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWVbJ29yaWdpbmFsRXZlbnQnXSAhPSB1bmRlZmluZWQgPyBzZWFyY2hWYWx1ZS52YWx1ZSB8fCAnJyA6IHNlYXJjaFZhbHVlO1xuICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlO1xuICAgICAgLy8g5pCc57Si5qGG5pyJ5YC85pe25YWz6Zet5YiG6aG1XG4gICAgICB0aGlzLnN1cHBvcnRQYWdpbmcgPSB0aGlzLnNlYXJjaFZhbHVlID09ICcnID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgbGV0IHZhbHVlID0gc2VhcmNoVmFsdWUucmVwbGFjZUFsbCgnICcsICcnKS5yZXBsYWNlQWxsKCc+JywgJycpO1xuICAgICAgdmFsdWUgPSB2YWx1ZSA9PSAnJyA/ICcgJyA6IHZhbHVlO1xuICAgICAgc2VhcmNoZWREYXRhLmZvckVhY2goYmVEYXRhSXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGAke2JlRGF0YUl0ZW0ubmFtZX0gJHtiZURhdGFJdGVtLmxhYmVsfWA7XG4gICAgICAgIGJlRGF0YUl0ZW0uaGlkZSA9IHNlbGVjdGVkSXRlbS5pbmNsdWRlcyh2YWx1ZSkgPT0gZmFsc2UgPyB0cnVlIDogZmFsc2U7XG4gICAgICB9KVxuICAgIH1cbiAgICB0aGlzLmJlRGF0YSA9IGNsb25lRGVlcChzZWFyY2hlZERhdGEpO1xuICAgIHJldHVybiB0aGlzLmJlRGF0YTtcbiAgfVxuXG4gIC8qKiDnlKjmiLfpgInmi6nlgLwgKi9cbiAgZ2V0QmVEYXRhSXRlbShzZWxlY3RlZEJlRGF0YUl0ZW0pIHtcbiAgICB0aGlzLmJlRGF0YS5mb3JFYWNoKGJlRGF0YUl0ZW0gPT4ge1xuICAgICAgaWYgKHNlbGVjdGVkQmVEYXRhSXRlbS5pZCA9PSBiZURhdGFJdGVtLmlkKSB7XG4gICAgICAgIGJlRGF0YUl0ZW0uYWN0aXZlID0gIWJlRGF0YUl0ZW0uYWN0aXZlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ29tbWFuZCA9IGNsb25lRGVlcChzZWxlY3RlZEJlRGF0YUl0ZW0pO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGJlRGF0YUl0ZW0uYWN0aXZlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSlcblxuICB9XG5cbiAgLyoqIOeUqOaIt+eCueWHu+ehruWumuaXtuiwg+eUqHBvc3RBcGnkvKDlh7rlj4LmlbAgKi9cbiAgLyoqIOeUqOaItyAqL1xuICBjbGlja0NvbmZpcm0oKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDb21tYW5kICYmIHRoaXMuc2VsZWN0ZWRDb21tYW5kWydhY3RpdmUnXSkge1xuICAgICAgY29uc3QgaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5mb3JtQmFzaWNTZXJ2aWNlLmZvcm1NZXRhQmFzaWNJbmZvLnJlbGF0aXZlUGF0aDtcbiAgICAgIGNvbnN0IHBhdGggPSAnL2FwaS9kZXYvbWFpbi92MS4wL21kc2VydmljZS9waWNrTWV0YWRhdGE/Y3VycmVudFBhdGg9JyArIHJlbGF0aXZlUGF0aDtcbiAgICAgIGNvbnN0IGJvZHkgPSB0aGlzLnNlbGVjdGVkQ29tbWFuZC5kYXRhO1xuICAgICAgY29uc3QgaGVhZGVyT3B0aW9uID0ge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXG4gICAgICB9XG4gICAgICByZXR1cm4gaHR0cC5wb3N0KHBhdGgsIGJvZHksIGhlYWRlck9wdGlvbikuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLnN1Ym1pdE1vZGFsLmVtaXQoZGF0YSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLm5vdGlmeVNlcnZpY2VbJ2luZm8nXSgn5pyq6YCJ5oup5Lia5Yqh5a6e5L2TJyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKiog5riF56m65pCc57Si5YaF5a65ICovXG4gIG9uQ2xlYXIoKSB7XG4gICAgdGhpcy5iZURhdGEgPSB0aGlzLm9uU2VhcmNoVmFsdWVDaGFuZ2VkKCcnKTtcbiAgfVxuXG5cblxuICBjbGlja0NhbmNlbCgpIHtcbiAgICB0aGlzLmNsb3NlTW9kYWwuZW1pdCgpO1xuICB9XG5cbiAgZm9sZEluUmVjZW50KCkge1xuICAgIHRoaXMuZm9sZFJlY2VudCA9ICF0aGlzLmZvbGRSZWNlbnQ7XG4gICAgaWYgKHRoaXMuYmVEYXRhICYmICF0aGlzLnNlYXJjaFZhbHVlKSB7XG4gICAgICB0aGlzLmJlRGF0YS5mb3JFYWNoKGJlRGF0YUl0ZW0gPT4ge1xuICAgICAgICBpZiAoYmVEYXRhSXRlbS5jYXRlZ29yeSA9PSAncmVjZW50Jykge1xuICAgICAgICAgIGJlRGF0YUl0ZW0uaGlkZSA9ICFiZURhdGFJdGVtLmhpZGU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGZvbGRJbkxvY2FsKCkge1xuICAgIHRoaXMuZm9sZExvY2FsID0gIXRoaXMuZm9sZExvY2FsO1xuICAgIGlmICh0aGlzLmJlRGF0YSAmJiAhKHRoaXMuc2VhcmNoVmFsdWUpKSB7XG4gICAgICB0aGlzLmJlRGF0YS5mb3JFYWNoKGJlRGF0YUl0ZW0gPT4ge1xuICAgICAgICBpZiAoYmVEYXRhSXRlbS5jYXRlZ29yeSA9PSAnbG9jYWwnKSB7XG4gICAgICAgICAgYmVEYXRhSXRlbS5oaWRlID0gIWJlRGF0YUl0ZW0uaGlkZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIOWOu+mHjSovXG4gIGdldFVuaXF1ZURhdGEoZGF0YSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBsZXQgdmFsdWUgPSBjbG9uZURlZXAoZGF0YSk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IHZhbHVlLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgaWYgKHZhbHVlW2ldWydpZCddID09IHZhbHVlW2pdWydpZCddKSB7XG4gICAgICAgICAgICB2YWx1ZS5zcGxpY2UoaiwgMSk7XG4gICAgICAgICAgICBqLS07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBkYXRhID0gY2xvbmVEZWVwKHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbiAgLyoqIOaOpeWPo+aVsOaNrui2hei/hzEwMDDmnaHml7bvvIzph43mlrDosIPlj5bmiYDmnInmlbDmja4gKi9cbiAgcmVpbnZva2VJbnRlcmZhY2UoZGF0YSkge1xuICAgIGlmIChkYXRhWydwYWdlJ10pIHtcbiAgICAgIGNvbnN0IHRvdGFsTnVtID0gZGF0YVsncGFnZSddWyd0b3RhbCddIHx8IDA7XG4gICAgICBpZiAodG90YWxOdW0gPiAxMDAwKSB7XG4gICAgICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5lZGl0b3JQYXJhbXMucmVsYXRpdmVQYXRoO1xuICAgICAgICByZXR1cm4gaHR0cC5nZXQoJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvdW5pb25tZGxpc3Q/cGF0aD0nICsgcmVsYXRpdmVQYXRoICsgJyZwYWdlSW5kZXg9MSZwYWdlU2l6ZT0nICsgdG90YWxOdW0gKyAnJm1ldGFkYXRhVHlwZUxpc3Q9LmJlJywge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSksXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICAgICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMuYmVBbGxEYXRhID0gY2xvbmVEZWVwKHRoaXMuZ2V0Rm9ybURhdGEoZGF0YSwgJ2FsbCcpKTtcbiAgICAgICAgICB0aGlzLmJlQWxsRGF0YUNvcHkgPSBjbG9uZURlZXAodGhpcy5iZUFsbERhdGEpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIl19

@@ -199,2 +199,21 @@ import { FormBasicService } from '@farris/designer-services';

const source = this.editorParams.source || 'Bo';
this.modalConfig = this.editorParams.source == 'Bo' ? {
title: '选择业务实体',
width: 900,
height: 500,
minWidth: 650,
minHeight: 300,
resizable: false,
showButtons: true,
showMaxButton: false
} : {
title: '选择视图模型',
width: 900,
height: 500,
minWidth: 650,
minHeight: 300,
resizable: false,
showButtons: true,
showMaxButton: false
};
/** @type {?} */

@@ -201,0 +220,0 @@ const http = this.injector.get(HttpClient);

@@ -221,2 +221,21 @@ import { FormBasicService } from '@farris/designer-services';

var source = this.editorParams.source || 'Bo';
this.modalConfig = this.editorParams.source == 'Bo' ? {
title: '选择业务实体',
width: 900,
height: 500,
minWidth: 650,
minHeight: 300,
resizable: false,
showButtons: true,
showMaxButton: false
} : {
title: '选择视图模型',
width: 900,
height: 500,
minWidth: 650,
minHeight: 300,
resizable: false,
showButtons: true,
showMaxButton: false
};
/** @type {?} */

@@ -223,0 +242,0 @@ var http = this.injector.get(HttpClient);

{
"name": "@farris/app-navigation-be",
"version": "0.0.1",
"version": "0.0.2",
"publishConfig": {

@@ -5,0 +5,0 @@ "access": "public",

@@ -1,24 +0,2 @@

# AppNavigationBe
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.0.
## Code scaffolding
Run `ng generate component component-name --project appNavigationBe` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project appNavigationBe`.
> Note: Don't forget to add `--project appNavigationBe` or else it will be added to the default project in your `angular.json` file.
## Build
Run `ng build appNavigationBe` to build the project. The build artifacts will be stored in the `dist/` directory.
## Publishing
After building your library with `ng build appNavigationBe`, go to the dist folder `cd dist/app-navigation-be` and run `npm publish`.
## Running unit tests
Run `ng test appNavigationBe` to execute the unit tests via [Karma](https://karma-runner.github.io).
## Further help
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
## 0.0.2
1.修改视图模型标题

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc