@sunbird-cb/consumption 0.0.90 → 0.0.92
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sunbird-cb-consumption.umd.js +1597 -1500
- package/bundles/sunbird-cb-consumption.umd.js.map +1 -1
- package/bundles/sunbird-cb-consumption.umd.min.js +2 -2
- package/bundles/sunbird-cb-consumption.umd.min.js.map +1 -1
- package/esm2015/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.js +4 -7
- package/esm2015/lib/_common/cards/card-karma-programs/card-karma-programs.component.js +3 -3
- package/esm2015/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.js +3 -3
- package/esm2015/lib/_common/cards/card-mdo-channel-v1/card-mdo-channel-v1.component.js +3 -3
- package/esm2015/lib/_common/cards/card-portrait/card-portrait.component.js +3 -3
- package/esm2015/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.js +3 -3
- package/esm2015/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.js +3 -3
- package/esm2015/lib/_common/cards/cards.component.js +4 -24
- package/esm2015/lib/_common/common-strip/common-strip.component.js +5 -5
- package/esm2015/lib/_common/competency-passbook/competency-passbook.component.js +3 -3
- package/esm2015/lib/_common/competency-passbook-mdo/competency-passbook-mdo.component.js +3 -3
- package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +53 -54
- package/esm2015/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.js +2 -2
- package/esm2015/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.component.js +5 -7
- package/esm2015/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.js +11 -8
- package/esm2015/lib/_common/user-progress/user-progress.component.js +1 -2
- package/esm2015/lib/_services/widget-content-lib.service.js +899 -0
- package/esm2015/lib/_services/widget-user-lib.service.js +523 -0
- package/esm2015/public-api.js +3 -2
- package/esm2015/sunbird-cb-consumption.js +77 -78
- package/esm5/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.js +4 -7
- package/esm5/lib/_common/cards/card-karma-programs/card-karma-programs.component.js +3 -3
- package/esm5/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.js +3 -3
- package/esm5/lib/_common/cards/card-mdo-channel-v1/card-mdo-channel-v1.component.js +3 -3
- package/esm5/lib/_common/cards/card-portrait/card-portrait.component.js +3 -3
- package/esm5/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.js +3 -3
- package/esm5/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.js +3 -3
- package/esm5/lib/_common/cards/cards.component.js +4 -27
- package/esm5/lib/_common/common-strip/common-strip.component.js +5 -5
- package/esm5/lib/_common/competency-passbook/competency-passbook.component.js +3 -3
- package/esm5/lib/_common/competency-passbook-mdo/competency-passbook-mdo.component.js +3 -3
- package/esm5/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +86 -87
- package/esm5/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.js +2 -2
- package/esm5/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.component.js +5 -7
- package/esm5/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.js +17 -14
- package/esm5/lib/_common/user-progress/user-progress.component.js +1 -2
- package/esm5/lib/_services/widget-content-lib.service.js +1170 -0
- package/esm5/lib/_services/widget-user-lib.service.js +607 -0
- package/esm5/public-api.js +3 -2
- package/esm5/sunbird-cb-consumption.js +77 -78
- package/fesm2015/sunbird-cb-consumption.js +1160 -1091
- package/fesm2015/sunbird-cb-consumption.js.map +1 -1
- package/fesm5/sunbird-cb-consumption.js +1522 -1425
- package/fesm5/sunbird-cb-consumption.js.map +1 -1
- package/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.d.ts +2 -3
- package/lib/_common/cards/card-karma-programs/card-karma-programs.component.d.ts +2 -2
- package/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.d.ts +2 -2
- package/lib/_common/cards/card-mdo-channel-v1/card-mdo-channel-v1.component.d.ts +2 -2
- package/lib/_common/cards/card-portrait/card-portrait.component.d.ts +2 -2
- package/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.d.ts +2 -2
- package/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.d.ts +2 -2
- package/lib/_common/cards/cards.component.d.ts +2 -5
- package/lib/_common/common-strip/common-strip.component.d.ts +3 -3
- package/lib/_common/competency-passbook/competency-passbook.component.d.ts +3 -3
- package/lib/_common/competency-passbook-mdo/competency-passbook-mdo.component.d.ts +3 -3
- package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.d.ts +4 -6
- package/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.component.d.ts +3 -4
- package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.d.ts +3 -4
- package/lib/_services/{widget-content.service.d.ts → widget-content-lib.service.d.ts} +6 -3
- package/lib/_services/{widget-user.service.d.ts → widget-user-lib.service.d.ts} +9 -4
- package/package.json +1 -1
- package/public-api.d.ts +2 -1
- package/sunbird-cb-consumption.d.ts +75 -76
- package/sunbird-cb-consumption.metadata.json +1 -1
- package/esm2015/lib/_services/widget-content.service.js +0 -852
- package/esm2015/lib/_services/widget-user.service.js +0 -475
- package/esm5/lib/_services/widget-content.service.js +0 -1109
- package/esm5/lib/_services/widget-user.service.js +0 -542
|
@@ -6,11 +6,11 @@ import * as tslib_1 from "tslib";
|
|
|
6
6
|
import { Component, Input, HostBinding, Inject } from '@angular/core';
|
|
7
7
|
import { WidgetBaseComponent } from '@sunbird-cb/resolver-v2';
|
|
8
8
|
// import { HttpClient } from '@angular/common/http'
|
|
9
|
-
import {
|
|
9
|
+
import { WidgetContentLibService } from '../../_services/widget-content-lib.service';
|
|
10
10
|
import { MultilingualTranslationsService } from '../../_services/multilingual-translations.service';
|
|
11
11
|
import { LoggerService, EventService, ConfigurationsService, UtilityService, } from '@sunbird-cb/utils-v2';
|
|
12
12
|
import { filter } from 'rxjs/operators';
|
|
13
|
-
import {
|
|
13
|
+
import { WidgetUserServiceLib } from '../../_services/widget-user-lib.service';
|
|
14
14
|
// import { environment } from 'src/environments/environment'
|
|
15
15
|
// tslint:disable-next-line
|
|
16
16
|
import * as _ from 'lodash';
|
|
@@ -547,12 +547,12 @@ CommonStripComponent.decorators = [
|
|
|
547
547
|
/** @nocollapse */
|
|
548
548
|
CommonStripComponent.ctorParameters = () => [
|
|
549
549
|
{ type: undefined, decorators: [{ type: Inject, args: ['environment',] }] },
|
|
550
|
-
{ type:
|
|
550
|
+
{ type: WidgetContentLibService },
|
|
551
551
|
{ type: LoggerService },
|
|
552
552
|
{ type: EventService },
|
|
553
553
|
{ type: ConfigurationsService },
|
|
554
554
|
{ type: UtilityService },
|
|
555
|
-
{ type:
|
|
555
|
+
{ type: WidgetUserServiceLib },
|
|
556
556
|
{ type: TranslateService },
|
|
557
557
|
{ type: MultilingualTranslationsService },
|
|
558
558
|
{ type: CommonMethodsService }
|
|
@@ -643,4 +643,4 @@ if (false) {
|
|
|
643
643
|
*/
|
|
644
644
|
CommonStripComponent.prototype.commonMethodsSvc;
|
|
645
645
|
}
|
|
646
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXN0cmlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL2NvbnN1bXB0aW9uLyIsInNvdXJjZXMiOlsibGliL19jb21tb24vY29tbW9uLXN0cmlwL2NvbW1vbi1zdHJpcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBYSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBb0IsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFHaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFOUUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDcEcsT0FBTyxFQUVMLGFBQWEsRUFDYixZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLGNBQWMsR0FDZixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBR3hFLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFBO0FBRTNCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBRzlFLG1DQW9DQzs7O0lBbkNDLG1DQUFZOztJQUNaLDRDQUFzQjs7SUFDdEIsb0NBQWM7O0lBQ2QseUNBQW1COztJQUNuQixnREFBMEI7O0lBQzFCLHVDQUFzRDs7SUFDdEQsMENBQW1COztJQUNuQiw4Q0FNRTs7SUFDRiw0Q0FLRTs7SUFDRiwyQ0FBaUI7O0lBQ2pCLG9DQUFtRDs7SUFDbkQseUNBQW1COztJQUNuQix5Q0FBbUI7O0lBQ25CLDJDQUFxQjs7SUFDckIseUNB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bkMsZ0RBQXlEOzs7OztJQUN6RCxnREFBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE9uRGVzdHJveSwgSG9zdEJpbmRpbmcsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnNXaWRnZXRSZXNvbHZlciwgV2lkZ2V0QmFzZUNvbXBvbmVudCB9IGZyb20gJ0BzdW5iaXJkLWNiL3Jlc29sdmVyLXYyJztcbmltcG9ydCB7IE5zQ29tbW9uU3RyaXAgfSBmcm9tICcuL2NvbW1vbi1zdHJpcC5tb2RlbCc7XG4vLyBpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBXaWRnZXRDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy93aWRnZXQtY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IE5zQ29udGVudCB9IGZyb20gJy4uLy4uL19tb2RlbHMvd2lkZ2V0LWNvbnRlbnQubW9kZWwnO1xuaW1wb3J0IHsgTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9tdWx0aWxpbmd1YWwtdHJhbnNsYXRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgVEZldGNoU3RhdHVzLFxuICBMb2dnZXJTZXJ2aWNlLFxuICBFdmVudFNlcnZpY2UsXG4gIENvbmZpZ3VyYXRpb25zU2VydmljZSxcbiAgVXRpbGl0eVNlcnZpY2UsXG59IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgV2lkZ2V0VXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvd2lkZ2V0LXVzZXIuc2VydmljZSc7XG4vLyBpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJ3NyYy9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IHsgTWF0VGFiQ2hhbmdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21tb25NZXRob2RzU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9jb21tb24tbWV0aG9kcy5zZXJ2aWNlJztcblxuXG5pbnRlcmZhY2UgSVN0cmlwVW5pdENvbW1vbkRhdGEge1xuICBrZXk6IHN0cmluZztcbiAgY2FuSGlkZVN0cmlwOiBib29sZWFuO1xuICBtb2RlPzogc3RyaW5nO1xuICBzaG93U3RyaXA6IGJvb2xlYW47XG4gIGRpc2FibGVUcmFuc2xhdGU6IGJvb2xlYW47XG4gIHdpZGdldHM/OiBOc1dpZGdldFJlc29sdmVyLklSZW5kZXJDb25maWdXaXRoQW55RGF0YVtdO1xuICBzdHJpcFRpdGxlOiBzdHJpbmc7XG4gIHN0cmlwVGl0bGVMaW5rPzoge1xuICAgIGxpbms6ICB7XG4gICAgICBxdWVyeVBhcmFtczogc3RyaW5nXG4gICAgfSxcbiAgICBpY29uOiBzdHJpbmcsXG4gICAgcXVlcnlQYXJhbXM6IHN0cmluZ1xuICB9O1xuICBzbGlkZXJDb25maWc/OiB7XG4gICAgc2hvd05hdnM6IGJvb2xlYW4sXG4gICAgc2hvd0RvdHM6IGJvb2xlYW4sXG4gICAgbWF4V2lkZ2V0cz86IG51bWJlclxuICAgIGNlcmlmaWNhdGVDYXJkTWFyZ2luPzogYm9vbGVhblxuICB9O1xuICBzdHJpcENvbmZpZzogYW55O1xuICB0YWJzPzogTnNDb21tb25TdHJpcC5JQ29tbW9uU3RyaXBUYWJbXSB8IHVuZGVmaW5lZDtcbiAgc3RyaXBOYW1lPzogc3RyaW5nO1xuICBzdHJpcExvZ28/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBzdHJpcEluZm8/OiBOc0NvbW1vblN0cmlwLklTdHJpcEluZm87XG4gIG5vRGF0YVdpZGdldD86IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlbmRlckNvbmZpZ1dpdGhBbnlEYXRhO1xuICBlcnJvcldpZGdldD86IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlbmRlckNvbmZpZ1dpdGhBbnlEYXRhO1xuICBzaG93T25Ob0RhdGE6IGJvb2xlYW47XG4gIHNob3dPbkxvYWRlcjogYm9vbGVhbjtcbiAgc2hvd09uRXJyb3I6IGJvb2xlYW47XG4gIGxvYWRlcldpZGdldHM/OiBhbnk7XG4gIHN0cmlwQmFja2dyb3VuZD86IHN0cmluZztcbiAgc2Vjb25kYXJ5SGVhZGluZz86IGFueTtcbiAgdmlld01vcmVVcmw6IGFueTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ItdWljLWNvbW1vbi1zdHJpcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21tb24tc3RyaXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb21tb24tc3RyaXAuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb21tb25TdHJpcENvbXBvbmVudCBleHRlbmRzIFdpZGdldEJhc2VDb21wb25lbnRcbmltcGxlbWVudHNcbk9uSW5pdCxcbk9uRGVzdHJveSxcbk5zV2lkZ2V0UmVzb2x2ZXIuSVdpZGdldERhdGE8TnNDb21tb25TdHJpcC5JQ29tbW9uU3RyaXA+IHtcbiAgQElucHV0KCkgd2lkZ2V0RGF0YSE6IE5zQ29tbW9uU3RyaXAuSUNvbW1vblN0cmlwO1xuICBASG9zdEJpbmRpbmcoJ2lkJylcbiAgcHVibGljIGlkID0gYHdzLXN0cmlwLW1pbHRpcGxlXyR7TWF0aC5yYW5kb20oKX1gO1xuICBzdHJpcHNSZXN1bHREYXRhTWFwOiB7IFtrZXk6IHN0cmluZ106IElTdHJpcFVuaXRDb21tb25EYXRhIH0gPSB7fTtcbiAgc3RyaXBzS2V5T3JkZXI6IHN0cmluZ1tdID0gW107XG4gIHNob3dBY2NvcmRpb25EYXRhID0gdHJ1ZTtcbiAgc2hvd1BhcmVudExvYWRlciA9IGZhbHNlO1xuICBzaG93UGFyZW50RXJyb3IgPSBmYWxzZTtcbiAgc2hvd1BhcmVudE5vRGF0YSA9IGZhbHNlO1xuICBlcnJvckRhdGFDb3VudCA9IDA7XG4gIG5vRGF0YUNvdW50ID0gMDtcbiAgc3VjY2Vzc0RhdGFDb3VudCA9IDA7XG4gIGNvbnRlbnRBdmFpbGFibGUgPSB0cnVlO1xuICBiYXNlVXJsID0gdGhpcy5jb25maWdTdmMuc2l0ZVBhdGggfHwgJyc7XG4gIHZlaWZpZWRLYXJtYXlvZ2kgPSBmYWxzZTtcbiAgZW52aXJvbm1lbnQhOiBhbnk7XG4gIGNoYW5nZUV2ZW50U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgZGVmYXVsdE1heFdpZGdldHMgPSAxMjtcbiAgZW5yb2xsSW50ZXJ2YWw6IGFueTtcbiAgdG9kYXlzRXZlbnRzOiBhbnkgPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIGVudmlyb25tZW50OiBhbnksXG4gICAgcHJpdmF0ZSBjb250ZW50U3ZjOiBXaWRnZXRDb250ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGxvZ2dlclN2YzogTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50U3ZjOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcbiAgICBwdWJsaWMgdXRpbGl0eVN2YzogVXRpbGl0eVNlcnZpY2UsXG4gICAgLy8gcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIC8vIHByaXZhdGUgc2VhcmNoU2VydlN2YzogU2VhcmNoU2VydlNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU3ZjOiBXaWRnZXRVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGxhbmd0cmFuc2xhdGlvbnM6IE11bHRpbGluZ3VhbFRyYW5zbGF0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb21tb25NZXRob2RzU3ZjOiBDb21tb25NZXRob2RzU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudFxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gY29uc3QgdXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWZcbiAgICB0aGlzLmluaXREYXRhKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5jaGFuZ2VFdmVudFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jaGFuZ2VFdmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHNob3dBY2NvcmRpb24oa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy51dGlsaXR5U3ZjLmlzTW9iaWxlICYmIHRoaXMuc3RyaXBzUmVzdWx0RGF0YU1hcFtrZXldLm1vZGUgPT09ICdhY2NvcmRpb24nKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaG93QWNjb3JkaW9uRGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzZXRIaWRkZW5Gb3JTdHJpcChrZXk6IHN0cmluZykge1xuICAgIHRoaXMuc3RyaXBzUmVzdWx0RGF0YU1hcFtrZXldLnNob3dTdHJpcCA9IGZhbHNlO1xuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oYGNzdHJpcF8ke2tleX1gLCAnMScpO1xuICB9XG4gIHByaXZhdGUgZ2V0SWZTdHJpcEhpZGRlbihrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHN0b3JhZ2VJdGVtID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShgY3N0cmlwXyR7a2V5fWApO1xuICAgIHJldHVybiBCb29sZWFuKHN0b3JhZ2VJdGVtICE9PSAnMScpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0RGF0YSgpIHtcbiAgICB0aGlzLnN0cmlwc0tleU9yZGVyID0gdGhpcy53aWRnZXREYXRhICYmIHRoaXMud2lkZ2V0RGF0YS5zdHJpcHMgJiYgdGhpcy53aWRnZXREYXRhLnN0cmlwcy5tYXAoc3RyaXAgPT4gc3RyaXAua2V5KSB8fCBbXTtcbiAgICBpZiAodGhpcy53aWRnZXREYXRhLmxvYWRlciAmJiB0aGlzLndpZGdldERhdGEuc3RyaXBzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zaG93UGFyZW50TG9hZGVyID0gdHJ1ZTtcbiAgICB9XG4gICAgLy8gbnVsbCBjaGVjayBpZiBpbiBjYXNlIG5vIHN0cmlwcyBrZXkgaW4gY29uZmlnXG4gICAgaWYodGhpcy53aWRnZXREYXRhICYmIHRoaXMud2lkZ2V0RGF0YS5zdHJpcHMpIHtcbiAgICAgIC8vIEZldGNoIHRoZSBkYXRhXG4gICAgICBmb3IgKGNvbnN0IHN0cmlwIG9mIHRoaXMud2lkZ2V0RGF0YS5zdHJpcHMpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzU3RyaXAoc3RyaXAsIFtdLCAnZmV0Y2hpbmcnLCBmYWxzZSwgbnVsbCk7XG4gICAgICAgIGlmKHN0cmlwLmRhdGFUeXBlID09PSAnaW4taGFuZCcgJiYgdGhpcy53aWRnZXREYXRhW3N0cmlwLmRhdGFLZXldKXtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NTdHJpcChcbiAgICAgICAgICAgIHN0cmlwLFxuICAgICAgICAgICAgdGhpcy5jb21tb25NZXRob2RzU3ZjLnRyYW5zZm9ybUNvbnRlbnRzVG9XaWRnZXRzKHRoaXMud2lkZ2V0RGF0YVtzdHJpcC5kYXRhS2V5XSwgc3RyaXApLFxuICAgICAgICAgICAgJ2RvbmUnLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgIHN0cmlwLnZpZXdNb3JlVXJsIHx8ICcnLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hlY2tGb3JFbXB0eVdpZGdldChzdHJpcCkpIHtcbiAgICAgICAgICAgIC8vIHRoaXMuZmV0Y2hTdHJpcEZyb21SZXF1ZXN0RGF0YShzdHJpcCwgZmFsc2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NTdHJpcChzdHJpcCwgW10sICdkb25lJywgdHJ1ZSwgbnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFN1YnNjcmlwdGlvbiBmb3IgY2hhbmdlc1xuICAgIGNvbnN0IGtleUFuZEV2ZW50OiB7IGtleTogc3RyaW5nOyB0eXBlOiBzdHJpbmc7IGZyb206IHN0cmluZyB9W10gPSB0aGlzLndpZGdldERhdGEuc3RyaXBzXG4gICAgICAubWFwKHN0cmlwID0+ICh7XG4gICAgICAgIGtleTogc3RyaXAua2V5LFxuICAgICAgICB0eXBlOiAoc3RyaXAucmVmcmVzaEV2ZW50ICYmIHN0cmlwLnJlZnJlc2hFdmVudC5ldmVudFR5cGUpIHx8ICcnLFxuICAgICAgICBmcm9tOiAoc3RyaXAucmVmcmVzaEV2ZW50ICYmIHN0cmlwLnJlZnJlc2hFdmVudC5mcm9tLnRvU3RyaW5nKCkpIHx8ICcnLFxuICAgICAgfSkpXG4gICAgICAuZmlsdGVyKCh7IGtleSwgdHlwZSwgZnJvbSB9KSA9PiBrZXkgJiYgdHlwZSAmJiBmcm9tKTtcbiAgICBjb25zdCBldmVudFR5cGVTZXQgPSBuZXcgU2V0KGtleUFuZEV2ZW50Lm1hcChlID0+IGUudHlwZSkpO1xuICAgIHRoaXMuY2hhbmdlRXZlbnRTdWJzY3JpcHRpb24gPSB0aGlzLmV2ZW50U3ZjLmV2ZW50cyRcbiAgICAgIC5waXBlKGZpbHRlcihldmVudCA9PiBldmVudFR5cGVTZXQuaGFzKGV2ZW50LmV2ZW50VHlwZSkpKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGtleUFuZEV2ZW50XG4gICAgICAgICAgLmZpbHRlcihlID0+IGUudHlwZSA9PT0gZXZlbnQuZXZlbnRUeXBlICYmIGUuZnJvbSA9PT0gZXZlbnQuZnJvbSlcbiAgICAgICAgICAubWFwKGUgPT4gZS5rZXkpXG4gICAgICAgICAgLmZvckVhY2goayA9PiB0aGlzLmZldGNoU3RyaXBGcm9tS2V5KGssIGZhbHNlKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hTdHJpcEZyb21LZXkoa2V5OiBzdHJpbmcsIGNhbGN1bGF0ZVBhcmVudFN0YXR1cyA9IHRydWUpIHtcbiAgICBjb25zdCBzdHJpcERhdGEgPSB0aGlzLndpZGdldERhdGEuc3RyaXBzLmZpbmQoc3RyaXAgPT4gc3RyaXAua2V5ID09PSBrZXkpO1xuICAgIGlmIChzdHJpcERhdGEpIHtcbiAgICAgIC8vIHRoaXMuZmV0Y2hTdHJpcEZyb21SZXF1ZXN0RGF0YShzdHJpcERhdGEsIGNhbGN1bGF0ZVBhcmVudFN0YXR1cyk7XG4gICAgfVxuICB9XG5cbiAgaXNTdHJpcFNob3dpbmcoZGF0YTogYW55KSB7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICBpZiAoZGF0YSAmJiBkYXRhLmtleSA9PT0gdGhpcy5lbnZpcm9ubWVudC5wcm9ncmFtU3RyaXBLZXkgJiYgKCFkYXRhLnRhYnMgfHwgIWRhdGEudGFicy5sZW5ndGgpICYmXG4gICAgICBkYXRhLnN0cmlwVGl0bGUgPT09IHRoaXMuZW52aXJvbm1lbnQucHJvZ3JhbVN0cmlwTmFtZSAmJiBkYXRhLndpZGdldHMubGVuZ3RoID4gMCkge1xuICAgICAgZGF0YS53aWRnZXRzLmZvckVhY2goKGtleTogYW55KSA9PiB7XG4gICAgICAgIGlmIChrZXkgJiYga2V5LndpZGdldERhdGEuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IHRoaXMuZW52aXJvbm1lbnQucHJvZ3JhbVN0cmlwUHJpbWFyeUNhdGVnb3J5KSB7XG4gICAgICAgICAgY291bnQgPSBjb3VudCArIDE7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaWYgKGNvdW50ID4gMCkge1xuICAgICAgICBkYXRhLnNob3dTdHJpcCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhLnNob3dTdHJpcCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YS5zaG93U3RyaXA7XG4gIH1cblxuICBnZXQgaXNNb2JpbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXRpbGl0eVN2Yy5pc01vYmlsZSB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldGRhdGEoZGF0YTogSVN0cmlwVW5pdENvbW1vbkRhdGEpIHtcbiAgICBpZiAoZGF0YS5zdHJpcEluZm8pIHtcbiAgICAgIHJldHVybiBkYXRhLnN0cmlwSW5mby53aWRnZXQ7XG4gICAgfVxuICAgIHJldHVybiB7fTtcblxuICB9XG4gIGNoZWNrQ29uZGl0aW9uKHdEYXRhOiBOc0NvbW1vblN0cmlwLklDb21tb25TdHJpcCwgZGF0YTogSVN0cmlwVW5pdENvbW1vbkRhdGEpIHtcbiAgICBpZiAod0RhdGEuc3RyaXBzWzBdLnN0cmlwQ29uZmlnICYmIHdEYXRhLnN0cmlwc1swXS5zdHJpcENvbmZpZy5oaWRlU2hvd0FsbCkge1xuICAgICAgcmV0dXJuICF3RGF0YS5zdHJpcHNbMF0uc3RyaXBDb25maWcuaGlkZVNob3dBbGw7XG4gICAgfVxuICAgIHJldHVybiB3RGF0YS5zdHJpcHNbMF0udmlld01vcmVVcmwgJiYgZGF0YS53aWRnZXRzICYmIGRhdGEud2lkZ2V0cy5sZW5ndGggPj0gNDtcbiAgfVxuICBjaGVja1Zpc2libGUoZGF0YTogSVN0cmlwVW5pdENvbW1vbkRhdGEpIHtcbiAgICByZXR1cm4gZGF0YS5zdHJpcEluZm8gJiYgZGF0YS5zdHJpcEluZm8udmlzaWJpbGl0eU1vZGUgPT09ICd2aXNpYmxlJztcbiAgfVxuXG4gIGdldENvbnRpbmV1TGVhcm5pbmdMZW50aChkYXRhOiBJU3RyaXBVbml0Q29tbW9uRGF0YSkge1xuICAgIHJldHVybiBkYXRhLndpZGdldHMgPyBkYXRhLndpZGdldHMubGVuZ3RoIDogMDtcbiAgfVxuICBnZXRMZW5ndGgoZGF0YTogSVN0cmlwVW5pdENvbW1vbkRhdGEpIHtcbiAgICBpZiAoIWRhdGEudGFicyB8fCAhZGF0YS50YWJzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGRhdGEud2lkZ2V0cyA/IGRhdGEud2lkZ2V0cy5sZW5ndGggOiAwO1xuICAgIH0ge1xuICAgICAgLy8gaWYgdGFicyBhcmUgdGhlcmUgY2hlY2sgaWYgZWFjaCB0YWIgaGFzIHdpZGdldHMgYW5kIGdldCB0aGUgdGFiIHdpdGggbWF4IHdpZGdldHNcbiAgICAgIGNvbnN0IHRhYldpdGhNYXhXaWRnZXRzID0gZGF0YS50YWJzLnJlZHVjZShcbiAgICAgICAgKHByZXYsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICBpZiAoIXByZXYud2lkZ2V0cyAmJiAhY3VycmVudC53aWRnZXRzKSB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHByZXYud2lkZ2V0cyAmJiBjdXJyZW50LndpZGdldHMpIHtcbiAgICAgICAgICAgIHJldHVybiAocHJldi53aWRnZXRzLmxlbmd0aCA+IGN1cnJlbnQud2lkZ2V0cy5sZW5ndGgpID8gcHJldiA6IGN1cnJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjdXJyZW50LndpZGdldHMgJiYgIXByZXYud2lkZ2V0cykge1xuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghY3VycmVudC53aWRnZXRzICYmIHByZXYud2lkZ2V0cykge1xuICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgICAgIC8vIHJldHVybiAocHJldi53aWRnZXRzICYmIGN1cnJlbnQud2lkZ2V0cyAmJiAocHJldi53aWRnZXRzLmxlbmd0aCA+IGN1cnJlbnQud2lkZ2V0cy5sZW5ndGgpICkgPyBwcmV2IDogY3VycmVudFxuICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogYWxpZ25cbiAgICAgICAgfSwgZGF0YS50YWJzWzBdKTtcbiAgICAgIC8vIGlmIHRhYnMgaGFzIGF0bGVhc3QgMSB3aWRnZXRzIHRoZW4gc3RyaXAgd2lsbCBzaG93IG9yIGVsc2Ugbm90XG4gICAgICByZXR1cm4gdGFiV2l0aE1heFdpZGdldHMud2lkZ2V0cyA/IHRhYldpdGhNYXhXaWRnZXRzLndpZGdldHMubGVuZ3RoIDogMDtcbiAgICB9XG4gIH1cbiAgXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc1N0cmlwKFxuICAgIHN0cmlwOiBOc0NvbW1vblN0cmlwLklDb21tb25TdHJpcFVuaXQsXG4gICAgcmVzdWx0czogTnNXaWRnZXRSZXNvbHZlci5JUmVuZGVyQ29uZmlnV2l0aEFueURhdGFbXSA9IFtdLFxuICAgIGZldGNoU3RhdHVzOiBURmV0Y2hTdGF0dXMsXG4gICAgY2FsY3VsYXRlUGFyZW50U3RhdHVzID0gdHJ1ZSxcbiAgICBfdmlld01vcmVVcmw6IGFueSxcbiAgICB0YWJzUmVzdWx0cz86IE5zQ29tbW9uU3RyaXAuSUNvbW1vblN0cmlwVGFiW10gfCB1bmRlZmluZWQsXG4gICAgLy8gY2FsY3VsYXRlUGFyZW50U3RhdHVzIGlzIHVzZWQgc28gdGhhdCBwYXJlbnRzJyBzdGF0dXMgaXMgbm90IHJlLWNhbGN1bGF0ZWQgaWYgdGhlIEFQSSBpcyBjYWxsZWQgYWdhaW4gY296IG9mIGZpbHRlcnMsIGV0Yy5cbiAgKSB7XG4gICAgY29uc3Qgc3RyaXBEYXRhID0ge1xuICAgICAgdmlld01vcmVVcmw6IHN0cmlwLnZpZXdNb3JlVXJsLFxuICAgICAga2V5OiBzdHJpcC5rZXksXG4gICAgICBjYW5IaWRlU3RyaXA6IEJvb2xlYW4oc3RyaXAuY2FuSGlkZVN0cmlwKSxcbiAgICAgIHNob3dTdHJpcDogdGhpcy5nZXRJZlN0cmlwSGlkZGVuKHN0cmlwLmtleSksXG4gICAgICBub0RhdGFXaWRnZXQ6IHN0cmlwLm5vRGF0YVdpZGdldCxcbiAgICAgIGVycm9yV2lkZ2V0OiBzdHJpcC5lcnJvcldpZGdldCxcbiAgICAgIHN0cmlwSW5mbzogc3RyaXAuaW5mbyxcbiAgICAgIHN0cmlwVGl0bGU6IHN0cmlwLnRpdGxlLFxuICAgICAgc3RyaXBUaXRsZUxpbms6IHN0cmlwLnN0cmlwVGl0bGVMaW5rLFxuICAgICAgZGF0YVR5cGU6IHN0cmlwLmRhdGFUeXBlLFxuICAgICAgZGF0YUtleTogc3RyaXAuZGF0YUtleSxcbiAgICAgIGRpc2FibGVUcmFuc2xhdGU6IHN0cmlwLmRpc2FibGVUcmFuc2xhdGUsXG4gICAgICBzbGlkZXJDb25maWc6IHN0cmlwLnNsaWRlckNvbmZpZyxcbiAgICAgIHRhYnM6IHRhYnNSZXN1bHRzID8gdGFic1Jlc3VsdHMgOiBzdHJpcC50YWJzLFxuICAgICAgc3RyaXBOYW1lOiBzdHJpcC5uYW1lLFxuICAgICAgbW9kZTogc3RyaXAubW9kZSxcbiAgICAgIHN0cmlwQ29uZmlnOiBzdHJpcC5zdHJpcENvbmZpZyxcbiAgICAgIHN0cmlwQmFja2dyb3VuZDogc3RyaXAuc3RyaXBCYWNrZ3JvdW5kLFxuICAgICAgc2Vjb25kYXJ5SGVhZGluZzogc3RyaXAuc2Vjb25kYXJ5SGVhZGluZyxcbiAgICAgIGxvYWRlcldpZGdldHM6IHN0cmlwLmxvYWRlcldpZGdldHMgfHwgW10sXG4gICAgICB3aWRnZXRzOlxuICAgICAgICBmZXRjaFN0YXR1cyA9PT0gJ2RvbmUnXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAuLi4oc3RyaXAucHJlV2lkZ2V0cyB8fCBbXSkubWFwKHcgPT4gKHtcbiAgICAgICAgICAgICAgLi4udyxcbiAgICAgICAgICAgICAgd2lkZ2V0SG9zdENsYXNzOiBgbWItMiAke3cud2lkZ2V0SG9zdENsYXNzfWAsXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAuLi5yZXN1bHRzLFxuICAgICAgICAgICAgLi4uKHN0cmlwLnBvc3RXaWRnZXRzIHx8IFtdKS5tYXAodyA9PiAoe1xuICAgICAgICAgICAgICAuLi53LFxuICAgICAgICAgICAgICB3aWRnZXRIb3N0Q2xhc3M6IGBtYi0yICR7dy53aWRnZXRIb3N0Q2xhc3N9YCxcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICBdXG4gICAgICAgICAgOiBbXSxcbiAgICAgIHNob3dPbk5vRGF0YTogQm9vbGVhbihcbiAgICAgICAgc3RyaXAubm9EYXRhV2lkZ2V0ICYmXG4gICAgICAgICEoKHN0cmlwLnByZVdpZGdldHMgfHwgW10pLmxlbmd0aCArIHJlc3VsdHMubGVuZ3RoICsgKHN0cmlwLnBvc3RXaWRnZXRzIHx8IFtdKS5sZW5ndGgpICYmXG4gICAgICAgIGZldGNoU3RhdHVzID09PSAnZG9uZScsXG4gICAgICApLFxuICAgICAgc2hvd09uTG9hZGVyOiBCb29sZWFuKHN0cmlwLmxvYWRlciAmJiBmZXRjaFN0YXR1cyA9PT0gJ2ZldGNoaW5nJyksXG4gICAgICBzaG93T25FcnJvcjogQm9vbGVhbihzdHJpcC5lcnJvcldpZGdldCAmJiBmZXRjaFN0YXR1cyA9PT0gJ2Vycm9yJyksXG4gICAgfTtcbiAgICAvLyBjb25zdCBzdHJpcERhdGEgPSB0aGlzLnN0cmlwc1Jlc3VsdERhdGFNYXBbc3RyaXAua2V5XVxuICAgIHRoaXMuc3RyaXBzUmVzdWx0RGF0YU1hcCA9IHtcbiAgICAgIC4uLnRoaXMuc3RyaXBzUmVzdWx0RGF0YU1hcCxcbiAgICAgIFtzdHJpcC5rZXldOiBzdHJpcERhdGEsXG4gICAgfTtcbiAgICBpZiAoIXRhYnNSZXN1bHRzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGNhbGN1bGF0ZVBhcmVudFN0YXR1cyAmJlxuICAgICAgICAoZmV0Y2hTdGF0dXMgPT09ICdkb25lJyB8fCBmZXRjaFN0YXR1cyA9PT0gJ2Vycm9yJykgJiZcbiAgICAgICAgc3RyaXBEYXRhLndpZGdldHNcbiAgICAgICkge1xuICAgICAgICB0aGlzLmNoZWNrUGFyZW50U3RhdHVzKGZldGNoU3RhdHVzLCBzdHJpcERhdGEud2lkZ2V0cy5sZW5ndGgpO1xuICAgICAgfVxuICAgICAgaWYgKGNhbGN1bGF0ZVBhcmVudFN0YXR1cyAmJiAhKHJlc3VsdHMgJiYgcmVzdWx0cy5sZW5ndGggPiAwKSkge1xuICAgICAgICB0aGlzLmNvbnRlbnRBdmFpbGFibGUgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0cyAmJiByZXN1bHRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5jb250ZW50QXZhaWxhYmxlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250ZW50QXZhaWxhYmxlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBnZXRTZWxlY3RlZEluZGV4KHN0cmlwc1Jlc3VsdERhdGFNYXA6IGFueSwga2V5OiBhbnkpOiBudW1iZXIge1xuICAgIGxldCByZXR1cm5WYWx1ZSA9IDA7XG4gICAgaWYgKGtleSA9PT0gJ2NicFBsYW4nKSB7XG4gICAgICBpZiAoc3RyaXBzUmVzdWx0RGF0YU1hcC50YWJzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBkYXRhID0gc3RyaXBzUmVzdWx0RGF0YU1hcC50YWJzLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZS52YWx1ZSA9PT0gJ3VwY29taW5nJyk7XG4gICAgICAgIHJldHVyblZhbHVlID0gZGF0YVswXS53aWRnZXRzICYmIGRhdGFbMF0ud2lkZ2V0cy5sZW5ndGggPiAwID8gMSA6IDA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXR1cm5WYWx1ZTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBjaGVja1BhcmVudFN0YXR1cyhmZXRjaFN0YXR1czogVEZldGNoU3RhdHVzLCBzdHJpcFdpZGdldHNDb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGZldGNoU3RhdHVzID09PSAnZG9uZScgJiYgIXN0cmlwV2lkZ2V0c0NvdW50KSB7XG4gICAgICB0aGlzLm5vRGF0YUNvdW50ICs9IDE7XG4gICAgfSBlbHNlIGlmIChmZXRjaFN0YXR1cyA9PT0gJ2RvbmUnICYmIHN0cmlwV2lkZ2V0c0NvdW50KSB7XG4gICAgICB0aGlzLnN1Y2Nlc3NEYXRhQ291bnQgKz0gMTtcbiAgICB9IGVsc2UgaWYgKGZldGNoU3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgICB0aGlzLmVycm9yRGF0YUNvdW50ICs9IDE7XG4gICAgfVxuICAgIGNvbnN0IHNldHRsZWRDb3VudCA9IHRoaXMubm9EYXRhQ291bnQgKyB0aGlzLnN1Y2Nlc3NEYXRhQ291bnQgKyB0aGlzLmVycm9yRGF0YUNvdW50O1xuICAgIGNvbnN0IHRvdGFsQ291bnQgPSB0aGlzLndpZGdldERhdGEuc3RyaXBzLmxlbmd0aDtcbiAgICBpZiAodGhpcy5zdWNjZXNzRGF0YUNvdW50ID4gMCAmJiBzZXR0bGVkQ291bnQgPCB0b3RhbENvdW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2hvd1BhcmVudExvYWRlciA9IHNldHRsZWRDb3VudCAhPT0gdG90YWxDb3VudDtcbiAgICB0aGlzLnNob3dQYXJlbnROb0RhdGEgPVxuICAgICAgdGhpcy5ub0RhdGFDb3VudCA+IDAgJiYgdGhpcy5ub0RhdGFDb3VudCArIHRoaXMuZXJyb3JEYXRhQ291bnQgPT09IHRvdGFsQ291bnQ7XG4gICAgdGhpcy5zaG93UGFyZW50RXJyb3IgPSB0aGlzLmVycm9yRGF0YUNvdW50ID09PSB0b3RhbENvdW50O1xuICB9XG4gIGNoZWNrRm9yRW1wdHlXaWRnZXQoc3RyaXA6IE5zQ29tbW9uU3RyaXAuSUNvbW1vblN0cmlwVW5pdCk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIHN0cmlwLnJlcXVlc3QgJiZcbiAgICAgICgoc3RyaXAucmVxdWVzdC5hcGkgJiYgT2JqZWN0LmtleXMoc3RyaXAucmVxdWVzdC5hcGkpLmxlbmd0aCkgfHxcbiAgICAgICAgKHN0cmlwLnJlcXVlc3Quc2VhcmNoICYmIE9iamVjdC5rZXlzKHN0cmlwLnJlcXVlc3Quc2VhcmNoKS5sZW5ndGgpIHx8XG4gICAgICAgIChzdHJpcC5yZXF1ZXN0LnNlYXJjaFJlZ2lvblJlY29tbWVuZGF0aW9uICYmXG4gICAgICAgICAgT2JqZWN0LmtleXMoc3RyaXAucmVxdWVzdC5zZWFyY2hSZWdpb25SZWNvbW1lbmRhdGlvbikubGVuZ3RoKSB8fFxuICAgICAgICAoc3RyaXAucmVxdWVzdC5zZWFyY2hWNiAmJiBPYmplY3Qua2V5cyhzdHJpcC5yZXF1ZXN0LnNlYXJjaFY2KS5sZW5ndGgpIHx8XG4gICAgICAgIChzdHJpcC5yZXF1ZXN0LmVucm9sbG1lbnRMaXN0ICYmIE9iamVjdC5rZXlzKHN0cmlwLnJlcXVlc3QuZW5yb2xsbWVudExpc3QpLmxlbmd0aCkgfHxcbiAgICAgICAgKHN0cmlwLnJlcXVlc3QuY2JwTGlzdCAmJiBPYmplY3Qua2V5cyhzdHJpcC5yZXF1ZXN0LmNicExpc3QpLmxlbmd0aCkgfHxcbiAgICAgICAgKHN0cmlwLnJlcXVlc3QudHJlbmRpbmdTZWFyY2ggJiYgT2JqZWN0LmtleXMoc3RyaXAucmVxdWVzdC50cmVuZGluZ1NlYXJjaCkubGVuZ3RoKVxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyB0YWJDbGlja2VkKHRhYkV2ZW50OiBNYXRUYWJDaGFuZ2VFdmVudCwgc3RyaXBNYXA6IElTdHJpcFVuaXRDb21tb25EYXRhLCBzdHJpcEtleTogc3RyaW5nKSB7XG5cbiAgfVxuXG4gIHRyYW5zbGF0ZUxhYmVscyhsYWJlbDogc3RyaW5nLCB0eXBlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5sYW5ndHJhbnNsYXRpb25zLnRyYW5zbGF0ZUxhYmVsKGxhYmVsLCB0eXBlLCAnJyk7XG4gIH1cblxuICBpZGVudGlmeShpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcbiAgICBpZiAoaW5kZXggPj0gMCkgeyB9XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cbiAgdHJhY2tlcihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcbiAgICBpZiAoaW5kZXggPj0gMCkgeyB9XG4gICAgcmV0dXJuIF8uZ2V0KGl0ZW0sICd3aWRnZXREYXRhLmNvbnRlbnQuaWRlbnRpZmllcicpXG4gIH1cblxufVxuIl19
|
|
646
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXN0cmlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL2NvbnN1bXB0aW9uLyIsInNvdXJjZXMiOlsibGliL19jb21tb24vY29tbW9uLXN0cmlwL2NvbW1vbi1zdHJpcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBYSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBb0IsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFHaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFckYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDcEcsT0FBTyxFQUVMLGFBQWEsRUFDYixZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLGNBQWMsR0FDZixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7O0FBRy9FLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFBO0FBRTNCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBRzlFLG1DQW9DQzs7O0lBbkNDLG1DQUFZOztJQUNaLDRDQUFzQjs7SUFDdEIsb0NBQWM7O0lBQ2QseUNBQW1COztJQUNuQixnREFBMEI7O0lBQzFCLHVDQUFzRDs7SUFDdEQsMENBQW1COztJQUNuQiw4Q0FNRTs7SUFDRiw0Q0FLRTs7SUFDRiwyQ0FBaUI7O0lBQ2pCLG9DQUFtRDs7SUFDbkQseUNBQW1COztJQUNuQix5Q0FBbUI7O0lBQ25CLDJDQUFxQjs7SUFDckIseUNBQXFDOztJQUNyQyw0Q0FBeUQ7O0lBQ3pELDJDQUF3RDs7SUFDeEQsNENBQXNCOztJQUN0Qiw0Q0FBc0I7O0lBQ3RCLDJDQUFxQjs7SUFDckIsNkNBQW9COztJQUNwQiwrQ0FBeUI7O0lBQ3pCLGdEQUF1Qjs7SUFDdkIsMkNBQWlCOztBQVFuQixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsbUJBQW1COzs7Ozs7Ozs7Ozs7O0lBMEIzRCxZQUN5QixXQUFnQixFQUMvQixVQUFtQyxFQUNuQyxTQUF3QixFQUN4QixRQUFzQixFQUN0QixTQUFnQyxFQUNqQyxVQUEwQixFQUd6QixPQUE2QixFQUM3QixTQUEyQixFQUMzQixnQkFBaUQsRUFDakQsZ0JBQXNDO1FBRTlDLEtBQUssRUFBRSxDQUFDO1FBWkEsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQUN4QixhQUFRLEdBQVIsUUFBUSxDQUFjO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQXVCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQWdCO1FBR3pCLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQzdCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUM7UUFDakQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFzQjtRQS9CekMsT0FBRSxHQUFHLHFCQUFxQixJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUNqRCx3QkFBbUIsR0FBNEMsRUFBRSxDQUFDO1FBQ2xFLG1CQUFjLEdBQWEsRUFBRSxDQUFDO1FBQzlCLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUN6QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUNyQixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIsWUFBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUN4QyxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFekIsNEJBQXVCLEdBQXdCLElBQUksQ0FBQztRQUNwRCxzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFFdkIsaUJBQVksR0FBUSxFQUFFLENBQUM7UUFpQnJCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO0lBQ2hDLENBQUM7Ozs7SUFFRCxRQUFRO1FBQ04sbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDOzs7O0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ2hDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM1QztJQUNILENBQUM7Ozs7O0lBRUQsYUFBYSxDQUFDLEdBQVc7UUFDdkIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRTtZQUNsRixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztTQUMvQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7Ozs7SUFFRCxpQkFBaUIsQ0FBQyxHQUFXO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2hELGNBQWMsQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMvQyxDQUFDOzs7Ozs7SUFDTyxnQkFBZ0IsQ0FBQyxHQUFXOztjQUM1QixXQUFXLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQzNELE9BQU8sT0FBTyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDOzs7OztJQUVPLFFBQVE7UUFDZCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRzs7OztRQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUUsQ0FBQztRQUN4SCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUMzRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1NBQzlCO1FBQ0QsZ0RBQWdEO1FBQ2hELElBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUM1QyxpQkFBaUI7WUFDakIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtnQkFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3RELElBQUcsS0FBSyxDQUFDLFFBQVEsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUM7b0JBQ2hFLElBQUksQ0FBQyxZQUFZLENBQ2YsS0FBSyxFQUNMLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsRUFDdkYsTUFBTSxFQUNOLElBQUksRUFDSixLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FDeEIsQ0FBQztpQkFDSDtxQkFBTTtvQkFDTCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsRUFBRTt3QkFDbkMsZ0RBQWdEO3FCQUNqRDt5QkFBTTt3QkFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztxQkFDbEQ7aUJBQ0Y7YUFDRjtTQUNGOzs7Y0FFSyxXQUFXLEdBQWtELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTthQUN0RixHQUFHOzs7O1FBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2IsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1lBQ2QsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7WUFDaEUsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUU7U0FDdkUsQ0FBQyxFQUFDO2FBQ0YsTUFBTTs7OztRQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksRUFBQzs7Y0FDakQsWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTzthQUNqRCxJQUFJLENBQUMsTUFBTTs7OztRQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQzthQUN4RCxTQUFTOzs7O1FBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsV0FBVztpQkFDUixNQUFNOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxFQUFDO2lCQUNoRSxHQUFHOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDO2lCQUNmLE9BQU87Ozs7WUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUMsQ0FBQztRQUNwRCxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7Ozs7SUFFTyxpQkFBaUIsQ0FBQyxHQUFXLEVBQUUscUJBQXFCLEdBQUcsSUFBSTs7Y0FDM0QsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUk7Ozs7UUFBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFDO1FBQ3pFLElBQUksU0FBUyxFQUFFO1lBQ2Isb0VBQW9FO1NBQ3JFO0lBQ0gsQ0FBQzs7Ozs7SUFFRCxjQUFjLENBQUMsSUFBUzs7WUFDbEIsS0FBSyxHQUFHLENBQUM7UUFDYixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDNUYsSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsRixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7WUFBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNoQyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsRUFBRTtvQkFDbEcsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7aUJBQ25CO1lBQ0gsQ0FBQyxFQUFDLENBQUM7WUFDSCxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7YUFDeEI7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDOzs7O0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7SUFDM0MsQ0FBQzs7Ozs7SUFFRCxPQUFPLENBQUMsSUFBMEI7UUFDaEMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7U0FDOUI7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUVaLENBQUM7Ozs7OztJQUNELGNBQWMsQ0FBQyxLQUFpQyxFQUFFLElBQTBCO1FBQzFFLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO1lBQzFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUM7U0FDakQ7UUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Ozs7O0lBQ0QsWUFBWSxDQUFDLElBQTBCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUM7SUFDdkUsQ0FBQzs7Ozs7SUFFRCx3QkFBd0IsQ0FBQyxJQUEwQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7Ozs7SUFDRCxTQUFTLENBQUMsSUFBMEI7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDL0M7UUFBQzs7O2tCQUVNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTs7Ozs7WUFDeEMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtvQkFDckMsT0FBTyxPQUFPLENBQUM7aUJBQ2hCO2dCQUNELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO29CQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7aUJBQ3hFO2dCQUNELElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ3BDLE9BQU8sT0FBTyxDQUFDO2lCQUNoQjtnQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNwQyxPQUFPLElBQUksQ0FBQztpQkFDYjtnQkFDRCxPQUFPLE9BQU8sQ0FBQztnQkFDZiwrR0FBK0c7Z0JBQy9HLGtDQUFrQztZQUNwQyxDQUFDLEdBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixpRUFBaUU7WUFDakUsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6RTtJQUNILENBQUM7Ozs7Ozs7Ozs7O0lBRWEsWUFBWSxDQUN4QixLQUFxQyxFQUNyQyxVQUF1RCxFQUFFLEVBQ3pELFdBQXlCLEVBQ3pCLHFCQUFxQixHQUFHLElBQUksRUFDNUIsWUFBaUIsRUFDakIsV0FBeUQ7OztrQkFHbkQsU0FBUyxHQUFHO2dCQUNoQixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQzlCLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztnQkFDZCxZQUFZLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7Z0JBQ3pDLFNBQVMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDM0MsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO2dCQUNoQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQzlCLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDckIsVUFBVSxFQUFFLEtBQUssQ0FBQyxLQUFLO2dCQUN2QixjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7Z0JBQ3BDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtnQkFDeEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO2dCQUN4QyxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7Z0JBQ2hDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUk7Z0JBQzVDLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDckIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2dCQUNoQixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQzlCLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtnQkFDdEMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtnQkFDeEMsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhLElBQUksRUFBRTtnQkFDeEMsT0FBTyxFQUNMLFdBQVcsS0FBSyxNQUFNO29CQUNwQixDQUFDLENBQUM7d0JBQ0EsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRzs7Ozt3QkFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLG1CQUNoQyxDQUFDLElBQ0osZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDLGVBQWUsRUFBRSxJQUM1QyxFQUFDO3dCQUNILEdBQUcsT0FBTzt3QkFDVixHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHOzs7O3dCQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsbUJBQ2pDLENBQUMsSUFDSixlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUMsZUFBZSxFQUFFLElBQzVDLEVBQUM7cUJBQ0o7b0JBQ0QsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsWUFBWSxFQUFFLE9BQU8sQ0FDbkIsS0FBSyxDQUFDLFlBQVk7b0JBQ2xCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztvQkFDdEYsV0FBVyxLQUFLLE1BQU0sQ0FDdkI7Z0JBQ0QsWUFBWSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLFdBQVcsS0FBSyxVQUFVLENBQUM7Z0JBQ2pFLFdBQVcsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxXQUFXLEtBQUssT0FBTyxDQUFDO2FBQ25FO1lBQ0Qsd0RBQXdEO1lBQ3hELElBQUksQ0FBQyxtQkFBbUIscUJBQ25CLElBQUksQ0FBQyxtQkFBbUIsSUFDM0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxHQUN2QixDQUFDO1lBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDaEIsSUFDRSxxQkFBcUI7b0JBQ3JCLENBQUMsV0FBVyxLQUFLLE1BQU0sSUFBSSxXQUFXLEtBQUssT0FBTyxDQUFDO29CQUNuRCxTQUFTLENBQUMsT0FBTyxFQUNqQjtvQkFDQSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQy9EO2dCQUNELElBQUkscUJBQXFCLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUM3RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO2lCQUMvQjtxQkFBTSxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDeEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztpQkFDOUI7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2FBQzlCO1FBQ0gsQ0FBQztLQUFBOzs7Ozs7SUFFRCxnQkFBZ0IsQ0FBQyxtQkFBd0IsRUFBRSxHQUFROztZQUM3QyxXQUFXLEdBQUcsQ0FBQztRQUNuQixJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDckIsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFOztzQkFDN0IsSUFBSSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNOzs7O2dCQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBQztnQkFDcEYsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyRTtTQUNGO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7Ozs7OztJQUVPLGlCQUFpQixDQUFDLFdBQXlCLEVBQUUsaUJBQXlCO1FBQzVFLElBQUksV0FBVyxLQUFLLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ2hELElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO1NBQ3ZCO2FBQU0sSUFBSSxXQUFXLEtBQUssTUFBTSxJQUFJLGlCQUFpQixFQUFFO1lBQ3RELElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUM7U0FDNUI7YUFBTSxJQUFJLFdBQVcsS0FBSyxPQUFPLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7U0FDMUI7O2NBQ0ssWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjOztjQUM3RSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTTtRQUNoRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksWUFBWSxHQUFHLFVBQVUsRUFBRTtZQUMxRCxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxLQUFLLFVBQVUsQ0FBQztRQUNwRCxJQUFJLENBQUMsZ0JBQWdCO1lBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsS0FBSyxVQUFVLENBQUM7UUFDaEYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxLQUFLLFVBQVUsQ0FBQztJQUM1RCxDQUFDOzs7OztJQUNELG1CQUFtQixDQUFDLEtBQXFDO1FBQ3ZELElBQ0UsS0FBSyxDQUFDLE9BQU87WUFDYixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztnQkFDM0QsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDO2dCQUNsRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsMEJBQTBCO29CQUN2QyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQy9ELENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQztnQkFDdEUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDO2dCQUNsRixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQ3BFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUNuRixFQUNEO1lBQ0EsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7Ozs7OztJQUVNLFVBQVUsQ0FBQyxRQUEyQixFQUFFLFFBQThCLEVBQUUsUUFBZ0I7SUFFL0YsQ0FBQzs7Ozs7O0lBRUQsZUFBZSxDQUFDLEtBQWEsRUFBRSxJQUFTO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Ozs7OztJQUVELFFBQVEsQ0FBQyxLQUFhLEVBQUUsSUFBUztRQUMvQixJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRztRQUNuQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Ozs7OztJQUNELE9BQU8sQ0FBQyxLQUFhLEVBQUUsSUFBUztRQUM5QixJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRztRQUNuQixPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLCtCQUErQixDQUFDLENBQUE7SUFDckQsQ0FBQzs7O1lBaFZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixzMVdBQTRDOzthQUU3Qzs7Ozs0Q0E0QkksTUFBTSxTQUFDLGFBQWE7WUEzRmhCLHVCQUF1QjtZQUs5QixhQUFhO1lBQ2IsWUFBWTtZQUNaLHFCQUFxQjtZQUNyQixjQUFjO1lBSVAsb0JBQW9CO1lBS3BCLGdCQUFnQjtZQWZoQiwrQkFBK0I7WUFnQi9CLG9CQUFvQjs7O3lCQW1EMUIsS0FBSztpQkFDTCxXQUFXLFNBQUMsSUFBSTs7OztJQURqQiwwQ0FBaUQ7O0lBQ2pELGtDQUNpRDs7SUFDakQsbURBQWtFOztJQUNsRSw4Q0FBOEI7O0lBQzlCLGlEQUF5Qjs7SUFDekIsZ0RBQXlCOztJQUN6QiwrQ0FBd0I7O0lBQ3hCLGdEQUF5Qjs7SUFDekIsOENBQW1COztJQUNuQiwyQ0FBZ0I7O0lBQ2hCLGdEQUFxQjs7SUFDckIsZ0RBQXdCOztJQUN4Qix1Q0FBd0M7O0lBQ3hDLGdEQUF5Qjs7SUFDekIsMkNBQWtCOztJQUNsQix1REFBb0Q7O0lBQ3BELGlEQUF1Qjs7SUFDdkIsOENBQW9COztJQUNwQiw0Q0FBdUI7Ozs7O0lBSXJCLDBDQUEyQzs7Ozs7SUFDM0MseUNBQWdDOzs7OztJQUNoQyx3Q0FBOEI7Ozs7O0lBQzlCLHlDQUF3Qzs7SUFDeEMsMENBQWlDOzs7OztJQUdqQyx1Q0FBcUM7Ozs7O0lBQ3JDLHlDQUFtQzs7Ozs7SUFDbkMsZ0RBQXlEOzs7OztJQUN6RCxnREFBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE9uRGVzdHJveSwgSG9zdEJpbmRpbmcsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnNXaWRnZXRSZXNvbHZlciwgV2lkZ2V0QmFzZUNvbXBvbmVudCB9IGZyb20gJ0BzdW5iaXJkLWNiL3Jlc29sdmVyLXYyJztcbmltcG9ydCB7IE5zQ29tbW9uU3RyaXAgfSBmcm9tICcuL2NvbW1vbi1zdHJpcC5tb2RlbCc7XG4vLyBpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBXaWRnZXRDb250ZW50TGliU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy93aWRnZXQtY29udGVudC1saWIuc2VydmljZSc7XG5pbXBvcnQgeyBOc0NvbnRlbnQgfSBmcm9tICcuLi8uLi9fbW9kZWxzL3dpZGdldC1jb250ZW50Lm1vZGVsJztcbmltcG9ydCB7IE11bHRpbGluZ3VhbFRyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvbXVsdGlsaW5ndWFsLXRyYW5zbGF0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFRGZXRjaFN0YXR1cyxcbiAgTG9nZ2VyU2VydmljZSxcbiAgRXZlbnRTZXJ2aWNlLFxuICBDb25maWd1cmF0aW9uc1NlcnZpY2UsXG4gIFV0aWxpdHlTZXJ2aWNlLFxufSBmcm9tICdAc3VuYmlyZC1jYi91dGlscy12Mic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFdpZGdldFVzZXJTZXJ2aWNlTGliIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL3dpZGdldC11c2VyLWxpYi5zZXJ2aWNlJztcbi8vIGltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnc3JjL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCdcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyBNYXRUYWJDaGFuZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1ldGhvZHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL2NvbW1vbi1tZXRob2RzLnNlcnZpY2UnO1xuXG5cbmludGVyZmFjZSBJU3RyaXBVbml0Q29tbW9uRGF0YSB7XG4gIGtleTogc3RyaW5nO1xuICBjYW5IaWRlU3RyaXA6IGJvb2xlYW47XG4gIG1vZGU/OiBzdHJpbmc7XG4gIHNob3dTdHJpcDogYm9vbGVhbjtcbiAgZGlzYWJsZVRyYW5zbGF0ZTogYm9vbGVhbjtcbiAgd2lkZ2V0cz86IE5zV2lkZ2V0UmVzb2x2ZXIuSVJlbmRlckNvbmZpZ1dpdGhBbnlEYXRhW107XG4gIHN0cmlwVGl0bGU6IHN0cmluZztcbiAgc3RyaXBUaXRsZUxpbms/OiB7XG4gICAgbGluazogIHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiBzdHJpbmdcbiAgICB9LFxuICAgIGljb246IHN0cmluZyxcbiAgICBxdWVyeVBhcmFtczogc3RyaW5nXG4gIH07XG4gIHNsaWRlckNvbmZpZz86IHtcbiAgICBzaG93TmF2czogYm9vbGVhbixcbiAgICBzaG93RG90czogYm9vbGVhbixcbiAgICBtYXhXaWRnZXRzPzogbnVtYmVyXG4gICAgY2VyaWZpY2F0ZUNhcmRNYXJnaW4/OiBib29sZWFuXG4gIH07XG4gIHN0cmlwQ29uZmlnOiBhbnk7XG4gIHRhYnM/OiBOc0NvbW1vblN0cmlwLklDb21tb25TdHJpcFRhYltdIHwgdW5kZWZpbmVkO1xuICBzdHJpcE5hbWU/OiBzdHJpbmc7XG4gIHN0cmlwTG9nbz86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHN0cmlwSW5mbz86IE5zQ29tbW9uU3RyaXAuSVN0cmlwSW5mbztcbiAgbm9EYXRhV2lkZ2V0PzogTnNXaWRnZXRSZXNvbHZlci5JUmVuZGVyQ29uZmlnV2l0aEFueURhdGE7XG4gIGVycm9yV2lkZ2V0PzogTnNXaWRnZXRSZXNvbHZlci5JUmVuZGVyQ29uZmlnV2l0aEFueURhdGE7XG4gIHNob3dPbk5vRGF0YTogYm9vbGVhbjtcbiAgc2hvd09uTG9hZGVyOiBib29sZWFuO1xuICBzaG93T25FcnJvcjogYm9vbGVhbjtcbiAgbG9hZGVyV2lkZ2V0cz86IGFueTtcbiAgc3RyaXBCYWNrZ3JvdW5kPzogc3RyaW5nO1xuICBzZWNvbmRhcnlIZWFkaW5nPzogYW55O1xuICB2aWV3TW9yZVVybDogYW55O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi11aWMtY29tbW9uLXN0cmlwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbW1vbi1zdHJpcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbW1vbi1zdHJpcC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbW1vblN0cmlwQ29tcG9uZW50IGV4dGVuZHMgV2lkZ2V0QmFzZUNvbXBvbmVudFxuaW1wbGVtZW50c1xuT25Jbml0LFxuT25EZXN0cm95LFxuTnNXaWRnZXRSZXNvbHZlci5JV2lkZ2V0RGF0YTxOc0NvbW1vblN0cmlwLklDb21tb25TdHJpcD4ge1xuICBASW5wdXQoKSB3aWRnZXREYXRhITogTnNDb21tb25TdHJpcC5JQ29tbW9uU3RyaXA7XG4gIEBIb3N0QmluZGluZygnaWQnKVxuICBwdWJsaWMgaWQgPSBgd3Mtc3RyaXAtbWlsdGlwbGVfJHtNYXRoLnJhbmRvbSgpfWA7XG4gIHN0cmlwc1Jlc3VsdERhdGFNYXA6IHsgW2tleTogc3RyaW5nXTogSVN0cmlwVW5pdENvbW1vbkRhdGEgfSA9IHt9O1xuICBzdHJpcHNLZXlPcmRlcjogc3RyaW5nW10gPSBbXTtcbiAgc2hvd0FjY29yZGlvbkRhdGEgPSB0cnVlO1xuICBzaG93UGFyZW50TG9hZGVyID0gZmFsc2U7XG4gIHNob3dQYXJlbnRFcnJvciA9IGZhbHNlO1xuICBzaG93UGFyZW50Tm9EYXRhID0gZmFsc2U7XG4gIGVycm9yRGF0YUNvdW50ID0gMDtcbiAgbm9EYXRhQ291bnQgPSAwO1xuICBzdWNjZXNzRGF0YUNvdW50ID0gMDtcbiAgY29udGVudEF2YWlsYWJsZSA9IHRydWU7XG4gIGJhc2VVcmwgPSB0aGlzLmNvbmZpZ1N2Yy5zaXRlUGF0aCB8fCAnJztcbiAgdmVpZmllZEthcm1heW9naSA9IGZhbHNlO1xuICBlbnZpcm9ubWVudCE6IGFueTtcbiAgY2hhbmdlRXZlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuICBkZWZhdWx0TWF4V2lkZ2V0cyA9IDEyO1xuICBlbnJvbGxJbnRlcnZhbDogYW55O1xuICB0b2RheXNFdmVudHM6IGFueSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgZW52aXJvbm1lbnQ6IGFueSxcbiAgICBwcml2YXRlIGNvbnRlbnRTdmM6IFdpZGdldENvbnRlbnRMaWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9nZ2VyU3ZjOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTdmM6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ1N2YzogQ29uZmlndXJhdGlvbnNTZXJ2aWNlLFxuICAgIHB1YmxpYyB1dGlsaXR5U3ZjOiBVdGlsaXR5U2VydmljZSxcbiAgICAvLyBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgLy8gcHJpdmF0ZSBzZWFyY2hTZXJ2U3ZjOiBTZWFyY2hTZXJ2U2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTdmM6IFdpZGdldFVzZXJTZXJ2aWNlTGliLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3RyYW5zbGF0aW9uczogTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIGNvbW1vbk1ldGhvZHNTdmM6IENvbW1vbk1ldGhvZHNTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudmlyb25tZW50XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZlxuICAgIHRoaXMuaW5pdERhdGEoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNoYW5nZUV2ZW50U3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmNoYW5nZUV2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgc2hvd0FjY29yZGlvbihrZXk6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnV0aWxpdHlTdmMuaXNNb2JpbGUgJiYgdGhpcy5zdHJpcHNSZXN1bHREYXRhTWFwW2tleV0ubW9kZSA9PT0gJ2FjY29yZGlvbicpIHtcbiAgICAgIHJldHVybiB0aGlzLnNob3dBY2NvcmRpb25EYXRhO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHNldEhpZGRlbkZvclN0cmlwKGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5zdHJpcHNSZXN1bHREYXRhTWFwW2tleV0uc2hvd1N0cmlwID0gZmFsc2U7XG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShgY3N0cmlwXyR7a2V5fWAsICcxJyk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRJZlN0cmlwSGlkZGVuKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3RvcmFnZUl0ZW0gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGBjc3RyaXBfJHtrZXl9YCk7XG4gICAgcmV0dXJuIEJvb2xlYW4oc3RvcmFnZUl0ZW0gIT09ICcxJyk7XG4gIH1cblxuICBwcml2YXRlIGluaXREYXRhKCkge1xuICAgIHRoaXMuc3RyaXBzS2V5T3JkZXIgPSB0aGlzLndpZGdldERhdGEgJiYgdGhpcy53aWRnZXREYXRhLnN0cmlwcyAmJiB0aGlzLndpZGdldERhdGEuc3RyaXBzLm1hcChzdHJpcCA9PiBzdHJpcC5rZXkpIHx8IFtdO1xuICAgIGlmICh0aGlzLndpZGdldERhdGEubG9hZGVyICYmIHRoaXMud2lkZ2V0RGF0YS5zdHJpcHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNob3dQYXJlbnRMb2FkZXIgPSB0cnVlO1xuICAgIH1cbiAgICAvLyBudWxsIGNoZWNrIGlmIGluIGNhc2Ugbm8gc3RyaXBzIGtleSBpbiBjb25maWdcbiAgICBpZih0aGlzLndpZGdldERhdGEgJiYgdGhpcy53aWRnZXREYXRhLnN0cmlwcykge1xuICAgICAgLy8gRmV0Y2ggdGhlIGRhdGFcbiAgICAgIGZvciAoY29uc3Qgc3RyaXAgb2YgdGhpcy53aWRnZXREYXRhLnN0cmlwcykge1xuICAgICAgICB0aGlzLnByb2Nlc3NTdHJpcChzdHJpcCwgW10sICdmZXRjaGluZycsIGZhbHNlLCBudWxsKTtcbiAgICAgICAgaWYoc3RyaXAuZGF0YVR5cGUgPT09ICdpbi1oYW5kJyAmJiB0aGlzLndpZGdldERhdGFbc3RyaXAuZGF0YUtleV0pe1xuICAgICAgICAgIHRoaXMucHJvY2Vzc1N0cmlwKFxuICAgICAgICAgICAgc3RyaXAsXG4gICAgICAgICAgICB0aGlzLmNvbW1vbk1ldGhvZHNTdmMudHJhbnNmb3JtQ29udGVudHNUb1dpZGdldHModGhpcy53aWRnZXREYXRhW3N0cmlwLmRhdGFLZXldLCBzdHJpcCksXG4gICAgICAgICAgICAnZG9uZScsXG4gICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgc3RyaXAudmlld01vcmVVcmwgfHwgJycsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGVja0ZvckVtcHR5V2lkZ2V0KHN0cmlwKSkge1xuICAgICAgICAgICAgLy8gdGhpcy5mZXRjaFN0cmlwRnJvbVJlcXVlc3REYXRhKHN0cmlwLCBmYWxzZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc1N0cmlwKHN0cmlwLCBbXSwgJ2RvbmUnLCB0cnVlLCBudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gU3Vic2NyaXB0aW9uIGZvciBjaGFuZ2VzXG4gICAgY29uc3Qga2V5QW5kRXZlbnQ6IHsga2V5OiBzdHJpbmc7IHR5cGU6IHN0cmluZzsgZnJvbTogc3RyaW5nIH1bXSA9IHRoaXMud2lkZ2V0RGF0YS5zdHJpcHNcbiAgICAgIC5tYXAoc3RyaXAgPT4gKHtcbiAgICAgICAga2V5OiBzdHJpcC5rZXksXG4gICAgICAgIHR5cGU6IChzdHJpcC5yZWZyZXNoRXZlbnQgJiYgc3RyaXAucmVmcmVzaEV2ZW50LmV2ZW50VHlwZSkgfHwgJycsXG4gICAgICAgIGZyb206IChzdHJpcC5yZWZyZXNoRXZlbnQgJiYgc3RyaXAucmVmcmVzaEV2ZW50LmZyb20udG9TdHJpbmcoKSkgfHwgJycsXG4gICAgICB9KSlcbiAgICAgIC5maWx0ZXIoKHsga2V5LCB0eXBlLCBmcm9tIH0pID0+IGtleSAmJiB0eXBlICYmIGZyb20pO1xuICAgIGNvbnN0IGV2ZW50VHlwZVNldCA9IG5ldyBTZXQoa2V5QW5kRXZlbnQubWFwKGUgPT4gZS50eXBlKSk7XG4gICAgdGhpcy5jaGFuZ2VFdmVudFN1YnNjcmlwdGlvbiA9IHRoaXMuZXZlbnRTdmMuZXZlbnRzJFxuICAgICAgLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50VHlwZVNldC5oYXMoZXZlbnQuZXZlbnRUeXBlKSkpXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAga2V5QW5kRXZlbnRcbiAgICAgICAgICAuZmlsdGVyKGUgPT4gZS50eXBlID09PSBldmVudC5ldmVudFR5cGUgJiYgZS5mcm9tID09PSBldmVudC5mcm9tKVxuICAgICAgICAgIC5tYXAoZSA9PiBlLmtleSlcbiAgICAgICAgICAuZm9yRWFjaChrID0+IHRoaXMuZmV0Y2hTdHJpcEZyb21LZXkoaywgZmFsc2UpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaFN0cmlwRnJvbUtleShrZXk6IHN0cmluZywgY2FsY3VsYXRlUGFyZW50U3RhdHVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IHN0cmlwRGF0YSA9IHRoaXMud2lkZ2V0RGF0YS5zdHJpcHMuZmluZChzdHJpcCA9PiBzdHJpcC5rZXkgPT09IGtleSk7XG4gICAgaWYgKHN0cmlwRGF0YSkge1xuICAgICAgLy8gdGhpcy5mZXRjaFN0cmlwRnJvbVJlcXVlc3REYXRhKHN0cmlwRGF0YSwgY2FsY3VsYXRlUGFyZW50U3RhdHVzKTtcbiAgICB9XG4gIH1cblxuICBpc1N0cmlwU2hvd2luZyhkYXRhOiBhbnkpIHtcbiAgICBsZXQgY291bnQgPSAwO1xuICAgIGlmIChkYXRhICYmIGRhdGEua2V5ID09PSB0aGlzLmVudmlyb25tZW50LnByb2dyYW1TdHJpcEtleSAmJiAoIWRhdGEudGFicyB8fCAhZGF0YS50YWJzLmxlbmd0aCkgJiZcbiAgICAgIGRhdGEuc3RyaXBUaXRsZSA9PT0gdGhpcy5lbnZpcm9ubWVudC5wcm9ncmFtU3RyaXBOYW1lICYmIGRhdGEud2lkZ2V0cy5sZW5ndGggPiAwKSB7XG4gICAgICBkYXRhLndpZGdldHMuZm9yRWFjaCgoa2V5OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGtleSAmJiBrZXkud2lkZ2V0RGF0YS5jb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gdGhpcy5lbnZpcm9ubWVudC5wcm9ncmFtU3RyaXBQcmltYXJ5Q2F0ZWdvcnkpIHtcbiAgICAgICAgICBjb3VudCA9IGNvdW50ICsgMTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAoY291bnQgPiAwKSB7XG4gICAgICAgIGRhdGEuc2hvd1N0cmlwID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGEuc2hvd1N0cmlwID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRhLnNob3dTdHJpcDtcbiAgfVxuXG4gIGdldCBpc01vYmlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy51dGlsaXR5U3ZjLmlzTW9iaWxlIHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0ZGF0YShkYXRhOiBJU3RyaXBVbml0Q29tbW9uRGF0YSkge1xuICAgIGlmIChkYXRhLnN0cmlwSW5mbykge1xuICAgICAgcmV0dXJuIGRhdGEuc3RyaXBJbmZvLndpZGdldDtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuXG4gIH1cbiAgY2hlY2tDb25kaXRpb24od0RhdGE6IE5zQ29tbW9uU3RyaXAuSUNvbW1vblN0cmlwLCBkYXRhOiBJU3RyaXBVbml0Q29tbW9uRGF0YSkge1xuICAgIGlmICh3RGF0YS5zdHJpcHNbMF0uc3RyaXBDb25maWcgJiYgd0RhdGEuc3RyaXBzWzBdLnN0cmlwQ29uZmlnLmhpZGVTaG93QWxsKSB7XG4gICAgICByZXR1cm4gIXdEYXRhLnN0cmlwc1swXS5zdHJpcENvbmZpZy5oaWRlU2hvd0FsbDtcbiAgICB9XG4gICAgcmV0dXJuIHdEYXRhLnN0cmlwc1swXS52aWV3TW9yZVVybCAmJiBkYXRhLndpZGdldHMgJiYgZGF0YS53aWRnZXRzLmxlbmd0aCA+PSA0O1xuICB9XG4gIGNoZWNrVmlzaWJsZShkYXRhOiBJU3RyaXBVbml0Q29tbW9uRGF0YSkge1xuICAgIHJldHVybiBkYXRhLnN0cmlwSW5mbyAmJiBkYXRhLnN0cmlwSW5mby52aXNpYmlsaXR5TW9kZSA9PT0gJ3Zpc2libGUnO1xuICB9XG5cbiAgZ2V0Q29udGluZXVMZWFybmluZ0xlbnRoKGRhdGE6IElTdHJpcFVuaXRDb21tb25EYXRhKSB7XG4gICAgcmV0dXJuIGRhdGEud2lkZ2V0cyA/IGRhdGEud2lkZ2V0cy5sZW5ndGggOiAwO1xuICB9XG4gIGdldExlbmd0aChkYXRhOiBJU3RyaXBVbml0Q29tbW9uRGF0YSkge1xuICAgIGlmICghZGF0YS50YWJzIHx8ICFkYXRhLnRhYnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZGF0YS53aWRnZXRzID8gZGF0YS53aWRnZXRzLmxlbmd0aCA6IDA7XG4gICAgfSB7XG4gICAgICAvLyBpZiB0YWJzIGFyZSB0aGVyZSBjaGVjayBpZiBlYWNoIHRhYiBoYXMgd2lkZ2V0cyBhbmQgZ2V0IHRoZSB0YWIgd2l0aCBtYXggd2lkZ2V0c1xuICAgICAgY29uc3QgdGFiV2l0aE1heFdpZGdldHMgPSBkYXRhLnRhYnMucmVkdWNlKFxuICAgICAgICAocHJldiwgY3VycmVudCkgPT4ge1xuICAgICAgICAgIGlmICghcHJldi53aWRnZXRzICYmICFjdXJyZW50LndpZGdldHMpIHtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocHJldi53aWRnZXRzICYmIGN1cnJlbnQud2lkZ2V0cykge1xuICAgICAgICAgICAgcmV0dXJuIChwcmV2LndpZGdldHMubGVuZ3RoID4gY3VycmVudC53aWRnZXRzLmxlbmd0aCkgPyBwcmV2IDogY3VycmVudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGN1cnJlbnQud2lkZ2V0cyAmJiAhcHJldi53aWRnZXRzKSB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFjdXJyZW50LndpZGdldHMgJiYgcHJldi53aWRnZXRzKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICAgICAgLy8gcmV0dXJuIChwcmV2LndpZGdldHMgJiYgY3VycmVudC53aWRnZXRzICYmIChwcmV2LndpZGdldHMubGVuZ3RoID4gY3VycmVudC53aWRnZXRzLmxlbmd0aCkgKSA/IHByZXYgOiBjdXJyZW50XG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBhbGlnblxuICAgICAgICB9LCBkYXRhLnRhYnNbMF0pO1xuICAgICAgLy8gaWYgdGFicyBoYXMgYXRsZWFzdCAxIHdpZGdldHMgdGhlbiBzdHJpcCB3aWxsIHNob3cgb3IgZWxzZSBub3RcbiAgICAgIHJldHVybiB0YWJXaXRoTWF4V2lkZ2V0cy53aWRnZXRzID8gdGFiV2l0aE1heFdpZGdldHMud2lkZ2V0cy5sZW5ndGggOiAwO1xuICAgIH1cbiAgfVxuICBcbiAgcHJpdmF0ZSBhc3luYyBwcm9jZXNzU3RyaXAoXG4gICAgc3RyaXA6IE5zQ29tbW9uU3RyaXAuSUNvbW1vblN0cmlwVW5pdCxcbiAgICByZXN1bHRzOiBOc1dpZGdldFJlc29sdmVyLklSZW5kZXJDb25maWdXaXRoQW55RGF0YVtdID0gW10sXG4gICAgZmV0Y2hTdGF0dXM6IFRGZXRjaFN0YXR1cyxcbiAgICBjYWxjdWxhdGVQYXJlbnRTdGF0dXMgPSB0cnVlLFxuICAgIF92aWV3TW9yZVVybDogYW55LFxuICAgIHRhYnNSZXN1bHRzPzogTnNDb21tb25TdHJpcC5JQ29tbW9uU3RyaXBUYWJbXSB8IHVuZGVmaW5lZCxcbiAgICAvLyBjYWxjdWxhdGVQYXJlbnRTdGF0dXMgaXMgdXNlZCBzbyB0aGF0IHBhcmVudHMnIHN0YXR1cyBpcyBub3QgcmUtY2FsY3VsYXRlZCBpZiB0aGUgQVBJIGlzIGNhbGxlZCBhZ2FpbiBjb3ogb2YgZmlsdGVycywgZXRjLlxuICApIHtcbiAgICBjb25zdCBzdHJpcERhdGEgPSB7XG4gICAgICB2aWV3TW9yZVVybDogc3RyaXAudmlld01vcmVVcmwsXG4gICAgICBrZXk6IHN0cmlwLmtleSxcbiAgICAgIGNhbkhpZGVTdHJpcDogQm9vbGVhbihzdHJpcC5jYW5IaWRlU3RyaXApLFxuICAgICAgc2hvd1N0cmlwOiB0aGlzLmdldElmU3RyaXBIaWRkZW4oc3RyaXAua2V5KSxcbiAgICAgIG5vRGF0YVdpZGdldDogc3RyaXAubm9EYXRhV2lkZ2V0LFxuICAgICAgZXJyb3JXaWRnZXQ6IHN0cmlwLmVycm9yV2lkZ2V0LFxuICAgICAgc3RyaXBJbmZvOiBzdHJpcC5pbmZvLFxuICAgICAgc3RyaXBUaXRsZTogc3RyaXAudGl0bGUsXG4gICAgICBzdHJpcFRpdGxlTGluazogc3RyaXAuc3RyaXBUaXRsZUxpbmssXG4gICAgICBkYXRhVHlwZTogc3RyaXAuZGF0YVR5cGUsXG4gICAgICBkYXRhS2V5OiBzdHJpcC5kYXRhS2V5LFxuICAgICAgZGlzYWJsZVRyYW5zbGF0ZTogc3RyaXAuZGlzYWJsZVRyYW5zbGF0ZSxcbiAgICAgIHNsaWRlckNvbmZpZzogc3RyaXAuc2xpZGVyQ29uZmlnLFxuICAgICAgdGFiczogdGFic1Jlc3VsdHMgPyB0YWJzUmVzdWx0cyA6IHN0cmlwLnRhYnMsXG4gICAgICBzdHJpcE5hbWU6IHN0cmlwLm5hbWUsXG4gICAgICBtb2RlOiBzdHJpcC5tb2RlLFxuICAgICAgc3RyaXBDb25maWc6IHN0cmlwLnN0cmlwQ29uZmlnLFxuICAgICAgc3RyaXBCYWNrZ3JvdW5kOiBzdHJpcC5zdHJpcEJhY2tncm91bmQsXG4gICAgICBzZWNvbmRhcnlIZWFkaW5nOiBzdHJpcC5zZWNvbmRhcnlIZWFkaW5nLFxuICAgICAgbG9hZGVyV2lkZ2V0czogc3RyaXAubG9hZGVyV2lkZ2V0cyB8fCBbXSxcbiAgICAgIHdpZGdldHM6XG4gICAgICAgIGZldGNoU3RhdHVzID09PSAnZG9uZSdcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgIC4uLihzdHJpcC5wcmVXaWRnZXRzIHx8IFtdKS5tYXAodyA9PiAoe1xuICAgICAgICAgICAgICAuLi53LFxuICAgICAgICAgICAgICB3aWRnZXRIb3N0Q2xhc3M6IGBtYi0yICR7dy53aWRnZXRIb3N0Q2xhc3N9YCxcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIC4uLnJlc3VsdHMsXG4gICAgICAgICAgICAuLi4oc3RyaXAucG9zdFdpZGdldHMgfHwgW10pLm1hcCh3ID0+ICh7XG4gICAgICAgICAgICAgIC4uLncsXG4gICAgICAgICAgICAgIHdpZGdldEhvc3RDbGFzczogYG1iLTIgJHt3LndpZGdldEhvc3RDbGFzc31gLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgIF1cbiAgICAgICAgICA6IFtdLFxuICAgICAgc2hvd09uTm9EYXRhOiBCb29sZWFuKFxuICAgICAgICBzdHJpcC5ub0RhdGFXaWRnZXQgJiZcbiAgICAgICAgISgoc3RyaXAucHJlV2lkZ2V0cyB8fCBbXSkubGVuZ3RoICsgcmVzdWx0cy5sZW5ndGggKyAoc3RyaXAucG9zdFdpZGdldHMgfHwgW10pLmxlbmd0aCkgJiZcbiAgICAgICAgZmV0Y2hTdGF0dXMgPT09ICdkb25lJyxcbiAgICAgICksXG4gICAgICBzaG93T25Mb2FkZXI6IEJvb2xlYW4oc3RyaXAubG9hZGVyICYmIGZldGNoU3RhdHVzID09PSAnZmV0Y2hpbmcnKSxcbiAgICAgIHNob3dPbkVycm9yOiBCb29sZWFuKHN0cmlwLmVycm9yV2lkZ2V0ICYmIGZldGNoU3RhdHVzID09PSAnZXJyb3InKSxcbiAgICB9O1xuICAgIC8vIGNvbnN0IHN0cmlwRGF0YSA9IHRoaXMuc3RyaXBzUmVzdWx0RGF0YU1hcFtzdHJpcC5rZXldXG4gICAgdGhpcy5zdHJpcHNSZXN1bHREYXRhTWFwID0ge1xuICAgICAgLi4udGhpcy5zdHJpcHNSZXN1bHREYXRhTWFwLFxuICAgICAgW3N0cmlwLmtleV06IHN0cmlwRGF0YSxcbiAgICB9O1xuICAgIGlmICghdGFic1Jlc3VsdHMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgY2FsY3VsYXRlUGFyZW50U3RhdHVzICYmXG4gICAgICAgIChmZXRjaFN0YXR1cyA9PT0gJ2RvbmUnIHx8IGZldGNoU3RhdHVzID09PSAnZXJyb3InKSAmJlxuICAgICAgICBzdHJpcERhdGEud2lkZ2V0c1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuY2hlY2tQYXJlbnRTdGF0dXMoZmV0Y2hTdGF0dXMsIHN0cmlwRGF0YS53aWRnZXRzLmxlbmd0aCk7XG4gICAgICB9XG4gICAgICBpZiAoY2FsY3VsYXRlUGFyZW50U3RhdHVzICYmICEocmVzdWx0cyAmJiByZXN1bHRzLmxlbmd0aCA+IDApKSB7XG4gICAgICAgIHRoaXMuY29udGVudEF2YWlsYWJsZSA9IGZhbHNlO1xuICAgICAgfSBlbHNlIGlmIChyZXN1bHRzICYmIHJlc3VsdHMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmNvbnRlbnRBdmFpbGFibGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbnRlbnRBdmFpbGFibGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGdldFNlbGVjdGVkSW5kZXgoc3RyaXBzUmVzdWx0RGF0YU1hcDogYW55LCBrZXk6IGFueSk6IG51bWJlciB7XG4gICAgbGV0IHJldHVyblZhbHVlID0gMDtcbiAgICBpZiAoa2V5ID09PSAnY2JwUGxhbicpIHtcbiAgICAgIGlmIChzdHJpcHNSZXN1bHREYXRhTWFwLnRhYnMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBzdHJpcHNSZXN1bHREYXRhTWFwLnRhYnMuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlLnZhbHVlID09PSAndXBjb21pbmcnKTtcbiAgICAgICAgcmV0dXJuVmFsdWUgPSBkYXRhWzBdLndpZGdldHMgJiYgZGF0YVswXS53aWRnZXRzLmxlbmd0aCA+IDAgPyAxIDogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICB9XG4gIFxuICBwcml2YXRlIGNoZWNrUGFyZW50U3RhdHVzKGZldGNoU3RhdHVzOiBURmV0Y2hTdGF0dXMsIHN0cmlwV2lkZ2V0c0NvdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoZmV0Y2hTdGF0dXMgPT09ICdkb25lJyAmJiAhc3RyaXBXaWRnZXRzQ291bnQpIHtcbiAgICAgIHRoaXMubm9EYXRhQ291bnQgKz0gMTtcbiAgICB9IGVsc2UgaWYgKGZldGNoU3RhdHVzID09PSAnZG9uZScgJiYgc3RyaXBXaWRnZXRzQ291bnQpIHtcbiAgICAgIHRoaXMuc3VjY2Vzc0RhdGFDb3VudCArPSAxO1xuICAgIH0gZWxzZSBpZiAoZmV0Y2hTdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICAgIHRoaXMuZXJyb3JEYXRhQ291bnQgKz0gMTtcbiAgICB9XG4gICAgY29uc3Qgc2V0dGxlZENvdW50ID0gdGhpcy5ub0RhdGFDb3VudCArIHRoaXMuc3VjY2Vzc0RhdGFDb3VudCArIHRoaXMuZXJyb3JEYXRhQ291bnQ7XG4gICAgY29uc3QgdG90YWxDb3VudCA9IHRoaXMud2lkZ2V0RGF0YS5zdHJpcHMubGVuZ3RoO1xuICAgIGlmICh0aGlzLnN1Y2Nlc3NEYXRhQ291bnQgPiAwICYmIHNldHRsZWRDb3VudCA8IHRvdGFsQ291bnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zaG93UGFyZW50TG9hZGVyID0gc2V0dGxlZENvdW50ICE9PSB0b3RhbENvdW50O1xuICAgIHRoaXMuc2hvd1BhcmVudE5vRGF0YSA9XG4gICAgICB0aGlzLm5vRGF0YUNvdW50ID4gMCAmJiB0aGlzLm5vRGF0YUNvdW50ICsgdGhpcy5lcnJvckRhdGFDb3VudCA9PT0gdG90YWxDb3VudDtcbiAgICB0aGlzLnNob3dQYXJlbnRFcnJvciA9IHRoaXMuZXJyb3JEYXRhQ291bnQgPT09IHRvdGFsQ291bnQ7XG4gIH1cbiAgY2hlY2tGb3JFbXB0eVdpZGdldChzdHJpcDogTnNDb21tb25TdHJpcC5JQ29tbW9uU3RyaXBVbml0KTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgc3RyaXAucmVxdWVzdCAmJlxuICAgICAgKChzdHJpcC5yZXF1ZXN0LmFwaSAmJiBPYmplY3Qua2V5cyhzdHJpcC5yZXF1ZXN0LmFwaSkubGVuZ3RoKSB8fFxuICAgICAgICAoc3RyaXAucmVxdWVzdC5zZWFyY2ggJiYgT2JqZWN0LmtleXMoc3RyaXAucmVxdWVzdC5zZWFyY2gpLmxlbmd0aCkgfHxcbiAgICAgICAgKHN0cmlwLnJlcXVlc3Quc2VhcmNoUmVnaW9uUmVjb21tZW5kYXRpb24gJiZcbiAgICAgICAgICBPYmplY3Qua2V5cyhzdHJpcC5yZXF1ZXN0LnNlYXJjaFJlZ2lvblJlY29tbWVuZGF0aW9uKS5sZW5ndGgpIHx8XG4gICAgICAgIChzdHJpcC5yZXF1ZXN0LnNlYXJjaFY2ICYmIE9iamVjdC5rZXlzKHN0cmlwLnJlcXVlc3Quc2VhcmNoVjYpLmxlbmd0aCkgfHxcbiAgICAgICAgKHN0cmlwLnJlcXVlc3QuZW5yb2xsbWVudExpc3QgJiYgT2JqZWN0LmtleXMoc3RyaXAucmVxdWVzdC5lbnJvbGxtZW50TGlzdCkubGVuZ3RoKSB8fFxuICAgICAgICAoc3RyaXAucmVxdWVzdC5jYnBMaXN0ICYmIE9iamVjdC5rZXlzKHN0cmlwLnJlcXVlc3QuY2JwTGlzdCkubGVuZ3RoKSB8fFxuICAgICAgICAoc3RyaXAucmVxdWVzdC50cmVuZGluZ1NlYXJjaCAmJiBPYmplY3Qua2V5cyhzdHJpcC5yZXF1ZXN0LnRyZW5kaW5nU2VhcmNoKS5sZW5ndGgpXG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHRhYkNsaWNrZWQodGFiRXZlbnQ6IE1hdFRhYkNoYW5nZUV2ZW50LCBzdHJpcE1hcDogSVN0cmlwVW5pdENvbW1vbkRhdGEsIHN0cmlwS2V5OiBzdHJpbmcpIHtcblxuICB9XG5cbiAgdHJhbnNsYXRlTGFiZWxzKGxhYmVsOiBzdHJpbmcsIHR5cGU6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmxhbmd0cmFuc2xhdGlvbnMudHJhbnNsYXRlTGFiZWwobGFiZWwsIHR5cGUsICcnKTtcbiAgfVxuXG4gIGlkZW50aWZ5KGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xuICAgIGlmIChpbmRleCA+PSAwKSB7IH1cbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuICB0cmFja2VyKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xuICAgIGlmIChpbmRleCA+PSAwKSB7IH1cbiAgICByZXR1cm4gXy5nZXQoaXRlbSwgJ3dpZGdldERhdGEuY29udGVudC5pZGVudGlmaWVyJylcbiAgfVxuXG59XG4iXX0=
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';
|
|
7
7
|
import { ConfigurationsService } from '@sunbird-cb/utils-v2';
|
|
8
|
-
import {
|
|
8
|
+
import { WidgetContentLibService } from '../../_services/widget-content-lib.service';
|
|
9
9
|
import { CompetencyPassbookService } from './competency-passbook.service';
|
|
10
10
|
import { Router } from '@angular/router';
|
|
11
11
|
export class CompetencyPassbookComponent {
|
|
@@ -518,7 +518,7 @@ CompetencyPassbookComponent.decorators = [
|
|
|
518
518
|
/** @nocollapse */
|
|
519
519
|
CompetencyPassbookComponent.ctorParameters = () => [
|
|
520
520
|
{ type: ConfigurationsService },
|
|
521
|
-
{ type:
|
|
521
|
+
{ type: WidgetContentLibService },
|
|
522
522
|
{ type: CompetencyPassbookService },
|
|
523
523
|
{ type: Router },
|
|
524
524
|
{ type: undefined, decorators: [{ type: Inject, args: ['environment',] }] }
|
|
@@ -585,4 +585,4 @@ if (false) {
|
|
|
585
585
|
/** @type {?} */
|
|
586
586
|
CompetencyPassbookComponent.prototype.router;
|
|
587
587
|
}
|
|
588
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3VuYmlyZC1jYi9jb25zdW1wdGlvbi8iLCJzb3VyY2VzIjpbImxpYi9fY29tbW9uL2NvbXBldGVuY3ktcGFzc2Jvb2svY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBUXpDLE1BQU0sT0FBTywyQkFBMkI7Ozs7Ozs7Ozs7OztJQTJCdEMsWUFBbUIsU0FBZ0MsRUFDMUMsVUFBK0IsRUFDL0IsYUFBd0MsRUFDeEMsTUFBZSxFQUNDLFdBQWdCO1FBSnRCLGNBQVMsR0FBVCxTQUFTLENBQXVCO1FBQzFDLGVBQVUsR0FBVixVQUFVLENBQXFCO1FBQy9CLGtCQUFhLEdBQWIsYUFBYSxDQUEyQjtRQUN4QyxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBMUJmLHFCQUFnQixHQUFRLENBQUMsQ0FBQTtRQUd6QixzQkFBaUIsR0FBUSxRQUFRLENBQUE7UUFDaEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO1FBQ3ZDLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUE7UUFDckQsa0JBQWEsR0FBWSxLQUFLLENBQUE7UUFDOUIsdUJBQWtCLEdBQVksS0FBSyxDQUFBO1FBSW5DLHNCQUFpQixHQUFVLEVBQUUsQ0FBQTtRQUM3QixvQkFBZSxH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M0I7YUFDRjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLGdCQUFnQjtnQkFDaEIsa0NBQWtDO2FBQ25DO1FBQ0QsQ0FBQztLQUFBOzs7WUExWEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLDhtTkFBbUQ7O2FBRXBEOzs7O1lBVlEscUJBQXFCO1lBQ3JCLG9CQUFvQjtZQUNwQix5QkFBeUI7WUFDekIsTUFBTTs0Q0F1Q1YsTUFBTSxTQUFDLGFBQWE7Ozt5QkE3QnRCLEtBQUs7eUJBQ0wsS0FBSzsrQkFDTCxLQUFLOzJCQUNMLEtBQUs7MkJBQ0wsS0FBSztnQ0FDTCxLQUFLOzRCQUNMLE1BQU07Z0NBQ04sTUFBTTs7OztJQVBQLGlEQUF3Qjs7SUFDeEIsaURBQXdCOztJQUN4Qix1REFBa0M7O0lBQ2xDLG1EQUEwQjs7SUFDMUIsbURBQTBCOztJQUMxQix3REFBMEM7O0lBQzFDLG9EQUFpRDs7SUFDakQsd0RBQXFEOztJQUNyRCxvREFBOEI7O0lBQzlCLHlEQUFtQzs7SUFDbkMsOERBQTRCOztJQUM1QixxREFBc0I7O0lBQ3RCLG9EQUFtQjs7SUFDbkIsd0RBQTZCOztJQUM3QixzREFBeUI7O0lBQ3pCLHlEQUEyQjs7SUFDM0IseURBQTJCOztJQUMzQiw0REFBOEI7O0lBQzlCLG1EQUF3RDs7SUFDeEQsa0RBQWtCOztJQUNsQixxREFBOEM7O0lBS2xDLGdEQUF1Qzs7SUFDakQsaURBQXNDOztJQUN0QyxvREFBK0M7O0lBQy9DLDZDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UsIEV2ZW50U2VydmljZSB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJztcbmltcG9ydCB7IFdpZGdldENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL3dpZGdldC1jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tcGV0ZW5jeVBhc3Nib29rU2VydmljZSB9IGZyb20gJy4vY29tcGV0ZW5jeS1wYXNzYm9vay5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOc0NvbXBlbnRlbmN5IH0gZnJvbSAnLi4vLi4vX21vZGVscy9jb21wZW50ZW5jaWVzLm1vZGVsJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi11aWMtY29tcGV0ZW5jeS1wYXNzYm9vaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21wZXRlbmN5LXBhc3Nib29rLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbXBldGVuY3lQYXNzYm9va0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgb2JqZWN0RGF0YTogYW55XG4gIEBJbnB1dCgpIHByb3ZpZGVySWQ6IGFueVxuICBASW5wdXQoKSBjYXJkRGlzcGxheUNvdW50OiBhbnkgPSAzXG4gIEBJbnB1dCgpIGR5bmFtaWNDbGFzczogYW55XG4gIEBJbnB1dCgpIGR5bmFtaWNDb2xvcjogYW55XG4gIEBJbnB1dCgpIGR5bmFtaWNBbGlnblBpbGxzOiBhbnkgPSAnY2VudGVyJ1xuICBAT3V0cHV0KCkgZW1wdHlSZXNwb25zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gIEBPdXRwdXQoKSB0ZW1lbGV0cnlSZXNwb25zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gIGxvYWRDb21ldGVuY3k6IGJvb2xlYW4gPSBmYWxzZVxuICBsb2FkQ29tcGV0ZW5jeUFyZWE6IGJvb2xlYW4gPSBmYWxzZVxuICBvcmlnaW5hbENvbXBldGVuY3lBcnJheTogYW55XG4gIGNvbXBldGVuY3lBcmVhOiBhbnkgW11cbiAgc2VsZWN0ZWRWYWx1ZTogYW55O1xuICBjb21wZXRlbmN5VmVyc2lvbjpzdHJpbmcgPSAnJ1xuICBjb21wZXRlbmN5VGhlbWU6IGFueSA9IFtdXG4gIGFsbGNvbXBldGVuY3lUaGVtZTogYW55ID17fVxuICBjb21wZXRlbmN5U3RyZW5ndGg6IGFueSA9IDBcbiAgY29tcGV0ZW5jeVRoZW1lTGVuZ3RoOiBhbnkgPSA2XG4gIHNob3dBbGxUaGVtZSA6IGFueSA9IFt7bmFtZTonU2hvdyBhbGwnLCBzaG93QWxsOiBmYWxzZX1dXG4gIGVudmlyb25tZW50ITogYW55O1xuICBjb21lcHRlbmN5S2V5czogTnNDb21wZW50ZW5jeS5Db21wZW50ZW5jeUtleXM7XG4gIC8vIHN1YlRoZW1lID0gWydCZWhhdmlvdXJhbCddXG4gIC8vIGN1cnJlbnRGaWx0ZXIgPSAnQmVoYXZpb3VyYWwnXG4gIC8vIGN1cnJlbnRDb21wZXRlbmNpZXM6IGFueSA9IFtdXG4gIC8vIGNvbXBldGVuY3lEYXRhOiBhbnlcbiAgY29uc3RydWN0b3IocHVibGljIGNvbmZpZ1N2YzogQ29uZmlndXJhdGlvbnNTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb250ZW50U3ZjOldpZGdldENvbnRlbnRTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb21wZXRlbmN5U3ZjOiBDb21wZXRlbmN5UGFzc2Jvb2tTZXJ2aWNlLFxuICAgIHB1YmxpYyByb3V0ZXIgOiBSb3V0ZXIsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBlbnZpcm9ubWVudDogYW55LFxuICApIHsgXG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudmlyb25tZW50XG4gIH1cblxuIFxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNvbWVwdGVuY3lLZXlzID0gdGhpcy5jb25maWdTdmMuY29tcGVudGVuY3lbdGhpcy5lbnZpcm9ubWVudC5jb21wZW50ZW5jeVZlcnNpb25LZXldXG4gICAgXG4gICAgdGhpcy5nZXRBbGxDb21wZXRlbmNpZXMoKVxuICAgIC8vIHRoaXMuY29tcGV0ZW5jeURhdGEgPSB0aGlzLm9iamVjdERhdGFcbiAgICAvLyB0aGlzLmZpbHRlcih0aGlzLmN1cnJlbnRGaWx0ZXIpXG4gIH1cbiAgLy8gZmlsdGVyKGZpbHRlclZhbHVlOiBzdHJpbmcpIHtcbiAgLy8gICB0aGlzLmN1cnJlbnRGaWx0ZXIgPSBmaWx0ZXJWYWx1ZVxuICAvLyAgIHRoaXMuY3VycmVudENvbXBldGVuY2llcyA9IHRoaXMuY29tcGV0ZW5jeURhdGEuZGF0YS5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbS50eXBlID09PSBmaWx0ZXJWYWx1ZSlcbiAgLy8gfVxuICBzaG93TW9yZSgpIHtcbiAgICB0aGlzLm9iamVjdERhdGEudmlld01vcmUgPSAhdGhpcy5vYmplY3REYXRhLnZpZXdNb3JlXG4gIH1cblxuICAvLyB0byBnZXQgY29tcGV0ZW5jeSBhcmVhIGZyb20gZmFjZXRzXG4gIGFzeW5jIGdldENvbXBldGVuY3lBcmVhKCl7XG4gIGxldCBhZGRmaWx0ZXI6IGFueSA9IHt9XG4gIGlmKHRoaXMucHJvdmlkZXJJZCkge1xuICAgIGFkZGZpbHRlciA9IHtcbiAgICAgIFwiY3JlYXRlZEZvclwiOiBbXG4gICAgICAgIHRoaXMucHJvdmlkZXJJZFxuICAgICBdLFxuICAgIH1cbiAgfVxuICAgIHRoaXMubG9hZENvbXBldGVuY3lBcmVhID0gdHJ1ZVxuICAgIGxldCByZXF1ZXN0ID0ge1xuICAgICAgICBcInJlcXVlc3RcIjoge1xuICAgICAgICAgICAgXCJxdWVyeVwiOiBcIlwiLFxuICAgICAgICAgICAgXCJmaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImNvbnRlbnRUeXBlXCI6XCJDb3Vyc2VcIixcbiAgICAgICAgICAgICAgICAuLi5hZGRmaWx0ZXIsXG4gICAgICAgICAgICAgICAgXCJzdGF0dXNcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIkxpdmVcIlxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInNvcnRfYnlcIjoge1xuICAgICAgICAgICAgICAgIFwibGFzdFVwZGF0ZWRPblwiOiBcImRlc2NcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmFjZXRzXCI6IFtcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmVudmlyb25tZW50LmNvbXBlbnRlbmN5VmVyc2lvbktleX0uJHt0aGlzLmNvbWVwdGVuY3lLZXlzLnZDb21wZXRlbmN5QXJlYX1gXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJsaW1pdFwiOiAwLFxuICAgICAgICAgICAgXCJvZmZzZXRcIjogMCxcbiAgICAgICAgICAgIFwiZmllbGRzXCI6IFtcbiAgICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIFxuICAgIHRyeSB7XG4gICAgICB0aGlzLmNvbXBldGVuY3lTdHJlbmd0aCA9ICAwXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2FsbENvbXBldGVuY3lTZWFyY2gocmVxdWVzdCk7XG4gICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UucmVzdWx0cykge1xuICAgICAgICBpZihyZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHMpe1xuICAgICAgICAgIHJlc3BvbnNlLnJlc3VsdHMucmVzdWx0LmZhY2V0cy5mb3JFYWNoKChmYWN0OiBhbnkpID0+IHtcblxuICAgICAgICAgICAgaWYoZmFjdC5uYW1lID09PSAgIGAke3RoaXMuZW52aXJvbm1lbnQuY29tcGVudGVuY3lWZXJzaW9uS2V5fS4ke3RoaXMuY29tZXB0ZW5jeUtleXMudkNvbXBldGVuY3lBcmVhfWApIHtcbiAgICAgICAgICAgICAgdGhpcy5jb21wZXRlbmN5QXJlYSA9IGZhY3QudmFsdWVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlICA9IHRoaXMuY29tcGV0ZW5jeUFyZWFbMF0ubmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgdGhpcy5jb21wZXRlbmN5QXJlYS5mb3JFYWNoKGFzeW5jIChhcmVhOiBhbnksIGluZGV4VmFsdWU6IGFueSk9PiB7XG4gICAgICAgICAgICBsZXQgYWRkRmlsdGVyID0ge1xuICAgICAgICAgICAgICBcImNyZWF0ZWRGb3JcIjogW1xuICAgICAgICAgICAgICAgIHRoaXMucHJvdmlkZXJJZFxuICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBkYXRhID0gYXdhaXQgdGhpcy5nZXRjb21wZXRlbmN5VGhlbWVDb3VudChhcmVhLCBhZGRGaWx0ZXIpXG4gICAgICAgICAgICBhcmVhWyd0aGVtZURhdGEnXSA9IGRhdGFcbiAgICAgICAgICAgIGFyZWFbJ2NvdW50J10gPSBkYXRhLmxlbmd0aFxuXG4gICAgICAgICAgICB0aGlzLmNvbXBldGVuY3lTdHJlbmd0aCA9IHRoaXMuY29tcGV0ZW5jeVN0cmVuZ3RoICsgZGF0YS5sZW5ndGhcbiAgICAgICAgICAgIGlmKGluZGV4VmFsdWUgPT09IDApIHtcbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIHRoaXMuZ2V0VGhlbWVEYXRhQnlBcmVhKGFyZWEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgICB0aGlzLmxvYWRDb21wZXRlbmN5QXJlYSA9IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5sb2FkQ29tcGV0ZW5jeUFyZWEgPSBmYWxzZVxuICAgICAgdGhpcy5lbXB0eVJlc3BvbnNlLmVtaXQodHJ1ZSlcbiAgICAgIC8vIEhhbmRsZSBlcnJvcnNcbiAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjYWxsQ29tcGV0ZW5jeVNlYXJjaChyZXF1ZXN0KXtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAocmVxdWVzdCAmJiByZXF1ZXN0KSB7XG4gICAgICAgIHRoaXMuY29udGVudFN2Yy5zZWFyY2hWNihyZXF1ZXN0KS5zdWJzY3JpYmUocmVzdWx0cyA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHsgcmVzdWx0cyB9KTtcbiAgICAgICAgICB9LChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBjb21wZXRlbmN5IHRoZWFtIGNoYW5nZVxuICBjb21wZXRlbmN5Q2hhbmdlKGUpe1xuICAgIGxldCBhZGRmaWx0ZXI6IGFueSA9IHt9XG4gICAgaWYodGhpcy5wcm92aWRlcklkKSB7XG4gICAgICBhZGRmaWx0ZXIgPSB7XG4gICAgICAgIFwiY3JlYXRlZEZvclwiOiBbXG4gICAgICAgICAgdGhpcy5wcm92aWRlcklkXG4gICAgICAgXSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnRlbWVsZXRyeVJlc3BvbnNlLmVtaXQoZS5uYW1lKVxuICAgIFxuICAgIHRoaXMuZ2V0VGhlbWVEYXRhQnlBcmVhKGUpXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZS5uYW1lXG4gIH1cbiAgZ2V0QWxsQ29tcGV0ZW5jaWVzKCl7XG4gICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gdHJ1ZVxuICAgIHRoaXMuY29tcGV0ZW5jeVN2Yy5nZXRDb21wZXRlbmN5TGlzdHZfVjIoKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lID0ge31cbiAgICAgIGlmKHJlc3BvbnNlICYmIHJlc3BvbnNlLnJlc3VsdCAmJiByZXNwb25zZS5yZXN1bHQuY29udGVudCkge1xuICAgICAgICB0aGlzLm9yaWdpbmFsQ29tcGV0ZW5jeUFycmF5ID0gcmVzcG9uc2UucmVzdWx0LmNvbnRlbnRcbiAgICAgICAgdGhpcy5nZXRDb21wZXRlbmN5QXJlYSgpXG4gICAgICAgIHJlc3BvbnNlLnJlc3VsdC5jb250ZW50LmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgZWxlbWVudC5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZEVsZSkgPT4ge1xuICAgICAgICAgICAgbGV0IG5hbWUgPSBjaGlsZEVsZS5uYW1lLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgIHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW25hbWVdID0gY2hpbGRFbGVcbiAgICAgICAgICAgIHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW25hbWVdWyd2aWV3TW9yZSddID0gZmFsc2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLmxvYWRDb21ldGVuY3kgPSBmYWxzZVxuICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXRjb21wZXRlbmN5VGhlbWUodmFsdWU6IGFueSxhZGRGaWx0ZXI/OiBhbnkpIHtcbiAgICBsZXQgcmVxdWVzdCA9IHtcbiAgICAgIFwicmVxdWVzdFwiOiB7XG4gICAgICAgICAgXCJxdWVyeVwiOiBcIlwiLFxuICAgICAgICAgIFwiZmlsdGVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiY29udGVudFR5cGVcIjpcIkNvdXJzZVwiLFxuICAgICAgICAgICAgICAuLi5hZGRGaWx0ZXIsXG4gICAgICAgICAgICAgIFtgJHt0aGlzLmVudmlyb25tZW50LmNvbXBlbnRlbmN5VmVyc2lvbktleX0uJHt0aGlzLmNvbWVwdGVuY3lLZXlzLnZDb21wZXRlbmN5QXJlYX1gXSA6IHZhbHVlLFxuICAgICAgICAgICAgICBcInN0YXR1c1wiOiBbXG4gICAgICAgICAgICAgICAgICBcIkxpdmVcIlxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNvcnRfYnlcIjoge1xuICAgICAgICAgICAgICBcImxhc3RVcGRhdGVkT25cIjogXCJkZXNjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFjZXRzXCI6IFtcbiAgICAgICAgICAgICAgYCR7dGhpcy5lbnZpcm9ubWVudC5jb21wZW50ZW5jeVZlcnNpb25LZXl9LiR7dGhpcy5jb21lcHRlbmN5S2V5cy52Q29tcGV0ZW5jeVRoZW1lfWBcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibGltaXRcIjogMCxcbiAgICAgICAgICBcIm9mZnNldFwiOiAwLFxuICAgICAgICAgIFwiZmllbGRzXCI6IFtcbiAgICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBcbiAgdHJ5IHtcbiAgICB0aGlzLmxvYWRDb21ldGVuY3kgPSB0cnVlXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNhbGxDb21wZXRlbmN5U2VhcmNoKHJlcXVlc3QpO1xuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5yZXN1bHRzKSB7XG4gICAgICBpZihyZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHMpe1xuICAgICAgICBsZXQgY29tcGV0ZW5jeVRoZW1lRGF0YSA6IGFueSA9IHJlc3BvbnNlLnJlc3VsdHMucmVzdWx0LmZhY2V0c1swXS52YWx1ZXMgXG4gICAgICAgIHRoaXMub3JpZ2luYWxDb21wZXRlbmN5QXJyYXkuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgICAgaWYoZWxlbWVudC5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBldGVuY3lUaGVtZSA9IGNvbXBldGVuY3lUaGVtZURhdGEuZmlsdGVyKChlbGUxOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuICBlbGVtZW50LmNoaWxkcmVuLmZpbmQoKGVsZTI6IGFueSkgPT4gZWxlMi5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IGVsZTEubmFtZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHRoaXMuc2hvd0FsbFRoZW1lID0gW3tuYW1lOidTaG93IGFsbCcsIHNob3dBbGw6IGZhbHNlfV1cbiAgICAgICAgICAgIHRoaXMuY29tcGV0ZW5jeVRoZW1lTGVuZ3RoID0gNlxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVzZXRWaWV3TW9yZSgpXG4gICAgICB9XG4gICAgICB0aGlzLmxvYWRDb21ldGVuY3kgPSBmYWxzZVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBIYW5kbGUgZXJyb3JzXG4gICAgLy8gY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyb3IpO1xuICB9XG4gIH1cblxuICBnZXRUaGVtZURhdGFCeUFyZWEoYXJlYURhdGE6IGFueSl7XG4gICAgbGV0IGNvbXBldGVuY3lUaGVtZURhdGEgOiBhbnkgPSBhcmVhRGF0YS50aGVtZURhdGFcbiAgICAgICAgdGhpcy5vcmlnaW5hbENvbXBldGVuY3lBcnJheS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgICBpZihlbGVtZW50Lm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gYXJlYURhdGEubmFtZSkge1xuICAgICAgICAgICB0aGlzLmNvbXBldGVuY3lUaGVtZSA9IGNvbXBldGVuY3lUaGVtZURhdGEuZmlsdGVyKChlbGUxOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuICBlbGVtZW50LmNoaWxkcmVuLmZpbmQoKGVsZTI6IGFueSkgPT4gZWxlMi5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IGVsZTEubmFtZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHRoaXMuc2hvd0FsbFRoZW1lID0gW3tuYW1lOidTaG93IGFsbCcsIHNob3dBbGw6IGZhbHNlfV1cbiAgICAgICAgICAgIHRoaXMuY29tcGV0ZW5jeVRoZW1lTGVuZ3RoID0gNlxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBhZGRmaWx0ZXI6IGFueSA9IHt9XG4gICAgICAgIGlmKHRoaXMucHJvdmlkZXJJZCkge1xuICAgICAgICAgIGFkZGZpbHRlciA9IHtcbiAgICAgICAgICAgIFwiY3JlYXRlZEZvclwiOiBbXG4gICAgICAgICAgICAgIHRoaXMucHJvdmlkZXJJZFxuICAgICAgICAgICBdLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdldGNvbXBldGVuY3lTdWJUaGVtZShhcmVhRGF0YSxhZGRmaWx0ZXIpXG4gIH1cblxuICBhc3luYyBnZXRjb21wZXRlbmN5VGhlbWVDb3VudChhcmVhOiBhbnksYWRkRmlsdGVyPzogYW55KSB7XG4gICAgbGV0IHJlcXVlc3QgPSB7XG4gICAgICBcInJlcXVlc3RcIjoge1xuICAgICAgICAgIFwicXVlcnlcIjogXCJcIixcbiAgICAgICAgICBcImZpbHRlcnNcIjoge1xuICAgICAgICAgICAgICBcImNvbnRlbnRUeXBlXCI6XCJDb3Vyc2VcIixcbiAgICAgICAgICAgICAgLi4uYWRkRmlsdGVyLFxuICAgICAgICAgICAgICBbYCR7dGhpcy5lbnZpcm9ubWVudC5jb21wZW50ZW5jeVZlcnNpb25LZXl9LiR7dGhpcy5jb21lcHRlbmN5S2V5cy52Q29tcGV0ZW5jeUFyZWF9YF0gOiBhcmVhLm5hbWUsXG4gICAgICAgICAgICAgIFwic3RhdHVzXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiTGl2ZVwiXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic29ydF9ieVwiOiB7XG4gICAgICAgICAgICAgIFwibGFzdFVwZGF0ZWRPblwiOiBcImRlc2NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWNldHNcIjogW1xuICAgICAgICAgICAgICBgJHt0aGlzLmVudmlyb25tZW50LmNvbXBlbnRlbmN5VmVyc2lvbktleX0uJHt0aGlzLmNvbWVwdGVuY3lLZXlzLnZDb21wZXRlbmN5VGhlbWV9YFxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJsaW1pdFwiOiAwLFxuICAgICAgICAgIFwib2Zmc2V0XCI6IDAsXG4gICAgICAgICAgXCJmaWVsZHNcIjogW1xuICAgICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIFxuICB0cnkge1xuICAgIGxldCByZXR1cm5lZERhdGEgOiBhbnkgPSBcbiAgICB0aGlzLmxvYWRDb21ldGVuY3kgPSB0cnVlXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNhbGxDb21wZXRlbmN5U2VhcmNoKHJlcXVlc3QpO1xuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5yZXN1bHRzKSB7XG4gICAgICBpZihyZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHMpe1xuICAgICAgICBsZXQgY29tcGV0ZW5jeVRoZW1lRGF0YSA6IGFueSA9IHJlc3BvbnNlLnJlc3VsdHMucmVzdWx0LmZhY2V0c1swXS52YWx1ZXMgXG4gICAgICAgIHRoaXMub3JpZ2luYWxDb21wZXRlbmN5QXJyYXkuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgICAgaWYoZWxlbWVudC5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IGFyZWEubmFtZSkge1xuICAgICAgICAgICByZXR1cm5lZERhdGEgPSBjb21wZXRlbmN5VGhlbWVEYXRhLmZpbHRlcigoZWxlMTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAgZWxlbWVudC5jaGlsZHJlbi5maW5kKChlbGUyOiBhbnkpID0+IGVsZTIubmFtZS50b0xvd2VyQ2FzZSgpID09PSBlbGUxLm5hbWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB0aGlzLnNob3dBbGxUaGVtZSA9IFt7bmFtZTonU2hvdyBhbGwnLCBzaG93QWxsOiBmYWxzZX1dXG4gICAgICAgICAgICB0aGlzLmNvbXBldGVuY3lUaGVtZUxlbmd0aCA9IDZcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gZmFsc2VcbiAgICAgIHJldHVybiByZXR1cm5lZERhdGFcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gSGFuZGxlIGVycm9yc1xuICAgIC8vIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycm9yKTtcbiAgfVxuICB9XG5cbiAgcmVzZXRWaWV3TW9yZSgpe1xuICAgIE9iamVjdC5rZXlzKHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lKS5mb3JFYWNoKChjb21wOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW2NvbXBdWyd2aWV3TW9yZSddID0gZmFsc2VcbiAgICB9KVxuICB9XG4gIHZpZXdNb3JlQ2hpbGRyZW4oZGF0YTogYW55KSB7XG4gICAgZGF0YS52aWV3TW9yZSA9ICFkYXRhLnZpZXdNb3JlXG4gICAgdGhpcy5hbGxjb21wZXRlbmN5VGhlbWVbZGF0YS5uYW1lLnRvTG93ZXJDYXNlKCldLnZpZXdNb3JlID0gZGF0YS52aWV3TW9yZVxuICB9XG4gIGRpc3BsYXlBbGxUaGVtZShldmVudDogYW55KSB7XG4gICAgdGhpcy5zaG93QWxsVGhlbWVbMF1bJ3Nob3dBbGwnXSA9ICFldmVudC5zaG93QWxsIFxuICAgIHRoaXMuY29tcGV0ZW5jeVRoZW1lTGVuZ3RoID0gZXZlbnQuc2hvd0FsbCA/ICB0aGlzLmNvbXBldGVuY3lUaGVtZS5sZW5ndGggOiA2XG4gICAgdGhpcy5zaG93QWxsVGhlbWVbMF1bJ25hbWUnXSA9IGV2ZW50LnNob3dBbGwgPyAnU2hvdyBsZXNzJyA6ICdTaG93IGFsbCdcbiAgICB0aGlzLnRlbWVsZXRyeVJlc3BvbnNlLmVtaXQoZXZlbnQubmFtZSlcbiAgfVxuXG4gIG5hdmlnYXRlVG9Db21wZXRlbmN5KGNvbXBEYXRhOiBhbnkpe1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC9hcHAvbGVhcm4vYnJvd3NlLWJ5L2NvbXBldGVuY3kvJHtjb21wRGF0YS5uYW1lfWApXG4gIH1cblxuXG4gIGFzeW5jIGdldGNvbXBldGVuY3lTdWJUaGVtZShjb21wQXJlYTogYW55LGFkZEZpbHRlcj86IGFueSkge1xuICAgIGxldCByZXF1ZXN0ID0ge1xuICAgICAgXCJyZXF1ZXN0XCI6IHtcbiAgICAgICAgICBcInF1ZXJ5XCI6IFwiXCIsXG4gICAgICAgICAgXCJmaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJjb250ZW50VHlwZVwiOlwiQ291cnNlXCIsXG4gICAgICAgICAgICAgIC4uLmFkZEZpbHRlcixcbiAgICAgICAgICAgICBbYCR7dGhpcy5lbnZpcm9ubWVudC5jb21wZW50ZW5jeVZlcnNpb25LZXl9LiR7dGhpcy5jb21lcHRlbmN5S2V5cy52Q29tcGV0ZW5jeUFyZWF9YF0gOiBjb21wQXJlYS5uYW1lLFxuICAgICAgICAgICAgICBcInN0YXR1c1wiOiBbXG4gICAgICAgICAgICAgICAgICBcIkxpdmVcIlxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNvcnRfYnlcIjoge1xuICAgICAgICAgICAgICBcImxhc3RVcGRhdGVkT25cIjogXCJkZXNjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFjZXRzXCI6IFtcbiAgICAgICAgICAgICAgIGAke3RoaXMuZW52aXJvbm1lbnQuY29tcGVudGVuY3lWZXJzaW9uS2V5fS4ke3RoaXMuY29tZXB0ZW5jeUtleXMudkNvbXBldGVuY3lTdWJUaGVtZX1gXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcImxpbWl0XCI6IDAsXG4gICAgICAgICAgXCJvZmZzZXRcIjogMCxcbiAgICAgICAgICBcImZpZWxkc1wiOiBbXG4gICAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgXG4gIHRyeSB7XG4gICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gdHJ1ZVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jYWxsQ29tcGV0ZW5jeVNlYXJjaChyZXF1ZXN0KTtcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UucmVzdWx0cykge1xuICAgICAgaWYocmVzcG9uc2UucmVzdWx0cy5yZXN1bHQuZmFjZXRzKXtcbiAgICAgICAgbGV0IGNvbXBldGVuY3lTdWJUaGVtZURhdGEgOiBhbnkgPSByZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHNbMF0udmFsdWVzIFxuICAgICAgICB0aGlzLmNvbXBldGVuY3lBcmVhLmZvckVhY2goKGFyZWFFbGU6IGFueSkgPT4ge1xuICAgICAgICAgIGlmKGFyZWFFbGUubmFtZSA9PT0gY29tcEFyZWEubmFtZSkge1xuICAgICAgICAgICAgYXJlYUVsZS50aGVtZURhdGEuZm9yRWFjaCgodGhlbWVFbGUpID0+IHtcbiAgICAgICAgICAgICAgaWYodGhpcy5hbGxjb21wZXRlbmN5VGhlbWVbdGhlbWVFbGUubmFtZS50b0xvd2VyQ2FzZSgpXSAmJlxuICAgICAgICAgICAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVt0aGVtZUVsZS5uYW1lLnRvTG93ZXJDYXNlKCldLmNoaWxkcmVuICYmIFxuICAgICAgICAgICAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVt0aGVtZUVsZS5uYW1lLnRvTG93ZXJDYXNlKCldLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGxldCBkYXRhID0gdGhpcy5hbGxjb21wZXRlbmN5VGhlbWVbdGhlbWVFbGUubmFtZS50b0xvd2VyQ2FzZSgpXS5jaGlsZHJlbi5maWx0ZXIob2JqMSA9PiBcbiAgICAgICAgICAgICAgICAgIGNvbXBldGVuY3lTdWJUaGVtZURhdGEuc29tZShvYmoyID0+IFxuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhvYmoxKS5ldmVyeShrZXkgPT4gb2JqMVsnbmFtZSddID09PSAob2JqMlsnbmFtZSddKSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW3RoZW1lRWxlLm5hbWUudG9Mb3dlckNhc2UoKV1bJ2NoaWxkcmVuJ10gPSBkYXRhXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gZmFsc2VcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gSGFuZGxlIGVycm9yc1xuICAgIC8vIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycm9yKTtcbiAgfVxuICB9XG59XG4iXX0=
|
|
588
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3VuYmlyZC1jYi9jb25zdW1wdGlvbi8iLCJzb3VyY2VzIjpbImxpYi9fY29tbW9uL2NvbXBldGVuY3ktcGFzc2Jvb2svY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBUXpDLE1BQU0sT0FBTywyQkFBMkI7Ozs7Ozs7Ozs7OztJQTJCdEMsWUFBbUIsU0FBZ0MsRUFDMUMsVUFBa0MsRUFDbEMsYUFBd0MsRUFDeEMsTUFBZSxFQUNDLFdBQWdCO1FBSnRCLGNBQVMsR0FBVCxTQUFTLENBQXVCO1FBQzFDLGVBQVUsR0FBVixVQUFVLENBQXdCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUEyQjtRQUN4QyxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBMUJmLHFCQUFnQixHQUFRLENBQUMsQ0FBQTtRQUd6QixzQkFBaUIsR0FBUSxRQUFRLENBQUE7UUFDaEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO1FBQ3ZDLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUE7UUFDckQsa0JBQWEsR0FBWSxLQUFLLENBQUE7UUFDOUIsdUJBQWtCLEdBQVksS0FBSyxDQUFBO1FBSW5DLHNCQUFpQixHQUFVLEVBQUUsQ0FBQTtRQUM3QixvQkFBZSxH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M0I7YUFDRjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLGdCQUFnQjtnQkFDaEIsa0NBQWtDO2FBQ25DO1FBQ0QsQ0FBQztLQUFBOzs7WUExWEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLDhtTkFBbUQ7O2FBRXBEOzs7O1lBVlEscUJBQXFCO1lBQ3JCLHVCQUF1QjtZQUN2Qix5QkFBeUI7WUFDekIsTUFBTTs0Q0F1Q1YsTUFBTSxTQUFDLGFBQWE7Ozt5QkE3QnRCLEtBQUs7eUJBQ0wsS0FBSzsrQkFDTCxLQUFLOzJCQUNMLEtBQUs7MkJBQ0wsS0FBSztnQ0FDTCxLQUFLOzRCQUNMLE1BQU07Z0NBQ04sTUFBTTs7OztJQVBQLGlEQUF3Qjs7SUFDeEIsaURBQXdCOztJQUN4Qix1REFBa0M7O0lBQ2xDLG1EQUEwQjs7SUFDMUIsbURBQTBCOztJQUMxQix3REFBMEM7O0lBQzFDLG9EQUFpRDs7SUFDakQsd0RBQXFEOztJQUNyRCxvREFBOEI7O0lBQzlCLHlEQUFtQzs7SUFDbkMsOERBQTRCOztJQUM1QixxREFBc0I7O0lBQ3RCLG9EQUFtQjs7SUFDbkIsd0RBQTZCOztJQUM3QixzREFBeUI7O0lBQ3pCLHlEQUEyQjs7SUFDM0IseURBQTJCOztJQUMzQiw0REFBOEI7O0lBQzlCLG1EQUF3RDs7SUFDeEQsa0RBQWtCOztJQUNsQixxREFBOEM7O0lBS2xDLGdEQUF1Qzs7SUFDakQsaURBQXlDOztJQUN6QyxvREFBK0M7O0lBQy9DLDZDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UsIEV2ZW50U2VydmljZSB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJztcbmltcG9ydCB7IFdpZGdldENvbnRlbnRMaWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL3dpZGdldC1jb250ZW50LWxpYi5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBldGVuY3lQYXNzYm9va1NlcnZpY2UgfSBmcm9tICcuL2NvbXBldGVuY3ktcGFzc2Jvb2suc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTnNDb21wZW50ZW5jeSB9IGZyb20gJy4uLy4uL19tb2RlbHMvY29tcGVudGVuY2llcy5tb2RlbCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ItdWljLWNvbXBldGVuY3ktcGFzc2Jvb2snLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbXBldGVuY3ktcGFzc2Jvb2suY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb21wZXRlbmN5UGFzc2Jvb2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIG9iamVjdERhdGE6IGFueVxuICBASW5wdXQoKSBwcm92aWRlcklkOiBhbnlcbiAgQElucHV0KCkgY2FyZERpc3BsYXlDb3VudDogYW55ID0gM1xuICBASW5wdXQoKSBkeW5hbWljQ2xhc3M6IGFueVxuICBASW5wdXQoKSBkeW5hbWljQ29sb3I6IGFueVxuICBASW5wdXQoKSBkeW5hbWljQWxpZ25QaWxsczogYW55ID0gJ2NlbnRlcidcbiAgQE91dHB1dCgpIGVtcHR5UmVzcG9uc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBAT3V0cHV0KCkgdGVtZWxldHJ5UmVzcG9uc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBsb2FkQ29tZXRlbmN5OiBib29sZWFuID0gZmFsc2VcbiAgbG9hZENvbXBldGVuY3lBcmVhOiBib29sZWFuID0gZmFsc2VcbiAgb3JpZ2luYWxDb21wZXRlbmN5QXJyYXk6IGFueVxuICBjb21wZXRlbmN5QXJlYTogYW55IFtdXG4gIHNlbGVjdGVkVmFsdWU6IGFueTtcbiAgY29tcGV0ZW5jeVZlcnNpb246c3RyaW5nID0gJydcbiAgY29tcGV0ZW5jeVRoZW1lOiBhbnkgPSBbXVxuICBhbGxjb21wZXRlbmN5VGhlbWU6IGFueSA9e31cbiAgY29tcGV0ZW5jeVN0cmVuZ3RoOiBhbnkgPSAwXG4gIGNvbXBldGVuY3lUaGVtZUxlbmd0aDogYW55ID0gNlxuICBzaG93QWxsVGhlbWUgOiBhbnkgPSBbe25hbWU6J1Nob3cgYWxsJywgc2hvd0FsbDogZmFsc2V9XVxuICBlbnZpcm9ubWVudCE6IGFueTtcbiAgY29tZXB0ZW5jeUtleXM6IE5zQ29tcGVudGVuY3kuQ29tcGVudGVuY3lLZXlzO1xuICAvLyBzdWJUaGVtZSA9IFsnQmVoYXZpb3VyYWwnXVxuICAvLyBjdXJyZW50RmlsdGVyID0gJ0JlaGF2aW91cmFsJ1xuICAvLyBjdXJyZW50Q29tcGV0ZW5jaWVzOiBhbnkgPSBbXVxuICAvLyBjb21wZXRlbmN5RGF0YTogYW55XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcbiAgICBwdWJsaWMgY29udGVudFN2YzpXaWRnZXRDb250ZW50TGliU2VydmljZSxcbiAgICBwdWJsaWMgY29tcGV0ZW5jeVN2YzogQ29tcGV0ZW5jeVBhc3Nib29rU2VydmljZSxcbiAgICBwdWJsaWMgcm91dGVyIDogUm91dGVyLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgZW52aXJvbm1lbnQ6IGFueSxcbiAgKSB7IFxuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudFxuICB9XG5cbiBcbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb21lcHRlbmN5S2V5cyA9IHRoaXMuY29uZmlnU3ZjLmNvbXBlbnRlbmN5W3RoaXMuZW52aXJvbm1lbnQuY29tcGVudGVuY3lWZXJzaW9uS2V5XVxuICAgIFxuICAgIHRoaXMuZ2V0QWxsQ29tcGV0ZW5jaWVzKClcbiAgICAvLyB0aGlzLmNvbXBldGVuY3lEYXRhID0gdGhpcy5vYmplY3REYXRhXG4gICAgLy8gdGhpcy5maWx0ZXIodGhpcy5jdXJyZW50RmlsdGVyKVxuICB9XG4gIC8vIGZpbHRlcihmaWx0ZXJWYWx1ZTogc3RyaW5nKSB7XG4gIC8vICAgdGhpcy5jdXJyZW50RmlsdGVyID0gZmlsdGVyVmFsdWVcbiAgLy8gICB0aGlzLmN1cnJlbnRDb21wZXRlbmNpZXMgPSB0aGlzLmNvbXBldGVuY3lEYXRhLmRhdGEuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0udHlwZSA9PT0gZmlsdGVyVmFsdWUpXG4gIC8vIH1cbiAgc2hvd01vcmUoKSB7XG4gICAgdGhpcy5vYmplY3REYXRhLnZpZXdNb3JlID0gIXRoaXMub2JqZWN0RGF0YS52aWV3TW9yZVxuICB9XG5cbiAgLy8gdG8gZ2V0IGNvbXBldGVuY3kgYXJlYSBmcm9tIGZhY2V0c1xuICBhc3luYyBnZXRDb21wZXRlbmN5QXJlYSgpe1xuICBsZXQgYWRkZmlsdGVyOiBhbnkgPSB7fVxuICBpZih0aGlzLnByb3ZpZGVySWQpIHtcbiAgICBhZGRmaWx0ZXIgPSB7XG4gICAgICBcImNyZWF0ZWRGb3JcIjogW1xuICAgICAgICB0aGlzLnByb3ZpZGVySWRcbiAgICAgXSxcbiAgICB9XG4gIH1cbiAgICB0aGlzLmxvYWRDb21wZXRlbmN5QXJlYSA9IHRydWVcbiAgICBsZXQgcmVxdWVzdCA9IHtcbiAgICAgICAgXCJyZXF1ZXN0XCI6IHtcbiAgICAgICAgICAgIFwicXVlcnlcIjogXCJcIixcbiAgICAgICAgICAgIFwiZmlsdGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJjb250ZW50VHlwZVwiOlwiQ291cnNlXCIsXG4gICAgICAgICAgICAgICAgLi4uYWRkZmlsdGVyLFxuICAgICAgICAgICAgICAgIFwic3RhdHVzXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJMaXZlXCJcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJzb3J0X2J5XCI6IHtcbiAgICAgICAgICAgICAgICBcImxhc3RVcGRhdGVkT25cIjogXCJkZXNjXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZhY2V0c1wiOiBbXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5lbnZpcm9ubWVudC5jb21wZW50ZW5jeVZlcnNpb25LZXl9LiR7dGhpcy5jb21lcHRlbmN5S2V5cy52Q29tcGV0ZW5jeUFyZWF9YFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibGltaXRcIjogMCxcbiAgICAgICAgICAgIFwib2Zmc2V0XCI6IDAsXG4gICAgICAgICAgICBcImZpZWxkc1wiOiBbXG4gICAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBcbiAgICB0cnkge1xuICAgICAgdGhpcy5jb21wZXRlbmN5U3RyZW5ndGggPSAgMFxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNhbGxDb21wZXRlbmN5U2VhcmNoKHJlcXVlc3QpO1xuICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnJlc3VsdHMpIHtcbiAgICAgICAgaWYocmVzcG9uc2UucmVzdWx0cy5yZXN1bHQuZmFjZXRzKXtcbiAgICAgICAgICByZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHMuZm9yRWFjaCgoZmFjdDogYW55KSA9PiB7XG5cbiAgICAgICAgICAgIGlmKGZhY3QubmFtZSA9PT0gICBgJHt0aGlzLmVudmlyb25tZW50LmNvbXBlbnRlbmN5VmVyc2lvbktleX0uJHt0aGlzLmNvbWVwdGVuY3lLZXlzLnZDb21wZXRlbmN5QXJlYX1gKSB7XG4gICAgICAgICAgICAgIHRoaXMuY29tcGV0ZW5jeUFyZWEgPSBmYWN0LnZhbHVlc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSAgPSB0aGlzLmNvbXBldGVuY3lBcmVhWzBdLm5hbWUudG9Mb3dlckNhc2UoKVxuICAgICAgICAgIHRoaXMuY29tcGV0ZW5jeUFyZWEuZm9yRWFjaChhc3luYyAoYXJlYTogYW55LCBpbmRleFZhbHVlOiBhbnkpPT4ge1xuICAgICAgICAgICAgbGV0IGFkZEZpbHRlciA9IHtcbiAgICAgICAgICAgICAgXCJjcmVhdGVkRm9yXCI6IFtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3ZpZGVySWRcbiAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgZGF0YSA9IGF3YWl0IHRoaXMuZ2V0Y29tcGV0ZW5jeVRoZW1lQ291bnQoYXJlYSwgYWRkRmlsdGVyKVxuICAgICAgICAgICAgYXJlYVsndGhlbWVEYXRhJ10gPSBkYXRhXG4gICAgICAgICAgICBhcmVhWydjb3VudCddID0gZGF0YS5sZW5ndGhcblxuICAgICAgICAgICAgdGhpcy5jb21wZXRlbmN5U3RyZW5ndGggPSB0aGlzLmNvbXBldGVuY3lTdHJlbmd0aCArIGRhdGEubGVuZ3RoXG4gICAgICAgICAgICBpZihpbmRleFZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICB0aGlzLmdldFRoZW1lRGF0YUJ5QXJlYShhcmVhKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICAgdGhpcy5sb2FkQ29tcGV0ZW5jeUFyZWEgPSBmYWxzZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMubG9hZENvbXBldGVuY3lBcmVhID0gZmFsc2VcbiAgICAgIHRoaXMuZW1wdHlSZXNwb25zZS5lbWl0KHRydWUpXG4gICAgICAvLyBIYW5kbGUgZXJyb3JzXG4gICAgICAvLyBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY2FsbENvbXBldGVuY3lTZWFyY2gocmVxdWVzdCl7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHJlcXVlc3QgJiYgcmVxdWVzdCkge1xuICAgICAgICB0aGlzLmNvbnRlbnRTdmMuc2VhcmNoVjYocmVxdWVzdCkuc3Vic2NyaWJlKHJlc3VsdHMgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh7IHJlc3VsdHMgfSk7XG4gICAgICAgICAgfSwoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gY29tcGV0ZW5jeSB0aGVhbSBjaGFuZ2VcbiAgY29tcGV0ZW5jeUNoYW5nZShlKXtcbiAgICBsZXQgYWRkZmlsdGVyOiBhbnkgPSB7fVxuICAgIGlmKHRoaXMucHJvdmlkZXJJZCkge1xuICAgICAgYWRkZmlsdGVyID0ge1xuICAgICAgICBcImNyZWF0ZWRGb3JcIjogW1xuICAgICAgICAgIHRoaXMucHJvdmlkZXJJZFxuICAgICAgIF0sXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy50ZW1lbGV0cnlSZXNwb25zZS5lbWl0KGUubmFtZSlcbiAgICBcbiAgICB0aGlzLmdldFRoZW1lRGF0YUJ5QXJlYShlKVxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGUubmFtZVxuICB9XG4gIGdldEFsbENvbXBldGVuY2llcygpe1xuICAgIHRoaXMubG9hZENvbWV0ZW5jeSA9IHRydWVcbiAgICB0aGlzLmNvbXBldGVuY3lTdmMuZ2V0Q29tcGV0ZW5jeUxpc3R2X1YyKCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZSA9IHt9XG4gICAgICBpZihyZXNwb25zZSAmJiByZXNwb25zZS5yZXN1bHQgJiYgcmVzcG9uc2UucmVzdWx0LmNvbnRlbnQpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5hbENvbXBldGVuY3lBcnJheSA9IHJlc3BvbnNlLnJlc3VsdC5jb250ZW50XG4gICAgICAgIHRoaXMuZ2V0Q29tcGV0ZW5jeUFyZWEoKVxuICAgICAgICByZXNwb25zZS5yZXN1bHQuY29udGVudC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgIGVsZW1lbnQuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGRFbGUpID0+IHtcbiAgICAgICAgICAgIGxldCBuYW1lID0gY2hpbGRFbGUubmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVtuYW1lXSA9IGNoaWxkRWxlXG4gICAgICAgICAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVtuYW1lXVsndmlld01vcmUnXSA9IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gZmFsc2VcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0Y29tcGV0ZW5jeVRoZW1lKHZhbHVlOiBhbnksYWRkRmlsdGVyPzogYW55KSB7XG4gICAgbGV0IHJlcXVlc3QgPSB7XG4gICAgICBcInJlcXVlc3RcIjoge1xuICAgICAgICAgIFwicXVlcnlcIjogXCJcIixcbiAgICAgICAgICBcImZpbHRlcnNcIjoge1xuICAgICAgICAgICAgICBcImNvbnRlbnRUeXBlXCI6XCJDb3Vyc2VcIixcbiAgICAgICAgICAgICAgLi4uYWRkRmlsdGVyLFxuICAgICAgICAgICAgICBbYCR7dGhpcy5lbnZpcm9ubWVudC5jb21wZW50ZW5jeVZlcnNpb25LZXl9LiR7dGhpcy5jb21lcHRlbmN5S2V5cy52Q29tcGV0ZW5jeUFyZWF9YF0gOiB2YWx1ZSxcbiAgICAgICAgICAgICAgXCJzdGF0dXNcIjogW1xuICAgICAgICAgICAgICAgICAgXCJMaXZlXCJcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzb3J0X2J5XCI6IHtcbiAgICAgICAgICAgICAgXCJsYXN0VXBkYXRlZE9uXCI6IFwiZGVzY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhY2V0c1wiOiBbXG4gICAgICAgICAgICAgIGAke3RoaXMuZW52aXJvbm1lbnQuY29tcGVudGVuY3lWZXJzaW9uS2V5fS4ke3RoaXMuY29tZXB0ZW5jeUtleXMudkNvbXBldGVuY3lUaGVtZX1gXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcImxpbWl0XCI6IDAsXG4gICAgICAgICAgXCJvZmZzZXRcIjogMCxcbiAgICAgICAgICBcImZpZWxkc1wiOiBbXG4gICAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgXG4gIHRyeSB7XG4gICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gdHJ1ZVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jYWxsQ29tcGV0ZW5jeVNlYXJjaChyZXF1ZXN0KTtcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UucmVzdWx0cykge1xuICAgICAgaWYocmVzcG9uc2UucmVzdWx0cy5yZXN1bHQuZmFjZXRzKXtcbiAgICAgICAgbGV0IGNvbXBldGVuY3lUaGVtZURhdGEgOiBhbnkgPSByZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHNbMF0udmFsdWVzIFxuICAgICAgICB0aGlzLm9yaWdpbmFsQ29tcGV0ZW5jeUFycmF5LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmKGVsZW1lbnQubmFtZS50b0xvd2VyQ2FzZSgpID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jb21wZXRlbmN5VGhlbWUgPSBjb21wZXRlbmN5VGhlbWVEYXRhLmZpbHRlcigoZWxlMTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAgZWxlbWVudC5jaGlsZHJlbi5maW5kKChlbGUyOiBhbnkpID0+IGVsZTIubmFtZS50b0xvd2VyQ2FzZSgpID09PSBlbGUxLm5hbWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB0aGlzLnNob3dBbGxUaGVtZSA9IFt7bmFtZTonU2hvdyBhbGwnLCBzaG93QWxsOiBmYWxzZX1dXG4gICAgICAgICAgICB0aGlzLmNvbXBldGVuY3lUaGVtZUxlbmd0aCA9IDZcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlc2V0Vmlld01vcmUoKVxuICAgICAgfVxuICAgICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gZmFsc2VcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gSGFuZGxlIGVycm9yc1xuICAgIC8vIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycm9yKTtcbiAgfVxuICB9XG5cbiAgZ2V0VGhlbWVEYXRhQnlBcmVhKGFyZWFEYXRhOiBhbnkpe1xuICAgIGxldCBjb21wZXRlbmN5VGhlbWVEYXRhIDogYW55ID0gYXJlYURhdGEudGhlbWVEYXRhXG4gICAgICAgIHRoaXMub3JpZ2luYWxDb21wZXRlbmN5QXJyYXkuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgICAgaWYoZWxlbWVudC5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IGFyZWFEYXRhLm5hbWUpIHtcbiAgICAgICAgICAgdGhpcy5jb21wZXRlbmN5VGhlbWUgPSBjb21wZXRlbmN5VGhlbWVEYXRhLmZpbHRlcigoZWxlMTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAgZWxlbWVudC5jaGlsZHJlbi5maW5kKChlbGUyOiBhbnkpID0+IGVsZTIubmFtZS50b0xvd2VyQ2FzZSgpID09PSBlbGUxLm5hbWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB0aGlzLnNob3dBbGxUaGVtZSA9IFt7bmFtZTonU2hvdyBhbGwnLCBzaG93QWxsOiBmYWxzZX1dXG4gICAgICAgICAgICB0aGlzLmNvbXBldGVuY3lUaGVtZUxlbmd0aCA9IDZcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgYWRkZmlsdGVyOiBhbnkgPSB7fVxuICAgICAgICBpZih0aGlzLnByb3ZpZGVySWQpIHtcbiAgICAgICAgICBhZGRmaWx0ZXIgPSB7XG4gICAgICAgICAgICBcImNyZWF0ZWRGb3JcIjogW1xuICAgICAgICAgICAgICB0aGlzLnByb3ZpZGVySWRcbiAgICAgICAgICAgXSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5nZXRjb21wZXRlbmN5U3ViVGhlbWUoYXJlYURhdGEsYWRkZmlsdGVyKVxuICB9XG5cbiAgYXN5bmMgZ2V0Y29tcGV0ZW5jeVRoZW1lQ291bnQoYXJlYTogYW55LGFkZEZpbHRlcj86IGFueSkge1xuICAgIGxldCByZXF1ZXN0ID0ge1xuICAgICAgXCJyZXF1ZXN0XCI6IHtcbiAgICAgICAgICBcInF1ZXJ5XCI6IFwiXCIsXG4gICAgICAgICAgXCJmaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJjb250ZW50VHlwZVwiOlwiQ291cnNlXCIsXG4gICAgICAgICAgICAgIC4uLmFkZEZpbHRlcixcbiAgICAgICAgICAgICAgW2Ake3RoaXMuZW52aXJvbm1lbnQuY29tcGVudGVuY3lWZXJzaW9uS2V5fS4ke3RoaXMuY29tZXB0ZW5jeUtleXMudkNvbXBldGVuY3lBcmVhfWBdIDogYXJlYS5uYW1lLFxuICAgICAgICAgICAgICBcInN0YXR1c1wiOiBbXG4gICAgICAgICAgICAgICAgICBcIkxpdmVcIlxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNvcnRfYnlcIjoge1xuICAgICAgICAgICAgICBcImxhc3RVcGRhdGVkT25cIjogXCJkZXNjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFjZXRzXCI6IFtcbiAgICAgICAgICAgICAgYCR7dGhpcy5lbnZpcm9ubWVudC5jb21wZW50ZW5jeVZlcnNpb25LZXl9LiR7dGhpcy5jb21lcHRlbmN5S2V5cy52Q29tcGV0ZW5jeVRoZW1lfWBcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibGltaXRcIjogMCxcbiAgICAgICAgICBcIm9mZnNldFwiOiAwLFxuICAgICAgICAgIFwiZmllbGRzXCI6IFtcbiAgICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBcbiAgdHJ5IHtcbiAgICBsZXQgcmV0dXJuZWREYXRhIDogYW55ID0gXG4gICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gdHJ1ZVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jYWxsQ29tcGV0ZW5jeVNlYXJjaChyZXF1ZXN0KTtcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UucmVzdWx0cykge1xuICAgICAgaWYocmVzcG9uc2UucmVzdWx0cy5yZXN1bHQuZmFjZXRzKXtcbiAgICAgICAgbGV0IGNvbXBldGVuY3lUaGVtZURhdGEgOiBhbnkgPSByZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHNbMF0udmFsdWVzIFxuICAgICAgICB0aGlzLm9yaWdpbmFsQ29tcGV0ZW5jeUFycmF5LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmKGVsZW1lbnQubmFtZS50b0xvd2VyQ2FzZSgpID09PSBhcmVhLm5hbWUpIHtcbiAgICAgICAgICAgcmV0dXJuZWREYXRhID0gY29tcGV0ZW5jeVRoZW1lRGF0YS5maWx0ZXIoKGVsZTE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gIGVsZW1lbnQuY2hpbGRyZW4uZmluZCgoZWxlMjogYW55KSA9PiBlbGUyLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gZWxlMS5uYW1lLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgdGhpcy5zaG93QWxsVGhlbWUgPSBbe25hbWU6J1Nob3cgYWxsJywgc2hvd0FsbDogZmFsc2V9XVxuICAgICAgICAgICAgdGhpcy5jb21wZXRlbmN5VGhlbWVMZW5ndGggPSA2XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9hZENvbWV0ZW5jeSA9IGZhbHNlXG4gICAgICByZXR1cm4gcmV0dXJuZWREYXRhXG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIEhhbmRsZSBlcnJvcnNcbiAgICAvLyBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnJvcik7XG4gIH1cbiAgfVxuXG4gIHJlc2V0Vmlld01vcmUoKXtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmFsbGNvbXBldGVuY3lUaGVtZSkuZm9yRWFjaCgoY29tcDogYW55KSA9PiB7XG4gICAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVtjb21wXVsndmlld01vcmUnXSA9IGZhbHNlXG4gICAgfSlcbiAgfVxuICB2aWV3TW9yZUNoaWxkcmVuKGRhdGE6IGFueSkge1xuICAgIGRhdGEudmlld01vcmUgPSAhZGF0YS52aWV3TW9yZVxuICAgIHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW2RhdGEubmFtZS50b0xvd2VyQ2FzZSgpXS52aWV3TW9yZSA9IGRhdGEudmlld01vcmVcbiAgfVxuICBkaXNwbGF5QWxsVGhlbWUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2hvd0FsbFRoZW1lWzBdWydzaG93QWxsJ10gPSAhZXZlbnQuc2hvd0FsbCBcbiAgICB0aGlzLmNvbXBldGVuY3lUaGVtZUxlbmd0aCA9IGV2ZW50LnNob3dBbGwgPyAgdGhpcy5jb21wZXRlbmN5VGhlbWUubGVuZ3RoIDogNlxuICAgIHRoaXMuc2hvd0FsbFRoZW1lWzBdWyduYW1lJ10gPSBldmVudC5zaG93QWxsID8gJ1Nob3cgbGVzcycgOiAnU2hvdyBhbGwnXG4gICAgdGhpcy50ZW1lbGV0cnlSZXNwb25zZS5lbWl0KGV2ZW50Lm5hbWUpXG4gIH1cblxuICBuYXZpZ2F0ZVRvQ29tcGV0ZW5jeShjb21wRGF0YTogYW55KXtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvYXBwL2xlYXJuL2Jyb3dzZS1ieS9jb21wZXRlbmN5LyR7Y29tcERhdGEubmFtZX1gKVxuICB9XG5cblxuICBhc3luYyBnZXRjb21wZXRlbmN5U3ViVGhlbWUoY29tcEFyZWE6IGFueSxhZGRGaWx0ZXI/OiBhbnkpIHtcbiAgICBsZXQgcmVxdWVzdCA9IHtcbiAgICAgIFwicmVxdWVzdFwiOiB7XG4gICAgICAgICAgXCJxdWVyeVwiOiBcIlwiLFxuICAgICAgICAgIFwiZmlsdGVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiY29udGVudFR5cGVcIjpcIkNvdXJzZVwiLFxuICAgICAgICAgICAgICAuLi5hZGRGaWx0ZXIsXG4gICAgICAgICAgICAgW2Ake3RoaXMuZW52aXJvbm1lbnQuY29tcGVudGVuY3lWZXJzaW9uS2V5fS4ke3RoaXMuY29tZXB0ZW5jeUtleXMudkNvbXBldGVuY3lBcmVhfWBdIDogY29tcEFyZWEubmFtZSxcbiAgICAgICAgICAgICAgXCJzdGF0dXNcIjogW1xuICAgICAgICAgICAgICAgICAgXCJMaXZlXCJcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzb3J0X2J5XCI6IHtcbiAgICAgICAgICAgICAgXCJsYXN0VXBkYXRlZE9uXCI6IFwiZGVzY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhY2V0c1wiOiBbXG4gICAgICAgICAgICAgICBgJHt0aGlzLmVudmlyb25tZW50LmNvbXBlbnRlbmN5VmVyc2lvbktleX0uJHt0aGlzLmNvbWVwdGVuY3lLZXlzLnZDb21wZXRlbmN5U3ViVGhlbWV9YFxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJsaW1pdFwiOiAwLFxuICAgICAgICAgIFwib2Zmc2V0XCI6IDAsXG4gICAgICAgICAgXCJmaWVsZHNcIjogW1xuICAgICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIFxuICB0cnkge1xuICAgIHRoaXMubG9hZENvbWV0ZW5jeSA9IHRydWVcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2FsbENvbXBldGVuY3lTZWFyY2gocmVxdWVzdCk7XG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnJlc3VsdHMpIHtcbiAgICAgIGlmKHJlc3BvbnNlLnJlc3VsdHMucmVzdWx0LmZhY2V0cyl7XG4gICAgICAgIGxldCBjb21wZXRlbmN5U3ViVGhlbWVEYXRhIDogYW55ID0gcmVzcG9uc2UucmVzdWx0cy5yZXN1bHQuZmFjZXRzWzBdLnZhbHVlcyBcbiAgICAgICAgdGhpcy5jb21wZXRlbmN5QXJlYS5mb3JFYWNoKChhcmVhRWxlOiBhbnkpID0+IHtcbiAgICAgICAgICBpZihhcmVhRWxlLm5hbWUgPT09IGNvbXBBcmVhLm5hbWUpIHtcbiAgICAgICAgICAgIGFyZWFFbGUudGhlbWVEYXRhLmZvckVhY2goKHRoZW1lRWxlKSA9PiB7XG4gICAgICAgICAgICAgIGlmKHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW3RoZW1lRWxlLm5hbWUudG9Mb3dlckNhc2UoKV0gJiZcbiAgICAgICAgICAgICAgdGhpcy5hbGxjb21wZXRlbmN5VGhlbWVbdGhlbWVFbGUubmFtZS50b0xvd2VyQ2FzZSgpXS5jaGlsZHJlbiAmJiBcbiAgICAgICAgICAgICAgdGhpcy5hbGxjb21wZXRlbmN5VGhlbWVbdGhlbWVFbGUubmFtZS50b0xvd2VyQ2FzZSgpXS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW3RoZW1lRWxlLm5hbWUudG9Mb3dlckNhc2UoKV0uY2hpbGRyZW4uZmlsdGVyKG9iajEgPT4gXG4gICAgICAgICAgICAgICAgICBjb21wZXRlbmN5U3ViVGhlbWVEYXRhLnNvbWUob2JqMiA9PiBcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMob2JqMSkuZXZlcnkoa2V5ID0+IG9iajFbJ25hbWUnXSA9PT0gKG9iajJbJ25hbWUnXSkpXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVt0aGVtZUVsZS5uYW1lLnRvTG93ZXJDYXNlKCldWydjaGlsZHJlbiddID0gZGF0YVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHRoaXMubG9hZENvbWV0ZW5jeSA9IGZhbHNlXG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIEhhbmRsZSBlcnJvcnNcbiAgICAvLyBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnJvcik7XG4gIH1cbiAgfVxufVxuIl19
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';
|
|
7
7
|
import { ConfigurationsService } from '@sunbird-cb/utils-v2';
|
|
8
|
-
import {
|
|
8
|
+
import { WidgetContentLibService } from '../../_services/widget-content-lib.service';
|
|
9
9
|
import { CompetencyPassbookMdoService } from './competency-passbook-mdo.service';
|
|
10
10
|
import { Router } from '@angular/router';
|
|
11
11
|
export class CompetencyPassbookMdoComponent {
|
|
@@ -269,7 +269,7 @@ CompetencyPassbookMdoComponent.decorators = [
|
|
|
269
269
|
/** @nocollapse */
|
|
270
270
|
CompetencyPassbookMdoComponent.ctorParameters = () => [
|
|
271
271
|
{ type: ConfigurationsService },
|
|
272
|
-
{ type:
|
|
272
|
+
{ type: WidgetContentLibService },
|
|
273
273
|
{ type: CompetencyPassbookMdoService },
|
|
274
274
|
{ type: Router },
|
|
275
275
|
{ type: undefined, decorators: [{ type: Inject, args: ['environment',] }] }
|
|
@@ -338,4 +338,4 @@ if (false) {
|
|
|
338
338
|
/** @type {?} */
|
|
339
339
|
CompetencyPassbookMdoComponent.prototype.router;
|
|
340
340
|
}
|
|
341
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGV0ZW5jeS1wYXNzYm9vay1tZG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bmJpcmQtY2IvY29uc3VtcHRpb24vIiwic291cmNlcyI6WyJsaWIvX2NvbW1vbi9jb21wZXRlbmN5LXBhc3Nib29rLW1kby9jb21wZXRlbmN5LXBhc3Nib29rLW1kby5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBT3pDLE1BQU0sT0FBTyw4QkFBOEI7Ozs7Ozs7Ozs7OztJQThCekMsWUFBbUIsU0FBZ0MsRUFDMUMsVUFBK0IsRUFDL0IsYUFBMkMsRUFDM0MsTUFBZSxFQUNDLFdBQWdCO1FBSnRCLGNBQVMsR0FBVCxTQUFTLENBQXVCO1FBQzFDLGVBQVUsR0FBVixVQUFVLENBQXFCO1FBQy9CLGtCQUFhLEdBQWIsYUFBYSxDQUE4QjtRQUMzQyxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBN0JmLHFCQUFnQixHQUFRLENBQUMsQ0FBQTtRQUd6QixzQkFBaUIsR0FBUSxRQUFRLENBQUE7UUFDaEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO1FBQ3ZDLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUE7UUFDckQsa0JBQWEsR0FBWSxLQUFLLENBQUE7UUFDOUIsdUJBQWtCLEdBQVksS0FBSyxDQUFBO1FBR25DLGtCQUFhLEdBQVEsWUFBWSxDQUFDO1FB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c0I7O0lBQ3RCLHVEQUFrQzs7SUFDbEMsMkRBQTZCOztJQUM3Qiw2REFBd0I7O0lBQ3hCLHlEQUF5Qjs7SUFDekIsNERBQTJCOztJQUMzQiw0REFBMkI7O0lBQzNCLCtEQUE4Qjs7SUFDOUIsc0RBQXdEOztJQUV4RCxxREFBa0I7O0lBQ2xCLHdEQUE4Qzs7SUFNbEMsbURBQXVDOztJQUNqRCxvREFBc0M7O0lBQ3RDLHVEQUFrRDs7SUFDbEQsZ0RBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UsIEV2ZW50U2VydmljZSB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJztcbmltcG9ydCB7IFdpZGdldENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL3dpZGdldC1jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tcGV0ZW5jeVBhc3Nib29rTWRvU2VydmljZSB9IGZyb20gJy4vY29tcGV0ZW5jeS1wYXNzYm9vay1tZG8uc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTnNDb21wZW50ZW5jeSB9IGZyb20gJy4uLy4uL19tb2RlbHMvY29tcGVudGVuY2llcy5tb2RlbCc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi11aWMtY29tcGV0ZW5jeS1wYXNzYm9vay1tZG8nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tcGV0ZW5jeS1wYXNzYm9vay1tZG8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb21wZXRlbmN5LXBhc3Nib29rLW1kby5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbXBldGVuY3lQYXNzYm9va01kb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgb2JqZWN0RGF0YTogYW55XG4gIEBJbnB1dCgpIHByb3ZpZGVySWQ6IGFueVxuICBASW5wdXQoKSBjYXJkRGlzcGxheUNvdW50OiBhbnkgPSAzXG4gIEBJbnB1dCgpIGR5bmFtaWNDbGFzczogYW55XG4gIEBJbnB1dCgpIGR5bmFtaWNDb2xvcjogYW55XG4gIEBJbnB1dCgpIGR5bmFtaWNBbGlnblBpbGxzOiBhbnkgPSAnY2VudGVyJ1xuICBAT3V0cHV0KCkgZW1wdHlSZXNwb25zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gIEBPdXRwdXQoKSB0ZW1lbGV0cnlSZXNwb25zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gIGxvYWRDb21ldGVuY3k6IGJvb2xlYW4gPSBmYWxzZVxuICBsb2FkQ29tcGV0ZW5jeUFyZWE6IGJvb2xlYW4gPSBmYWxzZVxuICBvcmlnaW5hbENvbXBldGVuY3lBcnJheTogYW55XG4gIGNvbXBldGVuY3lBcmVhOiBhbnkgW11cbiAgc2VsZWN0ZWRWYWx1ZTogYW55ID0gJ2Z1bmN0aW9uYWwnO1xuICBjb21wZXRlbmN5VmVyc2lvbjpzdHJpbmcgPSAnJ1xuICBjb21wZXRlbmN5VGhlbWVEYXRhOiBhbnlcbiAgY29tcGV0ZW5jeVRoZW1lOiBhbnkgPSBbXVxuICBhbGxjb21wZXRlbmN5VGhlbWU6IGFueSA9e31cbiAgY29tcGV0ZW5jeVN0cmVuZ3RoOiBhbnkgPSAwXG4gIGNvbXBldGVuY3lUaGVtZUxlbmd0aDogYW55ID0gNlxuICBzaG93QWxsVGhlbWUgOiBhbnkgPSBbe25hbWU6J1Nob3cgYWxsJywgc2hvd0FsbDogZmFsc2V9XVxuXG4gIGVudmlyb25tZW50ITogYW55O1xuICBjb21lcHRlbmN5S2V5czogTnNDb21wZW50ZW5jeS5Db21wZW50ZW5jeUtleXM7XG4gIFxuICAvLyBzdWJUaGVtZSA9IFsnQmVoYXZpb3VyYWwnXVxuICAvLyBjdXJyZW50RmlsdGVyID0gJ0JlaGF2aW91cmFsJ1xuICAvLyBjdXJyZW50Q29tcGV0ZW5jaWVzOiBhbnkgPSBbXVxuICAvLyBjb21wZXRlbmN5RGF0YTogYW55XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcbiAgICBwdWJsaWMgY29udGVudFN2YzpXaWRnZXRDb250ZW50U2VydmljZSxcbiAgICBwdWJsaWMgY29tcGV0ZW5jeVN2YzogQ29tcGV0ZW5jeVBhc3Nib29rTWRvU2VydmljZSxcbiAgICBwdWJsaWMgcm91dGVyIDogUm91dGVyLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgZW52aXJvbm1lbnQ6IGFueSxcblxuICApIHtcbiAgICB0aGlzLmVudmlyb25tZW50ID0gZW52aXJvbm1lbnRcbiAgfVxuXG4gXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29tZXB0ZW5jeUtleXMgPSB0aGlzLmNvbmZpZ1N2Yy5jb21wZW50ZW5jeVt0aGlzLmVudmlyb25tZW50LmNvbXBlbnRlbmN5VmVyc2lvbktleV1cbiAgICBcbiAgICB0aGlzLmdldEFsbENvbXBldGVuY2llcygpXG4gIH1cblxuXG4gIGdldEFsbENvbXBldGVuY2llcygpe1xuICAgIHRoaXMubG9hZENvbWV0ZW5jeSA9IHRydWVcbiAgICBsZXQgcmVxdWVzdCA9IHtcInNlYXJjaFwiOntcInR5cGVcIjpcIkNvbXBldGVuY3kgQXJlYVwifSxcImZpbHRlclwiOntcImlzRGV0YWlsXCI6dHJ1ZX19XG4gICAgdGhpcy5jb21wZXRlbmN5U3ZjLmdldENvbXBldGVuY3lMaXN0dl9WMigpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgdGhpcy5hbGxjb21wZXRlbmN5VGhlbWUgPSB7fVxuICAgICAgaWYocmVzcG9uc2UgJiYgcmVzcG9uc2UucmVzdWx0ICYmIHJlc3BvbnNlLnJlc3VsdC5jb250ZW50KSB7XG4gICAgICAgIHRoaXMub3JpZ2luYWxDb21wZXRlbmN5QXJyYXkgPSByZXNwb25zZS5yZXN1bHQuY29udGVudFxuICAgICAgICB0aGlzLmdldE1kb0NvbXBldGVuY2llcygpXG4gICAgICAgIC8vIHRoaXMuZ2V0Q29tcGV0ZW5jeUFyZWEoKVxuICAgICAgICByZXNwb25zZS5yZXN1bHQuY29udGVudC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgIGVsZW1lbnQuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGRFbGUpID0+IHtcbiAgICAgICAgICAgIGxldCBuYW1lID0gY2hpbGRFbGUubmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVtuYW1lXSA9IGNoaWxkRWxlXG4gICAgICAgICAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVtuYW1lXVsndmlld01vcmUnXSA9IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gZmFsc2VcbiAgICB9KVxuICB9XG4gIFxuXG5cbiAgYXN5bmMgZ2V0TWRvQ29tcGV0ZW5jaWVzKCl7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMubG9hZENvbWV0ZW5jeSA9IHRydWVcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5nZXRNZG9Db21wZXRlbmN5KCk7XG4gICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UucmVzdWx0cykge1xuICAgICAgICBpZihyZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHMgJiYgcmVzcG9uc2UucmVzdWx0cy5yZXN1bHQuZmFjZXRzLmxlbmd0aCl7XG4gICAgICAgICAgbGV0IGZhY2V0RGF0YSA9IHJlc3BvbnNlLnJlc3VsdHMucmVzdWx0LmZhY2V0c1xuICAgICAgICAgIGZhY2V0RGF0YS5mb3JFYWNoKChmYWNldDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZihmYWNldC5uYW1lID09PSAgIGAke3RoaXMuZW52aXJvbm1lbnQuY29tcGVudGVuY3lWZXJzaW9uS2V5fS4ke3RoaXMuY29tZXB0ZW5jeUtleXMudkNvbXBldGVuY3lBcmVhfWApIHtcbiAgICAgICAgICAgICAgdGhpcy5jb21wZXRlbmN5QXJlYSA9IGZhY2V0LnZhbHVlc1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBmYWNldC52YWx1ZXNbMF0ubmFtZVxuICAgICAgICAgICAgfSBlbHNlIGlmKGZhY2V0Lm5hbWUgPT09ICAgYCR7dGhpcy5lbnZpcm9ubWVudC5jb21wZW50ZW5jeVZlcnNpb25LZXl9LiR7dGhpcy5jb21lcHRlbmN5S2V5cy52Q29tcGV0ZW5jeVRoZW1lfWApIHtcbiAgICAgICAgICAgICAgdGhpcy5jb21wZXRlbmN5VGhlbWVEYXRhID0gZmFjZXQudmFsdWVzXG4gICAgICAgICAgICAgIHRoaXMuZ2V0Q29tcGV0ZW5jeVRoZW1lKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZW1wdHlSZXNwb25zZS5lbWl0KHRydWUpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gZmFsc2VcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gSGFuZGxlIGVycm9yc1xuICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyb3IpO1xuICAgICAgICAgIHRoaXMuZW1wdHlSZXNwb25zZS5lbWl0KHRydWUpXG4gICAgfVxuICB9XG5cbiAgZ2V0Q29tcGV0ZW5jeVRoZW1lKCl7XG4gICAgdGhpcy5vcmlnaW5hbENvbXBldGVuY3lBcnJheS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgIGlmKGVsZW1lbnQubmFtZS50b0xvd2VyQ2FzZSgpID09PSB0aGlzLnNlbGVjdGVkVmFsdWUpIHtcbiAgICAgICAgdGhpcy5jb21wZXRlbmN5VGhlbWUgPSB0aGlzLmNvbXBldGVuY3lUaGVtZURhdGEuZmlsdGVyKChlbGUxOiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gIGVsZW1lbnQuY2hpbGRyZW4uZmluZCgoZWxlMjogYW55KSA9PiBlbGUyLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gZWxlMS5uYW1lLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuc2hvd0FsbFRoZW1lID0gW3tuYW1lOidTaG93IGFsbCcsIHNob3dBbGw6IGZhbHNlfV1cbiAgICAgICAgdGhpcy5jb21wZXRlbmN5VGhlbWVMZW5ndGggPSA2XG4gICAgICB9IGVsc2UgaWYoJ0JlaGF2aW9yYWwnLnRvTG93ZXJDYXNlKCkgID09PSB0aGlzLnNlbGVjdGVkVmFsdWUpIHtcbiAgICAgICAgdGhpcy5jb21wZXRlbmN5VGhlbWUgPSB0aGlzLmNvbXBldGVuY3lUaGVtZURhdGEuZmlsdGVyKChlbGUxOiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gIGVsZW1lbnQuY2hpbGRyZW4uZmluZCgoZWxlMjogYW55KSA9PiBlbGUyLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gZWxlMS5uYW1lLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuc2hvd0FsbFRoZW1lID0gW3tuYW1lOidTaG93IGFsbCcsIHNob3dBbGw6IGZhbHNlfV1cbiAgICAgICAgdGhpcy5jb21wZXRlbmN5VGhlbWVMZW5ndGggPSA2XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5yZXNldFZpZXdNb3JlKClcbiAgfVxuXG5cbiAgYXN5bmMgZ2V0TWRvQ29tcGV0ZW5jeSgpe1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICh0aGlzLnByb3ZpZGVySWQpIHtcbiAgICAgICAgdGhpcy5jb21wZXRlbmN5U3ZjLm1kb0NvbXBldGVuY3kodGhpcy5wcm92aWRlcklkKS5zdWJzY3JpYmUocmVzdWx0cyA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHsgcmVzdWx0cyB9KTtcbiAgICAgICAgICB9LChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBjb21wZXRlbmN5IHRoZWFtIGNoYW5nZVxuICBjb21wZXRlbmN5Q2hhbmdlKGUpe1xuICAgIGxldCBhZGRmaWx0ZXI6IGFueSA9IHt9XG4gICAgaWYodGhpcy5wcm92aWRlcklkKSB7XG4gICAgICBhZGRmaWx0ZXIgPSB7XG4gICAgICAgIFwiY3JlYXRlZEZvclwiOiBbXG4gICAgICAgICAgdGhpcy5wcm92aWRlcklkXG4gICAgICAgXSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnRlbWVsZXRyeVJlc3BvbnNlLmVtaXQoZS5uYW1lKVxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGUubmFtZVxuICAgIHRoaXMuZ2V0Q29tcGV0ZW5jeVRoZW1lKClcbiAgfVxuXG5cblxuICByZXNldFZpZXdNb3JlKCl7XG4gICAgT2JqZWN0LmtleXModGhpcy5hbGxjb21wZXRlbmN5VGhlbWUpLmZvckVhY2goKGNvbXA6IGFueSkgPT4ge1xuICAgICAgdGhpcy5hbGxjb21wZXRlbmN5VGhlbWVbY29tcF1bJ3ZpZXdNb3JlJ10gPSBmYWxzZVxuICAgIH0pXG4gIH1cbiAgdmlld01vcmVDaGlsZHJlbihkYXRhOiBhbnkpIHtcbiAgICBkYXRhLnZpZXdNb3JlID0gIWRhdGEudmlld01vcmVcbiAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVtkYXRhLm5hbWUudG9Mb3dlckNhc2UoKV0udmlld01vcmUgPSBkYXRhLnZpZXdNb3JlXG4gIH1cbiAgZGlzcGxheUFsbFRoZW1lKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNob3dBbGxUaGVtZVswXVsnc2hvd0FsbCddID0gIWV2ZW50LnNob3dBbGwgXG4gICAgdGhpcy5jb21wZXRlbmN5VGhlbWVMZW5ndGggPSBldmVudC5zaG93QWxsID8gIHRoaXMuY29tcGV0ZW5jeVRoZW1lLmxlbmd0aCA6IDZcbiAgICB0aGlzLnNob3dBbGxUaGVtZVswXVsnbmFtZSddID0gZXZlbnQuc2hvd0FsbCA/ICdTaG93IGxlc3MnIDogJ1Nob3cgYWxsJ1xuICAgIHRoaXMudGVtZWxldHJ5UmVzcG9uc2UuZW1pdChldmVudC5uYW1lKVxuICB9XG5cbiAgbmF2aWdhdGVUb0NvbXBldGVuY3koY29tcERhdGE6IGFueSl7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgYXBwL2xlYXJuL2Jyb3dzZS1ieS9jb21wZXRlbmN5LyR7Y29tcERhdGEubmFtZX1gKVxuICB9XG5cbiAgc2hvd01vcmUoKSB7XG4gICAgdGhpcy5vYmplY3REYXRhLnZpZXdNb3JlID0gIXRoaXMub2JqZWN0RGF0YS52aWV3TW9yZVxuICB9XG59XG4iXX0=
|
|
341
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGV0ZW5jeS1wYXNzYm9vay1tZG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bmJpcmQtY2IvY29uc3VtcHRpb24vIiwic291cmNlcyI6WyJsaWIvX2NvbW1vbi9jb21wZXRlbmN5LXBhc3Nib29rLW1kby9jb21wZXRlbmN5LXBhc3Nib29rLW1kby5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBT3pDLE1BQU0sT0FBTyw4QkFBOEI7Ozs7Ozs7Ozs7OztJQThCekMsWUFBbUIsU0FBZ0MsRUFDMUMsVUFBa0MsRUFDbEMsYUFBMkMsRUFDM0MsTUFBZSxFQUNDLFdBQWdCO1FBSnRCLGNBQVMsR0FBVCxTQUFTLENBQXVCO1FBQzFDLGVBQVUsR0FBVixVQUFVLENBQXdCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUE4QjtRQUMzQyxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBN0JmLHFCQUFnQixHQUFRLENBQUMsQ0FBQTtRQUd6QixzQkFBaUIsR0FBUSxRQUFRLENBQUE7UUFDaEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO1FBQ3ZDLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUE7UUFDckQsa0JBQWEsR0FBWSxLQUFLLENBQUE7UUFDOUIsdUJBQWtCLEdBQVksS0FBSyxDQUFBO1FBR25DLGtCQUFhLEdBQVEsWUFBWSxDQUFDO1FB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c0I7O0lBQ3RCLHVEQUFrQzs7SUFDbEMsMkRBQTZCOztJQUM3Qiw2REFBd0I7O0lBQ3hCLHlEQUF5Qjs7SUFDekIsNERBQTJCOztJQUMzQiw0REFBMkI7O0lBQzNCLCtEQUE4Qjs7SUFDOUIsc0RBQXdEOztJQUV4RCxxREFBa0I7O0lBQ2xCLHdEQUE4Qzs7SUFNbEMsbURBQXVDOztJQUNqRCxvREFBeUM7O0lBQ3pDLHVEQUFrRDs7SUFDbEQsZ0RBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UsIEV2ZW50U2VydmljZSB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJztcbmltcG9ydCB7IFdpZGdldENvbnRlbnRMaWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL3dpZGdldC1jb250ZW50LWxpYi5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBldGVuY3lQYXNzYm9va01kb1NlcnZpY2UgfSBmcm9tICcuL2NvbXBldGVuY3ktcGFzc2Jvb2stbWRvLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5zQ29tcGVudGVuY3kgfSBmcm9tICcuLi8uLi9fbW9kZWxzL2NvbXBlbnRlbmNpZXMubW9kZWwnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ItdWljLWNvbXBldGVuY3ktcGFzc2Jvb2stbWRvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBldGVuY3ktcGFzc2Jvb2stbWRvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29tcGV0ZW5jeS1wYXNzYm9vay1tZG8uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb21wZXRlbmN5UGFzc2Jvb2tNZG9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIG9iamVjdERhdGE6IGFueVxuICBASW5wdXQoKSBwcm92aWRlcklkOiBhbnlcbiAgQElucHV0KCkgY2FyZERpc3BsYXlDb3VudDogYW55ID0gM1xuICBASW5wdXQoKSBkeW5hbWljQ2xhc3M6IGFueVxuICBASW5wdXQoKSBkeW5hbWljQ29sb3I6IGFueVxuICBASW5wdXQoKSBkeW5hbWljQWxpZ25QaWxsczogYW55ID0gJ2NlbnRlcidcbiAgQE91dHB1dCgpIGVtcHR5UmVzcG9uc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBAT3V0cHV0KCkgdGVtZWxldHJ5UmVzcG9uc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBsb2FkQ29tZXRlbmN5OiBib29sZWFuID0gZmFsc2VcbiAgbG9hZENvbXBldGVuY3lBcmVhOiBib29sZWFuID0gZmFsc2VcbiAgb3JpZ2luYWxDb21wZXRlbmN5QXJyYXk6IGFueVxuICBjb21wZXRlbmN5QXJlYTogYW55IFtdXG4gIHNlbGVjdGVkVmFsdWU6IGFueSA9ICdmdW5jdGlvbmFsJztcbiAgY29tcGV0ZW5jeVZlcnNpb246c3RyaW5nID0gJydcbiAgY29tcGV0ZW5jeVRoZW1lRGF0YTogYW55XG4gIGNvbXBldGVuY3lUaGVtZTogYW55ID0gW11cbiAgYWxsY29tcGV0ZW5jeVRoZW1lOiBhbnkgPXt9XG4gIGNvbXBldGVuY3lTdHJlbmd0aDogYW55ID0gMFxuICBjb21wZXRlbmN5VGhlbWVMZW5ndGg6IGFueSA9IDZcbiAgc2hvd0FsbFRoZW1lIDogYW55ID0gW3tuYW1lOidTaG93IGFsbCcsIHNob3dBbGw6IGZhbHNlfV1cblxuICBlbnZpcm9ubWVudCE6IGFueTtcbiAgY29tZXB0ZW5jeUtleXM6IE5zQ29tcGVudGVuY3kuQ29tcGVudGVuY3lLZXlzO1xuICBcbiAgLy8gc3ViVGhlbWUgPSBbJ0JlaGF2aW91cmFsJ11cbiAgLy8gY3VycmVudEZpbHRlciA9ICdCZWhhdmlvdXJhbCdcbiAgLy8gY3VycmVudENvbXBldGVuY2llczogYW55ID0gW11cbiAgLy8gY29tcGV0ZW5jeURhdGE6IGFueVxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29uZmlnU3ZjOiBDb25maWd1cmF0aW9uc1NlcnZpY2UsXG4gICAgcHVibGljIGNvbnRlbnRTdmM6V2lkZ2V0Q29udGVudExpYlNlcnZpY2UsXG4gICAgcHVibGljIGNvbXBldGVuY3lTdmM6IENvbXBldGVuY3lQYXNzYm9va01kb1NlcnZpY2UsXG4gICAgcHVibGljIHJvdXRlciA6IFJvdXRlcixcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIGVudmlyb25tZW50OiBhbnksXG5cbiAgKSB7XG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudmlyb25tZW50XG4gIH1cblxuIFxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNvbWVwdGVuY3lLZXlzID0gdGhpcy5jb25maWdTdmMuY29tcGVudGVuY3lbdGhpcy5lbnZpcm9ubWVudC5jb21wZW50ZW5jeVZlcnNpb25LZXldXG4gICAgXG4gICAgdGhpcy5nZXRBbGxDb21wZXRlbmNpZXMoKVxuICB9XG5cblxuICBnZXRBbGxDb21wZXRlbmNpZXMoKXtcbiAgICB0aGlzLmxvYWRDb21ldGVuY3kgPSB0cnVlXG4gICAgbGV0IHJlcXVlc3QgPSB7XCJzZWFyY2hcIjp7XCJ0eXBlXCI6XCJDb21wZXRlbmN5IEFyZWFcIn0sXCJmaWx0ZXJcIjp7XCJpc0RldGFpbFwiOnRydWV9fVxuICAgIHRoaXMuY29tcGV0ZW5jeVN2Yy5nZXRDb21wZXRlbmN5TGlzdHZfVjIoKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lID0ge31cbiAgICAgIGlmKHJlc3BvbnNlICYmIHJlc3BvbnNlLnJlc3VsdCAmJiByZXNwb25zZS5yZXN1bHQuY29udGVudCkge1xuICAgICAgICB0aGlzLm9yaWdpbmFsQ29tcGV0ZW5jeUFycmF5ID0gcmVzcG9uc2UucmVzdWx0LmNvbnRlbnRcbiAgICAgICAgdGhpcy5nZXRNZG9Db21wZXRlbmNpZXMoKVxuICAgICAgICAvLyB0aGlzLmdldENvbXBldGVuY3lBcmVhKClcbiAgICAgICAgcmVzcG9uc2UucmVzdWx0LmNvbnRlbnQuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICBlbGVtZW50LmNoaWxkcmVuLmZvckVhY2goKGNoaWxkRWxlKSA9PiB7XG4gICAgICAgICAgICBsZXQgbmFtZSA9IGNoaWxkRWxlLm5hbWUudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgdGhpcy5hbGxjb21wZXRlbmN5VGhlbWVbbmFtZV0gPSBjaGlsZEVsZVxuICAgICAgICAgICAgdGhpcy5hbGxjb21wZXRlbmN5VGhlbWVbbmFtZV1bJ3ZpZXdNb3JlJ10gPSBmYWxzZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9hZENvbWV0ZW5jeSA9IGZhbHNlXG4gICAgfSlcbiAgfVxuICBcblxuXG4gIGFzeW5jIGdldE1kb0NvbXBldGVuY2llcygpe1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmxvYWRDb21ldGVuY3kgPSB0cnVlXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZ2V0TWRvQ29tcGV0ZW5jeSgpO1xuICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnJlc3VsdHMpIHtcbiAgICAgICAgaWYocmVzcG9uc2UucmVzdWx0cy5yZXN1bHQuZmFjZXRzICYmIHJlc3BvbnNlLnJlc3VsdHMucmVzdWx0LmZhY2V0cy5sZW5ndGgpe1xuICAgICAgICAgIGxldCBmYWNldERhdGEgPSByZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHNcbiAgICAgICAgICBmYWNldERhdGEuZm9yRWFjaCgoZmFjZXQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYoZmFjZXQubmFtZSA9PT0gICBgJHt0aGlzLmVudmlyb25tZW50LmNvbXBlbnRlbmN5VmVyc2lvbktleX0uJHt0aGlzLmNvbWVwdGVuY3lLZXlzLnZDb21wZXRlbmN5QXJlYX1gKSB7XG4gICAgICAgICAgICAgIHRoaXMuY29tcGV0ZW5jeUFyZWEgPSBmYWNldC52YWx1ZXNcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZmFjZXQudmFsdWVzWzBdLm5hbWVcbiAgICAgICAgICAgIH0gZWxzZSBpZihmYWNldC5uYW1lID09PSAgIGAke3RoaXMuZW52aXJvbm1lbnQuY29tcGVudGVuY3lWZXJzaW9uS2V5fS4ke3RoaXMuY29tZXB0ZW5jeUtleXMudkNvbXBldGVuY3lUaGVtZX1gKSB7XG4gICAgICAgICAgICAgIHRoaXMuY29tcGV0ZW5jeVRoZW1lRGF0YSA9IGZhY2V0LnZhbHVlc1xuICAgICAgICAgICAgICB0aGlzLmdldENvbXBldGVuY3lUaGVtZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmVtcHR5UmVzcG9uc2UuZW1pdCh0cnVlKVxuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZENvbWV0ZW5jeSA9IGZhbHNlXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIEhhbmRsZSBlcnJvcnNcbiAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycm9yKTtcbiAgICAgICAgICB0aGlzLmVtcHR5UmVzcG9uc2UuZW1pdCh0cnVlKVxuICAgIH1cbiAgfVxuXG4gIGdldENvbXBldGVuY3lUaGVtZSgpe1xuICAgIHRoaXMub3JpZ2luYWxDb21wZXRlbmN5QXJyYXkuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICBpZihlbGVtZW50Lm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gdGhpcy5zZWxlY3RlZFZhbHVlKSB7XG4gICAgICAgIHRoaXMuY29tcGV0ZW5jeVRoZW1lID0gdGhpcy5jb21wZXRlbmN5VGhlbWVEYXRhLmZpbHRlcigoZWxlMTogYW55KSA9PiB7XG4gICAgICAgICAgcmV0dXJuICBlbGVtZW50LmNoaWxkcmVuLmZpbmQoKGVsZTI6IGFueSkgPT4gZWxlMi5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IGVsZTEubmFtZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnNob3dBbGxUaGVtZSA9IFt7bmFtZTonU2hvdyBhbGwnLCBzaG93QWxsOiBmYWxzZX1dXG4gICAgICAgIHRoaXMuY29tcGV0ZW5jeVRoZW1lTGVuZ3RoID0gNlxuICAgICAgfSBlbHNlIGlmKCdCZWhhdmlvcmFsJy50b0xvd2VyQ2FzZSgpICA9PT0gdGhpcy5zZWxlY3RlZFZhbHVlKSB7XG4gICAgICAgIHRoaXMuY29tcGV0ZW5jeVRoZW1lID0gdGhpcy5jb21wZXRlbmN5VGhlbWVEYXRhLmZpbHRlcigoZWxlMTogYW55KSA9PiB7XG4gICAgICAgICAgcmV0dXJuICBlbGVtZW50LmNoaWxkcmVuLmZpbmQoKGVsZTI6IGFueSkgPT4gZWxlMi5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IGVsZTEubmFtZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnNob3dBbGxUaGVtZSA9IFt7bmFtZTonU2hvdyBhbGwnLCBzaG93QWxsOiBmYWxzZX1dXG4gICAgICAgIHRoaXMuY29tcGV0ZW5jeVRoZW1lTGVuZ3RoID0gNlxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucmVzZXRWaWV3TW9yZSgpXG4gIH1cblxuXG4gIGFzeW5jIGdldE1kb0NvbXBldGVuY3koKXtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAodGhpcy5wcm92aWRlcklkKSB7XG4gICAgICAgIHRoaXMuY29tcGV0ZW5jeVN2Yy5tZG9Db21wZXRlbmN5KHRoaXMucHJvdmlkZXJJZCkuc3Vic2NyaWJlKHJlc3VsdHMgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh7IHJlc3VsdHMgfSk7XG4gICAgICAgICAgfSwoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gY29tcGV0ZW5jeSB0aGVhbSBjaGFuZ2VcbiAgY29tcGV0ZW5jeUNoYW5nZShlKXtcbiAgICBsZXQgYWRkZmlsdGVyOiBhbnkgPSB7fVxuICAgIGlmKHRoaXMucHJvdmlkZXJJZCkge1xuICAgICAgYWRkZmlsdGVyID0ge1xuICAgICAgICBcImNyZWF0ZWRGb3JcIjogW1xuICAgICAgICAgIHRoaXMucHJvdmlkZXJJZFxuICAgICAgIF0sXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy50ZW1lbGV0cnlSZXNwb25zZS5lbWl0KGUubmFtZSlcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBlLm5hbWVcbiAgICB0aGlzLmdldENvbXBldGVuY3lUaGVtZSgpXG4gIH1cblxuXG5cbiAgcmVzZXRWaWV3TW9yZSgpe1xuICAgIE9iamVjdC5rZXlzKHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lKS5mb3JFYWNoKChjb21wOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW2NvbXBdWyd2aWV3TW9yZSddID0gZmFsc2VcbiAgICB9KVxuICB9XG4gIHZpZXdNb3JlQ2hpbGRyZW4oZGF0YTogYW55KSB7XG4gICAgZGF0YS52aWV3TW9yZSA9ICFkYXRhLnZpZXdNb3JlXG4gICAgdGhpcy5hbGxjb21wZXRlbmN5VGhlbWVbZGF0YS5uYW1lLnRvTG93ZXJDYXNlKCldLnZpZXdNb3JlID0gZGF0YS52aWV3TW9yZVxuICB9XG4gIGRpc3BsYXlBbGxUaGVtZShldmVudDogYW55KSB7XG4gICAgdGhpcy5zaG93QWxsVGhlbWVbMF1bJ3Nob3dBbGwnXSA9ICFldmVudC5zaG93QWxsIFxuICAgIHRoaXMuY29tcGV0ZW5jeVRoZW1lTGVuZ3RoID0gZXZlbnQuc2hvd0FsbCA/ICB0aGlzLmNvbXBldGVuY3lUaGVtZS5sZW5ndGggOiA2XG4gICAgdGhpcy5zaG93QWxsVGhlbWVbMF1bJ25hbWUnXSA9IGV2ZW50LnNob3dBbGwgPyAnU2hvdyBsZXNzJyA6ICdTaG93IGFsbCdcbiAgICB0aGlzLnRlbWVsZXRyeVJlc3BvbnNlLmVtaXQoZXZlbnQubmFtZSlcbiAgfVxuXG4gIG5hdmlnYXRlVG9Db21wZXRlbmN5KGNvbXBEYXRhOiBhbnkpe1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYGFwcC9sZWFybi9icm93c2UtYnkvY29tcGV0ZW5jeS8ke2NvbXBEYXRhLm5hbWV9YClcbiAgfVxuXG4gIHNob3dNb3JlKCkge1xuICAgIHRoaXMub2JqZWN0RGF0YS52aWV3TW9yZSA9ICF0aGlzLm9iamVjdERhdGEudmlld01vcmVcbiAgfVxufVxuIl19
|