UNPKG

ntk-cms-api

Version:

Ntk Cms Api And Model For Typscript

242 lines 37.2 kB
import { Injectable } from '@angular/core'; import { map, retry } from 'rxjs/operators'; import { BiographyContentWithDatePeriodEndDtoModel } from '../../models/dto/biography/biographyContentWithDatePeriodEndDtoModel'; import { BiographyContentWithSimilarDatePeriodEndDtoModel } from '../../models/dto/biography/biographyContentWithSimilarDatePeriodEndDtoModel'; import { BiographyContentWithSimilarDatePeriodStartDayAndMonthOfYearDtoModel } from '../../models/dto/biography/biographyContentWithSimilarDatePeriodStartDayAndMonthOfYearDtoModel'; import { BiographyContentWithSimilarDatePeriodStartDayOfYearDtoModel } from '../../models/dto/biography/biographyContentWithSimilarDatePeriodStartDayOfYearDtoModel'; import { BiographyContentWithSimilarDatePeriodStartDtoModel } from '../../models/dto/biography/biographyContentWithSimilarDatePeriodStartDtoModel'; import { BiographyContentWithSimilarDatePeriodStartMonthOfYearListDtoModel } from '../../models/dto/biography/biographyContentWithSimilarDatePeriodStartMonthOfYearListDtoModel'; import { ScoreClickDtoModel } from '../../models/dto/core-main/scoreClickDtoModel'; import { FilterModel } from '../../models/entity/base/filterModel'; import { ApiCmsServerBase } from '../base/apiCmsServerBase.service'; import { BiographyContentWithSimilarLocationPeriodDtoModel } from './../../models/dto/biography/biographyContentWithSimilarLocationPeriodDtoModel'; import * as i0 from "@angular/core"; export class BiographyContentService extends ApiCmsServerBase { getModuleControllerUrl() { return 'BiographyContent'; } ServiceGetAllWithHierarchyCategoryId(Id, model) { if (model == null) { model = new FilterModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithHierarchyCategoryId/' + Id, model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithSimilarsId(Id, model) { if (model == null) { model = new FilterModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithSimilarsId/' + Id, model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithTagId(Id, model) { if (model == null) { model = new FilterModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithTagId/' + Id, model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithCategoryUseInContentId(Id, model) { if (model == null) { model = new FilterModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithCategoryUseInContentId/' + Id, model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceScoreClick(model) { if (model == null) { model = new ScoreClickDtoModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/ScoreClick', model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultBaseCheck(ret); })); } ServiceFavoriteAdd(Id) { return this.http .get(this.getBaseUrl() + this.getModuleControllerUrl() + '/FavoriteAdd/' + Id, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultBaseCheck(ret); })); } ServiceFavoriteRemove(Id) { return this.http .get(this.getBaseUrl() + this.getModuleControllerUrl() + '/FavoriteRemove/' + Id, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultBaseCheck(ret); })); } ServiceFavoriteList(model) { if (model == null) { model = new FilterModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/FavoriteList', model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithSimilarLocationPeriodStart(model) { if (model == null) { model = new BiographyContentWithSimilarLocationPeriodDtoModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithSimilarLocationPeriodStart', model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithSimilarLocationPeriodEnd(model) { if (model == null) { model = new BiographyContentWithSimilarLocationPeriodDtoModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithSimilarLocationPeriodEnd', model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithSimilarDatePeriodStartMonthOfYear(model) { if (model == null) { model = new BiographyContentWithSimilarDatePeriodStartMonthOfYearListDtoModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithSimilarDatePeriodStartMonthOfYear', model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithSimilarDatePeriodStart(model) { if (model == null) { model = new BiographyContentWithSimilarDatePeriodStartDtoModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithSimilarDatePeriodStart', model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithSimilarDatePeriodStartDayOfYear(model) { if (model == null) { model = new BiographyContentWithSimilarDatePeriodStartDayOfYearDtoModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithSimilarDatePeriodStartDayOfYear', model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllWithSimilarDatePeriodStartDayAndMonthOfYear(model) { if (model == null) { model = new BiographyContentWithSimilarDatePeriodStartDayAndMonthOfYearDtoModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithSimilarDatePeriodStartDayAndMonthOfYear', model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllGetAllWithSimilarDatePeriodEnd(model) { if (model == null) { model = new BiographyContentWithSimilarDatePeriodEndDtoModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithSimilarDatePeriodEnd', model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } ServiceGetAllGetAllWithDatePeriodEnd(model) { if (model == null) { model = new BiographyContentWithDatePeriodEndDtoModel(); } return this.http .post(this.getBaseUrl() + this.getModuleControllerUrl() + '/GetAllWithDatePeriodEnd', model, { headers: this.getHeaders(), }) .pipe(retry(this.configApiRetry), // catchError(this.handleError) map((ret) => { return this.errorExceptionResultCheck(ret); })); } } BiographyContentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiographyContentService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); BiographyContentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiographyContentService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BiographyContentService, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlvZ3JhcGh5Q29udGVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnRrLWNtcy1hcGkvc3JjL2xpYi9zZXJ2aWNlL2Jpb2dyYXBoeS9iaW9ncmFwaHlDb250ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ2pJLE9BQU8sRUFBRSxnREFBZ0QsRUFBRSxNQUFNLDZFQUE2RSxDQUFDO0FBQy9JLE9BQU8sRUFBRSxtRUFBbUUsRUFBRSxNQUFNLGdHQUFnRyxDQUFDO0FBQ3JMLE9BQU8sRUFBRSwyREFBMkQsRUFBRSxNQUFNLHdGQUF3RixDQUFDO0FBQ3JLLE9BQU8sRUFBRSxrREFBa0QsRUFBRSxNQUFNLCtFQUErRSxDQUFDO0FBQ25KLE9BQU8sRUFBRSxpRUFBaUUsRUFBRSxNQUFNLDhGQUE4RixDQUFDO0FBQ2pMLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBR25GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaURBQWlELEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQzs7QUFJbkosTUFBTSxPQUFPLHVCQUF3QixTQUFRLGdCQUE0RDtJQUN2RyxzQkFBc0I7UUFDcEIsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0lBRUQsb0NBQW9DLENBQUMsRUFBVSxFQUFFLEtBQWtCO1FBQ2pFLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtZQUNqQixLQUFLLEdBQUcs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LElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELG9DQUFvQyxDQUFDLEtBQWdEO1FBRW5GLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtZQUNqQixLQUFLLEdBQUcsSUFBSSx5Q0FBeUMsRUFBRSxDQUFDO1NBQ3pEO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsMEJBQTBCLEVBQUUsS0FBSyxFQUFFO1lBQzNGLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1NBQzNCLENBQUM7YUFDRCxJQUFJLENBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDMUIsK0JBQStCO1FBQy9CLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7O3FIQS9RVSx1QkFBdUI7eUhBQXZCLHVCQUF1Qjs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJpb2dyYXBoeUNvbnRlbnRXaXRoRGF0ZVBlcmlvZEVuZER0b01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9iaW9ncmFwaHkvYmlvZ3JhcGh5Q29udGVudFdpdGhEYXRlUGVyaW9kRW5kRHRvTW9kZWwnO1xyXG5pbXBvcnQgeyBCaW9ncmFwaHlDb250ZW50V2l0aFNpbWlsYXJEYXRlUGVyaW9kRW5kRHRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2Jpb2dyYXBoeS9iaW9ncmFwaHlDb250ZW50V2l0aFNpbWlsYXJEYXRlUGVyaW9kRW5kRHRvTW9kZWwnO1xyXG5pbXBvcnQgeyBCaW9ncmFwaHlDb250ZW50V2l0aFNpbWlsYXJEYXRlUGVyaW9kU3RhcnREYXlBbmRNb250aE9mWWVhckR0b01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9iaW9ncmFwaHkvYmlvZ3JhcGh5Q29udGVudFdpdGhTaW1pbGFyRGF0ZVBlcmlvZFN0YXJ0RGF5QW5kTW9udGhPZlllYXJEdG9Nb2RlbCc7XHJcbmltcG9ydCB7IEJpb2dyYXBoeUNvbnRlbnRXaXRoU2ltaWxhckRhdGVQZXJpb2RTdGFydERheU9mWWVhckR0b01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R0by9iaW9ncmFwaHkvYmlvZ3JhcGh5Q29udGVudFdpdGhTaW1pbGFyRGF0ZVBlcmlvZFN0YXJ0RGF5T2ZZZWFyRHRvTW9kZWwnO1xyXG5pbXBvcnQgeyBCaW9ncmFwaHlDb250ZW50V2l0aFNpbWlsYXJEYXRlUGVyaW9kU3RhcnREdG9Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vYmlvZ3JhcGh5L2Jpb2dyYXBoeUNvbnRlbnRXaXRoU2ltaWxhckRhdGVQZXJpb2RTdGFydER0b01vZGVsJztcclxuaW1wb3J0IHsgQmlvZ3JhcGh5Q29udGVudFdpdGhTaW1pbGFyRGF0ZVBlcmlvZFN0YXJ0TW9udGhPZlllYXJMaXN0RHRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHRvL2Jpb2dyYXBoeS9iaW9ncmFwaHlDb250ZW50V2l0aFNpbWlsYXJEYXRlUGVyaW9kU3RhcnRNb250aE9mWWVhckxpc3REdG9Nb2RlbCc7XHJcbmltcG9ydCB7IFNjb3JlQ2xpY2tEdG9Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9kdG8vY29yZS1tYWluL3Njb3JlQ2xpY2tEdG9Nb2RlbCc7XHJcbmltcG9ydCB7IEVycm9yRXhjZXB0aW9uUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0JztcclxuaW1wb3J0IHsgRXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2Vycm9yRXhjZXB0aW9uUmVzdWx0QmFzZSc7XHJcbmltcG9ydCB7IEZpbHRlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iYXNlL2ZpbHRlck1vZGVsJztcclxuaW1wb3J0IHsgQmlvZ3JhcGh5Q29udGVudE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS9iaW9ncmFwaHkvYmlvZ3JhcGh5Q29udGVudE1vZGVsJztcclxuaW1wb3J0IHsgQXBpQ21zU2VydmVyQmFzZSB9IGZyb20gJy4uL2Jhc2UvYXBpQ21zU2VydmVyQmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmlvZ3JhcGh5Q29udGVudFdpdGhTaW1pbGFyTG9jYXRpb25QZXJpb2REdG9Nb2RlbCB9IGZyb20gJy4vLi4vLi4vbW9kZWxzL2R0by9iaW9ncmFwaHkvYmlvZ3JhcGh5Q29udGVudFdpdGhTaW1pbGFyTG9jYXRpb25QZXJpb2REdG9Nb2RlbCc7XHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQmlvZ3JhcGh5Q29udGVudFNlcnZpY2UgZXh0ZW5kcyBBcGlDbXNTZXJ2ZXJCYXNlPEJpb2dyYXBoeUNvbnRlbnRNb2RlbCwgbnVtYmVyLCBGaWx0ZXJNb2RlbD4ge1xyXG4gIGdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnQmlvZ3JhcGh5Q29udGVudCc7XHJcbiAgfVxyXG5cclxuICBTZXJ2aWNlR2V0QWxsV2l0aEhpZXJhcmNoeUNhdGVnb3J5SWQoSWQ6IG51bWJlciwgbW9kZWw6IEZpbHRlck1vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxCaW9ncmFwaHlDb250ZW50TW9kZWw+PiB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICBtb2RlbCA9IG5ldyBGaWx0ZXJNb2RlbCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9HZXRBbGxXaXRoSGllcmFyY2h5Q2F0ZWdvcnlJZC8nICsgSWQsIG1vZGVsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VHZXRBbGxXaXRoU2ltaWxhcnNJZChJZDogbnVtYmVyLCBtb2RlbDogRmlsdGVyTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEJpb2dyYXBoeUNvbnRlbnRNb2RlbD4+IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEZpbHRlck1vZGVsKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dldEFsbFdpdGhTaW1pbGFyc0lkLycgKyBJZCwgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldEFsbFdpdGhUYWdJZChJZDogbnVtYmVyLCBtb2RlbDogRmlsdGVyTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEJpb2dyYXBoeUNvbnRlbnRNb2RlbD4+IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEZpbHRlck1vZGVsKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dldEFsbFdpdGhUYWdJZC8nICsgSWQsIG1vZGVsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdENoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VHZXRBbGxXaXRoQ2F0ZWdvcnlVc2VJbkNvbnRlbnRJZChJZDogbnVtYmVyLCBtb2RlbDogRmlsdGVyTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEJpb2dyYXBoeUNvbnRlbnRNb2RlbD4+IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEZpbHRlck1vZGVsKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dldEFsbFdpdGhDYXRlZ29yeVVzZUluQ29udGVudElkLycgKyBJZCwgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIFNlcnZpY2VTY29yZUNsaWNrKG1vZGVsOiBTY29yZUNsaWNrRHRvTW9kZWwpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG4gICAgaWYgKG1vZGVsID09IG51bGwpIHtcclxuICAgICAgbW9kZWwgPSBuZXcgU2NvcmVDbGlja0R0b01vZGVsKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL1Njb3JlQ2xpY2snLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRCYXNlQ2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIFNlcnZpY2VGYXZvcml0ZUFkZChJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdEJhc2U+IHtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvRmF2b3JpdGVBZGQvJyArIElkLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHJldHJ5KHRoaXMuY29uZmlnQXBpUmV0cnkpLFxyXG4gICAgICAgIC8vIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICBtYXAoKHJldDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckV4Y2VwdGlvblJlc3VsdEJhc2VDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgU2VydmljZUZhdm9yaXRlUmVtb3ZlKElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZT4ge1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9GYXZvcml0ZVJlbW92ZS8nICsgSWQsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0QmFzZUNoZWNrKHJldCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIFNlcnZpY2VGYXZvcml0ZUxpc3QobW9kZWw6IEZpbHRlck1vZGVsKTogT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxCaW9ncmFwaHlDb250ZW50TW9kZWw+PiB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICBtb2RlbCA9IG5ldyBGaWx0ZXJNb2RlbCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9GYXZvcml0ZUxpc3QnLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgU2VydmljZUdldEFsbFdpdGhTaW1pbGFyTG9jYXRpb25QZXJpb2RTdGFydChtb2RlbDogQmlvZ3JhcGh5Q29udGVudFdpdGhTaW1pbGFyTG9jYXRpb25QZXJpb2REdG9Nb2RlbCk6XHJcbiAgICBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEJpb2dyYXBoeUNvbnRlbnRNb2RlbD4+IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEJpb2dyYXBoeUNvbnRlbnRXaXRoU2ltaWxhckxvY2F0aW9uUGVyaW9kRHRvTW9kZWwoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5nZXRCYXNlVXJsKCkgKyB0aGlzLmdldE1vZHVsZUNvbnRyb2xsZXJVcmwoKSArICcvR2V0QWxsV2l0aFNpbWlsYXJMb2NhdGlvblBlcmlvZFN0YXJ0JywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldEFsbFdpdGhTaW1pbGFyTG9jYXRpb25QZXJpb2RFbmQobW9kZWw6IEJpb2dyYXBoeUNvbnRlbnRXaXRoU2ltaWxhckxvY2F0aW9uUGVyaW9kRHRvTW9kZWwpOlxyXG4gICAgT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxCaW9ncmFwaHlDb250ZW50TW9kZWw+PiB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICBtb2RlbCA9IG5ldyBCaW9ncmFwaHlDb250ZW50V2l0aFNpbWlsYXJMb2NhdGlvblBlcmlvZER0b01vZGVsKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dldEFsbFdpdGhTaW1pbGFyTG9jYXRpb25QZXJpb2RFbmQnLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuICBTZXJ2aWNlR2V0QWxsV2l0aFNpbWlsYXJEYXRlUGVyaW9kU3RhcnRNb250aE9mWWVhcihtb2RlbDogQmlvZ3JhcGh5Q29udGVudFdpdGhTaW1pbGFyRGF0ZVBlcmlvZFN0YXJ0TW9udGhPZlllYXJMaXN0RHRvTW9kZWwpOlxyXG4gICAgT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxCaW9ncmFwaHlDb250ZW50TW9kZWw+PiB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICBtb2RlbCA9IG5ldyBCaW9ncmFwaHlDb250ZW50V2l0aFNpbWlsYXJEYXRlUGVyaW9kU3RhcnRNb250aE9mWWVhckxpc3REdG9Nb2RlbCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9HZXRBbGxXaXRoU2ltaWxhckRhdGVQZXJpb2RTdGFydE1vbnRoT2ZZZWFyJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldEFsbFdpdGhTaW1pbGFyRGF0ZVBlcmlvZFN0YXJ0KG1vZGVsOiBCaW9ncmFwaHlDb250ZW50V2l0aFNpbWlsYXJEYXRlUGVyaW9kU3RhcnREdG9Nb2RlbCk6XHJcbiAgICBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEJpb2dyYXBoeUNvbnRlbnRNb2RlbD4+IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEJpb2dyYXBoeUNvbnRlbnRXaXRoU2ltaWxhckRhdGVQZXJpb2RTdGFydER0b01vZGVsKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dldEFsbFdpdGhTaW1pbGFyRGF0ZVBlcmlvZFN0YXJ0JywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldEFsbFdpdGhTaW1pbGFyRGF0ZVBlcmlvZFN0YXJ0RGF5T2ZZZWFyKG1vZGVsOiBCaW9ncmFwaHlDb250ZW50V2l0aFNpbWlsYXJEYXRlUGVyaW9kU3RhcnREYXlPZlllYXJEdG9Nb2RlbCk6XHJcbiAgICBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEJpb2dyYXBoeUNvbnRlbnRNb2RlbD4+IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEJpb2dyYXBoeUNvbnRlbnRXaXRoU2ltaWxhckRhdGVQZXJpb2RTdGFydERheU9mWWVhckR0b01vZGVsKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dldEFsbFdpdGhTaW1pbGFyRGF0ZVBlcmlvZFN0YXJ0RGF5T2ZZZWFyJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbiAgU2VydmljZUdldEFsbFdpdGhTaW1pbGFyRGF0ZVBlcmlvZFN0YXJ0RGF5QW5kTW9udGhPZlllYXIobW9kZWw6IEJpb2dyYXBoeUNvbnRlbnRXaXRoU2ltaWxhckRhdGVQZXJpb2RTdGFydERheUFuZE1vbnRoT2ZZZWFyRHRvTW9kZWwpOlxyXG4gICAgT2JzZXJ2YWJsZTxFcnJvckV4Y2VwdGlvblJlc3VsdDxCaW9ncmFwaHlDb250ZW50TW9kZWw+PiB7XHJcbiAgICBpZiAobW9kZWwgPT0gbnVsbCkge1xyXG4gICAgICBtb2RlbCA9IG5ldyBCaW9ncmFwaHlDb250ZW50V2l0aFNpbWlsYXJEYXRlUGVyaW9kU3RhcnREYXlBbmRNb250aE9mWWVhckR0b01vZGVsKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dldEFsbFdpdGhTaW1pbGFyRGF0ZVBlcmlvZFN0YXJ0RGF5QW5kTW9udGhPZlllYXInLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIFNlcnZpY2VHZXRBbGxHZXRBbGxXaXRoU2ltaWxhckRhdGVQZXJpb2RFbmQobW9kZWw6IEJpb2dyYXBoeUNvbnRlbnRXaXRoU2ltaWxhckRhdGVQZXJpb2RFbmREdG9Nb2RlbCk6XHJcbiAgICBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEJpb2dyYXBoeUNvbnRlbnRNb2RlbD4+IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEJpb2dyYXBoeUNvbnRlbnRXaXRoU2ltaWxhckRhdGVQZXJpb2RFbmREdG9Nb2RlbCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmdldEJhc2VVcmwoKSArIHRoaXMuZ2V0TW9kdWxlQ29udHJvbGxlclVybCgpICsgJy9HZXRBbGxXaXRoU2ltaWxhckRhdGVQZXJpb2RFbmQnLCBtb2RlbCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICByZXRyeSh0aGlzLmNvbmZpZ0FwaVJldHJ5KSxcclxuICAgICAgICAvLyBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICAgbWFwKChyZXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JFeGNlcHRpb25SZXN1bHRDaGVjayhyZXQpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgU2VydmljZUdldEFsbEdldEFsbFdpdGhEYXRlUGVyaW9kRW5kKG1vZGVsOiBCaW9ncmFwaHlDb250ZW50V2l0aERhdGVQZXJpb2RFbmREdG9Nb2RlbCk6XHJcbiAgICBPYnNlcnZhYmxlPEVycm9yRXhjZXB0aW9uUmVzdWx0PEJpb2dyYXBoeUNvbnRlbnRNb2RlbD4+IHtcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKSB7XHJcbiAgICAgIG1vZGVsID0gbmV3IEJpb2dyYXBoeUNvbnRlbnRXaXRoRGF0ZVBlcmlvZEVuZER0b01vZGVsKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZ2V0QmFzZVVybCgpICsgdGhpcy5nZXRNb2R1bGVDb250cm9sbGVyVXJsKCkgKyAnL0dldEFsbFdpdGhEYXRlUGVyaW9kRW5kJywgbW9kZWwsIHtcclxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgcmV0cnkodGhpcy5jb25maWdBcGlSZXRyeSksXHJcbiAgICAgICAgLy8gY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICAgIG1hcCgocmV0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yRXhjZXB0aW9uUmVzdWx0Q2hlY2socmV0KTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG59XHJcbiJdfQ==