@sunbird-cb/consumption 0.0.60 → 0.0.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -89,7 +89,7 @@ export class CardPortraitExtComponent {
89
89
  CardPortraitExtComponent.decorators = [
90
90
  { type: Component, args: [{
91
91
  selector: 'sb-uic-card-portrait-ext',
92
- template: "<ng-container *ngIf=\"!isCardLoading\">\n <mat-card class=\"card-standard-container mr-5 padding-remove cursor-pointer {{widgetData?.cardCustomeClass}}\" [ngClass]=\"{\n greyOut:\n widgetData?.deletedMode === 'greyOut' && !isLiveOrMarkForDeletion\n ? true\n : widgetData?.intranetMode === 'greyOut' && showIntranetContent\n }\" (click)=\"(showIntranetContent || !isLiveOrMarkForDeletion) && showSnackbar()\">\n <div class=\"display-contents\" [ngClass]=\"{\n disableClick:\n widgetData?.deletedMode === 'greyOut' && !isLiveOrMarkForDeletion\n ? true\n : widgetData?.intranetMode === 'greyOut' && showIntranetContent\n }\">\n <ng-container *ngIf=\"widgetData?.content\">\n <a (click)=\"getRedirectUrlData(widgetData?.content); $event.stopPropagation()\"\n role=\"link\" i18n-aria-label>\n <ng-container *ngIf=\"!isCardFlipped\">\n <div class=\"status-danger\" role=\"note\" i18n-aria-label aria-label=\"Content expired or deleted\" i18n-matTooltip\n matTooltip=\"Content may be expired or deleted\" *ngIf=\"!isLiveOrMarkForDeletion\"></div>\n <div class=\"status-danger\" role=\"note\" i18n-aria-label aria-label=\"Intranet content\" i18n-matTooltip\n matTooltip=\"Available only in Company's network\"\n *ngIf=\"widgetData?.intranetMode === 'greyOut' && showIntranetContent\"></div>\n <button *ngIf=\"showFlip\" class=\"detail-button ws-mat-primary-lite-background-op30\" mat-icon-button\n (click)=\"isCardFlipped = true\" aria-label=\"Details\" i18n-aria-label=\"Details | Click to see details\">\n <mat-icon>flip_to_back</mat-icon>\n </button>\n <mat-card-content class=\"min-top\">\n <div style=\"position: relative; z-index: 1;\">\n <ng-container *ngIf=\"widgetData?.content?.posterImage\">\n <img mat-card-image [src]=\"widgetData.content.posterImage | pipePublicURL\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData.content.name\" />\n </ng-container>\n <ng-container *ngIf=\"!widgetData.content.posterImage\">\n <ng-container *ngIf=\"widgetData.content.appIcon; else defaultImg\">\n <img mat-card-image [src]=\"widgetData.content.appIcon \" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-container>\n <ng-template #defaultImg>\n <img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-template>\n </ng-container>\n <div class=\"source-div\" style=\"display: none;\">\n <img [src]=\"widgetData?.content.contentPartner.link\" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData?.content?.sourceName + '_' + widgetData.content?.contentId)\" />\n </div>\n <ng-container *ngIf=\"widgetData?.content?.cbPlanEndDate\">\n <div class=\"cbp-mark\">\n <span>{{widgetData?.content?.cbPlanEndDate | date: 'd MMM, y'}}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"cbPlanMapData && cbPlanMapData[widgetData?.content?.contentId] && cbPlanMapData[widgetData?.content?.identifier]?.contentStatus < 2 \">\n <ng-container [ngTemplateOutlet]=\"cbpPlan\" [ngTemplateOutletContext]=\"{data: {\n cbpData: cbPlanMapData[widgetData?.content?.contentId]\n }}\"></ng-container>\n </ng-container>\n <div class=\"duration-box right-corner\" *ngIf=\"widgetData?.content?.duration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{ (widgetData?.content?.duration || 120)| pipeDurationTransform: 'hms' }}\n </span>\n </div>\n <div class=\"duration-box right-corner\" *ngIf=\"widgetData?.content?.programDuration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{widgetData?.content?.programDuration}} {{widgetData?.content?.programDuration === 1 ? 'day' : 'days'}}\n </span>\n </div>\n </div>\n <div class=\"padding-m\">\n <div class=\"course_widget flex margin-remove\">\n <div class=\"flex flex-end course_v2\">\n <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs\">video_library</mat-icon>\n <sb-uic-display-content-type [useTranslation]=\"false\" i18n-title title=\"Content Type\" *ngIf=\"widgetData.content?.topic\"\n class=\"ws-mat-black60-text font-normal mat-caption \" [displayContentType]=\"'External Course'\">\n \n </sb-uic-display-content-type>\n </div>\n </div>\n <div [id]=\"'m-c-'+ widgetData.content?.contentId\"\n class=\"mat-subheading-1 title-text ws-mat-text-block-fade-gradient\" [matTooltip]=\"widgetData.content.name\">\n {{ widgetData.content.name }}\n </div>\n <div class=\"flex w-full flex-wrap flex-middle\">\n <div class=\"course_logo_box\">\n <img [src]=\"widgetData.content.contentPartner.link \" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData.content.sourceName + '_' + widgetData.content.contentId)\" />\n </div>\n <!-- <span class=\"org-text\">{{'cardcontentv2.by' | translate}} -->\n <span class=\"org-text\">By&nbsp; {{ (widgetData?.content?.contentPartner?.contentPartnerName) ? widgetData?.content?.contentPartner?.contentPartnerName : 'Karmayogi Bharat' }}</span>\n </div>\n <div class=\"flex flex-middle rating-session margin-top-m\">\n <div class=\"flex flex-middle\" *ngIf=\"widgetData?.content?.avgRating\">\n <mat-icon class=\"mr-1\">star</mat-icon>\n <span>{{widgetData.content.avgRating}}</span>\n </div>\n <!-- <span class=\"most-enrolled-text margin-left-m\">{{ 'cardcontentv2.mostEnrolled' | translate }}</span> -->\n <ng-container *ngIf=\"widgetData?.content?.additionalTags && widgetData?.content?.additionalTags.includes('mostEnrolled')\">\n <span class=\"most-enrolled-text margin-left-xs\">\n <!-- {{ 'cardcontentv2.mostEnrolled' | translate }} -->\n </span>\n </ng-container>\n <ng-container *ngIf=\"widgetData?.content?.additionalTags && widgetData?.content?.additionalTags.includes('mostTrending')\">\n <span class=\"most-enrolled-text margin-left-xs\">\n <!-- {{ 'cardcontentv2.mostTrending' | translate }} -->\n </span>\n </ng-container>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n <ng-container *ngIf=\"isCardFlipped\">\n <div class=\"flex items-center\">\n <!-- <h2 class=\"mat-subheading-2 flex-1 min-w-0 margin-remove-bottom\" i18n>{{'cardcontentv2.reason' | translate}}</h2> -->\n <button mat-icon-button (click)=\"isCardFlipped = false\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <p class=\"text-justify mat-body-1\">\n {{ widgetData.content.reason }}\n </p>\n </ng-container>\n </a>\n </ng-container>\n </div>\n </mat-card>\n </ng-container>\n \n <ng-container *ngIf=\"isCardLoading\">\n <mat-card class=\"card-standard-container mr-5 padding-remove\" >\n <div class=\"display-contents\" >\n <ng-container *ngIf=\"!isCardFlipped\">\n <mat-card-content class=\"min-top\">\n <div style=\"position: relative; z-index: 1;\">\n <ng-container>\n <sb-uic-skeleton-loader [width]=\"'100%'\" [height]=\"'140px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n <div class=\"padding-m\">\n <div class=\"course_widget flex margin-remove\">\n <div class=\"flex flex-end\">\n <sb-uic-skeleton-loader [width]=\"'65px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"mat-subheading-1 title-text ws-mat-text-block-fade-gradient\">\n <sb-uic-skeleton-loader [width]=\"'100%'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [width]=\"'111px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded margin-top-s'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex w-full flex-wrap flex-middle margin-top-m\">\n <div class=\"\">\n <sb-uic-skeleton-loader [width]=\"'28px'\" [height]=\"'28px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n <span class=\"org-text\"> <sb-uic-skeleton-loader [width]=\"'111px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader></span>\n </div>\n <div class=\"flex flex-middle rating-session margin-top-m\">\n <div class=\"flex flex-middle\">\n <sb-uic-skeleton-loader [width]=\"'45px'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded margin-top-m'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n </div>\n </mat-card>\n </ng-container>\n \n <ng-template #cbpPlan let-data=\"data\">\n <div class=\"cbp-mark left-0 border-top-radius\">\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.UPCOMING\" class=\"cbp-warning\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.SUCCESS\" class=\"cbp-success\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.OVERDUE\" class=\"cbp-danger\">{{'OverDue' }}</p>\n </div>\n </ng-template>",
92
+ template: "<ng-container *ngIf=\"!isCardLoading\">\n <mat-card class=\"card-standard-container mr-5 padding-remove cursor-pointer {{widgetData?.cardCustomeClass}}\" [ngClass]=\"{\n greyOut:\n widgetData?.deletedMode === 'greyOut' && !isLiveOrMarkForDeletion\n ? true\n : widgetData?.intranetMode === 'greyOut' && showIntranetContent\n }\" (click)=\"(showIntranetContent || !isLiveOrMarkForDeletion) && showSnackbar()\">\n <div class=\"display-contents\" [ngClass]=\"{\n disableClick:\n widgetData?.deletedMode === 'greyOut' && !isLiveOrMarkForDeletion\n ? true\n : widgetData?.intranetMode === 'greyOut' && showIntranetContent\n }\">\n <ng-container *ngIf=\"widgetData?.content\">\n <a (click)=\"getRedirectUrlData(widgetData?.content); $event.stopPropagation()\"\n role=\"link\" i18n-aria-label>\n <ng-container *ngIf=\"!isCardFlipped\">\n <div class=\"status-danger\" role=\"note\" i18n-aria-label aria-label=\"Content expired or deleted\" i18n-matTooltip\n matTooltip=\"Content may be expired or deleted\" *ngIf=\"!isLiveOrMarkForDeletion\"></div>\n <div class=\"status-danger\" role=\"note\" i18n-aria-label aria-label=\"Intranet content\" i18n-matTooltip\n matTooltip=\"Available only in Company's network\"\n *ngIf=\"widgetData?.intranetMode === 'greyOut' && showIntranetContent\"></div>\n <button *ngIf=\"showFlip\" class=\"detail-button ws-mat-primary-lite-background-op30\" mat-icon-button\n (click)=\"isCardFlipped = true\" aria-label=\"Details\" i18n-aria-label=\"Details | Click to see details\">\n <mat-icon>flip_to_back</mat-icon>\n </button>\n <mat-card-content class=\"min-top\">\n <div style=\"position: relative; z-index: 1;\">\n <ng-container *ngIf=\"widgetData?.content?.posterImage\">\n <img mat-card-image [src]=\"widgetData.content.posterImage | pipePublicURL\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData.content.name\" />\n </ng-container>\n <ng-container *ngIf=\"!widgetData.content.posterImage\">\n <ng-container *ngIf=\"widgetData.content.appIcon; else defaultImg\">\n <img mat-card-image [src]=\"widgetData.content.appIcon \" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-container>\n <ng-template #defaultImg>\n <img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-template>\n </ng-container>\n <div class=\"source-div\" style=\"display: none;\">\n <img [src]=\"widgetData?.content?.contentPartner?.link\" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData?.content?.sourceName + '_' + widgetData.content?.contentId)\" />\n </div>\n <ng-container *ngIf=\"widgetData?.content?.cbPlanEndDate\">\n <div class=\"cbp-mark\">\n <span>{{widgetData?.content?.cbPlanEndDate | date: 'd MMM, y'}}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"cbPlanMapData && cbPlanMapData[widgetData?.content?.contentId] && cbPlanMapData[widgetData?.content?.identifier]?.contentStatus < 2 \">\n <ng-container [ngTemplateOutlet]=\"cbpPlan\" [ngTemplateOutletContext]=\"{data: {\n cbpData: cbPlanMapData[widgetData?.content?.contentId]\n }}\"></ng-container>\n </ng-container>\n <div class=\"duration-box right-corner\" *ngIf=\"widgetData?.content?.duration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{ (widgetData?.content?.duration || 120)| pipeDurationTransform: 'hms' }}\n </span>\n </div>\n <div class=\"duration-box right-corner\" *ngIf=\"widgetData?.content?.programDuration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{widgetData?.content?.programDuration}} {{widgetData?.content?.programDuration === 1 ? 'day' : 'days'}}\n </span>\n </div>\n </div>\n <div class=\"padding-m\">\n <div class=\"course_widget flex margin-remove\">\n <div class=\"flex flex-end course_v2\">\n <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs\">video_library</mat-icon>\n <sb-uic-display-content-type [useTranslation]=\"false\" i18n-title title=\"Content Type\" *ngIf=\"widgetData.content?.topic\"\n class=\"ws-mat-black60-text font-normal mat-caption \" [displayContentType]=\"'External Course'\">\n \n </sb-uic-display-content-type>\n </div>\n </div>\n <div [id]=\"'m-c-'+ widgetData.content?.contentId\"\n class=\"mat-subheading-1 title-text ws-mat-text-block-fade-gradient\" [matTooltip]=\"widgetData.content.name\">\n {{ widgetData.content.name }}\n </div>\n <div class=\"flex w-full flex-wrap flex-middle\">\n <div class=\"course_logo_box\">\n <img [src]=\"widgetData.content.contentPartner.link \" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData.content.sourceName + '_' + widgetData.content.contentId)\" />\n </div>\n <!-- <span class=\"org-text\">{{'cardcontentv2.by' | translate}} -->\n <span class=\"org-text\">By&nbsp; {{ (widgetData?.content?.contentPartner?.contentPartnerName) ? widgetData?.content?.contentPartner?.contentPartnerName : 'Karmayogi Bharat' }}</span>\n </div>\n <div class=\"flex flex-middle rating-session margin-top-m\">\n <div class=\"flex flex-middle\" *ngIf=\"widgetData?.content?.avgRating\">\n <mat-icon class=\"mr-1\">star</mat-icon>\n <span>{{widgetData.content.avgRating}}</span>\n </div>\n <!-- <span class=\"most-enrolled-text margin-left-m\">{{ 'cardcontentv2.mostEnrolled' | translate }}</span> -->\n <ng-container *ngIf=\"widgetData?.content?.additionalTags && widgetData?.content?.additionalTags.includes('mostEnrolled')\">\n <span class=\"most-enrolled-text margin-left-xs\">\n <!-- {{ 'cardcontentv2.mostEnrolled' | translate }} -->\n </span>\n </ng-container>\n <ng-container *ngIf=\"widgetData?.content?.additionalTags && widgetData?.content?.additionalTags.includes('mostTrending')\">\n <span class=\"most-enrolled-text margin-left-xs\">\n <!-- {{ 'cardcontentv2.mostTrending' | translate }} -->\n </span>\n </ng-container>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n <ng-container *ngIf=\"isCardFlipped\">\n <div class=\"flex items-center\">\n <!-- <h2 class=\"mat-subheading-2 flex-1 min-w-0 margin-remove-bottom\" i18n>{{'cardcontentv2.reason' | translate}}</h2> -->\n <button mat-icon-button (click)=\"isCardFlipped = false\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <p class=\"text-justify mat-body-1\">\n {{ widgetData.content.reason }}\n </p>\n </ng-container>\n </a>\n </ng-container>\n </div>\n </mat-card>\n </ng-container>\n \n <ng-container *ngIf=\"isCardLoading\">\n <mat-card class=\"card-standard-container mr-5 padding-remove\" >\n <div class=\"display-contents\" >\n <ng-container *ngIf=\"!isCardFlipped\">\n <mat-card-content class=\"min-top\">\n <div style=\"position: relative; z-index: 1;\">\n <ng-container>\n <sb-uic-skeleton-loader [width]=\"'100%'\" [height]=\"'140px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n <div class=\"padding-m\">\n <div class=\"course_widget flex margin-remove\">\n <div class=\"flex flex-end\">\n <sb-uic-skeleton-loader [width]=\"'65px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"mat-subheading-1 title-text ws-mat-text-block-fade-gradient\">\n <sb-uic-skeleton-loader [width]=\"'100%'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [width]=\"'111px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded margin-top-s'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex w-full flex-wrap flex-middle margin-top-m\">\n <div class=\"\">\n <sb-uic-skeleton-loader [width]=\"'28px'\" [height]=\"'28px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n <span class=\"org-text\"> <sb-uic-skeleton-loader [width]=\"'111px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader></span>\n </div>\n <div class=\"flex flex-middle rating-session margin-top-m\">\n <div class=\"flex flex-middle\">\n <sb-uic-skeleton-loader [width]=\"'45px'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded margin-top-m'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n </div>\n </mat-card>\n </ng-container>\n \n <ng-template #cbpPlan let-data=\"data\">\n <div class=\"cbp-mark left-0 border-top-radius\">\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.UPCOMING\" class=\"cbp-warning\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.SUCCESS\" class=\"cbp-success\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.OVERDUE\" class=\"cbp-danger\">{{'OverDue' }}</p>\n </div>\n </ng-template>",
93
93
  styles: [".course_widget{margin-top:10px}.course_widget .mat-icon{vertical-align:middle;color:#ef951e!important}.course_widget .course_v2{border:1px solid #ef951e;padding:4px 8px;align-items:end;border-radius:16px}.course_widget .main_icon{font-size:16px;width:16px;height:16px}.rating-session mat-icon{font-size:16px;height:16px;width:12px;padding-right:3px;color:#ef951e}.rating-session span{font-size:11px}.rating-session .most-enrolled-text{padding:0 8px;background:#ffea9e;border-radius:4px}.card-standard-container{position:relative;width:245px;min-height:346px;border-radius:8px;box-sizing:border-box;box-shadow:0 10px 30px rgba(153,153,153,.2);overflow:hidden;height:346px;margin:20px 8px}.card-standard-container .progress-bar{width:101%;margin-left:-15px;display:flex;margin-top:0;background:bisque;position:absolute;bottom:0}.card-standard-container ::ng-deep .mat-progress-bar{height:8px!important}.card-standard-container .icon_text{font-size:12px;line-height:16px;text-transform:uppercase}.card-standard-container .course_logo_box{width:38px;height:38px;background:#fff;border-radius:8px;box-sizing:border-box;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.card-standard-container .course_logo_box img{height:28px;width:28px;padding:5px;display:inline-block}.card-standard-container .course_logo_box p{display:inline-block;vertical-align:top}.card-standard-container .org-text{font-size:12px;font-weight:400;width:75%;padding-left:10px;word-break:break-all;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.card-standard-container .source-div{position:relative;top:100px;background:#fff;z-index:3;border:1px solid #dedfe0;min-width:72px;min-height:72px;max-width:72px;max-height:72px;display:flex;border-radius:8px}.card-standard-container .source-div .source-icon{border-radius:8px;display:block;margin:auto;max-width:58px;max-height:-webkit-fill-available}.card-standard-container mat-card-content{background:#fff}.card-standard-container .card-img{min-width:245px;max-height:140px;min-height:140px;display:block;-o-object-fit:fill;object-fit:fill;border-top-left-radius:8px;border-top-right-radius:8px;width:100%}.card-standard-container .mat-subheading-1{font:600 14px/24px Montserrat}.card-standard-container .complexity{padding-top:70px;display:flex;font-size:14px;line-height:21px;padding-bottom:10px}.card-standard-container .complexity .mode-tag{border-radius:5px;order:2;margin-left:auto;color:#fff;font-size:10px}.card-standard-container .complexity .duration{display:flex;margin-left:auto;order:3;font-weight:700}.card-standard-container .complexity .time-text{margin:0 5px 0 6px;font-weight:700}.card-standard-container .basic{margin:auto 0}.card-standard-container .title-text{word-break:break-all;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:48px}.card-standard-container .description-text{position:relative;overflow:hidden;height:42px;white-space:normal;text-overflow:ellipsis}.duration-box{background:#000;position:absolute;border:none;display:flex;align-items:center;padding:4px;border-radius:4px}.duration-box.right-corner{right:4px;bottom:4px}.duration-box .mat-icon{vertical-align:middle;color:#fff!important;height:14px!important;width:14px!important;font-size:14px}.duration-box .duration{font:700 12px/16px Lato;display:inline-block;margin:0;padding:0}.width-238{width:238px!important}.cbp-mark{border-radius:12px 0;opacity:1;background-image:linear-gradient(90deg,rgba(0,0,0,.6) 0,rgba(0,0,0,0) 100%);position:absolute;top:0;padding:8px}.cbp-mark p{opacity:1;background-color:#fff;padding:4px;opacity:1;color:#1b2133;font-family:Lato-Regular;font-size:10px;font-weight:400;font-style:Regular;letter-spacing:.5px;text-align:left;line-height:12px;margin-bottom:0}.cbpwidth{width:340px}.cbp-plan{border-radius:4px;opacity:1;background-color:#1b4ca1;top:4px;left:4px;opacity:1;color:rgba(255,255,255,.95);font-family:Lato-Bold;font-size:12px;font-weight:700;font-style:normal;letter-spacing:.25px;text-align:center;line-height:16px;padding:4px}.cbp-info{opacity:1;color:#fff;font-family:Lato-Regular;font-size:10px;font-weight:400;font-style:normal;letter-spacing:.5px;text-align:left;line-height:12px;padding:2px}.cbp-danger{border-radius:2px;border:1px solid rgba(0,0,0,.08);background-color:#d13924!important;color:#fff!important;opacity:1}.cbp-success{border-radius:2px;border:1px solid #1d8922;background-color:#1d8922!important;color:#fff!important;opacity:1}.cbp-warning{border-radius:2px;border:1px solid #ef951e;background-color:#ef951e!important;color:#fff!important;opacity:1}.tooltiptext{visibility:hidden;width:90px;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:4px 0;position:absolute;z-index:1;top:25px;left:-32px;font-size:12px}.title-text:hover .tooltiptext{visibility:visible}"]
94
94
  }] }
95
95
  ];
@@ -167,4 +167,4 @@ if (false) {
167
167
  */
168
168
  CardPortraitExtComponent.prototype.contSvc;
169
169
  }
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1wb3J0cmFpdC1leHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bmJpcmQtY2IvY29uc3VtcHRpb24vIiwic291cmNlcyI6WyJsaWIvX2NvbW1vbi9jYXJkcy9jYXJkLXBvcnRyYWl0LWV4dC9jYXJkLXBvcnRyYWl0LWV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFFM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDdkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFPakYsTUFBTSxPQUFPLHdCQUF3Qjs7Ozs7Ozs7SUFnQm5DLFlBQ1UsUUFBcUIsRUFDckIsU0FBMkIsRUFDM0IsZ0JBQWlELEVBQ2pELFNBQWdDLEVBQ2hDLE9BQTZCO1FBSjdCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQztRQUNqRCxjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUNoQyxZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQWhCOUIsa0JBQWEsR0FBWSxLQUFLLENBQUE7UUFDN0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO1FBRS9DLGtCQUFhLEdBQVcsS0FBSyxDQUFBO1FBQzdCLGtCQUFhLEdBQUcsYUFBYSxDQUFDLFNB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LHVEQUFpQzs7SUFDakMsNkRBQXVDOztJQUN2QyxpREFBdUM7O0lBQ3ZDLCtDQUErQzs7SUFDL0MsaURBQTRCOztJQUM1QixpREFBNkI7O0lBQzdCLGlEQUF1Qzs7SUFDdkMsb0RBQXFCOztJQUNyQiwrQ0FBZ0I7O0lBQ2hCLGdEQUFpQjs7SUFDakIsNENBQWdCOztJQUNoQiw4Q0FBc0I7O0lBQ3RCLGlEQUF5Qjs7Ozs7SUFFdkIsNENBQTZCOzs7OztJQUM3Qiw2Q0FBbUM7Ozs7O0lBQ25DLG9EQUF5RDs7Ozs7SUFDekQsNkNBQXdDOzs7OztJQUN4QywyQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOc0NhcmRDb250ZW50IH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscy9jYXJkLWNvbnRlbnQubW9kZWwnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UsIEV2ZW50U2VydmljZSB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJztcbmltcG9ydCAqIGFzIF8gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcy9tdWx0aWxpbmd1YWwtdHJhbnNsYXRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2lkZ2V0Q29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMvd2lkZ2V0LWNvbnRlbnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NiLXVpYy1jYXJkLXBvcnRyYWl0LWV4dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLXBvcnRyYWl0LWV4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtcG9ydHJhaXQtZXh0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2FyZFBvcnRyYWl0RXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgd2lkZ2V0RGF0YSE6IE5zQ2FyZENvbnRlbnQuSUNhcmQ7XG4gIEBJbnB1dCgpIGlzTGl2ZU9yTWFya0ZvckRlbGV0aW9uOiBhbnlcbiAgQElucHV0KCkgc2hvd0ludHJhbmV0Q29udGVudDogYW55XG4gIEBJbnB1dCgpIGlzSW50cmFuZXRBbGxvd2VkU2V0dGluZ3M6IGFueVxuICBASW5wdXQoKSBpc0NhcmRMb2FkaW5nOiBib29sZWFuID0gZmFsc2VcbiAgQE91dHB1dCgpIGNvbnRlbnREYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgQElucHV0KCkgIGNiUGxhbk1hcERhdGE6IGFueVxuICBpc0NhcmRGbGlwcGVkOmJvb2xlYW4gPSBmYWxzZVxuICBhY2JwQ29uc3RhbnRzID0gTnNDYXJkQ29udGVudC5BQ0JQQ29uc3RcbiAgZGVmYXVsdFRodW1ibmFpbDogYW55XG4gIHNvdXJjZUxvZ29zOiBhbnlcbiAgZGVmYXVsdFNMb2dvOiBhbnlcbiAgc2hvd0ZsaXAgPSBmYWxzZVxuICB3aWRnZXRUeXBlOiBhbnkgPSAnZGYnXG4gIHdpZGdldFN1YlR5cGU6IGFueSA9J3NkZidcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5ndHJhbnNsYXRpb25zOiBNdWx0aWxpbmd1YWxUcmFuc2xhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnU3ZjOiBDb25maWd1cmF0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250U3ZjOiBXaWRnZXRDb250ZW50U2VydmljZSwpIHsgXG4gICAgICB0aGlzLmxhbmd0cmFuc2xhdGlvbnMubGFuZ3VhZ2VTZWxlY3RlZE9ic2VydmFibGUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJzaXRlTGFuZ3VhZ2UnKSkge1xuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLnNldERlZmF1bHRMYW5nKCdlbicpXG4gICAgICAgICAgY29uc3QgbGFuZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJzaXRlTGFuZ3VhZ2UnKSFcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZylcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMud2lkZ2V0RGF0YSAmJiB0aGlzLndpZGdldERhdGEuY29udGVudCkge1xuICAgICAgdGhpcy53aWRnZXREYXRhLmNvbnRlbnQuZHVyYXRpb24gPSB0aGlzLndpZGdldERhdGEuY29udGVudC5kdXJhdGlvbiAqIDYwXG4gICAgfVxuICAgIGNvbnN0IGluc3RhbmNlQ29uZmlnID0gdGhpcy5jb25maWdTdmMuaW5zdGFuY2VDb25maWdcbiAgICBpZiAoaW5zdGFuY2VDb25maWcpIHtcbiAgICAgIHRoaXMuZGVmYXVsdFRodW1ibmFpbCA9IGluc3RhbmNlQ29uZmlnLmxvZ29zLmRlZmF1bHRDb250ZW50IHx8ICcnXG4gICAgICB0aGlzLnNvdXJjZUxvZ29zID0gaW5zdGFuY2VDb25maWcuc291cmNlc1xuICAgICAgdGhpcy5kZWZhdWx0U0xvZ28gPSBpbnN0YW5jZUNvbmZpZy5sb2dvcy5kZWZhdWx0U291cmNlTG9nbyB8fCAnJ1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlZmF1bHRUaHVtYm5haWwgPSAnL2Fzc2V0cy9pbnN0YW5jZXMvZWFnbGUvYXBwX2xvZ29zL2RlZmF1bHQucG5nJ1xuICAgICAgdGhpcy5kZWZhdWx0U0xvZ28gPSAgJy9hc3NldHMvaW5zdGFuY2VzL2VhZ2xlL2FwcF9sb2dvcy9LYXJtYXlvZ2lCaGFyYXRfTG9nby5zdmcnXG4gICAgfVxuICB9XG5cbiAgc2hvd1NuYWNrYmFyKCkge1xuICAgIGlmICh0aGlzLnNob3dJbnRyYW5ldENvbnRlbnQpIHtcbiAgICAgIHRoaXMuc25hY2tCYXIub3BlbignQ29udGVudCBpcyBvbmx5IGF2YWlsYWJsZSBpbiBpbnRyYW5ldCcsICdYJywgeyBkdXJhdGlvbjogMjAwMCB9KVxuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNMaXZlT3JNYXJrRm9yRGVsZXRpb24pIHtcbiAgICAgIHRoaXMuc25hY2tCYXIub3BlbignQ29udGVudCBtYXkgYmUgZXhwaXJlZCBvciBkZWxldGVkJywgJ1gnLCB7IGR1cmF0aW9uOiAyMDAwIH0pXG4gICAgfVxuICB9XG4gIGdldFJlZGlyZWN0VXJsRGF0YShjb250ZW50RGF0YTogYW55KXtcbiAgICAvLyBmb3IgdGVsZW1ldHJ5XG4gICAgaWYgKHRoaXMud2lkZ2V0RGF0YSAmJiB0aGlzLndpZGdldERhdGEuY29udGV4dCAmJiB0aGlzLndpZGdldERhdGEuY29udGV4dC5wYWdlU2VjdGlvbikge1xuICAgICAgY29udGVudERhdGFbJ3R5cGVPZlRlbGVtZXRyeSddID0gdGhpcy53aWRnZXREYXRhLmNvbnRleHQucGFnZVNlY3Rpb25cbiAgICB9XG4gICAgdGhpcy5jb250U3ZjLmNoYW5nZVRlbGVtZXRyeURhdGEoY29udGVudERhdGEpXG4gICAgLy8gZm9yIHJlZGlyZWN0aW9uXG4gICAgdGhpcy5jb250ZW50RGF0YS5lbWl0KGNvbnRlbnREYXRhKVxuICB9XG59XG4iXX0=
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1wb3J0cmFpdC1leHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bmJpcmQtY2IvY29uc3VtcHRpb24vIiwic291cmNlcyI6WyJsaWIvX2NvbW1vbi9jYXJkcy9jYXJkLXBvcnRyYWl0LWV4dC9jYXJkLXBvcnRyYWl0LWV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFFM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDdkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFPakYsTUFBTSxPQUFPLHdCQUF3Qjs7Ozs7Ozs7SUFnQm5DLFlBQ1UsUUFBcUIsRUFDckIsU0FBMkIsRUFDM0IsZ0JBQWlELEVBQ2pELFNBQWdDLEVBQ2hDLE9BQTZCO1FBSjdCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQztRQUNqRCxjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUNoQyxZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQWhCOUIsa0JBQWEsR0FBWSxLQUFLLENBQUE7UUFDN0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO1FBRS9DLGtCQUFhLEdBQVcsS0FBSyxDQUFBO1FBQzdCLGtCQUFhLEdBQUcsYUFBYSxDQUFDLFNB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LHVEQUFpQzs7SUFDakMsNkRBQXVDOztJQUN2QyxpREFBdUM7O0lBQ3ZDLCtDQUErQzs7SUFDL0MsaURBQTRCOztJQUM1QixpREFBNkI7O0lBQzdCLGlEQUF1Qzs7SUFDdkMsb0RBQXFCOztJQUNyQiwrQ0FBZ0I7O0lBQ2hCLGdEQUFpQjs7SUFDakIsNENBQWdCOztJQUNoQiw4Q0FBc0I7O0lBQ3RCLGlEQUF5Qjs7Ozs7SUFFdkIsNENBQTZCOzs7OztJQUM3Qiw2Q0FBbUM7Ozs7O0lBQ25DLG9EQUF5RDs7Ozs7SUFDekQsNkNBQXdDOzs7OztJQUN4QywyQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOc0NhcmRDb250ZW50IH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscy9jYXJkLWNvbnRlbnQubW9kZWwnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UsIEV2ZW50U2VydmljZSB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJztcbmltcG9ydCAqIGFzIF8gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcy9tdWx0aWxpbmd1YWwtdHJhbnNsYXRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2lkZ2V0Q29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMvd2lkZ2V0LWNvbnRlbnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NiLXVpYy1jYXJkLXBvcnRyYWl0LWV4dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLXBvcnRyYWl0LWV4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtcG9ydHJhaXQtZXh0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2FyZFBvcnRyYWl0RXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgd2lkZ2V0RGF0YSE6IE5zQ2FyZENvbnRlbnQuSUNhcmQ7XG4gIEBJbnB1dCgpIGlzTGl2ZU9yTWFya0ZvckRlbGV0aW9uOiBhbnlcbiAgQElucHV0KCkgc2hvd0ludHJhbmV0Q29udGVudDogYW55XG4gIEBJbnB1dCgpIGlzSW50cmFuZXRBbGxvd2VkU2V0dGluZ3M6IGFueVxuICBASW5wdXQoKSBpc0NhcmRMb2FkaW5nOiBib29sZWFuID0gZmFsc2VcbiAgQE91dHB1dCgpIGNvbnRlbnREYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgQElucHV0KCkgIGNiUGxhbk1hcERhdGE6IGFueVxuICBpc0NhcmRGbGlwcGVkOmJvb2xlYW4gPSBmYWxzZVxuICBhY2JwQ29uc3RhbnRzID0gTnNDYXJkQ29udGVudC5BQ0JQQ29uc3RcbiAgZGVmYXVsdFRodW1ibmFpbDogYW55XG4gIHNvdXJjZUxvZ29zOiBhbnlcbiAgZGVmYXVsdFNMb2dvOiBhbnlcbiAgc2hvd0ZsaXAgPSBmYWxzZVxuICB3aWRnZXRUeXBlOiBhbnkgPSAnZGYnXG4gIHdpZGdldFN1YlR5cGU6IGFueSA9J3NkZidcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5ndHJhbnNsYXRpb25zOiBNdWx0aWxpbmd1YWxUcmFuc2xhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnU3ZjOiBDb25maWd1cmF0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250U3ZjOiBXaWRnZXRDb250ZW50U2VydmljZSwpIHsgXG4gICAgICB0aGlzLmxhbmd0cmFuc2xhdGlvbnMubGFuZ3VhZ2VTZWxlY3RlZE9ic2VydmFibGUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJzaXRlTGFuZ3VhZ2UnKSkge1xuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLnNldERlZmF1bHRMYW5nKCdlbicpXG4gICAgICAgICAgY29uc3QgbGFuZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJzaXRlTGFuZ3VhZ2UnKSFcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZylcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMud2lkZ2V0RGF0YSAmJiB0aGlzLndpZGdldERhdGEuY29udGVudCkge1xuICAgICAgdGhpcy53aWRnZXREYXRhLmNvbnRlbnQuZHVyYXRpb24gPSB0aGlzLndpZGdldERhdGEuY29udGVudC5kdXJhdGlvbiAqIDYwXG4gICAgfVxuICAgIGNvbnN0IGluc3RhbmNlQ29uZmlnID0gdGhpcy5jb25maWdTdmMuaW5zdGFuY2VDb25maWdcbiAgICBpZiAoaW5zdGFuY2VDb25maWcpIHtcbiAgICAgIHRoaXMuZGVmYXVsdFRodW1ibmFpbCA9IGluc3RhbmNlQ29uZmlnLmxvZ29zLmRlZmF1bHRDb250ZW50IHx8ICcnXG4gICAgICB0aGlzLnNvdXJjZUxvZ29zID0gaW5zdGFuY2VDb25maWcuc291cmNlc1xuICAgICAgdGhpcy5kZWZhdWx0U0xvZ28gPSBpbnN0YW5jZUNvbmZpZy5sb2dvcy5kZWZhdWx0U291cmNlTG9nbyB8fCAnJ1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlZmF1bHRUaHVtYm5haWwgPSAnL2Fzc2V0cy9pbnN0YW5jZXMvZWFnbGUvYXBwX2xvZ29zL2RlZmF1bHQucG5nJ1xuICAgICAgdGhpcy5kZWZhdWx0U0xvZ28gPSAgJy9hc3NldHMvaW5zdGFuY2VzL2VhZ2xlL2FwcF9sb2dvcy9LYXJtYXlvZ2lCaGFyYXRfTG9nby5zdmcnXG4gICAgfVxuICB9XG5cbiAgc2hvd1NuYWNrYmFyKCkge1xuICAgIGlmICh0aGlzLnNob3dJbnRyYW5ldENvbnRlbnQpIHtcbiAgICAgIHRoaXMuc25hY2tCYXIub3BlbignQ29udGVudCBpcyBvbmx5IGF2YWlsYWJsZSBpbiBpbnRyYW5ldCcsICdYJywgeyBkdXJhdGlvbjogMjAwMCB9KVxuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNMaXZlT3JNYXJrRm9yRGVsZXRpb24pIHtcbiAgICAgIHRoaXMuc25hY2tCYXIub3BlbignQ29udGVudCBtYXkgYmUgZXhwaXJlZCBvciBkZWxldGVkJywgJ1gnLCB7IGR1cmF0aW9uOiAyMDAwIH0pXG4gICAgfVxuICB9XG4gIGdldFJlZGlyZWN0VXJsRGF0YShjb250ZW50RGF0YTogYW55KXtcbiAgICAvLyBmb3IgdGVsZW1ldHJ5XG4gICAgaWYgKHRoaXMud2lkZ2V0RGF0YSAmJiB0aGlzLndpZGdldERhdGEuY29udGV4dCAmJiB0aGlzLndpZGdldERhdGEuY29udGV4dC5wYWdlU2VjdGlvbikge1xuICAgICAgY29udGVudERhdGFbJ3R5cGVPZlRlbGVtZXRyeSddID0gdGhpcy53aWRnZXREYXRhLmNvbnRleHQucGFnZVNlY3Rpb25cbiAgICB9XG4gICAgdGhpcy5jb250U3ZjLmNoYW5nZVRlbGVtZXRyeURhdGEoY29udGVudERhdGEpXG4gICAgLy8gZm9yIHJlZGlyZWN0aW9uXG4gICAgdGhpcy5jb250ZW50RGF0YS5lbWl0KGNvbnRlbnREYXRhKVxuICB9XG59XG4iXX0=
@@ -5,9 +5,9 @@
5
5
  import * as tslib_1 from "tslib";
6
6
  import { Inject, Injectable } from '@angular/core';
7
7
  import { HttpClient, HttpHeaders } from '@angular/common/http';
8
- import { throwError, of } from 'rxjs';
8
+ import { Observable, throwError } from 'rxjs';
9
9
  import { catchError, map } from 'rxjs/operators';
10
- // import 'rxjs/add/observable/of'
10
+ import 'rxjs/add/observable/of';
11
11
  import * as dayjs_ from 'dayjs';
12
12
  import * as i0 from "@angular/core";
13
13
  import * as i1 from "@angular/common/http";
@@ -115,11 +115,32 @@ export class WidgetUserService {
115
115
  * @return {?}
116
116
  */
117
117
  (data) => {
118
- localStorage.setItem('enrollmentData', JSON.stringify(data.result));
118
+ /** @type {?} */
119
+ const coursesData = [];
120
+ if (data && data.result && data.result.courses) {
121
+ data.result.courses.forEach((/**
122
+ * @param {?} content
123
+ * @return {?}
124
+ */
125
+ (content) => {
126
+ if (content.contentStatus) {
127
+ delete content.contentStatus;
128
+ }
129
+ coursesData.push(content);
130
+ }));
131
+ this.storeUserEnrollmentInfo(data.result.userCourseEnrolmentInfo, data.result.courses.length);
132
+ data.result.courses = coursesData;
133
+ if (data.result.courses.length < 200) {
134
+ localStorage.removeItem('enrollmentData');
135
+ this.setTime('enrollmentService');
136
+ localStorage.setItem('enrollmentData', JSON.stringify(data.result));
137
+ this.mapEnrollmentData(data.result);
138
+ return data.result;
139
+ }
140
+ }
119
141
  this.mapEnrollmentData(data.result);
120
142
  return data.result;
121
143
  })));
122
- this.setTime('enrollmentService');
123
144
  return result;
124
145
  }
125
146
  return this.getData('enrollmentData');
@@ -199,7 +220,7 @@ export class WidgetUserService {
199
220
  * @return {?}
200
221
  */
201
222
  getData(key) {
202
- return of(JSON.parse(localStorage.getItem(key) || '{}'));
223
+ return Observable.of(JSON.parse(localStorage.getItem(key) || '{}'));
203
224
  }
204
225
  /**
205
226
  * @param {?} key
@@ -303,11 +324,11 @@ export class WidgetUserService {
303
324
  const endDate = dayjs(c.endDate).format('YYYY-MM-DD');
304
325
  /** @type {?} */
305
326
  const daysCount = dayjs(endDate).diff(todayDate, 'day');
306
- childData.planDuration = daysCount < 0 ? NsCardContent.ACBPConst.OVERDUE : daysCount > 29
327
+ childData['planDuration'] = daysCount < 0 ? NsCardContent.ACBPConst.OVERDUE : daysCount > 29
307
328
  ? NsCardContent.ACBPConst.SUCCESS : NsCardContent.ACBPConst.UPCOMING;
308
- childData.endDate = c.endDate;
309
- childData.parentId = c.id;
310
- childData.planType = 'cbPlan';
329
+ childData['endDate'] = c.endDate;
330
+ childData['parentId'] = c.id;
331
+ childData['planType'] = 'cbPlan';
311
332
  if (childData.status !== NsCardContent.IGOTConst.RETIRED) {
312
333
  contentNew.push(childData);
313
334
  }
@@ -330,9 +351,9 @@ export class WidgetUserService {
330
351
  const competencyThemeId = [];
331
352
  /** @type {?} */
332
353
  const competencySubThemeId = [];
333
- childData.contentStatus = 0;
354
+ childData['contentStatus'] = 0;
334
355
  if (childEnrollData) {
335
- childData.contentStatus = childEnrollData.status;
356
+ childData['contentStatus'] = childEnrollData.status;
336
357
  }
337
358
  if (childData.competencies_v5) {
338
359
  childData.competencies_v5.forEach((/**
@@ -357,13 +378,13 @@ export class WidgetUserService {
357
378
  }
358
379
  }));
359
380
  }
360
- childData.competencyArea = competencyArea;
361
- childData.competencyTheme = competencyTheme;
362
- childData.competencyThemeType = competencyThemeType;
363
- childData.competencySubTheme = competencySubTheme;
364
- childData.competencyAreaId = competencyAreaId;
365
- childData.competencyThemeId = competencyThemeId;
366
- childData.competencySubThemeId = competencySubThemeId;
381
+ childData['competencyArea'] = competencyArea;
382
+ childData['competencyTheme'] = competencyTheme;
383
+ childData['competencyThemeType'] = competencyThemeType;
384
+ childData['competencySubTheme'] = competencySubTheme;
385
+ childData['competencyAreaId'] = competencyAreaId;
386
+ childData['competencyThemeId'] = competencyThemeId;
387
+ childData['competencySubThemeId'] = competencySubThemeId;
367
388
  }));
368
389
  }));
369
390
  if (contentNew.length > 1) {
@@ -412,8 +433,23 @@ export class WidgetUserService {
412
433
  enrollData[data.collectionId] = data;
413
434
  }));
414
435
  }
436
+ localStorage.removeItem('enrollmentMapData');
415
437
  localStorage.setItem('enrollmentMapData', JSON.stringify(enrollData));
416
438
  }
439
+ /**
440
+ * @param {?} enrollmentData
441
+ * @param {?} enrolledCourseCount
442
+ * @return {?}
443
+ */
444
+ storeUserEnrollmentInfo(enrollmentData, enrolledCourseCount) {
445
+ /** @type {?} */
446
+ const userData = {
447
+ enrolledCourseCount,
448
+ userCourseEnrolmentInfo: enrollmentData,
449
+ };
450
+ localStorage.removeItem('userEnrollmentCount');
451
+ localStorage.setItem('userEnrollmentCount', JSON.stringify(userData));
452
+ }
417
453
  }
418
454
  WidgetUserService.decorators = [
419
455
  { type: Injectable, args: [{
@@ -436,4 +472,4 @@ if (false) {
436
472
  WidgetUserService.prototype.http;
437
473
  }
438
474
  export { ɵ0, ɵ1, ɵ2, ɵ3 };
439
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXVzZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL2NvbnN1bXB0aW9uLyIsInNvdXJjZXMiOlsibGliL19zZXJ2aWNlcy93aWRnZXQtdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQWMsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUlqRCxPQUFPLEtBQUssTUFBTSxNQUFNLE9BQU8sQ0FBQzs7OztNQUMxQixLQUFLLEdBQUcsTUFBTTtBQUNwQiw2REFBNkQ7OztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7O01BRzNCLGlCQUFpQixHQUFHLG9CQUFvQjs7Ozs7QUFFekIsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUNwQyxHQUFHLGlCQUFpQixxQ0FBcUMsTUFBTSxFQUFFOzs7O0FBRXZDLENBQUMsTUFBMEIsRUFBRSxFQUFFO0FBQ3pELDRDQUE0QztBQUM1QywyREFBMkQsTUFBTSx5VEFBeVQsYUFBYSxDQUFDLFNBQVMsQ0FBQyxZQUFZLG1HQUFtRzs7OztBQUMvZCxDQUFDLE1BQTBCLEVBQUUsRUFBRTtBQUNqRSw0Q0FBNEM7QUFDNUMsMkRBQTJELE1BQU0seVRBQXlULGFBQWEsQ0FBQyxTQUFTLENBQUMsWUFBWSw4SEFBOEg7Ozs7Ozs7O0FBRS9mLENBQUMsTUFBMEIsRUFBRSxVQUFrQixFQUFFLGNBQXNCLEVBQUUsTUFBYyxFQUFFLFlBQW9CLEVBQUUsRUFBRTtB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LFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3pDLENBQUMsRUFBQyxDQUFDO1NBQ0o7UUFDRCxZQUFZLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDOzs7WUFyUUYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7OzRDQUlJLE1BQU0sU0FBQyxhQUFhO1lBcENoQixVQUFVOzs7OztJQWtDakIsd0NBQWlCOzs7OztJQUdmLGlDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSVVzZXJHcm91cERldGFpbHMgfSBmcm9tICcuLi9fbW9kZWxzL3dpZGdldC11c2VyLm1vZGVsJztcbmltcG9ydCB7IE5zQ29udGVudCB9IGZyb20gJy4uL19tb2RlbHMvd2lkZ2V0LWNvbnRlbnQubW9kZWwnO1xuLy8gaW1wb3J0ICdyeGpzL2FkZC9vYnNlcnZhYmxlL29mJ1xuaW1wb3J0ICogYXMgZGF5anNfIGZyb20gJ2RheWpzJztcbmNvbnN0IGRheWpzID0gZGF5anNfXG4vLyBpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJ3NyYy9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnXG5pbXBvcnQgeyBOc0NhcmRDb250ZW50IH0gZnJvbSAnLi4vX21vZGVscy9jYXJkLWNvbnRlbnQtdjIubW9kZWwnO1xuaW1wb3J0ICogYXMgbG9kYXNoIGZyb20gJ2xvZGFzaCc7XG5cblxuY29uc3QgUFJPVEVDVEVEX1NMQUdfVjggPSAnL2FwaXMvcHJvdGVjdGVkL3Y4JztcbmNvbnN0IEFQSV9FTkRfUE9JTlRTID0ge1xuICBGRVRDSF9VU0VSX0dST1VQUzogKHVzZXJJZDogc3RyaW5nKSA9PlxuICAgIGAke1BST1RFQ1RFRF9TTEFHX1Y4fS91c2VyL2dyb3VwL2ZldGNoVXNlckdyb3VwP3VzZXJJZD0ke3VzZXJJZH1gLFxuICAgIEZFVENIX0NQQl9QTEFOUzogYC9hcGlzL3Byb3hpZXMvdjgvdXNlci92MS9jYnBsYW5gLFxuICBGRVRDSF9VU0VSX0VOUk9MTE1FTlRfTElTVDogKHVzZXJJZDogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PlxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXG4gICAgYC9hcGlzL3Byb3hpZXMvdjgvbGVhcm5lci9jb3Vyc2UvdjIvdXNlci9lbnJvbGxtZW50L2xpc3QvJHt1c2VySWR9P29yZ2RldGFpbHM9b3JnTmFtZSxlbWFpbCZsaWNlbnNlRGV0YWlscz1uYW1lLGRlc2NyaXB0aW9uLHVybCZmaWVsZHM9Y29udGVudFR5cGUscHJpbWFyeUNhdGVnb3J5LGNvdXJzZUNhdGVnb3J5LHRvcGljLG5hbWUsY2hhbm5lbCxtaW1lVHlwZSxhcHBJY29uLGdyYWRlTGV2ZWwscmVzb3VyY2VUeXBlLGlkZW50aWZpZXIsbWVkaXVtLHBrZ1ZlcnNpb24sYm9hcmQsc3ViamVjdCx0cmFja2FibGUscG9zdGVySW1hZ2UsZHVyYXRpb24sY3JlYXRvckxvZ28sbGljZW5zZSx2ZXJzaW9uLHZlcnNpb25LZXksYXZnUmF0aW5nLGFkZGl0aW9uYWxUYWdzLCR7TnNDYXJkQ29udGVudC5JR09UQ29uc3QuQ09NUEVURU5DSUVTfSZiYXRjaERldGFpbHM9bmFtZSxlbmREYXRlLHN0YXJ0RGF0ZSxzdGF0dXMsZW5yb2xsbWVudFR5cGUsY3JlYXRlZEJ5LGNlcnRpZmljYXRlcyxiYXRjaEF0dHJpYnV0ZXNgLFxuICBGRVRDSF9VU0VSX0VOUk9MTE1FTlRfTElTVF9QUk9GSUxFOiAodXNlcklkOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcbiAgICBgL2FwaXMvcHJveGllcy92OC9sZWFybmVyL2NvdXJzZS92Mi91c2VyL2Vucm9sbG1lbnQvbGlzdC8ke3VzZXJJZH0/b3JnZGV0YWlscz1vcmdOYW1lLGVtYWlsJmxpY2Vuc2VEZXRhaWxzPW5hbWUsZGVzY3JpcHRpb24sdXJsJmZpZWxkcz1jb250ZW50VHlwZSxwcmltYXJ5Q2F0ZWdvcnksY291cnNlQ2F0ZWdvcnksdG9waWMsbmFtZSxjaGFubmVsLG1pbWVUeXBlLGFwcEljb24sZ3JhZGVMZXZlbCxyZXNvdXJjZVR5cGUsaWRlbnRpZmllcixtZWRpdW0scGtnVmVyc2lvbixib2FyZCxzdWJqZWN0LHRyYWNrYWJsZSxwb3N0ZXJJbWFnZSxkdXJhdGlvbixjcmVhdG9yTG9nbyxsaWNlbnNlLHZlcnNpb24sdmVyc2lvbktleSxhdmdSYXRpbmcsYWRkaXRpb25hbFRhZ3MsJHtOc0NhcmRDb250ZW50LklHT1RDb25zdC5DT01QRVRFTkNJRVN9JmJhdGNoRGV0YWlscz1uYW1lLGVuZERhdGUsc3RhcnREYXRlLHN0YXR1cyxlbnJvbGxtZW50VHlwZSxjcmVhdGVkQnksY2VydGlmaWNhdGVzLGJhdGNoQXR0cmlidXRlcyZyZXRpcmVkQ291cnNlc0VuYWJsZWQ9dHJ1ZWAsXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXG4gIEZFVENIX1VTRVJfRU5ST0xMTUVOVF9MSVNUX1YyOiAodXNlcklkOiBzdHJpbmcgfCB1bmRlZmluZWQsIG9yZ2RldGFpbHM6IHN0cmluZywgbGljZW5zZURldGFpbHM6IHN0cmluZywgZmllbGRzOiBzdHJpbmcsIGJhdGNoRGV0YWlsczogc3RyaW5nKSA9PlxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXG4gICAgYGFwaXMvcHJveGllcy92OC9sZWFybmVyL2NvdXJzZS92Mi91c2VyL2Vucm9sbG1lbnQvbGlzdC8ke3VzZXJJZH0/b3JnZGV0YWlscz0ke29yZ2RldGFpbHN9JmxpY2Vuc2VEZXRhaWxzPSR7bGljZW5zZURldGFpbHN9JmZpZWxkcz0ke2ZpZWxkc30sY291cnNlQ2F0ZWdvcnksJHtOc0NhcmRDb250ZW50LklHT1RDb25zdC5DT01QRVRFTkNJRVN9JmJhdGNoRGV0YWlscz0ke2JhdGNoRGV0YWlsc31gLFxufTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldFVzZXJTZXJ2aWNlIHtcbiAgZW52aXJvbm1lbnQ6IGFueTtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBlbnZpcm9ubWVudDogYW55LFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudDtcbiAgIH1cblxuICBoYW5kbGVFcnJvcihlcnJvcjogRXJyb3JFdmVudCkge1xuICAgIGxldCBlcnJvck1lc3NhZ2UgPSAnJztcbiAgICBpZiAoZXJyb3IuZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSBgRXJyb3I6ICR7ZXJyb3IuZXJyb3IubWVzc2FnZX1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvck1lc3NhZ2UpO1xuICB9XG5cbiAgZmV0Y2hVc2VyR3JvdXBEZXRhaWxzKHVzZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJVXNlckdyb3VwRGV0YWlsc1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxJVXNlckdyb3VwRGV0YWlsc1tdPihBUElfRU5EX1BPSU5UUy5GRVRDSF9VU0VSX0dST1VQUyh1c2VySWQpKVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gIH1cbiAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuICBmZXRjaFVzZXJCYXRjaExpc3QodXNlcklkOiBzdHJpbmcgfCB1bmRlZmluZWQsIHF1ZXJ5UGFyYW1zPzogeyBvcmdkZXRhaWxzOiBhbnksIGxpY2Vuc2VEZXRhaWxzOiBhbnksIGZpZWxkczogYW55LCBiYXRjaERldGFpbHM6IGFueSB9KTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvdXJzZVtdPiB7XG4gICAgbGV0IHBhdGggPSAnJztcbiAgICBpZiAocXVlcnlQYXJhbXMpIHtcbiAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuICAgICAgcGF0aCA9IEFQSV9FTkRfUE9JTlRTLkZFVENIX1VTRVJfRU5ST0xMTUVOVF9MSVNUX1YyKHVzZXJJZCwgcXVlcnlQYXJhbXMub3JnZGV0YWlscywgcXVlcnlQYXJhbXMubGljZW5zZURldGFpbHMsIHF1ZXJ5UGFyYW1zLmZpZWxkcywgcXVlcnlQYXJhbXMuYmF0Y2hEZXRhaWxzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGF0aCA9IEFQSV9FTkRfUE9JTlRTLkZFVENIX1VTRVJfRU5ST0xMTUVOVF9MSVNUKHVzZXJJZCk7XG4gICAgfVxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgJ0NhY2hlLUNvbnRyb2wnOiAgJ25vLWNhY2hlLCBuby1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlLCBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wJyxcbiAgICAgIFByYWdtYTogJ25vLWNhY2hlJyxcbiAgICAgIEV4cGlyZXM6ICcwJyxcbiAgICB9KTtcbiAgICBpZiAodGhpcy5jaGVja1N0b3JhZ2VEYXRhKCdlbnJvbGxtZW50U2VydmljZScsICdlbnJvbGxtZW50RGF0YScpKSB7XG4gICAgICBjb25zdCByZXN1bHQ6IGFueSA9ICB0aGlzLmh0dHAuZ2V0KHBhdGgsIHsgaGVhZGVycyB9KS5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvciksIG1hcChcbiAgICAgICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZW5yb2xsbWVudERhdGEnLCBKU09OLnN0cmluZ2lmeShkYXRhLnJlc3VsdCkpO1xuICAgICAgICAgICAgdGhpcy5tYXBFbnJvbGxtZW50RGF0YShkYXRhLnJlc3VsdCk7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS5yZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICApO1xuICAgICAgdGhpcy5zZXRUaW1lKCdlbnJvbGxtZW50U2VydmljZScpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0YSgnZW5yb2xsbWVudERhdGEnKTtcblxuICB9XG5cbiAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXG4gIGZldGNoUHJvZmlsZVVzZXJCYXRjaExpc3QodXNlcklkOiBzdHJpbmcgfCB1bmRlZmluZWQsIHF1ZXJ5UGFyYW1zPzogeyBvcmdkZXRhaWxzOiBhbnksIGxpY2Vuc2VEZXRhaWxzOiBhbnksIGZpZWxkczogYW55LCBiYXRjaERldGFpbHM6IGFueSB9KTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvdXJzZVtdPiB7XG4gICAgbGV0IHBhdGggPSAnJztcbiAgICBpZiAocXVlcnlQYXJhbXMpIHtcbiAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuICAgICAgcGF0aCA9IEFQSV9FTkRfUE9JTlRTLkZFVENIX1VTRVJfRU5ST0xMTUVOVF9MSVNUX1YyKHVzZXJJZCwgcXVlcnlQYXJhbXMub3JnZGV0YWlscywgcXVlcnlQYXJhbXMubGljZW5zZURldGFpbHMsIHF1ZXJ5UGFyYW1zLmZpZWxkcywgcXVlcnlQYXJhbXMuYmF0Y2hEZXRhaWxzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGF0aCA9IEFQSV9FTkRfUE9JTlRTLkZFVENIX1VTRVJfRU5ST0xMTUVOVF9MSVNUX1BST0ZJTEUodXNlcklkKTtcbiAgICB9XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAnQ2FjaGUtQ29udHJvbCc6ICAnbm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGUsIHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnLFxuICAgICAgUHJhZ21hOiAnbm8tY2FjaGUnLFxuICAgICAgRXhwaXJlczogJzAnLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQocGF0aCwgeyBoZWFkZXJzIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSxcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChkYXRhOiBhbnkpID0+IGRhdGEucmVzdWx0XG4gICAgICAgIClcbiAgICAgICk7XG4gICAgLy8gaWYgKHRoaXMuY2hlY2tTdG9yYWdlRGF0YSgnZW5yb2xsbWVudFNlcnZpY2UnKSkge1xuICAgIC8vICAgY29uc3QgcmVzdWx0OiBhbnkgPSAgdGhpcy5odHRwLmdldChwYXRoLCB7IGhlYWRlcnMgfSkucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpLCBtYXAoXG4gICAgLy8gICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgIC8vICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2Vucm9sbG1lbnREYXRhJywgSlNPTi5zdHJpbmdpZnkoZGF0YS5yZXN1bHQpKVxuICAgIC8vICAgICAgICAgdGhpcy5tYXBFbnJvbGxtZW50RGF0YShkYXRhLnJlc3VsdClcbiAgICAvLyAgICAgICAgIHJldHVybiBkYXRhLnJlc3VsdFxuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgKVxuICAgIC8vICAgKVxuICAgIC8vICAgdGhpcy5zZXRUaW1lKCdlbnJvbGxtZW50U2VydmljZScpXG4gICAgLy8gICByZXR1cm4gcmVzdWx0XG4gICAgLy8gfVxuICAgIC8vIHJldHVybiB0aGlzLmdldERhdGEoJ2Vucm9sbG1lbnREYXRhJylcbiAgfVxuXG4gIGNoZWNrU3RvcmFnZURhdGEoa2V5OiBhbnksIGRhdGFLZXk6IGFueSkge1xuICAgIGNvbnN0IGNoZWNrVGltZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0aW1lQ2hlY2snKTtcbiAgICBpZiAoY2hlY2tUaW1lKSB7XG4gICAgICBjb25zdCBwYXJzZWREYXRhID0gSlNPTi5wYXJzZShjaGVja1RpbWUpO1xuICAgICAgaWYgKHBhcnNlZERhdGFba2V5XSkge1xuICAgICAgICBjb25zdCBkYXRlID0gZGF5anMoKTtcbiAgICAgICAgY29uc3QgZGlmZk1pbiA9IGRhdGUuZGlmZihwYXJzZWREYXRhW2tleV0sICdtaW51dGUnKTtcbiAgICAgICAgY29uc3QgdGltZUNoZWNrID0gdGhpcy5lbnZpcm9ubWVudC5hcGlDYWNoZSB8fCAwO1xuICAgICAgICBpZiAoZGlmZk1pbiA+PSB0aW1lQ2hlY2spIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oZGF0YUtleSkgPyBmYWxzZSA6IHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXREYXRhKGtleTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gb2YoSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpIHx8ICd7fScpKTtcbiAgfVxuICBnZXRTYXZlZERhdGEoa2V5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkgfHwgJycpO1xuICB9XG5cbiAgc2V0VGltZShrZXk6IGFueSkge1xuICAgIGNvbnN0IGNoZWNrVGltZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0aW1lQ2hlY2snKTtcbiAgICBpZiAoY2hlY2tUaW1lKSB7XG4gICAgICBjb25zdCBwYXJzZWREYXRhID0gSlNPTi5wYXJzZShjaGVja1RpbWUpO1xuICAgICAgcGFyc2VkRGF0YVtrZXldID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndGltZUNoZWNrJywgSlNPTi5zdHJpbmdpZnkocGFyc2VkRGF0YSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkYXRhOiBhbnkgPSB7fTtcbiAgICAgIGRhdGFba2V5XSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3RpbWVDaGVjaycsIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICB9XG4gIH1cblxuICByZXNldFRpbWUoa2V5OiBhbnkpIHtcbiAgICBjb25zdCBjaGVja1RpbWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGltZUNoZWNrJyk7XG4gICAgaWYgKGNoZWNrVGltZSkge1xuICAgICAgY29uc3QgcGFyc2VkRGF0YSA9IEpTT04ucGFyc2UoY2hlY2tUaW1lKTtcbiAgICAgIGlmIChwYXJzZWREYXRhW2tleV0pIHtcbiAgICAgICBkZWxldGUgcGFyc2VkRGF0YVtrZXldO1xuICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0aW1lQ2hlY2snLCBKU09OLnN0cmluZ2lmeShwYXJzZWREYXRhKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZmV0Y2hDYnBQbGFuTGlzdCgpIHtcblxuICAgIC8vIGxldCBkYXRhID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY2JwRGF0YScpfHwgJycpXG4gICAgLy8gaWYoIWRhdGEpIHtcbiAgICAvLyAgIHRoaXMuaHR0cC5nZXQoQVBJX0VORF9QT0lOVFMuRkVUQ0hfQ1BCX1BMQU5TKS5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvciksIG1hcChcbiAgICAvLyAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgIC8vICAgICAgIGNvbnN0IGNvdXJzZURhdGEgPSB0aGlzLm1hcERhdGEoZGF0YS5yZXN1bHQpXG4gICAgLy8gICAgICAgcmV0dXJuIGNvdXJzZURhdGFcbiAgICAvLyAgICAgfVxuICAgIC8vICAgKVxuICAgIC8vICAgKVxuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gICByZXR1cm4gdGhpcy5nZXREYXRhKCdjYnBEYXRhJylcblxuICAgIC8vIH1cbiAgICAgaWYgKHRoaXMuY2hlY2tTdG9yYWdlRGF0YSgnY2JwU2VydmljZScsICdjYnBEYXRhJykpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSB0aGlzLmh0dHAuZ2V0KEFQSV9FTkRfUE9JTlRTLkZFVENIX0NQQl9QTEFOUykucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpLCBtYXAoXG4gICAgICAgICAgYXN5bmMgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMubWFwRGF0YShkYXRhLnJlc3VsdCk7XG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICApO1xuICAgICAgICB0aGlzLnNldFRpbWUoJ2NicFNlcnZpY2UnKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgIHJldHVybiB0aGlzLmdldERhdGEoJ2NicERhdGEnKTtcbiAgfVxuXG4gIGFzeW5jIG1hcERhdGEoZGF0YTogYW55KSB7XG4gICAgY29uc3QgY29udGVudE5ldzogYW55ID0gW107XG4gICAgY29uc3QgdG9kYXlEYXRlID0gZGF5anMoKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcblxuICAgIGNvbnN0IGVucm9sbExpc3Q6IGFueSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2Vucm9sbG1lbnRNYXBEYXRhJykgfHwgJ3t9Jyk7XG5cbiAgICBpZiAoZGF0YSAmJiBkYXRhLmNvdW50KSB7XG4gICAgICBkYXRhLmNvbnRlbnQuZm9yRWFjaCgoYzogYW55KSA9PiB7XG4gICAgICAgIGMuY29udGVudExpc3QuZm9yRWFjaCgoY2hpbGREYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBjaGlsZEVucm9sbERhdGEgPSBlbnJvbGxMaXN0W2NoaWxkRGF0YS5pZGVudGlmaWVyXTtcbiAgICAgICAgICBjb25zdCBlbmREYXRlID0gZGF5anMoYy5lbmREYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgICAgICAgICBjb25zdCBkYXlzQ291bnQgPSBkYXlqcyhlbmREYXRlKS5kaWZmKHRvZGF5RGF0ZSwgJ2RheScpO1xuICAgICAgICAgIGNoaWxkRGF0YS5wbGFuRHVyYXRpb24gPSAgZGF5c0NvdW50IDwgMCA/IE5zQ2FyZENvbnRlbnQuQUNCUENvbnN0Lk9WRVJEVUUgOiBkYXlzQ291bnQgPiAyOVxuICAgICAgICAgID8gTnNDYXJkQ29udGVudC5BQ0JQQ29uc3QuU1VDQ0VTUyA6IE5zQ2FyZENvbnRlbnQuQUNCUENvbnN0LlVQQ09NSU5HO1xuICAgICAgICAgIGNoaWxkRGF0YS5lbmREYXRlID0gYy5lbmREYXRlO1xuICAgICAgICAgIGNoaWxkRGF0YS5wYXJlbnRJZCA9IGMuaWQ7XG4gICAgICAgICAgY2hpbGREYXRhLnBsYW5UeXBlID0gJ2NiUGxhbic7XG4gICAgICAgICAgaWYgKGNoaWxkRGF0YS5zdGF0dXMgIT09IE5zQ2FyZENvbnRlbnQuSUdPVENvbnN0LlJFVElSRUQpIHtcbiAgICAgICAgICAgIGNvbnRlbnROZXcucHVzaChjaGlsZERhdGEpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY2hpbGRFbnJvbGxEYXRhICYmIGNoaWxkRW5yb2xsRGF0YS5zdGF0dXMgPT09IDIpIHtcbiAgICAgICAgICAgICAgY29udGVudE5ldy5wdXNoKGNoaWxkRGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgY29tcGV0ZW5jeUFyZWE6IGFueSA9IFtdO1xuICAgICAgICAgIGNvbnN0IGNvbXBldGVuY3lUaGVtZTogYW55ID0gW107XG4gICAgICAgICAgY29uc3QgY29tcGV0ZW5jeVRoZW1lVHlwZTogYW55ID0gW107XG4gICAgICAgICAgY29uc3QgY29tcGV0ZW5jeVN1YlRoZW1lOiBhbnkgPSBbXTtcbiAgICAgICAgICBjb25zdCBjb21wZXRlbmN5QXJlYUlkOiBhbnkgPSBbXTtcbiAgICAgICAgICBjb25zdCBjb21wZXRlbmN5VGhlbWVJZDogYW55ID0gW107XG4gICAgICAgICAgY29uc3QgY29tcGV0ZW5jeVN1YlRoZW1lSWQ6IGFueSA9IFtdO1xuICAgICAgICAgIGNoaWxkRGF0YS5jb250ZW50U3RhdHVzID0gMDtcbiAgICAgICAgICBpZiAoY2hpbGRFbnJvbGxEYXRhKSB7XG4gICAgICAgICAgICBjaGlsZERhdGEuY29udGVudFN0YXR1cyA9IGNoaWxkRW5yb2xsRGF0YS5zdGF0dXM7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjaGlsZERhdGEuY29tcGV0ZW5jaWVzX3Y1KSB7XG4gICAgICAgICAgY2hpbGREYXRhLmNvbXBldGVuY2llc192NS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICghY29tcGV0ZW5jeUFyZWEuaW5jbHVkZXMoZWxlbWVudC5jb21wZXRlbmN5QXJlYSkpIHtcbiAgICAgICAgICAgICAgY29tcGV0ZW5jeUFyZWEucHVzaChlbGVtZW50LmNvbXBldGVuY3lBcmVhKTtcbiAgICAgICAgICAgICAgY29tcGV0ZW5jeUFyZWFJZC5wdXNoKGVsZW1lbnQuY29tcGV0ZW5jeUFyZWFJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNvbXBldGVuY3lUaGVtZS5pbmNsdWRlcyhlbGVtZW50LmNvbXBldGVuY3lUaGVtZSkpIHtcbiAgICAgICAgICAgICAgY29tcGV0ZW5jeVRoZW1lLnB1c2goZWxlbWVudC5jb21wZXRlbmN5VGhlbWUpO1xuICAgICAgICAgICAgICBjb21wZXRlbmN5VGhlbWVJZC5wdXNoKGVsZW1lbnQuY29tcGV0ZW5jeVRoZW1lSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFjb21wZXRlbmN5VGhlbWVUeXBlLmluY2x1ZGVzKGVsZW1lbnQuY29tcGV0ZW5jeVRoZW1lVHlwZSkpIHtcbiAgICAgICAgICAgICAgY29tcGV0ZW5jeVRoZW1lVHlwZS5wdXNoKGVsZW1lbnQuY29tcGV0ZW5jeVRoZW1lVHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNvbXBldGVuY3lTdWJUaGVtZS5pbmNsdWRlcyhlbGVtZW50LmNvbXBldGVuY3lTdWJUaGVtZSkpIHtcbiAgICAgICAgICAgICAgY29tcGV0ZW5jeVN1YlRoZW1lLnB1c2goZWxlbWVudC5jb21wZXRlbmN5U3ViVGhlbWUpO1xuICAgICAgICAgICAgICBjb21wZXRlbmN5U3ViVGhlbWVJZC5wdXNoKGVsZW1lbnQuY29tcGV0ZW5jeVN1YlRoZW1lSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgfVxuXG4gICAgICAgICAgY2hpbGREYXRhLmNvbXBldGVuY3lBcmVhID0gY29tcGV0ZW5jeUFyZWE7XG4gICAgICAgICAgY2hpbGREYXRhLmNvbXBldGVuY3lUaGVtZSA9IGNvbXBldGVuY3lUaGVtZTtcbiAgICAgICAgICBjaGlsZERhdGEuY29tcGV0ZW5jeVRoZW1lVHlwZSA9IGNvbXBldGVuY3lUaGVtZVR5cGU7XG4gICAgICAgICAgY2hpbGREYXRhLmNvbXBldGVuY3lTdWJUaGVtZSA9IGNvbXBldGVuY3lTdWJUaGVtZTtcbiAgICAgICAgICBjaGlsZERhdGEuY29tcGV0ZW5jeUFyZWFJZCA9IGNvbXBldGVuY3lBcmVhSWQ7XG4gICAgICAgICAgY2hpbGREYXRhLmNvbXBldGVuY3lUaGVtZUlkID0gY29tcGV0ZW5jeVRoZW1lSWQ7XG4gICAgICAgICAgY2hpbGREYXRhLmNvbXBldGVuY3lTdWJUaGVtZUlkID0gY29tcGV0ZW5jeVN1YlRoZW1lSWQ7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICBpZiAoY29udGVudE5ldy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGNvbnN0IHNvcnRlZERhdGE6IGFueSA9IGNvbnRlbnROZXcuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBmaXJzdERhdGU6IGFueSA9IG5ldyBEYXRlKGEuZW5kRGF0ZSk7XG4gICAgICAgICAgY29uc3Qgc2Vjb25kRGF0ZTogYW55ID0gbmV3IERhdGUoYi5lbmREYXRlKTtcblxuICAgICAgICAgIHJldHVybiAgc2Vjb25kRGF0ZSA+IGZpcnN0RGF0ZSAgPyAxIDogLTE7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCB1bmlxdWVVc2Vyc0J5SUQgPSBsb2Rhc2gudW5pcUJ5KHNvcnRlZERhdGEsICdpZGVudGlmaWVyJyk7XG4gICAgICAgIGNvbnN0IHNvcnRlZEJ5RW5kRGF0ZSA9ICBsb2Rhc2gub3JkZXJCeSh1bmlxdWVVc2Vyc0J5SUQsIFsnZW5kRGF0ZSddLCBbJ2FzYyddKTtcbiAgICAgICAgY29uc3Qgc29ydGVkQnlTdGF0dXMgPSAgbG9kYXNoLm9yZGVyQnkoc29ydGVkQnlFbmREYXRlLCBbJ2NvbnRlbnRTdGF0dXMnXSwgWydhc2MnXSk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYnBEYXRhJywgSlNPTi5zdHJpbmdpZnkoc29ydGVkQnlTdGF0dXMpKTtcbiAgICAgICAgcmV0dXJuIHNvcnRlZEJ5U3RhdHVzO1xuICAgICB9XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2JwRGF0YScsIEpTT04uc3RyaW5naWZ5KGNvbnRlbnROZXcpKTtcbiAgICAgIHJldHVybiBjb250ZW50TmV3O1xuICAgIH1cbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2JwRGF0YScsIEpTT04uc3RyaW5naWZ5KFtdKSk7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgbWFwRW5yb2xsbWVudERhdGEoY291cnNlRGF0YTogYW55KSB7XG4gICAgY29uc3QgZW5yb2xsRGF0YTogYW55ID0ge307XG4gICAgaWYgKGNvdXJzZURhdGEgJiYgY291cnNlRGF0YS5jb3Vyc2VzLmxlbmd0aCkge1xuICAgICAgY291cnNlRGF0YS5jb3Vyc2VzLmZvckVhY2goKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIGVucm9sbERhdGFbZGF0YS5jb2xsZWN0aW9uSWRdID0gZGF0YTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZW5yb2xsbWVudE1hcERhdGEnLCBKU09OLnN0cmluZ2lmeShlbnJvbGxEYXRhKSk7XG4gIH1cbn1cbiJdfQ==
475
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXVzZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL2NvbnN1bXB0aW9uLyIsInNvdXJjZXMiOlsibGliL19zZXJ2aWNlcy93aWRnZXQtdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBTSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pELE9BQU8sd0JBQXdCLENBQUE7QUFDL0IsT0FBTyxLQUFLLE1BQU0sTUFBTSxPQUFPLENBQUM7Ozs7TUFDMUIsS0FBSyxHQUFHLE1BQU07QUFDcEIsNkRBQTZEOzs7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDOztNQUczQixpQkFBaUIsR0FBRyxvQkFBb0I7Ozs7O0FBRXpCLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FDcEMsR0FBRyxpQkFBaUIscUNBQXFDLE1BQU0sRUFBRTs7OztBQUV2QyxDQUFDLE1BQTBCLEVBQUUsRUFBRTtBQUN6RCw0Q0FBNEM7QUFDNUMsMkRBQTJELE1BQU0seVRBQXlULGFBQWEsQ0FBQyxTQUFTLENBQUMsWUFBWSxtR0FBbUc7Ozs7QUFDL2QsQ0FBQyxNQUEwQixFQUFFLEVBQUU7QUFDakUsNENBQTRDO0FBQzVDLDJEQUEyRCxNQUFNLHlUQUF5VCxhQUFhLENBQUMsU0FBUyxDQUFDLFlBQVksOEhBQThIOzs7Ozs7OztBQUUvZixDQUFDLE1BQTBCLEVBQUUsVUFBa0IsRUFBRSxjQUFzQixFQUFFLE1BQWMsRUFBRSxZQUFvQixFQUFFLEVBQUU7QUFDOUksNENBQTRDO0FBQzVDLDBEQUEwRCxNQUFNLGVBQWUsVUFBVSxtQkFBbUIsY0FBYyxXQUFXLE1BQU0sbUJBQW1CLGFBQWEsQ0FBQyxTQUFTLENBQUMsWUFBWSxpQkFBaUIsWUFBWSxFQUFFOztNQWIvTixjQUFjLEdBQUc7SUFDckIsaUJBQWlCLE1BQ2tEO0lBQ2pFLGVBQWUsRUFBRSxpQ0FBaUM7SUFDcEQsMEJBQTBCLE1BRXllO0lBQ25nQixrQ0FBa0MsTUFFNGY7O0lBRTloQiw2QkFBNkIsTUFFc007Q0FDcE87QUFLRCxNQUFNLE9BQU8saUJBQWlCOzs7OztJQUU1QixZQUN5QixXQUFnQixFQUMvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2hDLENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLEtBQWlCOztZQUN4QixZQUFZLEdBQUcsRUFBRTtRQUNyQixJQUFJLEtBQUssQ0FBQyxLQUFLLFlBQVksVUFBVSxFQUFFO1lBQ3JDLFlBQVksR0FBRyxVQUFVLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUE7U0FDL0M7UUFDRCxPQUFPLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUNqQyxDQUFDOzs7OztJQUVELHFCQUFxQixDQUFDLE1BQWM7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBc0IsY0FBYyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2xFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7SUFDdkMsQ0FBQzs7Ozs7OztJQUVELGtCQUFrQixDQUFDLE1BQTBCLEVBQUUsV0FBc0Y7O1lBQy9ILElBQUksR0FBRyxFQUFFO1FBQ2IsSUFBSSxXQUFXLEVBQUU7WUFDZCw0Q0FBNEM7WUFDN0MsSUFBSSxHQUFHLGNBQWMsQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFBO1NBQzlKO2FBQU07WUFDTCxJQUFJLEdBQUcsY0FBYyxDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUFBO1NBQ3pEOztjQUNLLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUM5QixlQUFlLEVBQUcsZ0VBQWdFO1lBQ2xGLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLE9BQU8sRUFBRSxHQUFHO1NBQ2IsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixFQUFFLGdCQUFnQixDQUFDLEVBQUU7O2tCQUMxRCxNQUFNLEdBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHOzs7O1lBQ3hGLENBQUMsSUFBUyxFQUFFLEVBQUU7O3NCQUVOLFdBQVcsR0FBUSxFQUFFO2dCQUMzQixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO29CQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPOzs7O29CQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7d0JBQzNDLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRTs0QkFDekIsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFBO3lCQUM3Qjt3QkFDRCxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO29CQUMzQixDQUFDLEVBQUMsQ0FBQTtvQkFDRixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsRUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7b0JBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQTtvQkFDakMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO3dCQUNwQyxZQUFZLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUE7d0JBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQTt3QkFDakMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO3dCQUNuRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO3dCQUNuQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUE7cUJBQ25CO2lCQUNGO2dCQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7Z0JBQ25DLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQTtZQUNwQixDQUFDLEVBQ0YsQ0FDRjtZQUNELE9BQU8sTUFBTSxDQUFBO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUV2QyxDQUFDOzs7Ozs7O0lBR0QseUJBQXlCLENBQUMsTUFBMEIsRUFBRSxXQUFzRjs7WUFDdEksSUFBSSxHQUFHLEVBQUU7UUFDYixJQUFJLFdBQVcsRUFBRTtZQUNkLDRDQUE0QztZQUM3QyxJQUFJLEdBQUcsY0FBYyxDQUFDLDZCQUE2QixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUE7U0FDOUo7YUFBTTtZQUNMLElBQUksR0FBRyxjQUFjLENBQUMsa0NBQWtDLENBQUMsTUFBTSxDQUFDLENBQUE7U0FDakU7O2NBQ0ssT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDO1lBQzlCLGVBQWUsRUFBRyxnRUFBZ0U7WUFDbEYsTUFBTSxFQUFFLFVBQVU7WUFDbEIsT0FBTyxFQUFFLEdBQUc7U0FDYixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQzthQUN0QixJQUFJLENBQ0gsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFDNUIsR0FBRzs7OztRQUNELENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUMzQixDQUNGLENBQUE7UUFDSCxvREFBb0Q7UUFDcEQsa0dBQWtHO1FBQ2xHLHlCQUF5QjtRQUN6Qiw4RUFBOEU7UUFDOUUsOENBQThDO1FBQzlDLDZCQUE2QjtRQUM3QixVQUFVO1FBQ1YsUUFBUTtRQUNSLE1BQU07UUFDTixzQ0FBc0M7UUFDdEMsa0JBQWtCO1FBQ2xCLElBQUk7UUFDSix3Q0FBd0M7SUFDMUMsQ0FBQzs7Ozs7O0lBRUQsZ0JBQWdCLENBQUMsR0FBUSxFQUFFLE9BQVk7O2NBQy9CLFNBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUNuRCxJQUFJLFNBQVMsRUFBRTs7a0JBQ1AsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ3hDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFOztzQkFDYixJQUFJLEdBQUcsS0FBSyxFQUFFOztzQkFDZCxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxDQUFDOztzQkFDOUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxJQUFJLENBQUM7Z0JBQ2hELElBQUksT0FBTyxJQUFJLFNBQVMsRUFBRTtvQkFDeEIsT0FBTyxJQUFJLENBQUE7aUJBQ1o7Z0JBQ0QsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTthQUNwRDtZQUNELE9BQU8sSUFBSSxDQUFBO1NBQ1o7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7Ozs7O0lBRUQsT0FBTyxDQUFDLEdBQVE7UUFDZCxPQUFPLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDckUsQ0FBQzs7Ozs7SUFDRCxZQUFZLENBQUMsR0FBUTtRQUNuQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUNwRCxDQUFDOzs7OztJQUVELE9BQU8sQ0FBQyxHQUFROztjQUNSLFNBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUNuRCxJQUFJLFNBQVMsRUFBRTs7a0JBQ1AsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ3hDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ3RDLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtTQUM5RDthQUFNOztrQkFDQyxJQUFJLEdBQVEsRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtZQUNoQyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7U0FDeEQ7SUFDSCxDQUFDOzs7OztJQUVELFNBQVMsQ0FBQyxHQUFROztjQUNWLFNBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUNuRCxJQUFJLFNBQVMsRUFBRTs7a0JBQ1AsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ3hDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNwQixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDdEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO2FBQzdEO1NBQ0Y7SUFDSCxDQUFDOzs7O0lBRUQsZ0JBQWdCO1FBRWQsOERBQThEO1FBQzlELGNBQWM7UUFDZCwwRkFBMEY7UUFDMUYsdUJBQXVCO1FBQ3ZCLHFEQUFxRDtRQUNyRCwwQkFBMEI7UUFDMUIsUUFBUTtRQUNSLE1BQU07UUFDTixNQUFNO1FBQ04sV0FBVztRQUNYLG1DQUFtQztRQUVuQyxJQUFJO1FBQ0gsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxFQUFFOztrQkFDM0MsTUFBTSxHQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHOzs7O1lBQ3RHLENBQU8sSUFBUyxFQUFFLEVBQUU7Z0JBQ2xCLE9BQU8sTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUN4QyxDQUFDLENBQUEsRUFDRixDQUNGO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUMxQixPQUFPLE1BQU0sQ0FBQTtTQUNkO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ2hDLENBQUM7Ozs7O0lBRUssT0FBTyxDQUFDLElBQVM7OztrQkFDZixVQUFVLEdBQVEsRUFBRTs7a0JBQ3BCLFNBQVMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDOztrQkFFeEMsVUFBVSxHQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLElBQUksQ0FBQztZQUVyRixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7Z0JBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtvQkFDOUIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPOzs7O29CQUFDLENBQUMsU0FBYyxFQUFFLEVBQUU7OzhCQUNqQyxlQUFlLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7OzhCQUNsRCxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDOzs4QkFDL0MsU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQzt3QkFDdkQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFJLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRTs0QkFDN0YsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQTt3QkFDcEUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUE7d0JBQ2hDLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFBO3dCQUM1QixTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFBO3dCQUNoQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssYUFBYSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUU7NEJBQ3hELFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7eUJBQzNCOzZCQUFNOzRCQUNMLElBQUksZUFBZSxJQUFJLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dDQUNuRCxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBOzZCQUMzQjt5QkFDRjs7OEJBRUssY0FBYyxHQUFRLEVBQUU7OzhCQUN4QixlQUFlLEdBQVEsRUFBRTs7OEJBQ3pCLG1CQUFtQixHQUFRLEVBQUU7OzhCQUM3QixrQkFBa0IsR0FBUSxFQUFFOzs4QkFDNUIsZ0JBQWdCLEdBQVEsRUFBRTs7OEJBQzFCLGlCQUFpQixHQUFRLEVBQUU7OzhCQUMzQixvQkFBb0IsR0FBUSxFQUFFO3dCQUNwQyxTQUFTLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFBO3dCQUM5QixJQUFJLGVBQWUsRUFBRTs0QkFDbkIsU0FBUyxDQUFDLGVBQWUsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUE7eUJBQ3BEO3dCQUNGLElBQUksU0FBUyxDQUFDLGVBQWUsRUFBRTs0QkFDOUIsU0FBUyxDQUFDLGVBQWUsQ0FBQyxPQUFPOzs7OzRCQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7Z0NBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRTtvQ0FDcEQsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUE7b0NBQzNDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtpQ0FDaEQ7Z0NBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFO29DQUN0RCxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQTtvQ0FDN0MsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO2lDQUNsRDtnQ0FDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO29DQUM5RCxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUE7aUNBQ3REO2dDQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQUU7b0NBQzVELGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtvQ0FDbkQsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO2lDQUN4RDs0QkFDSCxDQUFDLEVBQUMsQ0FBQTt5QkFDRjt3QkFFQSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxjQUFjLENBQUE7d0JBQzVDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLGVBQWUsQ0FBQTt3QkFDOUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsbUJBQW1CLENBQUE7d0JBQ3RELFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLGtCQUFrQixDQUFBO3dCQUNwRCxTQUFTLENBQUMsa0JBQWtCLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQTt3QkFDaEQsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsaUJBQWlCLENBQUE7d0JBQ2xELFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLG9CQUFvQixDQUFBO29CQUMxRCxDQUFDLEVBQUMsQ0FBQTtnQkFDSixDQUFDLEVBQUMsQ0FBQTtnQkFDSCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFOzswQkFDbEIsVUFBVSxHQUFRLFVBQVUsQ0FBQyxJQUFJOzs7OztvQkFBQyxDQUFDLENBQU0sRUFBRSxDQUFNLEVBQUUsRUFBRTs7OEJBQ25ELFNBQVMsR0FBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDOzs4QkFDcEMsVUFBVSxHQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7d0JBRTNDLE9BQVEsVUFBVSxHQUFHLFNBQVMsQ0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDMUMsQ0FBQyxFQUFDOzswQkFDSSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDOzswQkFDekQsZUFBZSxHQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQzs7MEJBQ3hFLGNBQWMsR0FBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ25GLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQTtvQkFDL0QsT0FBTyxjQUFjLENBQUE7aUJBQ3ZCO2dCQUNELFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtnQkFDM0QsT0FBTyxVQUFVLENBQUE7YUFDakI7WUFDRCxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDbkQsT0FBTyxFQUFFLENBQUE7UUFDWCxDQUFDO0tBQUE7Ozs7O0lBRUQsaUJBQWlCLENBQUMsVUFBZTs7Y0FDekIsVUFBVSxHQUFRLEVBQUU7UUFDMUIsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDM0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPOzs7O1lBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDckMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUE7WUFDeEMsQ0FBQyxFQUFDLENBQUE7U0FDSDtRQUNELFlBQVksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUM1QyxZQUFZLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtJQUN2RSxDQUFDOzs7Ozs7SUFDRCx1QkFBdUIsQ0FBQyxjQUFtQixFQUFFLG1CQUEyQjs7Y0FDaEUsUUFBUSxHQUFHO1lBQ2YsbUJBQW1CO1lBQ25CLHVCQUF1QixFQUFFLGNBQWM7U0FDeEM7UUFDRCxZQUFZLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLENBQUE7UUFDOUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFDdkUsQ0FBQzs7O1lBaFNGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7Ozs0Q0FJSSxNQUFNLFNBQUMsYUFBYTtZQXBDaEIsVUFBVTs7Ozs7SUFrQ2pCLHdDQUFpQjs7Ozs7SUFHZixpQ0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElVc2VyR3JvdXBEZXRhaWxzIH0gZnJvbSAnLi4vX21vZGVscy93aWRnZXQtdXNlci5tb2RlbCc7XG5pbXBvcnQgeyBOc0NvbnRlbnQgfSBmcm9tICcuLi9fbW9kZWxzL3dpZGdldC1jb250ZW50Lm1vZGVsJztcbmltcG9ydCAncnhqcy9hZGQvb2JzZXJ2YWJsZS9vZidcbmltcG9ydCAqIGFzIGRheWpzXyBmcm9tICdkYXlqcyc7XG5jb25zdCBkYXlqcyA9IGRheWpzX1xuLy8gaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICdzcmMvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50J1xuaW1wb3J0IHsgTnNDYXJkQ29udGVudCB9IGZyb20gJy4uL19tb2RlbHMvY2FyZC1jb250ZW50LXYyLm1vZGVsJztcbmltcG9ydCAqIGFzIGxvZGFzaCBmcm9tICdsb2Rhc2gnO1xuXG5cbmNvbnN0IFBST1RFQ1RFRF9TTEFHX1Y4ID0gJy9hcGlzL3Byb3RlY3RlZC92OCc7XG5jb25zdCBBUElfRU5EX1BPSU5UUyA9IHtcbiAgRkVUQ0hfVVNFUl9HUk9VUFM6ICh1c2VySWQ6IHN0cmluZykgPT5cbiAgICBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9ncm91cC9mZXRjaFVzZXJHcm91cD91c2VySWQ9JHt1c2VySWR9YCxcbiAgICBGRVRDSF9DUEJfUExBTlM6IGAvYXBpcy9wcm94aWVzL3Y4L3VzZXIvdjEvY2JwbGFuYCxcbiAgRkVUQ0hfVVNFUl9FTlJPTExNRU5UX0xJU1Q6ICh1c2VySWQ6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT5cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuICAgIGAvYXBpcy9wcm94aWVzL3Y4L2xlYXJuZXIvY291cnNlL3YyL3VzZXIvZW5yb2xsbWVudC9saXN0LyR7dXNlcklkfT9vcmdkZXRhaWxzPW9yZ05hbWUsZW1haWwmbGljZW5zZURldGFpbHM9bmFtZSxkZXNjcmlwdGlvbix1cmwmZmllbGRzPWNvbnRlbnRUeXBlLHByaW1hcnlDYXRlZ29yeSxjb3Vyc2VDYXRlZ29yeSx0b3BpYyxuYW1lLGNoYW5uZWwsbWltZVR5cGUsYXBwSWNvbixncmFkZUxldmVsLHJlc291cmNlVHlwZSxpZGVudGlmaWVyLG1lZGl1bSxwa2dWZXJzaW9uLGJvYXJkLHN1YmplY3QsdHJhY2thYmxlLHBvc3RlckltYWdlLGR1cmF0aW9uLGNyZWF0b3JMb2dvLGxpY2Vuc2UsdmVyc2lvbix2ZXJzaW9uS2V5LGF2Z1JhdGluZyxhZGRpdGlvbmFsVGFncywke05zQ2FyZENvbnRlbnQuSUdPVENvbnN0LkNPTVBFVEVOQ0lFU30mYmF0Y2hEZXRhaWxzPW5hbWUsZW5kRGF0ZSxzdGFydERhdGUsc3RhdHVzLGVucm9sbG1lbnRUeXBlLGNyZWF0ZWRCeSxjZXJ0aWZpY2F0ZXMsYmF0Y2hBdHRyaWJ1dGVzYCxcbiAgRkVUQ0hfVVNFUl9FTlJPTExNRU5UX0xJU1RfUFJPRklMRTogKHVzZXJJZDogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PlxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXG4gICAgYC9hcGlzL3Byb3hpZXMvdjgvbGVhcm5lci9jb3Vyc2UvdjIvdXNlci9lbnJvbGxtZW50L2xpc3QvJHt1c2VySWR9P29yZ2RldGFpbHM9b3JnTmFtZSxlbWFpbCZsaWNlbnNlRGV0YWlscz1uYW1lLGRlc2NyaXB0aW9uLHVybCZmaWVsZHM9Y29udGVudFR5cGUscHJpbWFyeUNhdGVnb3J5LGNvdXJzZUNhdGVnb3J5LHRvcGljLG5hbWUsY2hhbm5lbCxtaW1lVHlwZSxhcHBJY29uLGdyYWRlTGV2ZWwscmVzb3VyY2VUeXBlLGlkZW50aWZpZXIsbWVkaXVtLHBrZ1ZlcnNpb24sYm9hcmQsc3ViamVjdCx0cmFja2FibGUscG9zdGVySW1hZ2UsZHVyYXRpb24sY3JlYXRvckxvZ28sbGljZW5zZSx2ZXJzaW9uLHZlcnNpb25LZXksYXZnUmF0aW5nLGFkZGl0aW9uYWxUYWdzLCR7TnNDYXJkQ29udGVudC5JR09UQ29uc3QuQ09NUEVURU5DSUVTfSZiYXRjaERldGFpbHM9bmFtZSxlbmREYXRlLHN0YXJ0RGF0ZSxzdGF0dXMsZW5yb2xsbWVudFR5cGUsY3JlYXRlZEJ5LGNlcnRpZmljYXRlcyxiYXRjaEF0dHJpYnV0ZXMmcmV0aXJlZENvdXJzZXNFbmFibGVkPXRydWVgLFxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuICBGRVRDSF9VU0VSX0VOUk9MTE1FTlRfTElTVF9WMjogKHVzZXJJZDogc3RyaW5nIHwgdW5kZWZpbmVkLCBvcmdkZXRhaWxzOiBzdHJpbmcsIGxpY2Vuc2VEZXRhaWxzOiBzdHJpbmcsIGZpZWxkczogc3RyaW5nLCBiYXRjaERldGFpbHM6IHN0cmluZykgPT5cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuICAgIGBhcGlzL3Byb3hpZXMvdjgvbGVhcm5lci9jb3Vyc2UvdjIvdXNlci9lbnJvbGxtZW50L2xpc3QvJHt1c2VySWR9P29yZ2RldGFpbHM9JHtvcmdkZXRhaWxzfSZsaWNlbnNlRGV0YWlscz0ke2xpY2Vuc2VEZXRhaWxzfSZmaWVsZHM9JHtmaWVsZHN9LGNvdXJzZUNhdGVnb3J5LCR7TnNDYXJkQ29udGVudC5JR09UQ29uc3QuQ09NUEVURU5DSUVTfSZiYXRjaERldGFpbHM9JHtiYXRjaERldGFpbHN9YCxcbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRVc2VyU2VydmljZSB7XG4gIGVudmlyb25tZW50OiBhbnk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgZW52aXJvbm1lbnQ6IGFueSxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgICB0aGlzLmVudmlyb25tZW50ID0gZW52aXJvbm1lbnQ7XG4gICB9XG5cbiAgIGhhbmRsZUVycm9yKGVycm9yOiBFcnJvckV2ZW50KSB7XG4gICAgbGV0IGVycm9yTWVzc2FnZSA9ICcnXG4gICAgaWYgKGVycm9yLmVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkge1xuICAgICAgZXJyb3JNZXNzYWdlID0gYEVycm9yOiAke2Vycm9yLmVycm9yLm1lc3NhZ2V9YFxuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvck1lc3NhZ2UpXG4gIH1cblxuICBmZXRjaFVzZXJHcm91cERldGFpbHModXNlcklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElVc2VyR3JvdXBEZXRhaWxzW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PElVc2VyR3JvdXBEZXRhaWxzW10+KEFQSV9FTkRfUE9JTlRTLkZFVENIX1VTRVJfR1JPVVBTKHVzZXJJZCkpXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKVxuICB9XG4gLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcbiAgZmV0Y2hVc2VyQmF0Y2hMaXN0KHVzZXJJZDogc3RyaW5nIHwgdW5kZWZpbmVkLCBxdWVyeVBhcmFtcz86IHsgb3JnZGV0YWlsczogYW55LCBsaWNlbnNlRGV0YWlsczogYW55LCBmaWVsZHM6IGFueSwgYmF0Y2hEZXRhaWxzOiBhbnkgfSk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb3Vyc2VbXT4ge1xuICAgIGxldCBwYXRoID0gJydcbiAgICBpZiAocXVlcnlQYXJhbXMpIHtcbiAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuICAgICAgcGF0aCA9IEFQSV9FTkRfUE9JTlRTLkZFVENIX1VTRVJfRU5ST0xMTUVOVF9MSVNUX1YyKHVzZXJJZCwgcXVlcnlQYXJhbXMub3JnZGV0YWlscywgcXVlcnlQYXJhbXMubGljZW5zZURldGFpbHMsIHF1ZXJ5UGFyYW1zLmZpZWxkcywgcXVlcnlQYXJhbXMuYmF0Y2hEZXRhaWxzKVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXRoID0gQVBJX0VORF9QT0lOVFMuRkVUQ0hfVVNFUl9FTlJPTExNRU5UX0xJU1QodXNlcklkKVxuICAgIH1cbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICdDYWNoZS1Db250cm9sJzogICduby1jYWNoZSwgbm8tc3RvcmUsIG11c3QtcmV2YWxpZGF0ZSwgcG9zdC1jaGVjaz0wLCBwcmUtY2hlY2s9MCcsXG4gICAgICBQcmFnbWE6ICduby1jYWNoZScsXG4gICAgICBFeHBpcmVzOiAnMCcsXG4gICAgfSlcbiAgICBpZiAodGhpcy5jaGVja1N0b3JhZ2VEYXRhKCdlbnJvbGxtZW50U2VydmljZScsICdlbnJvbGxtZW50RGF0YScpKSB7XG4gICAgICBjb25zdCByZXN1bHQ6IGFueSA9ICB0aGlzLmh0dHAuZ2V0KHBhdGgsIHsgaGVhZGVycyB9KS5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvciksIG1hcChcbiAgICAgICAgICAoZGF0YTogYW55KSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvdXJzZXNEYXRhOiBhbnkgPSBbXVxuICAgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5yZXN1bHQgJiYgZGF0YS5yZXN1bHQuY291cnNlcykge1xuICAgICAgICAgICAgICBkYXRhLnJlc3VsdC5jb3Vyc2VzLmZvckVhY2goKGNvbnRlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjb250ZW50LmNvbnRlbnRTdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSBjb250ZW50LmNvbnRlbnRTdGF0dXNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY291cnNlc0RhdGEucHVzaChjb250ZW50KVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB0aGlzLnN0b3JlVXNlckVucm9sbG1lbnRJbmZvKGRhdGEucmVzdWx0LnVzZXJDb3Vyc2VFbnJvbG1lbnRJbmZvLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEucmVzdWx0LmNvdXJzZXMubGVuZ3RoKVxuICAgICAgICAgICAgICBkYXRhLnJlc3VsdC5jb3Vyc2VzID0gY291cnNlc0RhdGFcbiAgICAgICAgICAgICAgaWYgKGRhdGEucmVzdWx0LmNvdXJzZXMubGVuZ3RoIDwgMjAwKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2Vucm9sbG1lbnREYXRhJylcbiAgICAgICAgICAgICAgICB0aGlzLnNldFRpbWUoJ2Vucm9sbG1lbnRTZXJ2aWNlJylcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZW5yb2xsbWVudERhdGEnLCBKU09OLnN0cmluZ2lmeShkYXRhLnJlc3VsdCkpXG4gICAgICAgICAgICAgICAgdGhpcy5tYXBFbnJvbGxtZW50RGF0YShkYXRhLnJlc3VsdClcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5yZXN1bHRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5tYXBFbnJvbGxtZW50RGF0YShkYXRhLnJlc3VsdClcbiAgICAgICAgICAgIHJldHVybiBkYXRhLnJlc3VsdFxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXREYXRhKCdlbnJvbGxtZW50RGF0YScpXG5cbiAgfVxuXG4gICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuICBmZXRjaFByb2ZpbGVVc2VyQmF0Y2hMaXN0KHVzZXJJZDogc3RyaW5nIHwgdW5kZWZpbmVkLCBxdWVyeVBhcmFtcz86IHsgb3JnZGV0YWlsczogYW55LCBsaWNlbnNlRGV0YWlsczogYW55LCBmaWVsZHM6IGFueSwgYmF0Y2hEZXRhaWxzOiBhbnkgfSk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb3Vyc2VbXT4ge1xuICAgIGxldCBwYXRoID0gJydcbiAgICBpZiAocXVlcnlQYXJhbXMpIHtcbiAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuICAgICAgcGF0aCA9IEFQSV9FTkRfUE9JTlRTLkZFVENIX1VTRVJfRU5ST0xMTUVOVF9MSVNUX1YyKHVzZXJJZCwgcXVlcnlQYXJhbXMub3JnZGV0YWlscywgcXVlcnlQYXJhbXMubGljZW5zZURldGFpbHMsIHF1ZXJ5UGFyYW1zLmZpZWxkcywgcXVlcnlQYXJhbXMuYmF0Y2hEZXRhaWxzKVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXRoID0gQVBJX0VORF9QT0lOVFMuRkVUQ0hfVVNFUl9FTlJPTExNRU5UX0xJU1RfUFJPRklMRSh1c2VySWQpXG4gICAgfVxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgJ0NhY2hlLUNvbnRyb2wnOiAgJ25vLWNhY2hlLCBuby1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlLCBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wJyxcbiAgICAgIFByYWdtYTogJ25vLWNhY2hlJyxcbiAgICAgIEV4cGlyZXM6ICcwJyxcbiAgICB9KVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQocGF0aCwgeyBoZWFkZXJzIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSxcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChkYXRhOiBhbnkpID0+IGRhdGEucmVzdWx0XG4gICAgICAgIClcbiAgICAgIClcbiAgICAvLyBpZiAodGhpcy5jaGVja1N0b3JhZ2VEYXRhKCdlbnJvbGxtZW50U2VydmljZScpKSB7XG4gICAgLy8gICBjb25zdCByZXN1bHQ6IGFueSA9ICB0aGlzLmh0dHAuZ2V0KHBhdGgsIHsgaGVhZGVycyB9KS5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvciksIG1hcChcbiAgICAvLyAgICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgLy8gICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZW5yb2xsbWVudERhdGEnLCBKU09OLnN0cmluZ2lmeShkYXRhLnJlc3VsdCkpXG4gICAgLy8gICAgICAgICB0aGlzLm1hcEVucm9sbG1lbnREYXRhKGRhdGEucmVzdWx0KVxuICAgIC8vICAgICAgICAgcmV0dXJuIGRhdGEucmVzdWx0XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICApXG4gICAgLy8gICApXG4gICAgLy8gICB0aGlzLnNldFRpbWUoJ2Vucm9sbG1lbnRTZXJ2aWNlJylcbiAgICAvLyAgIHJldHVybiByZXN1bHRcbiAgICAvLyB9XG4gICAgLy8gcmV0dXJuIHRoaXMuZ2V0RGF0YSgnZW5yb2xsbWVudERhdGEnKVxuICB9XG5cbiAgY2hlY2tTdG9yYWdlRGF0YShrZXk6IGFueSwgZGF0YUtleTogYW55KSB7XG4gICAgY29uc3QgY2hlY2tUaW1lID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RpbWVDaGVjaycpXG4gICAgaWYgKGNoZWNrVGltZSkge1xuICAgICAgY29uc3QgcGFyc2VkRGF0YSA9IEpTT04ucGFyc2UoY2hlY2tUaW1lKVxuICAgICAgaWYgKHBhcnNlZERhdGFba2V5XSkge1xuICAgICAgICBjb25zdCBkYXRlID0gZGF5anMoKVxuICAgICAgICBjb25zdCBkaWZmTWluID0gZGF0ZS5kaWZmKHBhcnNlZERhdGFba2V5XSwgJ21pbnV0ZScpXG4gICAgICAgIGNvbnN0IHRpbWVDaGVjayA9IHRoaXMuZW52aXJvbm1lbnQuYXBpQ2FjaGUgfHwgMFxuICAgICAgICBpZiAoZGlmZk1pbiA+PSB0aW1lQ2hlY2spIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShkYXRhS2V5KSA/IGZhbHNlIDogdHJ1ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGdldERhdGEoa2V5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBPYnNlcnZhYmxlLm9mKEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSB8fCAne30nKSlcbiAgfVxuICBnZXRTYXZlZERhdGEoa2V5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkgfHwgJycpXG4gIH1cblxuICBzZXRUaW1lKGtleTogYW55KSB7XG4gICAgY29uc3QgY2hlY2tUaW1lID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RpbWVDaGVjaycpXG4gICAgaWYgKGNoZWNrVGltZSkge1xuICAgICAgY29uc3QgcGFyc2VkRGF0YSA9IEpTT04ucGFyc2UoY2hlY2tUaW1lKVxuICAgICAgcGFyc2VkRGF0YVtrZXldID0gbmV3IERhdGUoKS5nZXRUaW1lKClcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0aW1lQ2hlY2snLCBKU09OLnN0cmluZ2lmeShwYXJzZWREYXRhKSlcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGF0YTogYW55ID0ge31cbiAgICAgIGRhdGFba2V5XSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndGltZUNoZWNrJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpXG4gICAgfVxuICB9XG5cbiAgcmVzZXRUaW1lKGtleTogYW55KSB7XG4gICAgY29uc3QgY2hlY2tUaW1lID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RpbWVDaGVjaycpXG4gICAgaWYgKGNoZWNrVGltZSkge1xuICAgICAgY29uc3QgcGFyc2VkRGF0YSA9IEpTT04ucGFyc2UoY2hlY2tUaW1lKVxuICAgICAgaWYgKHBhcnNlZERhdGFba2V5XSkge1xuICAgICAgIGRlbGV0ZSBwYXJzZWREYXRhW2tleV1cbiAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndGltZUNoZWNrJywgSlNPTi5zdHJpbmdpZnkocGFyc2VkRGF0YSkpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZmV0Y2hDYnBQbGFuTGlzdCgpIHtcblxuICAgIC8vIGxldCBkYXRhID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY2JwRGF0YScpfHwgJycpXG4gICAgLy8gaWYoIWRhdGEpIHtcbiAgICAvLyAgIHRoaXMuaHR0cC5nZXQoQVBJX0VORF9QT0lOVFMuRkVUQ0hfQ1BCX1BMQU5TKS5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvciksIG1hcChcbiAgICAvLyAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgIC8vICAgICAgIGNvbnN0IGNvdXJzZURhdGEgPSB0aGlzLm1hcERhdGEoZGF0YS5yZXN1bHQpXG4gICAgLy8gICAgICAgcmV0dXJuIGNvdXJzZURhdGFcbiAgICAvLyAgICAgfVxuICAgIC8vICAgKVxuICAgIC8vICAgKVxuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gICByZXR1cm4gdGhpcy5nZXREYXRhKCdjYnBEYXRhJylcblxuICAgIC8vIH1cbiAgICAgaWYgKHRoaXMuY2hlY2tTdG9yYWdlRGF0YSgnY2JwU2VydmljZScsICdjYnBEYXRhJykpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSB0aGlzLmh0dHAuZ2V0KEFQSV9FTkRfUE9JTlRTLkZFVENIX0NQQl9QTEFOUykucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpLCBtYXAoXG4gICAgICAgICAgYXN5bmMgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMubWFwRGF0YShkYXRhLnJlc3VsdClcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIHRoaXMuc2V0VGltZSgnY2JwU2VydmljZScpXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldERhdGEoJ2NicERhdGEnKVxuICB9XG5cbiAgYXN5bmMgbWFwRGF0YShkYXRhOiBhbnkpIHtcbiAgICBjb25zdCBjb250ZW50TmV3OiBhbnkgPSBbXVxuICAgIGNvbnN0IHRvZGF5RGF0ZSA9IGRheWpzKCkuZm9ybWF0KCdZWVlZLU1NLUREJylcblxuICAgIGNvbnN0IGVucm9sbExpc3Q6IGFueSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2Vucm9sbG1lbnRNYXBEYXRhJykgfHwgJ3t9JylcblxuICAgIGlmIChkYXRhICYmIGRhdGEuY291bnQpIHtcbiAgICAgIGRhdGEuY29udGVudC5mb3JFYWNoKChjOiBhbnkpID0+IHtcbiAgICAgICAgYy5jb250ZW50TGlzdC5mb3JFYWNoKChjaGlsZERhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNoaWxkRW5yb2xsRGF0YSA9IGVucm9sbExpc3RbY2hpbGREYXRhLmlkZW50aWZpZXJdXG4gICAgICAgICAgY29uc3QgZW5kRGF0ZSA9IGRheWpzKGMuZW5kRGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgICAgICBjb25zdCBkYXlzQ291bnQgPSBkYXlqcyhlbmREYXRlKS5kaWZmKHRvZGF5RGF0ZSwgJ2RheScpXG4gICAgICAgICAgY2hpbGREYXRhWydwbGFuRHVyYXRpb24nXSA9ICBkYXlzQ291bnQgPCAwID8gTnNDYXJkQ29udGVudC5BQ0JQQ29uc3QuT1ZFUkRVRSA6IGRheXNDb3VudCA+IDI5XG4gICAgICAgICAgPyBOc0NhcmRDb250ZW50LkFDQlBDb25zdC5TVUNDRVNTIDogTnNDYXJkQ29udGVudC5BQ0JQQ29uc3QuVVBDT01JTkdcbiAgICAgICAgICBjaGlsZERhdGFbJ2VuZERhdGUnXSA9IGMuZW5kRGF0ZVxuICAgICAgICAgIGNoaWxkRGF0YVsncGFyZW50SWQnXSA9IGMuaWRcbiAgICAgICAgICBjaGlsZERhdGFbJ3BsYW5UeXBlJ10gPSAnY2JQbGFuJ1xuICAgICAgICAgIGlmIChjaGlsZERhdGEuc3RhdHVzICE9PSBOc0NhcmRDb250ZW50LklHT1RDb25zdC5SRVRJUkVEKSB7XG4gICAgICAgICAgICBjb250ZW50TmV3LnB1c2goY2hpbGREYXRhKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY2hpbGRFbnJvbGxEYXRhICYmIGNoaWxkRW5yb2xsRGF0YS5zdGF0dXMgPT09IDIpIHtcbiAgICAgICAgICAgICAgY29udGVudE5ldy5wdXNoKGNoaWxkRGF0YSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBjb21wZXRlbmN5QXJlYTogYW55ID0gW11cbiAgICAgICAgICBjb25zdCBjb21wZXRlbmN5VGhlbWU6IGFueSA9IFtdXG4gICAgICAgICAgY29uc3QgY29tcGV0ZW5jeVRoZW1lVHlwZTogYW55ID0gW11cbiAgICAgICAgICBjb25zdCBjb21wZXRlbmN5U3ViVGhlbWU6IGFueSA9IFtdXG4gICAgICAgICAgY29uc3QgY29tcGV0ZW5jeUFyZWFJZDogYW55ID0gW11cbiAgICAgICAgICBjb25zdCBjb21wZXRlbmN5VGhlbWVJZDogYW55ID0gW11cbiAgICAgICAgICBjb25zdCBjb21wZXRlbmN5U3ViVGhlbWVJZDogYW55ID0gW11cbiAgICAgICAgICBjaGlsZERhdGFbJ2NvbnRlbnRTdGF0dXMnXSA9IDBcbiAgICAgICAgICBpZiAoY2hpbGRFbnJvbGxEYXRhKSB7XG4gICAgICAgICAgICBjaGlsZERhdGFbJ2NvbnRlbnRTdGF0dXMnXSA9IGNoaWxkRW5yb2xsRGF0YS5zdGF0dXNcbiAgICAgICAgICB9XG4gICAgICAgICBpZiAoY2hpbGREYXRhLmNvbXBldGVuY2llc192NSkge1xuICAgICAgICAgIGNoaWxkRGF0YS5jb21wZXRlbmNpZXNfdjUuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWNvbXBldGVuY3lBcmVhLmluY2x1ZGVzKGVsZW1lbnQuY29tcGV0ZW5jeUFyZWEpKSB7XG4gICAgICAgICAgICAgIGNvbXBldGVuY3lBcmVhLnB1c2goZWxlbWVudC5jb21wZXRlbmN5QXJlYSlcbiAgICAgICAgICAgICAgY29tcGV0ZW5jeUFyZWFJZC5wdXNoKGVsZW1lbnQuY29tcGV0ZW5jeUFyZWFJZClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghY29tcGV0ZW5jeVRoZW1lLmluY2x1ZGVzKGVsZW1lbnQuY29tcGV0ZW5jeVRoZW1lKSkge1xuICAgICAgICAgICAgICBjb21wZXRlbmN5VGhlbWUucHVzaChlbGVtZW50LmNvbXBldGVuY3lUaGVtZSlcbiAgICAgICAgICAgICAgY29tcGV0ZW5jeVRoZW1lSWQucHVzaChlbGVtZW50LmNvbXBldGVuY3lUaGVtZUlkKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFjb21wZXRlbmN5VGhlbWVUeXBlLmluY2x1ZGVzKGVsZW1lbnQuY29tcGV0ZW5jeVRoZW1lVHlwZSkpIHtcbiAgICAgICAgICAgICAgY29tcGV0ZW5jeVRoZW1lVHlwZS5wdXNoKGVsZW1lbnQuY29tcGV0ZW5jeVRoZW1lVHlwZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghY29tcGV0ZW5jeVN1YlRoZW1lLmluY2x1ZGVzKGVsZW1lbnQuY29tcGV0ZW5jeVN1YlRoZW1lKSkge1xuICAgICAgICAgICAgICBjb21wZXRlbmN5U3ViVGhlbWUucHVzaChlbGVtZW50LmNvbXBldGVuY3lTdWJUaGVtZSlcbiAgICAgICAgICAgICAgY29tcGV0ZW5jeVN1YlRoZW1lSWQucHVzaChlbGVtZW50LmNvbXBldGVuY3lTdWJUaGVtZUlkKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICB9XG5cbiAgICAgICAgICBjaGlsZERhdGFbJ2NvbXBldGVuY3lBcmVhJ10gPSBjb21wZXRlbmN5QXJlYVxuICAgICAgICAgIGNoaWxkRGF0YVsnY29tcGV0ZW5jeVRoZW1lJ10gPSBjb21wZXRlbmN5VGhlbWVcbiAgICAgICAgICBjaGlsZERhdGFbJ2NvbXBldGVuY3lUaGVtZVR5cGUnXSA9IGNvbXBldGVuY3lUaGVtZVR5cGVcbiAgICAgICAgICBjaGlsZERhdGFbJ2NvbXBldGVuY3lTdWJUaGVtZSddID0gY29tcGV0ZW5jeVN1YlRoZW1lXG4gICAgICAgICAgY2hpbGREYXRhWydjb21wZXRlbmN5QXJlYUlkJ10gPSBjb21wZXRlbmN5QXJlYUlkXG4gICAgICAgICAgY2hpbGREYXRhWydjb21wZXRlbmN5VGhlbWVJZCddID0gY29tcGV0ZW5jeVRoZW1lSWRcbiAgICAgICAgICBjaGlsZERhdGFbJ2NvbXBldGVuY3lTdWJUaGVtZUlkJ10gPSBjb21wZXRlbmN5U3ViVGhlbWVJZFxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICAgaWYgKGNvbnRlbnROZXcubGVuZ3RoID4gMSkge1xuICAgICAgICBjb25zdCBzb3J0ZWREYXRhOiBhbnkgPSBjb250ZW50TmV3LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlyc3REYXRlOiBhbnkgPSBuZXcgRGF0ZShhLmVuZERhdGUpXG4gICAgICAgICAgY29uc3Qgc2Vjb25kRGF0ZTogYW55ID0gbmV3IERhdGUoYi5lbmREYXRlKVxuXG4gICAgICAgICAgcmV0dXJuICBzZWNvbmREYXRlID4gZmlyc3REYXRlICA/IDEgOiAtMVxuICAgICAgICB9KVxuICAgICAgICBjb25zdCB1bmlxdWVVc2Vyc0J5SUQgPSBsb2Rhc2gudW5pcUJ5KHNvcnRlZERhdGEsICdpZGVudGlmaWVyJylcbiAgICAgICAgY29uc3Qgc29ydGVkQnlFbmREYXRlID0gIGxvZGFzaC5vcmRlckJ5KHVuaXF1ZVVzZXJzQnlJRCwgWydlbmREYXRlJ10sIFsnYXNjJ10pXG4gICAgICAgIGNvbnN0IHNvcnRlZEJ5U3RhdHVzID0gIGxvZGFzaC5vcmRlckJ5KHNvcnRlZEJ5RW5kRGF0ZSwgWydjb250ZW50U3RhdHVzJ10sIFsnYXNjJ10pXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYnBEYXRhJywgSlNPTi5zdHJpbmdpZnkoc29ydGVkQnlTdGF0dXMpKVxuICAgICAgICByZXR1cm4gc29ydGVkQnlTdGF0dXNcbiAgICAgfVxuICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2JwRGF0YScsIEpTT04uc3RyaW5naWZ5KGNvbnRlbnROZXcpKVxuICAgICByZXR1cm4gY29udGVudE5ld1xuICAgIH1cbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2JwRGF0YScsIEpTT04uc3RyaW5naWZ5KFtdKSlcbiAgICByZXR1cm4gW11cbiAgfVxuXG4gIG1hcEVucm9sbG1lbnREYXRhKGNvdXJzZURhdGE6IGFueSkge1xuICAgIGNvbnN0IGVucm9sbERhdGE6IGFueSA9IHt9XG4gICAgaWYgKGNvdXJzZURhdGEgJiYgY291cnNlRGF0YS5jb3Vyc2VzLmxlbmd0aCkge1xuICAgICAgY291cnNlRGF0YS5jb3Vyc2VzLmZvckVhY2goKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIGVucm9sbERhdGFbZGF0YS5jb2xsZWN0aW9uSWRdID0gZGF0YVxuICAgICAgfSlcbiAgICB9XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2Vucm9sbG1lbnRNYXBEYXRhJylcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZW5yb2xsbWVudE1hcERhdGEnLCBKU09OLnN0cmluZ2lmeShlbnJvbGxEYXRhKSlcbiAgfVxuICBzdG9yZVVzZXJFbnJvbGxtZW50SW5mbyhlbnJvbGxtZW50RGF0YTogYW55LCBlbnJvbGxlZENvdXJzZUNvdW50OiBudW1iZXIpIHtcbiAgICBjb25zdCB1c2VyRGF0YSA9IHtcbiAgICAgIGVucm9sbGVkQ291cnNlQ291bnQsXG4gICAgICB1c2VyQ291cnNlRW5yb2xtZW50SW5mbzogZW5yb2xsbWVudERhdGEsXG4gICAgfVxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCd1c2VyRW5yb2xsbWVudENvdW50JylcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndXNlckVucm9sbG1lbnRDb3VudCcsIEpTT04uc3RyaW5naWZ5KHVzZXJEYXRhKSlcbiAgfVxufVxuIl19
@@ -92,7 +92,7 @@ var CardPortraitExtComponent = /** @class */ (function () {
92
92
  CardPortraitExtComponent.decorators = [
93
93
  { type: Component, args: [{
94
94
  selector: 'sb-uic-card-portrait-ext',
95
- template: "<ng-container *ngIf=\"!isCardLoading\">\n <mat-card class=\"card-standard-container mr-5 padding-remove cursor-pointer {{widgetData?.cardCustomeClass}}\" [ngClass]=\"{\n greyOut:\n widgetData?.deletedMode === 'greyOut' && !isLiveOrMarkForDeletion\n ? true\n : widgetData?.intranetMode === 'greyOut' && showIntranetContent\n }\" (click)=\"(showIntranetContent || !isLiveOrMarkForDeletion) && showSnackbar()\">\n <div class=\"display-contents\" [ngClass]=\"{\n disableClick:\n widgetData?.deletedMode === 'greyOut' && !isLiveOrMarkForDeletion\n ? true\n : widgetData?.intranetMode === 'greyOut' && showIntranetContent\n }\">\n <ng-container *ngIf=\"widgetData?.content\">\n <a (click)=\"getRedirectUrlData(widgetData?.content); $event.stopPropagation()\"\n role=\"link\" i18n-aria-label>\n <ng-container *ngIf=\"!isCardFlipped\">\n <div class=\"status-danger\" role=\"note\" i18n-aria-label aria-label=\"Content expired or deleted\" i18n-matTooltip\n matTooltip=\"Content may be expired or deleted\" *ngIf=\"!isLiveOrMarkForDeletion\"></div>\n <div class=\"status-danger\" role=\"note\" i18n-aria-label aria-label=\"Intranet content\" i18n-matTooltip\n matTooltip=\"Available only in Company's network\"\n *ngIf=\"widgetData?.intranetMode === 'greyOut' && showIntranetContent\"></div>\n <button *ngIf=\"showFlip\" class=\"detail-button ws-mat-primary-lite-background-op30\" mat-icon-button\n (click)=\"isCardFlipped = true\" aria-label=\"Details\" i18n-aria-label=\"Details | Click to see details\">\n <mat-icon>flip_to_back</mat-icon>\n </button>\n <mat-card-content class=\"min-top\">\n <div style=\"position: relative; z-index: 1;\">\n <ng-container *ngIf=\"widgetData?.content?.posterImage\">\n <img mat-card-image [src]=\"widgetData.content.posterImage | pipePublicURL\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData.content.name\" />\n </ng-container>\n <ng-container *ngIf=\"!widgetData.content.posterImage\">\n <ng-container *ngIf=\"widgetData.content.appIcon; else defaultImg\">\n <img mat-card-image [src]=\"widgetData.content.appIcon \" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-container>\n <ng-template #defaultImg>\n <img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-template>\n </ng-container>\n <div class=\"source-div\" style=\"display: none;\">\n <img [src]=\"widgetData?.content.contentPartner.link\" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData?.content?.sourceName + '_' + widgetData.content?.contentId)\" />\n </div>\n <ng-container *ngIf=\"widgetData?.content?.cbPlanEndDate\">\n <div class=\"cbp-mark\">\n <span>{{widgetData?.content?.cbPlanEndDate | date: 'd MMM, y'}}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"cbPlanMapData && cbPlanMapData[widgetData?.content?.contentId] && cbPlanMapData[widgetData?.content?.identifier]?.contentStatus < 2 \">\n <ng-container [ngTemplateOutlet]=\"cbpPlan\" [ngTemplateOutletContext]=\"{data: {\n cbpData: cbPlanMapData[widgetData?.content?.contentId]\n }}\"></ng-container>\n </ng-container>\n <div class=\"duration-box right-corner\" *ngIf=\"widgetData?.content?.duration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{ (widgetData?.content?.duration || 120)| pipeDurationTransform: 'hms' }}\n </span>\n </div>\n <div class=\"duration-box right-corner\" *ngIf=\"widgetData?.content?.programDuration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{widgetData?.content?.programDuration}} {{widgetData?.content?.programDuration === 1 ? 'day' : 'days'}}\n </span>\n </div>\n </div>\n <div class=\"padding-m\">\n <div class=\"course_widget flex margin-remove\">\n <div class=\"flex flex-end course_v2\">\n <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs\">video_library</mat-icon>\n <sb-uic-display-content-type [useTranslation]=\"false\" i18n-title title=\"Content Type\" *ngIf=\"widgetData.content?.topic\"\n class=\"ws-mat-black60-text font-normal mat-caption \" [displayContentType]=\"'External Course'\">\n \n </sb-uic-display-content-type>\n </div>\n </div>\n <div [id]=\"'m-c-'+ widgetData.content?.contentId\"\n class=\"mat-subheading-1 title-text ws-mat-text-block-fade-gradient\" [matTooltip]=\"widgetData.content.name\">\n {{ widgetData.content.name }}\n </div>\n <div class=\"flex w-full flex-wrap flex-middle\">\n <div class=\"course_logo_box\">\n <img [src]=\"widgetData.content.contentPartner.link \" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData.content.sourceName + '_' + widgetData.content.contentId)\" />\n </div>\n <!-- <span class=\"org-text\">{{'cardcontentv2.by' | translate}} -->\n <span class=\"org-text\">By&nbsp; {{ (widgetData?.content?.contentPartner?.contentPartnerName) ? widgetData?.content?.contentPartner?.contentPartnerName : 'Karmayogi Bharat' }}</span>\n </div>\n <div class=\"flex flex-middle rating-session margin-top-m\">\n <div class=\"flex flex-middle\" *ngIf=\"widgetData?.content?.avgRating\">\n <mat-icon class=\"mr-1\">star</mat-icon>\n <span>{{widgetData.content.avgRating}}</span>\n </div>\n <!-- <span class=\"most-enrolled-text margin-left-m\">{{ 'cardcontentv2.mostEnrolled' | translate }}</span> -->\n <ng-container *ngIf=\"widgetData?.content?.additionalTags && widgetData?.content?.additionalTags.includes('mostEnrolled')\">\n <span class=\"most-enrolled-text margin-left-xs\">\n <!-- {{ 'cardcontentv2.mostEnrolled' | translate }} -->\n </span>\n </ng-container>\n <ng-container *ngIf=\"widgetData?.content?.additionalTags && widgetData?.content?.additionalTags.includes('mostTrending')\">\n <span class=\"most-enrolled-text margin-left-xs\">\n <!-- {{ 'cardcontentv2.mostTrending' | translate }} -->\n </span>\n </ng-container>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n <ng-container *ngIf=\"isCardFlipped\">\n <div class=\"flex items-center\">\n <!-- <h2 class=\"mat-subheading-2 flex-1 min-w-0 margin-remove-bottom\" i18n>{{'cardcontentv2.reason' | translate}}</h2> -->\n <button mat-icon-button (click)=\"isCardFlipped = false\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <p class=\"text-justify mat-body-1\">\n {{ widgetData.content.reason }}\n </p>\n </ng-container>\n </a>\n </ng-container>\n </div>\n </mat-card>\n </ng-container>\n \n <ng-container *ngIf=\"isCardLoading\">\n <mat-card class=\"card-standard-container mr-5 padding-remove\" >\n <div class=\"display-contents\" >\n <ng-container *ngIf=\"!isCardFlipped\">\n <mat-card-content class=\"min-top\">\n <div style=\"position: relative; z-index: 1;\">\n <ng-container>\n <sb-uic-skeleton-loader [width]=\"'100%'\" [height]=\"'140px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n <div class=\"padding-m\">\n <div class=\"course_widget flex margin-remove\">\n <div class=\"flex flex-end\">\n <sb-uic-skeleton-loader [width]=\"'65px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"mat-subheading-1 title-text ws-mat-text-block-fade-gradient\">\n <sb-uic-skeleton-loader [width]=\"'100%'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [width]=\"'111px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded margin-top-s'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex w-full flex-wrap flex-middle margin-top-m\">\n <div class=\"\">\n <sb-uic-skeleton-loader [width]=\"'28px'\" [height]=\"'28px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n <span class=\"org-text\"> <sb-uic-skeleton-loader [width]=\"'111px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader></span>\n </div>\n <div class=\"flex flex-middle rating-session margin-top-m\">\n <div class=\"flex flex-middle\">\n <sb-uic-skeleton-loader [width]=\"'45px'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded margin-top-m'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n </div>\n </mat-card>\n </ng-container>\n \n <ng-template #cbpPlan let-data=\"data\">\n <div class=\"cbp-mark left-0 border-top-radius\">\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.UPCOMING\" class=\"cbp-warning\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.SUCCESS\" class=\"cbp-success\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.OVERDUE\" class=\"cbp-danger\">{{'OverDue' }}</p>\n </div>\n </ng-template>",
95
+ template: "<ng-container *ngIf=\"!isCardLoading\">\n <mat-card class=\"card-standard-container mr-5 padding-remove cursor-pointer {{widgetData?.cardCustomeClass}}\" [ngClass]=\"{\n greyOut:\n widgetData?.deletedMode === 'greyOut' && !isLiveOrMarkForDeletion\n ? true\n : widgetData?.intranetMode === 'greyOut' && showIntranetContent\n }\" (click)=\"(showIntranetContent || !isLiveOrMarkForDeletion) && showSnackbar()\">\n <div class=\"display-contents\" [ngClass]=\"{\n disableClick:\n widgetData?.deletedMode === 'greyOut' && !isLiveOrMarkForDeletion\n ? true\n : widgetData?.intranetMode === 'greyOut' && showIntranetContent\n }\">\n <ng-container *ngIf=\"widgetData?.content\">\n <a (click)=\"getRedirectUrlData(widgetData?.content); $event.stopPropagation()\"\n role=\"link\" i18n-aria-label>\n <ng-container *ngIf=\"!isCardFlipped\">\n <div class=\"status-danger\" role=\"note\" i18n-aria-label aria-label=\"Content expired or deleted\" i18n-matTooltip\n matTooltip=\"Content may be expired or deleted\" *ngIf=\"!isLiveOrMarkForDeletion\"></div>\n <div class=\"status-danger\" role=\"note\" i18n-aria-label aria-label=\"Intranet content\" i18n-matTooltip\n matTooltip=\"Available only in Company's network\"\n *ngIf=\"widgetData?.intranetMode === 'greyOut' && showIntranetContent\"></div>\n <button *ngIf=\"showFlip\" class=\"detail-button ws-mat-primary-lite-background-op30\" mat-icon-button\n (click)=\"isCardFlipped = true\" aria-label=\"Details\" i18n-aria-label=\"Details | Click to see details\">\n <mat-icon>flip_to_back</mat-icon>\n </button>\n <mat-card-content class=\"min-top\">\n <div style=\"position: relative; z-index: 1;\">\n <ng-container *ngIf=\"widgetData?.content?.posterImage\">\n <img mat-card-image [src]=\"widgetData.content.posterImage | pipePublicURL\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData.content.name\" />\n </ng-container>\n <ng-container *ngIf=\"!widgetData.content.posterImage\">\n <ng-container *ngIf=\"widgetData.content.appIcon; else defaultImg\">\n <img mat-card-image [src]=\"widgetData.content.appIcon \" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\" [wsUtilsDefaultThumbnail]=\"defaultThumbnail\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-container>\n <ng-template #defaultImg>\n <img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n class=\"card-img ws-mat-primary-lite-background margin-remove\"\n [alt]=\"widgetData?.content?.name\" />\n </ng-template>\n </ng-container>\n <div class=\"source-div\" style=\"display: none;\">\n <img [src]=\"widgetData?.content?.contentPartner?.link\" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData?.content?.sourceName + '_' + widgetData.content?.contentId)\" />\n </div>\n <ng-container *ngIf=\"widgetData?.content?.cbPlanEndDate\">\n <div class=\"cbp-mark\">\n <span>{{widgetData?.content?.cbPlanEndDate | date: 'd MMM, y'}}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"cbPlanMapData && cbPlanMapData[widgetData?.content?.contentId] && cbPlanMapData[widgetData?.content?.identifier]?.contentStatus < 2 \">\n <ng-container [ngTemplateOutlet]=\"cbpPlan\" [ngTemplateOutletContext]=\"{data: {\n cbpData: cbPlanMapData[widgetData?.content?.contentId]\n }}\"></ng-container>\n </ng-container>\n <div class=\"duration-box right-corner\" *ngIf=\"widgetData?.content?.duration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{ (widgetData?.content?.duration || 120)| pipeDurationTransform: 'hms' }}\n </span>\n </div>\n <div class=\"duration-box right-corner\" *ngIf=\"widgetData?.content?.programDuration > 0\">\n <mat-icon class=\"mat-icon main_icon mr-1\">access_time</mat-icon>\n <span class=\" ws-mat-white-text duration\">\n {{widgetData?.content?.programDuration}} {{widgetData?.content?.programDuration === 1 ? 'day' : 'days'}}\n </span>\n </div>\n </div>\n <div class=\"padding-m\">\n <div class=\"course_widget flex margin-remove\">\n <div class=\"flex flex-end course_v2\">\n <mat-icon class=\"mat-icon main_icon ws-mat-default-text margin-right-xs\">video_library</mat-icon>\n <sb-uic-display-content-type [useTranslation]=\"false\" i18n-title title=\"Content Type\" *ngIf=\"widgetData.content?.topic\"\n class=\"ws-mat-black60-text font-normal mat-caption \" [displayContentType]=\"'External Course'\">\n \n </sb-uic-display-content-type>\n </div>\n </div>\n <div [id]=\"'m-c-'+ widgetData.content?.contentId\"\n class=\"mat-subheading-1 title-text ws-mat-text-block-fade-gradient\" [matTooltip]=\"widgetData.content.name\">\n {{ widgetData.content.name }}\n </div>\n <div class=\"flex w-full flex-wrap flex-middle\">\n <div class=\"course_logo_box\">\n <img [src]=\"widgetData.content.contentPartner.link \" class=\"source-icon\" [wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n [alt]=\"(widgetData.content.sourceName + '_' + widgetData.content.contentId)\" />\n </div>\n <!-- <span class=\"org-text\">{{'cardcontentv2.by' | translate}} -->\n <span class=\"org-text\">By&nbsp; {{ (widgetData?.content?.contentPartner?.contentPartnerName) ? widgetData?.content?.contentPartner?.contentPartnerName : 'Karmayogi Bharat' }}</span>\n </div>\n <div class=\"flex flex-middle rating-session margin-top-m\">\n <div class=\"flex flex-middle\" *ngIf=\"widgetData?.content?.avgRating\">\n <mat-icon class=\"mr-1\">star</mat-icon>\n <span>{{widgetData.content.avgRating}}</span>\n </div>\n <!-- <span class=\"most-enrolled-text margin-left-m\">{{ 'cardcontentv2.mostEnrolled' | translate }}</span> -->\n <ng-container *ngIf=\"widgetData?.content?.additionalTags && widgetData?.content?.additionalTags.includes('mostEnrolled')\">\n <span class=\"most-enrolled-text margin-left-xs\">\n <!-- {{ 'cardcontentv2.mostEnrolled' | translate }} -->\n </span>\n </ng-container>\n <ng-container *ngIf=\"widgetData?.content?.additionalTags && widgetData?.content?.additionalTags.includes('mostTrending')\">\n <span class=\"most-enrolled-text margin-left-xs\">\n <!-- {{ 'cardcontentv2.mostTrending' | translate }} -->\n </span>\n </ng-container>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n <ng-container *ngIf=\"isCardFlipped\">\n <div class=\"flex items-center\">\n <!-- <h2 class=\"mat-subheading-2 flex-1 min-w-0 margin-remove-bottom\" i18n>{{'cardcontentv2.reason' | translate}}</h2> -->\n <button mat-icon-button (click)=\"isCardFlipped = false\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <p class=\"text-justify mat-body-1\">\n {{ widgetData.content.reason }}\n </p>\n </ng-container>\n </a>\n </ng-container>\n </div>\n </mat-card>\n </ng-container>\n \n <ng-container *ngIf=\"isCardLoading\">\n <mat-card class=\"card-standard-container mr-5 padding-remove\" >\n <div class=\"display-contents\" >\n <ng-container *ngIf=\"!isCardFlipped\">\n <mat-card-content class=\"min-top\">\n <div style=\"position: relative; z-index: 1;\">\n <ng-container>\n <sb-uic-skeleton-loader [width]=\"'100%'\" [height]=\"'140px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </ng-container>\n </div>\n <div class=\"padding-m\">\n <div class=\"course_widget flex margin-remove\">\n <div class=\"flex flex-end\">\n <sb-uic-skeleton-loader [width]=\"'65px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n <div class=\"mat-subheading-1 title-text ws-mat-text-block-fade-gradient\">\n <sb-uic-skeleton-loader [width]=\"'100%'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [width]=\"'111px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded margin-top-s'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex w-full flex-wrap flex-middle margin-top-m\">\n <div class=\"\">\n <sb-uic-skeleton-loader [width]=\"'28px'\" [height]=\"'28px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader>\n </div>\n <span class=\"org-text\"> <sb-uic-skeleton-loader [width]=\"'111px'\" [height]=\"'16px'\" [bindingClass]=\"'flex rounded'\"></sb-uic-skeleton-loader></span>\n </div>\n <div class=\"flex flex-middle rating-session margin-top-m\">\n <div class=\"flex flex-middle\">\n <sb-uic-skeleton-loader [width]=\"'45px'\" [height]=\"'12px'\" [bindingClass]=\"'flex rounded margin-top-m'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n </mat-card-content>\n </ng-container>\n </div>\n </mat-card>\n </ng-container>\n \n <ng-template #cbpPlan let-data=\"data\">\n <div class=\"cbp-mark left-0 border-top-radius\">\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.UPCOMING\" class=\"cbp-warning\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.SUCCESS\" class=\"cbp-success\">{{data.cbpData.endDate | date: 'd MMM, y'}}</p>\n <p *ngIf=\"data.cbpData.planDuration === acbpConstants?.OVERDUE\" class=\"cbp-danger\">{{'OverDue' }}</p>\n </div>\n </ng-template>",
96
96
  styles: [".course_widget{margin-top:10px}.course_widget .mat-icon{vertical-align:middle;color:#ef951e!important}.course_widget .course_v2{border:1px solid #ef951e;padding:4px 8px;align-items:end;border-radius:16px}.course_widget .main_icon{font-size:16px;width:16px;height:16px}.rating-session mat-icon{font-size:16px;height:16px;width:12px;padding-right:3px;color:#ef951e}.rating-session span{font-size:11px}.rating-session .most-enrolled-text{padding:0 8px;background:#ffea9e;border-radius:4px}.card-standard-container{position:relative;width:245px;min-height:346px;border-radius:8px;box-sizing:border-box;box-shadow:0 10px 30px rgba(153,153,153,.2);overflow:hidden;height:346px;margin:20px 8px}.card-standard-container .progress-bar{width:101%;margin-left:-15px;display:flex;margin-top:0;background:bisque;position:absolute;bottom:0}.card-standard-container ::ng-deep .mat-progress-bar{height:8px!important}.card-standard-container .icon_text{font-size:12px;line-height:16px;text-transform:uppercase}.card-standard-container .course_logo_box{width:38px;height:38px;background:#fff;border-radius:8px;box-sizing:border-box;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.card-standard-container .course_logo_box img{height:28px;width:28px;padding:5px;display:inline-block}.card-standard-container .course_logo_box p{display:inline-block;vertical-align:top}.card-standard-container .org-text{font-size:12px;font-weight:400;width:75%;padding-left:10px;word-break:break-all;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.card-standard-container .source-div{position:relative;top:100px;background:#fff;z-index:3;border:1px solid #dedfe0;min-width:72px;min-height:72px;max-width:72px;max-height:72px;display:flex;border-radius:8px}.card-standard-container .source-div .source-icon{border-radius:8px;display:block;margin:auto;max-width:58px;max-height:-webkit-fill-available}.card-standard-container mat-card-content{background:#fff}.card-standard-container .card-img{min-width:245px;max-height:140px;min-height:140px;display:block;-o-object-fit:fill;object-fit:fill;border-top-left-radius:8px;border-top-right-radius:8px;width:100%}.card-standard-container .mat-subheading-1{font:600 14px/24px Montserrat}.card-standard-container .complexity{padding-top:70px;display:flex;font-size:14px;line-height:21px;padding-bottom:10px}.card-standard-container .complexity .mode-tag{border-radius:5px;order:2;margin-left:auto;color:#fff;font-size:10px}.card-standard-container .complexity .duration{display:flex;margin-left:auto;order:3;font-weight:700}.card-standard-container .complexity .time-text{margin:0 5px 0 6px;font-weight:700}.card-standard-container .basic{margin:auto 0}.card-standard-container .title-text{word-break:break-all;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:48px}.card-standard-container .description-text{position:relative;overflow:hidden;height:42px;white-space:normal;text-overflow:ellipsis}.duration-box{background:#000;position:absolute;border:none;display:flex;align-items:center;padding:4px;border-radius:4px}.duration-box.right-corner{right:4px;bottom:4px}.duration-box .mat-icon{vertical-align:middle;color:#fff!important;height:14px!important;width:14px!important;font-size:14px}.duration-box .duration{font:700 12px/16px Lato;display:inline-block;margin:0;padding:0}.width-238{width:238px!important}.cbp-mark{border-radius:12px 0;opacity:1;background-image:linear-gradient(90deg,rgba(0,0,0,.6) 0,rgba(0,0,0,0) 100%);position:absolute;top:0;padding:8px}.cbp-mark p{opacity:1;background-color:#fff;padding:4px;opacity:1;color:#1b2133;font-family:Lato-Regular;font-size:10px;font-weight:400;font-style:Regular;letter-spacing:.5px;text-align:left;line-height:12px;margin-bottom:0}.cbpwidth{width:340px}.cbp-plan{border-radius:4px;opacity:1;background-color:#1b4ca1;top:4px;left:4px;opacity:1;color:rgba(255,255,255,.95);font-family:Lato-Bold;font-size:12px;font-weight:700;font-style:normal;letter-spacing:.25px;text-align:center;line-height:16px;padding:4px}.cbp-info{opacity:1;color:#fff;font-family:Lato-Regular;font-size:10px;font-weight:400;font-style:normal;letter-spacing:.5px;text-align:left;line-height:12px;padding:2px}.cbp-danger{border-radius:2px;border:1px solid rgba(0,0,0,.08);background-color:#d13924!important;color:#fff!important;opacity:1}.cbp-success{border-radius:2px;border:1px solid #1d8922;background-color:#1d8922!important;color:#fff!important;opacity:1}.cbp-warning{border-radius:2px;border:1px solid #ef951e;background-color:#ef951e!important;color:#fff!important;opacity:1}.tooltiptext{visibility:hidden;width:90px;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:4px 0;position:absolute;z-index:1;top:25px;left:-32px;font-size:12px}.title-text:hover .tooltiptext{visibility:visible}"]
97
97
  }] }
98
98
  ];
@@ -173,4 +173,4 @@ if (false) {
173
173
  */
174
174
  CardPortraitExtComponent.prototype.contSvc;
175
175
  }
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1wb3J0cmFpdC1leHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bmJpcmQtY2IvY29uc3VtcHRpb24vIiwic291cmNlcyI6WyJsaWIvX2NvbW1vbi9jYXJkcy9jYXJkLXBvcnRyYWl0LWV4dC9jYXJkLXBvcnRyYWl0LWV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFFM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDdkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFakY7SUFxQkUsa0NBQ1UsUUFBcUIsRUFDckIsU0FBMkIsRUFDM0IsZ0JBQWlELEVBQ2pELFNBQWdDLEVBQ2hDLE9BQTZCO1FBTHZDLGlCQWFHO1FBWk8sYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlDO1FBQ2pELGNBQVMsR0FBVCxTQUFTLENBQXVCO1FBQ2hDLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBaEI5QixrQkFBYSxHQUFZLEtBQUssQ0FBQTtRQUM3QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUE7UUFFL0Msa0JBQWEsR0FBVyxLQUFLLENBQUE7UUFDN0Isa0JBQWEsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFBO1FBSXZD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bUVDO1NBOURZLHdCQUF3Qjs7O0lBQ25DLDhDQUEwQzs7SUFDMUMsMkRBQXFDOztJQUNyQyx1REFBaUM7O0lBQ2pDLDZEQUF1Qzs7SUFDdkMsaURBQXVDOztJQUN2QywrQ0FBK0M7O0lBQy9DLGlEQUE0Qjs7SUFDNUIsaURBQTZCOztJQUM3QixpREFBdUM7O0lBQ3ZDLG9EQUFxQjs7SUFDckIsK0NBQWdCOztJQUNoQixnREFBaUI7O0lBQ2pCLDRDQUFnQjs7SUFDaEIsOENBQXNCOztJQUN0QixpREFBeUI7Ozs7O0lBRXZCLDRDQUE2Qjs7Ozs7SUFDN0IsNkNBQW1DOzs7OztJQUNuQyxvREFBeUQ7Ozs7O0lBQ3pELDZDQUF3Qzs7Ozs7SUFDeEMsMkNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnNDYXJkQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL19tb2RlbHMvY2FyZC1jb250ZW50Lm1vZGVsJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnNTZXJ2aWNlLCBFdmVudFNlcnZpY2UgfSBmcm9tICdAc3VuYmlyZC1jYi91dGlscy12Mic7XG5pbXBvcnQgKiBhcyBfIGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE11bHRpbGluZ3VhbFRyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMvbXVsdGlsaW5ndWFsLXRyYW5zbGF0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IFdpZGdldENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX3NlcnZpY2VzL3dpZGdldC1jb250ZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi11aWMtY2FyZC1wb3J0cmFpdC1leHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1wb3J0cmFpdC1leHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJkLXBvcnRyYWl0LWV4dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENhcmRQb3J0cmFpdEV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHdpZGdldERhdGEhOiBOc0NhcmRDb250ZW50LklDYXJkO1xuICBASW5wdXQoKSBpc0xpdmVPck1hcmtGb3JEZWxldGlvbjogYW55XG4gIEBJbnB1dCgpIHNob3dJbnRyYW5ldENvbnRlbnQ6IGFueVxuICBASW5wdXQoKSBpc0ludHJhbmV0QWxsb3dlZFNldHRpbmdzOiBhbnlcbiAgQElucHV0KCkgaXNDYXJkTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlXG4gIEBPdXRwdXQoKSBjb250ZW50RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gIEBJbnB1dCgpICBjYlBsYW5NYXBEYXRhOiBhbnlcbiAgaXNDYXJkRmxpcHBlZDpib29sZWFuID0gZmFsc2VcbiAgYWNicENvbnN0YW50cyA9IE5zQ2FyZENvbnRlbnQuQUNCUENvbnN0XG4gIGRlZmF1bHRUaHVtYm5haWw6IGFueVxuICBzb3VyY2VMb2dvczogYW55XG4gIGRlZmF1bHRTTG9nbzogYW55XG4gIHNob3dGbGlwID0gZmFsc2VcbiAgd2lkZ2V0VHlwZTogYW55ID0gJ2RmJ1xuICB3aWRnZXRTdWJUeXBlOiBhbnkgPSdzZGYnXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3RyYW5zbGF0aW9uczogTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ1N2YzogQ29uZmlndXJhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udFN2YzogV2lkZ2V0Q29udGVudFNlcnZpY2UsKSB7IFxuICAgICAgdGhpcy5sYW5ndHJhbnNsYXRpb25zLmxhbmd1YWdlU2VsZWN0ZWRPYnNlcnZhYmxlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykpIHtcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZygnZW4nKVxuICAgICAgICAgIGNvbnN0IGxhbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykhXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGUudXNlKGxhbmcpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLndpZGdldERhdGEgJiYgdGhpcy53aWRnZXREYXRhLmNvbnRlbnQpIHtcbiAgICAgIHRoaXMud2lkZ2V0RGF0YS5jb250ZW50LmR1cmF0aW9uID0gdGhpcy53aWRnZXREYXRhLmNvbnRlbnQuZHVyYXRpb24gKiA2MFxuICAgIH1cbiAgICBjb25zdCBpbnN0YW5jZUNvbmZpZyA9IHRoaXMuY29uZmlnU3ZjLmluc3RhbmNlQ29uZmlnXG4gICAgaWYgKGluc3RhbmNlQ29uZmlnKSB7XG4gICAgICB0aGlzLmRlZmF1bHRUaHVtYm5haWwgPSBpbnN0YW5jZUNvbmZpZy5sb2dvcy5kZWZhdWx0Q29udGVudCB8fCAnJ1xuICAgICAgdGhpcy5zb3VyY2VMb2dvcyA9IGluc3RhbmNlQ29uZmlnLnNvdXJjZXNcbiAgICAgIHRoaXMuZGVmYXVsdFNMb2dvID0gaW5zdGFuY2VDb25maWcubG9nb3MuZGVmYXVsdFNvdXJjZUxvZ28gfHwgJydcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWZhdWx0VGh1bWJuYWlsID0gJy9hc3NldHMvaW5zdGFuY2VzL2VhZ2xlL2FwcF9sb2dvcy9kZWZhdWx0LnBuZydcbiAgICAgIHRoaXMuZGVmYXVsdFNMb2dvID0gICcvYXNzZXRzL2luc3RhbmNlcy9lYWdsZS9hcHBfbG9nb3MvS2FybWF5b2dpQmhhcmF0X0xvZ28uc3ZnJ1xuICAgIH1cbiAgfVxuXG4gIHNob3dTbmFja2JhcigpIHtcbiAgICBpZiAodGhpcy5zaG93SW50cmFuZXRDb250ZW50KSB7XG4gICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0NvbnRlbnQgaXMgb25seSBhdmFpbGFibGUgaW4gaW50cmFuZXQnLCAnWCcsIHsgZHVyYXRpb246IDIwMDAgfSlcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmlzTGl2ZU9yTWFya0ZvckRlbGV0aW9uKSB7XG4gICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0NvbnRlbnQgbWF5IGJlIGV4cGlyZWQgb3IgZGVsZXRlZCcsICdYJywgeyBkdXJhdGlvbjogMjAwMCB9KVxuICAgIH1cbiAgfVxuICBnZXRSZWRpcmVjdFVybERhdGEoY29udGVudERhdGE6IGFueSl7XG4gICAgLy8gZm9yIHRlbGVtZXRyeVxuICAgIGlmICh0aGlzLndpZGdldERhdGEgJiYgdGhpcy53aWRnZXREYXRhLmNvbnRleHQgJiYgdGhpcy53aWRnZXREYXRhLmNvbnRleHQucGFnZVNlY3Rpb24pIHtcbiAgICAgIGNvbnRlbnREYXRhWyd0eXBlT2ZUZWxlbWV0cnknXSA9IHRoaXMud2lkZ2V0RGF0YS5jb250ZXh0LnBhZ2VTZWN0aW9uXG4gICAgfVxuICAgIHRoaXMuY29udFN2Yy5jaGFuZ2VUZWxlbWV0cnlEYXRhKGNvbnRlbnREYXRhKVxuICAgIC8vIGZvciByZWRpcmVjdGlvblxuICAgIHRoaXMuY29udGVudERhdGEuZW1pdChjb250ZW50RGF0YSlcbiAgfVxufVxuIl19
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1wb3J0cmFpdC1leHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bmJpcmQtY2IvY29uc3VtcHRpb24vIiwic291cmNlcyI6WyJsaWIvX2NvbW1vbi9jYXJkcy9jYXJkLXBvcnRyYWl0LWV4dC9jYXJkLXBvcnRyYWl0LWV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFFM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDdkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFakY7SUFxQkUsa0NBQ1UsUUFBcUIsRUFDckIsU0FBMkIsRUFDM0IsZ0JBQWlELEVBQ2pELFNBQWdDLEVBQ2hDLE9BQTZCO1FBTHZDLGlCQWFHO1FBWk8sYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlDO1FBQ2pELGNBQVMsR0FBVCxTQUFTLENBQXVCO1FBQ2hDLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBaEI5QixrQkFBYSxHQUFZLEtBQUssQ0FBQTtRQUM3QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUE7UUFFL0Msa0JBQWEsR0FBVyxLQUFLLENBQUE7UUFDN0Isa0JBQWEsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFBO1FBSXZD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bUVDO1NBOURZLHdCQUF3Qjs7O0lBQ25DLDhDQUEwQzs7SUFDMUMsMkRBQXFDOztJQUNyQyx1REFBaUM7O0lBQ2pDLDZEQUF1Qzs7SUFDdkMsaURBQXVDOztJQUN2QywrQ0FBK0M7O0lBQy9DLGlEQUE0Qjs7SUFDNUIsaURBQTZCOztJQUM3QixpREFBdUM7O0lBQ3ZDLG9EQUFxQjs7SUFDckIsK0NBQWdCOztJQUNoQixnREFBaUI7O0lBQ2pCLDRDQUFnQjs7SUFDaEIsOENBQXNCOztJQUN0QixpREFBeUI7Ozs7O0lBRXZCLDRDQUE2Qjs7Ozs7SUFDN0IsNkNBQW1DOzs7OztJQUNuQyxvREFBeUQ7Ozs7O0lBQ3pELDZDQUF3Qzs7Ozs7SUFDeEMsMkNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnNDYXJkQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL19tb2RlbHMvY2FyZC1jb250ZW50Lm1vZGVsJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnNTZXJ2aWNlLCBFdmVudFNlcnZpY2UgfSBmcm9tICdAc3VuYmlyZC1jYi91dGlscy12Mic7XG5pbXBvcnQgKiBhcyBfIGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE11bHRpbGluZ3VhbFRyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMvbXVsdGlsaW5ndWFsLXRyYW5zbGF0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IFdpZGdldENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX3NlcnZpY2VzL3dpZGdldC1jb250ZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi11aWMtY2FyZC1wb3J0cmFpdC1leHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1wb3J0cmFpdC1leHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJkLXBvcnRyYWl0LWV4dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENhcmRQb3J0cmFpdEV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHdpZGdldERhdGEhOiBOc0NhcmRDb250ZW50LklDYXJkO1xuICBASW5wdXQoKSBpc0xpdmVPck1hcmtGb3JEZWxldGlvbjogYW55XG4gIEBJbnB1dCgpIHNob3dJbnRyYW5ldENvbnRlbnQ6IGFueVxuICBASW5wdXQoKSBpc0ludHJhbmV0QWxsb3dlZFNldHRpbmdzOiBhbnlcbiAgQElucHV0KCkgaXNDYXJkTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlXG4gIEBPdXRwdXQoKSBjb250ZW50RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gIEBJbnB1dCgpICBjYlBsYW5NYXBEYXRhOiBhbnlcbiAgaXNDYXJkRmxpcHBlZDpib29sZWFuID0gZmFsc2VcbiAgYWNicENvbnN0YW50cyA9IE5zQ2FyZENvbnRlbnQuQUNCUENvbnN0XG4gIGRlZmF1bHRUaHVtYm5haWw6IGFueVxuICBzb3VyY2VMb2dvczogYW55XG4gIGRlZmF1bHRTTG9nbzogYW55XG4gIHNob3dGbGlwID0gZmFsc2VcbiAgd2lkZ2V0VHlwZTogYW55ID0gJ2RmJ1xuICB3aWRnZXRTdWJUeXBlOiBhbnkgPSdzZGYnXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3RyYW5zbGF0aW9uczogTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ1N2YzogQ29uZmlndXJhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udFN2YzogV2lkZ2V0Q29udGVudFNlcnZpY2UsKSB7IFxuICAgICAgdGhpcy5sYW5ndHJhbnNsYXRpb25zLmxhbmd1YWdlU2VsZWN0ZWRPYnNlcnZhYmxlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykpIHtcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZygnZW4nKVxuICAgICAgICAgIGNvbnN0IGxhbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykhXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGUudXNlKGxhbmcpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLndpZGdldERhdGEgJiYgdGhpcy53aWRnZXREYXRhLmNvbnRlbnQpIHtcbiAgICAgIHRoaXMud2lkZ2V0RGF0YS5jb250ZW50LmR1cmF0aW9uID0gdGhpcy53aWRnZXREYXRhLmNvbnRlbnQuZHVyYXRpb24gKiA2MFxuICAgIH1cbiAgICBjb25zdCBpbnN0YW5jZUNvbmZpZyA9IHRoaXMuY29uZmlnU3ZjLmluc3RhbmNlQ29uZmlnXG4gICAgaWYgKGluc3RhbmNlQ29uZmlnKSB7XG4gICAgICB0aGlzLmRlZmF1bHRUaHVtYm5haWwgPSBpbnN0YW5jZUNvbmZpZy5sb2dvcy5kZWZhdWx0Q29udGVudCB8fCAnJ1xuICAgICAgdGhpcy5zb3VyY2VMb2dvcyA9IGluc3RhbmNlQ29uZmlnLnNvdXJjZXNcbiAgICAgIHRoaXMuZGVmYXVsdFNMb2dvID0gaW5zdGFuY2VDb25maWcubG9nb3MuZGVmYXVsdFNvdXJjZUxvZ28gfHwgJydcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWZhdWx0VGh1bWJuYWlsID0gJy9hc3NldHMvaW5zdGFuY2VzL2VhZ2xlL2FwcF9sb2dvcy9kZWZhdWx0LnBuZydcbiAgICAgIHRoaXMuZGVmYXVsdFNMb2dvID0gICcvYXNzZXRzL2luc3RhbmNlcy9lYWdsZS9hcHBfbG9nb3MvS2FybWF5b2dpQmhhcmF0X0xvZ28uc3ZnJ1xuICAgIH1cbiAgfVxuXG4gIHNob3dTbmFja2JhcigpIHtcbiAgICBpZiAodGhpcy5zaG93SW50cmFuZXRDb250ZW50KSB7XG4gICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0NvbnRlbnQgaXMgb25seSBhdmFpbGFibGUgaW4gaW50cmFuZXQnLCAnWCcsIHsgZHVyYXRpb246IDIwMDAgfSlcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmlzTGl2ZU9yTWFya0ZvckRlbGV0aW9uKSB7XG4gICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0NvbnRlbnQgbWF5IGJlIGV4cGlyZWQgb3IgZGVsZXRlZCcsICdYJywgeyBkdXJhdGlvbjogMjAwMCB9KVxuICAgIH1cbiAgfVxuICBnZXRSZWRpcmVjdFVybERhdGEoY29udGVudERhdGE6IGFueSl7XG4gICAgLy8gZm9yIHRlbGVtZXRyeVxuICAgIGlmICh0aGlzLndpZGdldERhdGEgJiYgdGhpcy53aWRnZXREYXRhLmNvbnRleHQgJiYgdGhpcy53aWRnZXREYXRhLmNvbnRleHQucGFnZVNlY3Rpb24pIHtcbiAgICAgIGNvbnRlbnREYXRhWyd0eXBlT2ZUZWxlbWV0cnknXSA9IHRoaXMud2lkZ2V0RGF0YS5jb250ZXh0LnBhZ2VTZWN0aW9uXG4gICAgfVxuICAgIHRoaXMuY29udFN2Yy5jaGFuZ2VUZWxlbWV0cnlEYXRhKGNvbnRlbnREYXRhKVxuICAgIC8vIGZvciByZWRpcmVjdGlvblxuICAgIHRoaXMuY29udGVudERhdGEuZW1pdChjb250ZW50RGF0YSlcbiAgfVxufVxuIl19