@sunbird-cb/consumption 0.0.77 → 0.0.79

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.
@@ -90,25 +90,42 @@ export class CompetencyPassbookComponent {
90
90
  }
91
91
  };
92
92
  try {
93
+ this.competencyStrength = 0;
93
94
  /** @type {?} */
94
95
  const response = yield this.callCompetencySearch(request);
95
96
  if (response && response.results) {
96
97
  if (response.results.result.facets) {
97
- this.competencyArea = response.results.result.facets[0].values;
98
- this.competencyStrength = this.competencyArea.reduce((/**
99
- * @param {?} partialSum
100
- * @param {?} data
98
+ response.results.result.facets.forEach((/**
99
+ * @param {?} fact
101
100
  * @return {?}
102
101
  */
103
- (partialSum, data) => partialSum + data.count), 0);
102
+ (fact) => {
103
+ if (fact.name === 'competencies_v5.competencyArea') {
104
+ this.competencyArea = fact.values;
105
+ }
106
+ }));
104
107
  this.selectedValue = this.competencyArea[0].name.toLowerCase();
105
- /** @type {?} */
106
- let addFilter = {
107
- "createdFor": [
108
- this.providerId
109
- ]
110
- };
111
- this.getcompetencyTheme(this.competencyArea[0].name, addFilter);
108
+ this.competencyArea.forEach((/**
109
+ * @param {?} area
110
+ * @param {?} indexValue
111
+ * @return {?}
112
+ */
113
+ (area, indexValue) => tslib_1.__awaiter(this, void 0, void 0, function* () {
114
+ /** @type {?} */
115
+ let addFilter = {
116
+ "createdFor": [
117
+ this.providerId
118
+ ]
119
+ };
120
+ /** @type {?} */
121
+ let data = yield this.getcompetencyThemeCount(area, addFilter);
122
+ area['themeData'] = data;
123
+ area['count'] = data.length;
124
+ this.competencyStrength = this.competencyStrength + data.length;
125
+ if (indexValue === 0) {
126
+ this.getThemeDataByArea(area);
127
+ }
128
+ })));
112
129
  this.loadCompetencyArea = false;
113
130
  }
114
131
  }
@@ -167,7 +184,7 @@ export class CompetencyPassbookComponent {
167
184
  };
168
185
  }
169
186
  this.temeletryResponse.emit(e.name);
170
- this.getcompetencyTheme(e.name, addfilter);
187
+ this.getThemeDataByArea(e);
171
188
  this.selectedValue = e.name;
172
189
  }
173
190
  /**
@@ -271,6 +288,111 @@ export class CompetencyPassbookComponent {
271
288
  }
272
289
  });
273
290
  }
291
+ /**
292
+ * @param {?} areaData
293
+ * @return {?}
294
+ */
295
+ getThemeDataByArea(areaData) {
296
+ /** @type {?} */
297
+ let competencyThemeData = areaData.themeData;
298
+ this.originalCompetencyArray.forEach((/**
299
+ * @param {?} element
300
+ * @return {?}
301
+ */
302
+ (element) => {
303
+ if (element.name.toLowerCase() === areaData.name) {
304
+ this.competencyTheme = competencyThemeData.filter((/**
305
+ * @param {?} ele1
306
+ * @return {?}
307
+ */
308
+ (ele1) => {
309
+ return element.children.find((/**
310
+ * @param {?} ele2
311
+ * @return {?}
312
+ */
313
+ (ele2) => ele2.name.toLowerCase() === ele1.name.toLowerCase()));
314
+ }));
315
+ this.showAllTheme = [{ name: 'Show all', showAll: false }];
316
+ this.competencyThemeLength = 6;
317
+ }
318
+ }));
319
+ /** @type {?} */
320
+ let addfilter = {};
321
+ if (this.providerId) {
322
+ addfilter = {
323
+ "createdFor": [
324
+ this.providerId
325
+ ],
326
+ };
327
+ }
328
+ this.getcompetencySubTheme(areaData, addfilter);
329
+ }
330
+ /**
331
+ * @param {?} area
332
+ * @param {?=} addFilter
333
+ * @return {?}
334
+ */
335
+ getcompetencyThemeCount(area, addFilter) {
336
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
337
+ /** @type {?} */
338
+ let request = {
339
+ "request": {
340
+ "query": "",
341
+ "filters": Object.assign({ "contentType": "Course" }, addFilter, { "competencies_v5.competencyArea": area.name, "status": [
342
+ "Live"
343
+ ] }),
344
+ "sort_by": {
345
+ "lastUpdatedOn": "desc"
346
+ },
347
+ "facets": [
348
+ "competencies_v5.competencyTheme"
349
+ ],
350
+ "limit": 0,
351
+ "offset": 0,
352
+ "fields": []
353
+ }
354
+ };
355
+ try {
356
+ /** @type {?} */
357
+ let returnedData = this.loadCometency = true;
358
+ /** @type {?} */
359
+ const response = yield this.callCompetencySearch(request);
360
+ if (response && response.results) {
361
+ if (response.results.result.facets) {
362
+ /** @type {?} */
363
+ let competencyThemeData = response.results.result.facets[0].values;
364
+ this.originalCompetencyArray.forEach((/**
365
+ * @param {?} element
366
+ * @return {?}
367
+ */
368
+ (element) => {
369
+ if (element.name.toLowerCase() === area.name) {
370
+ returnedData = competencyThemeData.filter((/**
371
+ * @param {?} ele1
372
+ * @return {?}
373
+ */
374
+ (ele1) => {
375
+ return element.children.find((/**
376
+ * @param {?} ele2
377
+ * @return {?}
378
+ */
379
+ (ele2) => ele2.name.toLowerCase() === ele1.name.toLowerCase()));
380
+ }));
381
+ this.showAllTheme = [{ name: 'Show all', showAll: false }];
382
+ this.competencyThemeLength = 6;
383
+ }
384
+ }));
385
+ }
386
+ this.loadCometency = false;
387
+ return returnedData;
388
+ }
389
+ }
390
+ catch (error) {
391
+ // Handle errors
392
+ // console.error('Error:', error);
393
+ }
394
+ });
395
+ }
274
396
  /**
275
397
  * @return {?}
276
398
  */
@@ -306,13 +428,89 @@ export class CompetencyPassbookComponent {
306
428
  * @return {?}
307
429
  */
308
430
  navigateToCompetency(compData) {
309
- this.router.navigateByUrl(`app/learn/browse-by/competency/${compData.name}`);
431
+ this.router.navigateByUrl(`/app/learn/browse-by/competency/${compData.name}`);
432
+ }
433
+ /**
434
+ * @param {?} compArea
435
+ * @param {?=} addFilter
436
+ * @return {?}
437
+ */
438
+ getcompetencySubTheme(compArea, addFilter) {
439
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
440
+ /** @type {?} */
441
+ let request = {
442
+ "request": {
443
+ "query": "",
444
+ "filters": Object.assign({ "contentType": "Course" }, addFilter, { "competencies_v5.competencyArea": compArea.name, "status": [
445
+ "Live"
446
+ ] }),
447
+ "sort_by": {
448
+ "lastUpdatedOn": "desc"
449
+ },
450
+ "facets": [
451
+ "competencies_v5.competencySubThemeId"
452
+ ],
453
+ "limit": 0,
454
+ "offset": 0,
455
+ "fields": []
456
+ }
457
+ };
458
+ try {
459
+ this.loadCometency = true;
460
+ /** @type {?} */
461
+ const response = yield this.callCompetencySearch(request);
462
+ if (response && response.results) {
463
+ if (response.results.result.facets) {
464
+ /** @type {?} */
465
+ let competencySubThemeData = response.results.result.facets[0].values;
466
+ this.competencyArea.forEach((/**
467
+ * @param {?} areaEle
468
+ * @return {?}
469
+ */
470
+ (areaEle) => {
471
+ if (areaEle.name === compArea.name) {
472
+ areaEle.themeData.forEach((/**
473
+ * @param {?} themeEle
474
+ * @return {?}
475
+ */
476
+ (themeEle) => {
477
+ if (this.allcompetencyTheme[themeEle.name.toLowerCase()] &&
478
+ this.allcompetencyTheme[themeEle.name.toLowerCase()].children &&
479
+ this.allcompetencyTheme[themeEle.name.toLowerCase()].children.length) {
480
+ /** @type {?} */
481
+ let data = this.allcompetencyTheme[themeEle.name.toLowerCase()].children.filter((/**
482
+ * @param {?} obj1
483
+ * @return {?}
484
+ */
485
+ obj1 => competencySubThemeData.some((/**
486
+ * @param {?} obj2
487
+ * @return {?}
488
+ */
489
+ obj2 => Object.keys(obj1).every((/**
490
+ * @param {?} key
491
+ * @return {?}
492
+ */
493
+ key => obj1['id'] === Number(obj2['name'])))))));
494
+ this.allcompetencyTheme[themeEle.name.toLowerCase()]['children'] = data;
495
+ }
496
+ }));
497
+ }
498
+ }));
499
+ }
500
+ this.loadCometency = false;
501
+ }
502
+ }
503
+ catch (error) {
504
+ // Handle errors
505
+ // console.error('Error:', error);
506
+ }
507
+ });
310
508
  }
311
509
  }
312
510
  CompetencyPassbookComponent.decorators = [
313
511
  { type: Component, args: [{
314
512
  selector: 'sb-uic-competency-passbook',
315
- template: " <div class=\"competency-title\" *ngIf=\"objectData?.title\">{{objectData?.title}} \n <span class=\"competency-count\">\n ({{competencyStrength}})\n </span>\n</div>\n<div class=\"flex items-center justify-{{dynamicAlignPills}} gap-8 mt-5 mb-5 competency-filters\">\n <sb-uic-pills [pillsData]=\"competencyArea\" [dynamicColor]=\"dynamicColor\"\n [isLoading]=\"loadCompetencyArea\" (pillClick)=\"competencyChange($event)\" [selectedValue]=\"selectedValue\"></sb-uic-pills>\n</div>\n<div class=\"grid grid-cols-1 md:grid-cols-{{cardDisplayCount}} w-full grid-flow-row gap-5\" *ngIf=\"!loadCometency\">\n <div class=\"competency-card\" *ngFor=\"let obj of competencyTheme| slice:0:competencyThemeLength\">\n <div class=\"flex-1 flex-col\">\n <div class=\"competency-theme\"></div>\n <div class=\"details flex flex-col\">\n <div class=\"flex flex-col p-4\">\n <div class=\"flex flex-row cursor-pointer\">\n <div class=\"flex flex-row gap-2 items-center\">\n <div class=\"name\">{{allcompetencyTheme[obj?.name]?.name}}</div>\n <!-- <div class=\"flex items-baseline\">\n <img src=\"assets/icons/competency/cp-arrow.svg\" class=\"arrow-img cursor-pointer\" alt=\"cp arrow img\" (click)=\"navigateToCompetency(obj)\" />\n </div> -->\n </div>\n </div>\n <div class=\"flex flex-row pt-3 pb-3 description\">\n {{ allcompetencyTheme[obj.name]?.description }} \n </div>\n <div class=\"flex flex-row gap-3 items-center\">\n <mat-icon class=\"content-icon\">school</mat-icon>\n <div class=\"no-of-contents\" *ngIf=\"obj.count === 1\">{{obj.count}} Content</div>\n <div class=\"no-of-contents\" *ngIf=\"obj.count !== 1\">{{obj.count}} Contents</div>\n </div>\n <div class=\"line mt-3 mt-2\"></div>\n <div class=\"flex flex-wrap gap-3 pt-4 chip-container\">\n <ng-container *ngFor=\"let child of allcompetencyTheme[obj.name]?.children| slice:0: allcompetencyTheme[obj.name]?.viewMore ? allcompetencyTheme[obj.name]?.children?.length : 3; let i = index\">\n <div class=\"chip rounded-full p-2 text-xs chip-ellipsis\" [title]=\"child?.name\" >\n {{ child.name }}\n </div>\n </ng-container>\n <div class=\"p-2 info-btn cursor-pointer\"\n *ngIf=\"allcompetencyTheme[obj.name]?.children.length > 3 && !allcompetencyTheme[obj.name]?.viewMore\" (click)=\"viewMoreChildren(allcompetencyTheme[obj.name])\">\n View more\n </div>\n <div class=\"p-2 info-btn cursor-pointer\"\n *ngIf=\"allcompetencyTheme[obj.name]?.children.length > 3 && allcompetencyTheme[obj.name]?.viewMore\" (click)=\"viewMoreChildren(allcompetencyTheme[obj.name])\">\n View less\n </div>\n </div>\n </div> \n </div>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"competencyTheme.length > 6 && !loadCometency\">\n <div class=\"flex items-center justify-center gap-8 mt-5 mb-5 competency-filters\">\n <sb-uic-pills [pillsData]=\"showAllTheme\" [requiredTitlecase]=\"false\" [dynamicColor]=\"dynamicColor\" (pillClick)=\"displayAllTheme($event)\"></sb-uic-pills>\n </div>\n</ng-container> \n\n<ng-container *ngIf=\"loadCometency\">\n\n<div class=\"grid grid-cols-1 md:grid-cols-{{cardDisplayCount}} w-full grid-flow-row gap-5\">\n <div *ngFor=\"let obj of [0,1,2,3,4,5]\">\n <div class=\"flex-1 flex-col\">\n <div class=\"competency-theme\"></div>\n <div class=\"details flex flex-col\">\n <div class=\"flex flex-col p-4\">\n <div class=\"flex flex-row cursor-pointer\">\n <div class=\"flex flex-row gap-2 items-center w-full\">\n <div class=\"name w-full\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'100%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded'\" [width]=\"'80%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n <div class=\"pt-3 pb-3 description\">\n <sb-uic-skeleton-loader class=\"w-full\" [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'100%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-full\" [bindingClass]=\"'flex rounded'\" [width]=\"'80%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-row gap-3 items-center\">\n <mat-icon class=\"content-icon\"><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'24px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader></mat-icon>\n <div class=\"no-of-contents\"><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader></div>\n </div>\n <div class=\"line mt-3 mt-2\"></div>\n <div class=\"flex flex-wrap gap-3 pt-4 chip-container\">\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div> \n </div>\n </div>\n </div>\n</div>\n</ng-container>",
513
+ template: " <div class=\"competency-title\" *ngIf=\"objectData?.title\">{{objectData?.title}} \n <span class=\"competency-count\">\n ({{competencyStrength}})\n </span>\n</div>\n<div class=\"flex items-center justify-{{dynamicAlignPills}} gap-8 mt-5 mb-5 competency-filters\">\n <sb-uic-pills [pillsData]=\"competencyArea\" [dynamicColor]=\"dynamicColor\"\n [isLoading]=\"loadCompetencyArea\" (pillClick)=\"competencyChange($event)\" [selectedValue]=\"selectedValue\"></sb-uic-pills>\n</div>\n<div class=\"grid grid-cols-1 md:grid-cols-{{cardDisplayCount}} w-full grid-flow-row gap-5\" *ngIf=\"!loadCometency\">\n <div class=\"competency-card\" *ngFor=\"let obj of competencyTheme| slice:0:competencyThemeLength\">\n <div class=\"flex-1 flex-col\">\n <div class=\"competency-theme\"></div>\n <div class=\"details flex flex-col\">\n <div class=\"flex flex-col p-4\">\n <div class=\"flex flex-row cursor-pointer\">\n <div class=\"flex flex-row gap-2 items-center\">\n <div class=\"name\">{{allcompetencyTheme[obj?.name]?.name}}</div>\n <!-- <div class=\"flex items-baseline\">\n <img src=\"assets/icons/competency/cp-arrow.svg\" class=\"arrow-img cursor-pointer\" alt=\"cp arrow img\" (click)=\"navigateToCompetency(obj)\" />\n </div> -->\n </div>\n </div>\n <div class=\"flex flex-row pt-3 pb-3 description\">\n {{ allcompetencyTheme[obj.name]?.description }} \n </div>\n <!-- <div class=\"flex flex-row gap-3 items-center\">\n <mat-icon class=\"content-icon\">school</mat-icon>\n <div class=\"no-of-contents\" *ngIf=\"obj.count === 1\">{{obj.count}} Content</div>\n <div class=\"no-of-contents\" *ngIf=\"obj.count !== 1\">{{obj.count}} Contents</div>\n </div> -->\n <div class=\"line mt-3 mt-2\"></div>\n <div class=\"flex flex-wrap gap-3 pt-4 chip-container\">\n <ng-container *ngFor=\"let child of allcompetencyTheme[obj.name]?.children| slice:0: allcompetencyTheme[obj.name]?.viewMore ? allcompetencyTheme[obj.name]?.children?.length : 3; let i = index\">\n <div class=\"chip rounded-full p-2 text-xs chip-ellipsis\" [title]=\"child?.name\" >\n {{ child.name }}\n </div>\n </ng-container>\n <div class=\"p-2 info-btn cursor-pointer\"\n *ngIf=\"allcompetencyTheme[obj.name]?.children.length > 3 && !allcompetencyTheme[obj.name]?.viewMore\" (click)=\"viewMoreChildren(allcompetencyTheme[obj.name])\">\n View more\n </div>\n <div class=\"p-2 info-btn cursor-pointer\"\n *ngIf=\"allcompetencyTheme[obj.name]?.children.length > 3 && allcompetencyTheme[obj.name]?.viewMore\" (click)=\"viewMoreChildren(allcompetencyTheme[obj.name])\">\n View less\n </div>\n </div>\n </div> \n </div>\n </div>\n </div>\n</div>\n<ng-container *ngIf=\"competencyTheme.length > 6 && !loadCometency\">\n <div class=\"flex items-center justify-center gap-8 mt-5 mb-5 competency-filters\">\n <sb-uic-pills [pillsData]=\"showAllTheme\" [requiredTitlecase]=\"false\" [dynamicColor]=\"dynamicColor\" (pillClick)=\"displayAllTheme($event)\"></sb-uic-pills>\n </div>\n</ng-container> \n\n<ng-container *ngIf=\"loadCometency\">\n\n<div class=\"grid grid-cols-1 md:grid-cols-{{cardDisplayCount}} w-full grid-flow-row gap-5\">\n <div *ngFor=\"let obj of [0,1,2,3,4,5]\">\n <div class=\"flex-1 flex-col\">\n <div class=\"competency-theme\"></div>\n <div class=\"details flex flex-col\">\n <div class=\"flex flex-col p-4\">\n <div class=\"flex flex-row cursor-pointer\">\n <div class=\"flex flex-row gap-2 items-center w-full\">\n <div class=\"name w-full\">\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'100%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader [bindingClass]=\"'flex rounded'\" [width]=\"'80%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div>\n </div>\n <div class=\"pt-3 pb-3 description\">\n <sb-uic-skeleton-loader class=\"w-full\" [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'100%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-full\" [bindingClass]=\"'flex rounded'\" [width]=\"'80%'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n <div class=\"flex flex-row gap-3 items-center\">\n <mat-icon class=\"content-icon\"><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded mb-2'\" [width]=\"'24px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader></mat-icon>\n <div class=\"no-of-contents\"><sb-uic-skeleton-loader [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader></div>\n </div>\n <div class=\"line mt-3 mt-2\"></div>\n <div class=\"flex flex-wrap gap-3 pt-4 chip-container\">\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n <sb-uic-skeleton-loader class=\"w-2/5\" [bindingClass]=\"'flex rounded '\" [width]=\"'100px'\"\n [height]=\"'24px'\"></sb-uic-skeleton-loader>\n </div>\n </div> \n </div>\n </div>\n </div>\n</div>\n</ng-container>",
316
514
  styles: [".competencies-backgroud{background-color:#1b2133}.competency-title{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left;color:#fff}.competency-count{color:#f3962f}.filter-button{padding:12px 16px;border-radius:50px;border:1px solid #fff;font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;background-color:transparent;color:#fff;cursor:pointer}.filter-button.active{background:#1b4ca1}.banner-metrics{background:linear-gradient(180deg,#f9cb97 -107.59%,#ef951e 110.74%)}.infra-background{background:#1b4ca1}.competency-theme{height:16px;border-top-left-radius:12px;border-top-right-radius:12px;background-color:#f8b861}.details{background-color:#fff;border-radius:12px;position:relative;top:-8px;min-height:278px}.name{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left}.description{font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px;text-align:left;height:42px;display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.no-of-contents{font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;color:#1b4ca1}.content-icon{color:#1b4ca1}.line{border-top:1px solid #e2dddd}.chip{padding:8px 16px;gap:8px;border-radius:50px;border:1px solid #1b4ca1;color:#1b4ca1;font-family:Lato;font-size:14px;font-weight:700;text-align:center}.chip-ellipsis{white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis}.info-btn{font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;text-align:center;opacity:.7;padding:12px 5px}.hide{display:none}.behavioral{background-color:#f8b861}.functional{background-color:#e24577}.domain{background-color:#7b47a4}.competency-card{z-index:999}"]
317
515
  }] }
318
516
  ];
@@ -381,4 +579,4 @@ if (false) {
381
579
  /** @type {?} */
382
580
  CompetencyPassbookComponent.prototype.router;
383
581
  }
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3VuYmlyZC1jYi9jb25zdW1wdGlvbi8iLCJzb3VyY2VzIjpbImxpYi9fY29tbW9uL2NvbXBldGVuY3ktcGFzc2Jvb2svY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFPekMsTUFBTSxPQUFPLDJCQUEyQjs7Ozs7Ozs7Ozs7SUEwQnRDLFlBQW1CLFNBQWdDLEVBQzFDLFVBQStCLEVBQy9CLGFBQXdDLEVBQ3hDLE1BQWU7UUFITCxjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUMxQyxlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBMkI7UUFDeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQXpCZixxQkFBZ0IsR0FBUSxDQUFDLENBQUE7UUFHekIsc0JBQWlCLEdBQVEsUUFBUSxDQUFBO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQTtRQUN2QyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO1FBQ3JELGtCQUFhLEdBQVksS0FBSyxDQUFBO1FBQzlCLHVCQUFrQixHQUFZLEtBQUssQ0FBQTtRQUluQyxzQkFBaUIsR0FBVSxFQUFFLENBQUE7UUFDN0Isb0JBQWUsR0FBUSxFQUFFLENBQUE7UUFDekIsdUJBQWtCLEdBQU8sRUFBRSxDQUFBO1FBQzNCLHVCQUFrQixHQUFRLENBQUMsQ0FBQTtRQUMzQiwwQkFBcUIsR0FBUSxDQUFDLENBQUE7UUFDOUIsaUJBQVksR0FBUyxDQUFDLEVBQUMsSUFBSSxFQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQTtJQVl4RCxDQUFDOzs7O0lBR0QsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBQ3pCLHdDQUF3QztRQUN4QyxrQ0FBa0M7SUFDcEMsQ0FBQzs7Ozs7Ozs7SUFLRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQTtJQUN0RCxDQUFDOzs7OztJQUdLLGlCQUFpQjs7O2dCQUFPLFNBQVMsR0FBUSxFQUFFO1lBQ2pELElBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDbEIsU0FBUyxHQUFHO29CQUNWLFlBQVksRUFBRTt3QkFDWixJQUFJLENBQUMsVUFBVTtxQkFDakI7aUJBQ0QsQ0FBQTthQUNGO1lBQ0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQTs7Z0JBQzFCLE9BQU8sR0FBRztnQkFDVixTQUFTLEVBQUU7b0JBQ1AsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsU0FBUyxrQkFDTCxhQUFhLEVBQUMsUUFBUSxJQUNuQixTQUFTLElBQ1osUUFBUSxFQUFFOzRCQUNOLE1BQU07eUJBQ1QsR0FDSjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsZUFBZSxFQUFFLE1BQU07cUJBQzFCO29CQUNELFFBQVEsRUFBRTt3QkFDTixnQ0FBZ0M7cUJBQ25DO29CQUNELE9BQU8sRUFBRSxDQUFDO29CQUNWLFFBQVEsRUFBRSxDQUFDO29CQUNYLFFBQVEsRUFBRSxFQUNUO2lCQUNKO2FBQ0Y7WUFFSCxJQUFJOztzQkFDSSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDO2dCQUN6RCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFO29CQUNoQyxJQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBQzt3QkFDaEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO3dCQUM5RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNOzs7Ozt3QkFBQyxDQUFDLFVBQWUsRUFBRSxJQUFTLEVBQUUsRUFBRSxDQUFDLFVBQVUsR0FBSSxJQUFJLENBQUMsS0FBSyxHQUFFLENBQUMsQ0FBQyxDQUFBO3dCQUNqSCxJQUFJLENBQUMsYUFBYSxHQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBOzs0QkFDM0QsU0FBUyxHQUFHOzRCQUNkLFlBQVksRUFBRTtnQ0FDWixJQUFJLENBQUMsVUFBVTs2QkFDakI7eUJBQ0Q7d0JBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFBO3dCQUMvRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFBO3FCQUNoQztpQkFDRjthQUNGO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQTtnQkFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQzdCLGdCQUFnQjtnQkFDaEIsa0NBQWtDO2FBQ25DO1FBQ0gsQ0FBQztLQUFBOzs7OztJQUVLLG9CQUFvQixDQUFDLE9BQU87O1lBQ2hDLE9BQU8sSUFBSSxPQUFPOzs7OztZQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUMxQyxJQUFJLE9BQU8sSUFBSSxPQUFPLEVBQUU7b0JBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVM7Ozs7b0JBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQ2xELE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7b0JBQ3ZCLENBQUM7Ozs7b0JBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTt3QkFDZixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2hCLENBQUMsRUFDRixDQUFDO2lCQUNIO1lBQ0gsQ0FBQyxFQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7Ozs7OztJQUdELGdCQUFnQixDQUFDLENBQUM7O1lBQ1osU0FBUyxHQUFRLEVBQUU7UUFDdkIsSUFBRyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2xCLFNBQVMsR0FBRztnQkFDVixZQUFZLEVBQUU7b0JBQ1osSUFBSSxDQUFDLFVBQVU7aUJBQ2pCO2FBQ0QsQ0FBQTtTQUNGO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFbkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUE7UUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQzdCLENBQUM7Ozs7SUFDRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUE7O1lBQ3JCLE9BQU8sR0FBRyxFQUFDLFFBQVEsRUFBQyxFQUFDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFDLFVBQVUsRUFBQyxJQUFJLEVBQUMsRUFBQztRQUM5RSxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVM7Ozs7UUFBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3hFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUE7WUFDNUIsSUFBRyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtnQkFDNUQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFBO2dCQUV6RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtnQkFDeEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTzs7OztnQkFBQyxPQUFPLENBQUMsRUFBRTtvQkFDM0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPOzs7O29CQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7OzRCQUNoQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7d0JBQ3RDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUE7d0JBQ3hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLENBQUE7b0JBQ25ELENBQUMsRUFBQyxDQUFDO2dCQUNMLENBQUMsRUFBQyxDQUFDO2FBQ0o7WUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQTtRQUM1QixDQUFDLEVBQUMsQ0FBQTtJQUNKLENBQUM7Ozs7OztJQUVLLGtCQUFrQixDQUFDLEtBQVUsRUFBQyxTQUFlOzs7Z0JBQzdDLE9BQU8sR0FBRztnQkFDWixTQUFTLEVBQUU7b0JBQ1AsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsU0FBUyxrQkFDTCxhQUFhLEVBQUMsUUFBUSxJQUNuQixTQUFTLElBQ1osZ0NBQWdDLEVBQUcsS0FBSyxFQUN4QyxRQUFRLEVBQUU7NEJBQ04sTUFBTTt5QkFDVCxHQUNKO29CQUNELFNBQVMsRUFBRTt3QkFDUCxlQUFlLEVBQUUsTUFBTTtxQkFDMUI7b0JBQ0QsUUFBUSxFQUFFO3dCQUNOLGlDQUFpQztxQkFDcEM7b0JBQ0QsT0FBTyxFQUFFLENBQUM7b0JBQ1YsUUFBUSxFQUFFLENBQUM7b0JBQ1gsUUFBUSxFQUFFLEVBQ1Q7aUJBQ0o7YUFDRjtZQUVILElBQUk7Z0JBQ0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUE7O3NCQUNuQixRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDO2dCQUN6RCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFO29CQUNoQyxJQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBQzs7NEJBQzVCLG1CQUFtQixHQUFTLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNO3dCQUN4RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTzs7Ozt3QkFBQyxDQUFDLE9BQVksRUFBRSxFQUFFOzRCQUNwRCxJQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxFQUFFO2dDQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLG1CQUFtQixDQUFDLE1BQU07Ozs7Z0NBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtvQ0FDOUQsT0FBUSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUk7Ozs7b0NBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBQyxDQUFBO2dDQUNuRyxDQUFDLEVBQUMsQ0FBQTtnQ0FDRixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsRUFBQyxJQUFJLEVBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFBO2dDQUN2RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxDQUFBOzZCQUMvQjt3QkFDSCxDQUFDLEVBQUMsQ0FBQzt3QkFDSCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7cUJBQ3JCO29CQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFBO2lCQUMzQjthQUNGO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsZ0JBQWdCO2dCQUNoQixrQ0FBa0M7YUFDbkM7UUFDRCxDQUFDO0tBQUE7Ozs7SUFFRCxhQUFhO1FBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPOzs7O1FBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUN6RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFBO1FBQ25ELENBQUMsRUFBQyxDQUFBO0lBQ0osQ0FBQzs7Ozs7SUFDRCxnQkFBZ0IsQ0FBQyxJQUFTO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFBO1FBQzlCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDM0UsQ0FBQzs7Ozs7SUFDRCxlQUFlLENBQUMsS0FBVTtRQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQTtRQUNoRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUM3RSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFBO1FBQ3ZFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3pDLENBQUM7Ozs7O0lBRUQsb0JBQW9CLENBQUMsUUFBYTtRQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxrQ0FBa0MsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7SUFDOUUsQ0FBQzs7O1lBcE9GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNEJBQTRCO2dCQUN0QyxnbE5BQW1EOzthQUVwRDs7OztZQVRRLHFCQUFxQjtZQUNyQixvQkFBb0I7WUFDcEIseUJBQXlCO1lBQ3pCLE1BQU07Ozt5QkFTWixLQUFLO3lCQUNMLEtBQUs7K0JBQ0wsS0FBSzsyQkFDTCxLQUFLOzJCQUNMLEtBQUs7Z0NBQ0wsS0FBSzs0QkFDTCxNQUFNO2dDQUNOLE1BQU07Ozs7SUFQUCxpREFBd0I7O0lBQ3hCLGlEQUF3Qjs7SUFDeEIsdURBQWtDOztJQUNsQyxtREFBMEI7O0lBQzFCLG1EQUEwQjs7SUFDMUIsd0RBQTBDOztJQUMxQyxvREFBaUQ7O0lBQ2pELHdEQUFxRDs7SUFDckQsb0RBQThCOztJQUM5Qix5REFBbUM7O0lBQ25DLDhEQUE0Qjs7SUFDNUIscURBQXNCOztJQUN0QixvREFBbUI7O0lBQ25CLHdEQUE2Qjs7SUFDN0Isc0RBQXlCOztJQUN6Qix5REFBMkI7O0lBQzNCLHlEQUEyQjs7SUFDM0IsNERBQThCOztJQUM5QixtREFBd0Q7O0lBTTVDLGdEQUF1Qzs7SUFDakQsaURBQXNDOztJQUN0QyxvREFBK0M7O0lBQy9DLDZDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSwgRXZlbnRTZXJ2aWNlIH0gZnJvbSAnQHN1bmJpcmQtY2IvdXRpbHMtdjInO1xuaW1wb3J0IHsgV2lkZ2V0Q29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvd2lkZ2V0LWNvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wZXRlbmN5UGFzc2Jvb2tTZXJ2aWNlIH0gZnJvbSAnLi9jb21wZXRlbmN5LXBhc3Nib29rLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ItdWljLWNvbXBldGVuY3ktcGFzc2Jvb2snLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbXBldGVuY3ktcGFzc2Jvb2suY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb21wZXRlbmN5UGFzc2Jvb2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIG9iamVjdERhdGE6IGFueVxuICBASW5wdXQoKSBwcm92aWRlcklkOiBhbnlcbiAgQElucHV0KCkgY2FyZERpc3BsYXlDb3VudDogYW55ID0gM1xuICBASW5wdXQoKSBkeW5hbWljQ2xhc3M6IGFueVxuICBASW5wdXQoKSBkeW5hbWljQ29sb3I6IGFueVxuICBASW5wdXQoKSBkeW5hbWljQWxpZ25QaWxsczogYW55ID0gJ2NlbnRlcidcbiAgQE91dHB1dCgpIGVtcHR5UmVzcG9uc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBAT3V0cHV0KCkgdGVtZWxldHJ5UmVzcG9uc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBsb2FkQ29tZXRlbmN5OiBib29sZWFuID0gZmFsc2VcbiAgbG9hZENvbXBldGVuY3lBcmVhOiBib29sZWFuID0gZmFsc2VcbiAgb3JpZ2luYWxDb21wZXRlbmN5QXJyYXk6IGFueVxuICBjb21wZXRlbmN5QXJlYTogYW55IFtdXG4gIHNlbGVjdGVkVmFsdWU6IGFueTtcbiAgY29tcGV0ZW5jeVZlcnNpb246c3RyaW5nID0gJydcbiAgY29tcGV0ZW5jeVRoZW1lOiBhbnkgPSBbXVxuICBhbGxjb21wZXRlbmN5VGhlbWU6IGFueSA9e31cbiAgY29tcGV0ZW5jeVN0cmVuZ3RoOiBhbnkgPSAwXG4gIGNvbXBldGVuY3lUaGVtZUxlbmd0aDogYW55ID0gNlxuICBzaG93QWxsVGhlbWUgOiBhbnkgPSBbe25hbWU6J1Nob3cgYWxsJywgc2hvd0FsbDogZmFsc2V9XVxuXG4gIC8vIHN1YlRoZW1lID0gWydCZWhhdmlvdXJhbCddXG4gIC8vIGN1cnJlbnRGaWx0ZXIgPSAnQmVoYXZpb3VyYWwnXG4gIC8vIGN1cnJlbnRDb21wZXRlbmNpZXM6IGFueSA9IFtdXG4gIC8vIGNvbXBldGVuY3lEYXRhOiBhbnlcbiAgY29uc3RydWN0b3IocHVibGljIGNvbmZpZ1N2YzogQ29uZmlndXJhdGlvbnNTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb250ZW50U3ZjOldpZGdldENvbnRlbnRTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb21wZXRlbmN5U3ZjOiBDb21wZXRlbmN5UGFzc2Jvb2tTZXJ2aWNlLFxuICAgIHB1YmxpYyByb3V0ZXIgOiBSb3V0ZXJcbiAgKSB7IFxuICAgIFxuICB9XG5cbiBcbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5nZXRBbGxDb21wZXRlbmNpZXMoKVxuICAgIC8vIHRoaXMuY29tcGV0ZW5jeURhdGEgPSB0aGlzLm9iamVjdERhdGFcbiAgICAvLyB0aGlzLmZpbHRlcih0aGlzLmN1cnJlbnRGaWx0ZXIpXG4gIH1cbiAgLy8gZmlsdGVyKGZpbHRlclZhbHVlOiBzdHJpbmcpIHtcbiAgLy8gICB0aGlzLmN1cnJlbnRGaWx0ZXIgPSBmaWx0ZXJWYWx1ZVxuICAvLyAgIHRoaXMuY3VycmVudENvbXBldGVuY2llcyA9IHRoaXMuY29tcGV0ZW5jeURhdGEuZGF0YS5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbS50eXBlID09PSBmaWx0ZXJWYWx1ZSlcbiAgLy8gfVxuICBzaG93TW9yZSgpIHtcbiAgICB0aGlzLm9iamVjdERhdGEudmlld01vcmUgPSAhdGhpcy5vYmplY3REYXRhLnZpZXdNb3JlXG4gIH1cblxuICAvLyB0byBnZXQgY29tcGV0ZW5jeSBhcmVhIGZyb20gZmFjZXRzXG4gIGFzeW5jIGdldENvbXBldGVuY3lBcmVhKCl7bGV0IGFkZGZpbHRlcjogYW55ID0ge31cbiAgaWYodGhpcy5wcm92aWRlcklkKSB7XG4gICAgYWRkZmlsdGVyID0ge1xuICAgICAgXCJjcmVhdGVkRm9yXCI6IFtcbiAgICAgICAgdGhpcy5wcm92aWRlcklkXG4gICAgIF0sXG4gICAgfVxuICB9XG4gICAgdGhpcy5sb2FkQ29tcGV0ZW5jeUFyZWEgPSB0cnVlXG4gICAgbGV0IHJlcXVlc3QgPSB7XG4gICAgICAgIFwicmVxdWVzdFwiOiB7XG4gICAgICAgICAgICBcInF1ZXJ5XCI6IFwiXCIsXG4gICAgICAgICAgICBcImZpbHRlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiY29udGVudFR5cGVcIjpcIkNvdXJzZVwiLFxuICAgICAgICAgICAgICAgIC4uLmFkZGZpbHRlcixcbiAgICAgICAgICAgICAgICBcInN0YXR1c1wiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiTGl2ZVwiXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwic29ydF9ieVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsYXN0VXBkYXRlZE9uXCI6IFwiZGVzY1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmYWNldHNcIjogW1xuICAgICAgICAgICAgICAgIFwiY29tcGV0ZW5jaWVzX3Y1LmNvbXBldGVuY3lBcmVhXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcImxpbWl0XCI6IDAsXG4gICAgICAgICAgICBcIm9mZnNldFwiOiAwLFxuICAgICAgICAgICAgXCJmaWVsZHNcIjogW1xuICAgICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jYWxsQ29tcGV0ZW5jeVNlYXJjaChyZXF1ZXN0KTtcbiAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5yZXN1bHRzKSB7XG4gICAgICAgIGlmKHJlc3BvbnNlLnJlc3VsdHMucmVzdWx0LmZhY2V0cyl7XG4gICAgICAgICAgdGhpcy5jb21wZXRlbmN5QXJlYSA9IHJlc3BvbnNlLnJlc3VsdHMucmVzdWx0LmZhY2V0c1swXS52YWx1ZXNcbiAgICAgICAgICB0aGlzLmNvbXBldGVuY3lTdHJlbmd0aCA9IHRoaXMuY29tcGV0ZW5jeUFyZWEucmVkdWNlKChwYXJ0aWFsU3VtOiBhbnksIGRhdGE6IGFueSkgPT4gcGFydGlhbFN1bSArICBkYXRhLmNvdW50LCAwKSBcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgID0gdGhpcy5jb21wZXRlbmN5QXJlYVswXS5uYW1lLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICBsZXQgYWRkRmlsdGVyID0ge1xuICAgICAgICAgICAgXCJjcmVhdGVkRm9yXCI6IFtcbiAgICAgICAgICAgICAgdGhpcy5wcm92aWRlcklkXG4gICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5nZXRjb21wZXRlbmN5VGhlbWUodGhpcy5jb21wZXRlbmN5QXJlYVswXS5uYW1lLCBhZGRGaWx0ZXIpXG4gICAgICAgICAgdGhpcy5sb2FkQ29tcGV0ZW5jeUFyZWEgPSBmYWxzZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMubG9hZENvbXBldGVuY3lBcmVhID0gZmFsc2VcbiAgICAgIHRoaXMuZW1wdHlSZXNwb25zZS5lbWl0KHRydWUpXG4gICAgICAvLyBIYW5kbGUgZXJyb3JzXG4gICAgICAvLyBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY2FsbENvbXBldGVuY3lTZWFyY2gocmVxdWVzdCl7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHJlcXVlc3QgJiYgcmVxdWVzdCkge1xuICAgICAgICB0aGlzLmNvbnRlbnRTdmMuc2VhcmNoVjYocmVxdWVzdCkuc3Vic2NyaWJlKHJlc3VsdHMgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh7IHJlc3VsdHMgfSk7XG4gICAgICAgICAgfSwoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gY29tcGV0ZW5jeSB0aGVhbSBjaGFuZ2VcbiAgY29tcGV0ZW5jeUNoYW5nZShlKXtcbiAgICBsZXQgYWRkZmlsdGVyOiBhbnkgPSB7fVxuICAgIGlmKHRoaXMucHJvdmlkZXJJZCkge1xuICAgICAgYWRkZmlsdGVyID0ge1xuICAgICAgICBcImNyZWF0ZWRGb3JcIjogW1xuICAgICAgICAgIHRoaXMucHJvdmlkZXJJZFxuICAgICAgIF0sXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy50ZW1lbGV0cnlSZXNwb25zZS5lbWl0KGUubmFtZSlcbiAgICBcbiAgICB0aGlzLmdldGNvbXBldGVuY3lUaGVtZShlLm5hbWUsIGFkZGZpbHRlcilcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBlLm5hbWVcbiAgfVxuICBnZXRBbGxDb21wZXRlbmNpZXMoKXtcbiAgICB0aGlzLmxvYWRDb21ldGVuY3kgPSB0cnVlXG4gICAgbGV0IHJlcXVlc3QgPSB7XCJzZWFyY2hcIjp7XCJ0eXBlXCI6XCJDb21wZXRlbmN5IEFyZWFcIn0sXCJmaWx0ZXJcIjp7XCJpc0RldGFpbFwiOnRydWV9fVxuICAgIHRoaXMuY29tcGV0ZW5jeVN2Yy5nZXRDb21wZXRlbmN5TGlzdChyZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lID0ge31cbiAgICAgIGlmKHJlc3BvbnNlICYmIHJlc3BvbnNlLnJlc3VsdCAmJiByZXNwb25zZS5yZXN1bHQuY29tcGV0ZW5jeSkge1xuICAgICAgICB0aGlzLm9yaWdpbmFsQ29tcGV0ZW5jeUFycmF5ID0gcmVzcG9uc2UucmVzdWx0LmNvbXBldGVuY3lcblxuICAgICAgICB0aGlzLmdldENvbXBldGVuY3lBcmVhKClcbiAgICAgICAgcmVzcG9uc2UucmVzdWx0LmNvbXBldGVuY3kuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICBlbGVtZW50LmNoaWxkcmVuLmZvckVhY2goKGNoaWxkRWxlKSA9PiB7XG4gICAgICAgICAgICBsZXQgbmFtZSA9IGNoaWxkRWxlLm5hbWUudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgdGhpcy5hbGxjb21wZXRlbmN5VGhlbWVbbmFtZV0gPSBjaGlsZEVsZVxuICAgICAgICAgICAgdGhpcy5hbGxjb21wZXRlbmN5VGhlbWVbbmFtZV1bJ3ZpZXdNb3JlJ10gPSBmYWxzZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9hZENvbWV0ZW5jeSA9IGZhbHNlXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldGNvbXBldGVuY3lUaGVtZSh2YWx1ZTogYW55LGFkZEZpbHRlcj86IGFueSkge1xuICAgIGxldCByZXF1ZXN0ID0ge1xuICAgICAgXCJyZXF1ZXN0XCI6IHtcbiAgICAgICAgICBcInF1ZXJ5XCI6IFwiXCIsXG4gICAgICAgICAgXCJmaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJjb250ZW50VHlwZVwiOlwiQ291cnNlXCIsXG4gICAgICAgICAgICAgIC4uLmFkZEZpbHRlcixcbiAgICAgICAgICAgICAgXCJjb21wZXRlbmNpZXNfdjUuY29tcGV0ZW5jeUFyZWFcIiA6IHZhbHVlLFxuICAgICAgICAgICAgICBcInN0YXR1c1wiOiBbXG4gICAgICAgICAgICAgICAgICBcIkxpdmVcIlxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNvcnRfYnlcIjoge1xuICAgICAgICAgICAgICBcImxhc3RVcGRhdGVkT25cIjogXCJkZXNjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFjZXRzXCI6IFtcbiAgICAgICAgICAgICAgXCJjb21wZXRlbmNpZXNfdjUuY29tcGV0ZW5jeVRoZW1lXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibGltaXRcIjogMCxcbiAgICAgICAgICBcIm9mZnNldFwiOiAwLFxuICAgICAgICAgIFwiZmllbGRzXCI6IFtcbiAgICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBcbiAgdHJ5IHtcbiAgICB0aGlzLmxvYWRDb21ldGVuY3kgPSB0cnVlXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNhbGxDb21wZXRlbmN5U2VhcmNoKHJlcXVlc3QpO1xuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5yZXN1bHRzKSB7XG4gICAgICBpZihyZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHMpe1xuICAgICAgICBsZXQgY29tcGV0ZW5jeVRoZW1lRGF0YSA6IGFueSA9IHJlc3BvbnNlLnJlc3VsdHMucmVzdWx0LmZhY2V0c1swXS52YWx1ZXMgXG4gICAgICAgIHRoaXMub3JpZ2luYWxDb21wZXRlbmN5QXJyYXkuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgICAgaWYoZWxlbWVudC5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBldGVuY3lUaGVtZSA9IGNvbXBldGVuY3lUaGVtZURhdGEuZmlsdGVyKChlbGUxOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuICBlbGVtZW50LmNoaWxkcmVuLmZpbmQoKGVsZTI6IGFueSkgPT4gZWxlMi5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IGVsZTEubmFtZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHRoaXMuc2hvd0FsbFRoZW1lID0gW3tuYW1lOidTaG93IGFsbCcsIHNob3dBbGw6IGZhbHNlfV1cbiAgICAgICAgICAgIHRoaXMuY29tcGV0ZW5jeVRoZW1lTGVuZ3RoID0gNlxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVzZXRWaWV3TW9yZSgpXG4gICAgICB9XG4gICAgICB0aGlzLmxvYWRDb21ldGVuY3kgPSBmYWxzZVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBIYW5kbGUgZXJyb3JzXG4gICAgLy8gY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyb3IpO1xuICB9XG4gIH1cblxuICByZXNldFZpZXdNb3JlKCl7XG4gICAgT2JqZWN0LmtleXModGhpcy5hbGxjb21wZXRlbmN5VGhlbWUpLmZvckVhY2goKGNvbXA6IGFueSkgPT4ge1xuICAgICAgdGhpcy5hbGxjb21wZXRlbmN5VGhlbWVbY29tcF1bJ3ZpZXdNb3JlJ10gPSBmYWxzZVxuICAgIH0pXG4gIH1cbiAgdmlld01vcmVDaGlsZHJlbihkYXRhOiBhbnkpIHtcbiAgICBkYXRhLnZpZXdNb3JlID0gIWRhdGEudmlld01vcmVcbiAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVtkYXRhLm5hbWUudG9Mb3dlckNhc2UoKV0udmlld01vcmUgPSBkYXRhLnZpZXdNb3JlXG4gIH1cbiAgZGlzcGxheUFsbFRoZW1lKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNob3dBbGxUaGVtZVswXVsnc2hvd0FsbCddID0gIWV2ZW50LnNob3dBbGwgXG4gICAgdGhpcy5jb21wZXRlbmN5VGhlbWVMZW5ndGggPSBldmVudC5zaG93QWxsID8gIHRoaXMuY29tcGV0ZW5jeVRoZW1lLmxlbmd0aCA6IDZcbiAgICB0aGlzLnNob3dBbGxUaGVtZVswXVsnbmFtZSddID0gZXZlbnQuc2hvd0FsbCA/ICdTaG93IGxlc3MnIDogJ1Nob3cgYWxsJ1xuICAgIHRoaXMudGVtZWxldHJ5UmVzcG9uc2UuZW1pdChldmVudC5uYW1lKVxuICB9XG5cbiAgbmF2aWdhdGVUb0NvbXBldGVuY3koY29tcERhdGE6IGFueSl7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgYXBwL2xlYXJuL2Jyb3dzZS1ieS9jb21wZXRlbmN5LyR7Y29tcERhdGEubmFtZX1gKVxuICB9XG59XG4iXX0=
582
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac3VuYmlyZC1jYi9jb25zdW1wdGlvbi8iLCJzb3VyY2VzIjpbImxpYi9fY29tbW9uL2NvbXBldGVuY3ktcGFzc2Jvb2svY29tcGV0ZW5jeS1wYXNzYm9vay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFPekMsTUFBTSxPQUFPLDJCQUEyQjs7Ozs7Ozs7Ozs7SUEwQnRDLFlBQW1CLFNBQWdDLEVBQzFDLFVBQStCLEVBQy9CLGFBQXdDLEVBQ3hDLE1BQWU7UUFITCxjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUMxQyxlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBMkI7UUFDeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQXpCZixxQkFBZ0IsR0FBUSxDQUFDLENBQUE7UUFHekIsc0JBQWlCLEdBQVEsUUFBUSxDQUFBO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQTtRQUN2QyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO1FBQ3JELGtCQUFhLEdBQVksS0FBSyxDQUFBO1FBQzlCLHVCQUFrQixHQUFZLEtBQUssQ0FBQTtRQUluQyxzQkFBaUIsR0FBVSxFQUFFLENBQUE7UUFDN0Isb0JBQWUsR0FBUSxFQUFFLENBQUE7UUFDekIsdUJB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QU01QyxnREFBdUM7O0lBQ2pELGlEQUFzQzs7SUFDdEMsb0RBQStDOztJQUMvQyw2Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UsIEV2ZW50U2VydmljZSB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJztcbmltcG9ydCB7IFdpZGdldENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL3dpZGdldC1jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tcGV0ZW5jeVBhc3Nib29rU2VydmljZSB9IGZyb20gJy4vY29tcGV0ZW5jeS1wYXNzYm9vay5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NiLXVpYy1jb21wZXRlbmN5LXBhc3Nib29rJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBldGVuY3ktcGFzc2Jvb2suY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb21wZXRlbmN5LXBhc3Nib29rLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29tcGV0ZW5jeVBhc3Nib29rQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBvYmplY3REYXRhOiBhbnlcbiAgQElucHV0KCkgcHJvdmlkZXJJZDogYW55XG4gIEBJbnB1dCgpIGNhcmREaXNwbGF5Q291bnQ6IGFueSA9IDNcbiAgQElucHV0KCkgZHluYW1pY0NsYXNzOiBhbnlcbiAgQElucHV0KCkgZHluYW1pY0NvbG9yOiBhbnlcbiAgQElucHV0KCkgZHluYW1pY0FsaWduUGlsbHM6IGFueSA9ICdjZW50ZXInXG4gIEBPdXRwdXQoKSBlbXB0eVJlc3BvbnNlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgQE91dHB1dCgpIHRlbWVsZXRyeVJlc3BvbnNlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgbG9hZENvbWV0ZW5jeTogYm9vbGVhbiA9IGZhbHNlXG4gIGxvYWRDb21wZXRlbmN5QXJlYTogYm9vbGVhbiA9IGZhbHNlXG4gIG9yaWdpbmFsQ29tcGV0ZW5jeUFycmF5OiBhbnlcbiAgY29tcGV0ZW5jeUFyZWE6IGFueSBbXVxuICBzZWxlY3RlZFZhbHVlOiBhbnk7XG4gIGNvbXBldGVuY3lWZXJzaW9uOnN0cmluZyA9ICcnXG4gIGNvbXBldGVuY3lUaGVtZTogYW55ID0gW11cbiAgYWxsY29tcGV0ZW5jeVRoZW1lOiBhbnkgPXt9XG4gIGNvbXBldGVuY3lTdHJlbmd0aDogYW55ID0gMFxuICBjb21wZXRlbmN5VGhlbWVMZW5ndGg6IGFueSA9IDZcbiAgc2hvd0FsbFRoZW1lIDogYW55ID0gW3tuYW1lOidTaG93IGFsbCcsIHNob3dBbGw6IGZhbHNlfV1cblxuICAvLyBzdWJUaGVtZSA9IFsnQmVoYXZpb3VyYWwnXVxuICAvLyBjdXJyZW50RmlsdGVyID0gJ0JlaGF2aW91cmFsJ1xuICAvLyBjdXJyZW50Q29tcGV0ZW5jaWVzOiBhbnkgPSBbXVxuICAvLyBjb21wZXRlbmN5RGF0YTogYW55XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcbiAgICBwdWJsaWMgY29udGVudFN2YzpXaWRnZXRDb250ZW50U2VydmljZSxcbiAgICBwdWJsaWMgY29tcGV0ZW5jeVN2YzogQ29tcGV0ZW5jeVBhc3Nib29rU2VydmljZSxcbiAgICBwdWJsaWMgcm91dGVyIDogUm91dGVyXG4gICkgeyBcbiAgICBcbiAgfVxuXG4gXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ2V0QWxsQ29tcGV0ZW5jaWVzKClcbiAgICAvLyB0aGlzLmNvbXBldGVuY3lEYXRhID0gdGhpcy5vYmplY3REYXRhXG4gICAgLy8gdGhpcy5maWx0ZXIodGhpcy5jdXJyZW50RmlsdGVyKVxuICB9XG4gIC8vIGZpbHRlcihmaWx0ZXJWYWx1ZTogc3RyaW5nKSB7XG4gIC8vICAgdGhpcy5jdXJyZW50RmlsdGVyID0gZmlsdGVyVmFsdWVcbiAgLy8gICB0aGlzLmN1cnJlbnRDb21wZXRlbmNpZXMgPSB0aGlzLmNvbXBldGVuY3lEYXRhLmRhdGEuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0udHlwZSA9PT0gZmlsdGVyVmFsdWUpXG4gIC8vIH1cbiAgc2hvd01vcmUoKSB7XG4gICAgdGhpcy5vYmplY3REYXRhLnZpZXdNb3JlID0gIXRoaXMub2JqZWN0RGF0YS52aWV3TW9yZVxuICB9XG5cbiAgLy8gdG8gZ2V0IGNvbXBldGVuY3kgYXJlYSBmcm9tIGZhY2V0c1xuICBhc3luYyBnZXRDb21wZXRlbmN5QXJlYSgpe2xldCBhZGRmaWx0ZXI6IGFueSA9IHt9XG4gIGlmKHRoaXMucHJvdmlkZXJJZCkge1xuICAgIGFkZGZpbHRlciA9IHtcbiAgICAgIFwiY3JlYXRlZEZvclwiOiBbXG4gICAgICAgIHRoaXMucHJvdmlkZXJJZFxuICAgICBdLFxuICAgIH1cbiAgfVxuICAgIHRoaXMubG9hZENvbXBldGVuY3lBcmVhID0gdHJ1ZVxuICAgIGxldCByZXF1ZXN0ID0ge1xuICAgICAgICBcInJlcXVlc3RcIjoge1xuICAgICAgICAgICAgXCJxdWVyeVwiOiBcIlwiLFxuICAgICAgICAgICAgXCJmaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImNvbnRlbnRUeXBlXCI6XCJDb3Vyc2VcIixcbiAgICAgICAgICAgICAgICAuLi5hZGRmaWx0ZXIsXG4gICAgICAgICAgICAgICAgXCJzdGF0dXNcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIkxpdmVcIlxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInNvcnRfYnlcIjoge1xuICAgICAgICAgICAgICAgIFwibGFzdFVwZGF0ZWRPblwiOiBcImRlc2NcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmFjZXRzXCI6IFtcbiAgICAgICAgICAgICAgICBcImNvbXBldGVuY2llc192NS5jb21wZXRlbmN5QXJlYVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJsaW1pdFwiOiAwLFxuICAgICAgICAgICAgXCJvZmZzZXRcIjogMCxcbiAgICAgICAgICAgIFwiZmllbGRzXCI6IFtcbiAgICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIFxuICAgIHRyeSB7XG4gICAgICB0aGlzLmNvbXBldGVuY3lTdHJlbmd0aCA9ICAwXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2FsbENvbXBldGVuY3lTZWFyY2gocmVxdWVzdCk7XG4gICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UucmVzdWx0cykge1xuICAgICAgICBpZihyZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHMpe1xuICAgICAgICAgIHJlc3BvbnNlLnJlc3VsdHMucmVzdWx0LmZhY2V0cy5mb3JFYWNoKChmYWN0OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmKGZhY3QubmFtZSA9PT0gJ2NvbXBldGVuY2llc192NS5jb21wZXRlbmN5QXJlYScpIHtcbiAgICAgICAgICAgICAgdGhpcy5jb21wZXRlbmN5QXJlYSA9IGZhY3QudmFsdWVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlICA9IHRoaXMuY29tcGV0ZW5jeUFyZWFbMF0ubmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgdGhpcy5jb21wZXRlbmN5QXJlYS5mb3JFYWNoKGFzeW5jIChhcmVhOiBhbnksIGluZGV4VmFsdWU6IGFueSk9PiB7XG4gICAgICAgICAgICBsZXQgYWRkRmlsdGVyID0ge1xuICAgICAgICAgICAgICBcImNyZWF0ZWRGb3JcIjogW1xuICAgICAgICAgICAgICAgIHRoaXMucHJvdmlkZXJJZFxuICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBkYXRhID0gYXdhaXQgdGhpcy5nZXRjb21wZXRlbmN5VGhlbWVDb3VudChhcmVhLCBhZGRGaWx0ZXIpXG4gICAgICAgICAgICBhcmVhWyd0aGVtZURhdGEnXSA9IGRhdGFcbiAgICAgICAgICAgIGFyZWFbJ2NvdW50J10gPSBkYXRhLmxlbmd0aFxuXG4gICAgICAgICAgICB0aGlzLmNvbXBldGVuY3lTdHJlbmd0aCA9IHRoaXMuY29tcGV0ZW5jeVN0cmVuZ3RoICsgZGF0YS5sZW5ndGhcbiAgICAgICAgICAgIGlmKGluZGV4VmFsdWUgPT09IDApIHtcbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIHRoaXMuZ2V0VGhlbWVEYXRhQnlBcmVhKGFyZWEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgICB0aGlzLmxvYWRDb21wZXRlbmN5QXJlYSA9IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5sb2FkQ29tcGV0ZW5jeUFyZWEgPSBmYWxzZVxuICAgICAgdGhpcy5lbXB0eVJlc3BvbnNlLmVtaXQodHJ1ZSlcbiAgICAgIC8vIEhhbmRsZSBlcnJvcnNcbiAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjYWxsQ29tcGV0ZW5jeVNlYXJjaChyZXF1ZXN0KXtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAocmVxdWVzdCAmJiByZXF1ZXN0KSB7XG4gICAgICAgIHRoaXMuY29udGVudFN2Yy5zZWFyY2hWNihyZXF1ZXN0KS5zdWJzY3JpYmUocmVzdWx0cyA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHsgcmVzdWx0cyB9KTtcbiAgICAgICAgICB9LChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBjb21wZXRlbmN5IHRoZWFtIGNoYW5nZVxuICBjb21wZXRlbmN5Q2hhbmdlKGUpe1xuICAgIGxldCBhZGRmaWx0ZXI6IGFueSA9IHt9XG4gICAgaWYodGhpcy5wcm92aWRlcklkKSB7XG4gICAgICBhZGRmaWx0ZXIgPSB7XG4gICAgICAgIFwiY3JlYXRlZEZvclwiOiBbXG4gICAgICAgICAgdGhpcy5wcm92aWRlcklkXG4gICAgICAgXSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnRlbWVsZXRyeVJlc3BvbnNlLmVtaXQoZS5uYW1lKVxuICAgIFxuICAgIHRoaXMuZ2V0VGhlbWVEYXRhQnlBcmVhKGUpXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZS5uYW1lXG4gIH1cbiAgZ2V0QWxsQ29tcGV0ZW5jaWVzKCl7XG4gICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gdHJ1ZVxuICAgIGxldCByZXF1ZXN0ID0ge1wic2VhcmNoXCI6e1widHlwZVwiOlwiQ29tcGV0ZW5jeSBBcmVhXCJ9LFwiZmlsdGVyXCI6e1wiaXNEZXRhaWxcIjp0cnVlfX1cbiAgICB0aGlzLmNvbXBldGVuY3lTdmMuZ2V0Q29tcGV0ZW5jeUxpc3QocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZSA9IHt9XG4gICAgICBpZihyZXNwb25zZSAmJiByZXNwb25zZS5yZXN1bHQgJiYgcmVzcG9uc2UucmVzdWx0LmNvbXBldGVuY3kpIHtcbiAgICAgICAgdGhpcy5vcmlnaW5hbENvbXBldGVuY3lBcnJheSA9IHJlc3BvbnNlLnJlc3VsdC5jb21wZXRlbmN5XG5cbiAgICAgICAgdGhpcy5nZXRDb21wZXRlbmN5QXJlYSgpXG4gICAgICAgIHJlc3BvbnNlLnJlc3VsdC5jb21wZXRlbmN5LmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgZWxlbWVudC5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZEVsZSkgPT4ge1xuICAgICAgICAgICAgbGV0IG5hbWUgPSBjaGlsZEVsZS5uYW1lLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgIHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW25hbWVdID0gY2hpbGRFbGVcbiAgICAgICAgICAgIHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW25hbWVdWyd2aWV3TW9yZSddID0gZmFsc2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLmxvYWRDb21ldGVuY3kgPSBmYWxzZVxuICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXRjb21wZXRlbmN5VGhlbWUodmFsdWU6IGFueSxhZGRGaWx0ZXI/OiBhbnkpIHtcbiAgICBsZXQgcmVxdWVzdCA9IHtcbiAgICAgIFwicmVxdWVzdFwiOiB7XG4gICAgICAgICAgXCJxdWVyeVwiOiBcIlwiLFxuICAgICAgICAgIFwiZmlsdGVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiY29udGVudFR5cGVcIjpcIkNvdXJzZVwiLFxuICAgICAgICAgICAgICAuLi5hZGRGaWx0ZXIsXG4gICAgICAgICAgICAgIFwiY29tcGV0ZW5jaWVzX3Y1LmNvbXBldGVuY3lBcmVhXCIgOiB2YWx1ZSxcbiAgICAgICAgICAgICAgXCJzdGF0dXNcIjogW1xuICAgICAgICAgICAgICAgICAgXCJMaXZlXCJcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzb3J0X2J5XCI6IHtcbiAgICAgICAgICAgICAgXCJsYXN0VXBkYXRlZE9uXCI6IFwiZGVzY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhY2V0c1wiOiBbXG4gICAgICAgICAgICAgIFwiY29tcGV0ZW5jaWVzX3Y1LmNvbXBldGVuY3lUaGVtZVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcImxpbWl0XCI6IDAsXG4gICAgICAgICAgXCJvZmZzZXRcIjogMCxcbiAgICAgICAgICBcImZpZWxkc1wiOiBbXG4gICAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgXG4gIHRyeSB7XG4gICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gdHJ1ZVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jYWxsQ29tcGV0ZW5jeVNlYXJjaChyZXF1ZXN0KTtcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UucmVzdWx0cykge1xuICAgICAgaWYocmVzcG9uc2UucmVzdWx0cy5yZXN1bHQuZmFjZXRzKXtcbiAgICAgICAgbGV0IGNvbXBldGVuY3lUaGVtZURhdGEgOiBhbnkgPSByZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHNbMF0udmFsdWVzIFxuICAgICAgICB0aGlzLm9yaWdpbmFsQ29tcGV0ZW5jeUFycmF5LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmKGVsZW1lbnQubmFtZS50b0xvd2VyQ2FzZSgpID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jb21wZXRlbmN5VGhlbWUgPSBjb21wZXRlbmN5VGhlbWVEYXRhLmZpbHRlcigoZWxlMTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAgZWxlbWVudC5jaGlsZHJlbi5maW5kKChlbGUyOiBhbnkpID0+IGVsZTIubmFtZS50b0xvd2VyQ2FzZSgpID09PSBlbGUxLm5hbWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB0aGlzLnNob3dBbGxUaGVtZSA9IFt7bmFtZTonU2hvdyBhbGwnLCBzaG93QWxsOiBmYWxzZX1dXG4gICAgICAgICAgICB0aGlzLmNvbXBldGVuY3lUaGVtZUxlbmd0aCA9IDZcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlc2V0Vmlld01vcmUoKVxuICAgICAgfVxuICAgICAgdGhpcy5sb2FkQ29tZXRlbmN5ID0gZmFsc2VcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gSGFuZGxlIGVycm9yc1xuICAgIC8vIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycm9yKTtcbiAgfVxuICB9XG5cbiAgZ2V0VGhlbWVEYXRhQnlBcmVhKGFyZWFEYXRhOiBhbnkpe1xuICAgIGxldCBjb21wZXRlbmN5VGhlbWVEYXRhIDogYW55ID0gYXJlYURhdGEudGhlbWVEYXRhXG4gICAgICAgIHRoaXMub3JpZ2luYWxDb21wZXRlbmN5QXJyYXkuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgICAgaWYoZWxlbWVudC5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IGFyZWFEYXRhLm5hbWUpIHtcbiAgICAgICAgICAgdGhpcy5jb21wZXRlbmN5VGhlbWUgPSBjb21wZXRlbmN5VGhlbWVEYXRhLmZpbHRlcigoZWxlMTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAgZWxlbWVudC5jaGlsZHJlbi5maW5kKChlbGUyOiBhbnkpID0+IGVsZTIubmFtZS50b0xvd2VyQ2FzZSgpID09PSBlbGUxLm5hbWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB0aGlzLnNob3dBbGxUaGVtZSA9IFt7bmFtZTonU2hvdyBhbGwnLCBzaG93QWxsOiBmYWxzZX1dXG4gICAgICAgICAgICB0aGlzLmNvbXBldGVuY3lUaGVtZUxlbmd0aCA9IDZcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgYWRkZmlsdGVyOiBhbnkgPSB7fVxuICAgICAgICBpZih0aGlzLnByb3ZpZGVySWQpIHtcbiAgICAgICAgICBhZGRmaWx0ZXIgPSB7XG4gICAgICAgICAgICBcImNyZWF0ZWRGb3JcIjogW1xuICAgICAgICAgICAgICB0aGlzLnByb3ZpZGVySWRcbiAgICAgICAgICAgXSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5nZXRjb21wZXRlbmN5U3ViVGhlbWUoYXJlYURhdGEsYWRkZmlsdGVyKVxuICB9XG5cbiAgYXN5bmMgZ2V0Y29tcGV0ZW5jeVRoZW1lQ291bnQoYXJlYTogYW55LGFkZEZpbHRlcj86IGFueSkge1xuICAgIGxldCByZXF1ZXN0ID0ge1xuICAgICAgXCJyZXF1ZXN0XCI6IHtcbiAgICAgICAgICBcInF1ZXJ5XCI6IFwiXCIsXG4gICAgICAgICAgXCJmaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJjb250ZW50VHlwZVwiOlwiQ291cnNlXCIsXG4gICAgICAgICAgICAgIC4uLmFkZEZpbHRlcixcbiAgICAgICAgICAgICAgXCJjb21wZXRlbmNpZXNfdjUuY29tcGV0ZW5jeUFyZWFcIiA6IGFyZWEubmFtZSxcbiAgICAgICAgICAgICAgXCJzdGF0dXNcIjogW1xuICAgICAgICAgICAgICAgICAgXCJMaXZlXCJcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzb3J0X2J5XCI6IHtcbiAgICAgICAgICAgICAgXCJsYXN0VXBkYXRlZE9uXCI6IFwiZGVzY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhY2V0c1wiOiBbXG4gICAgICAgICAgICAgIFwiY29tcGV0ZW5jaWVzX3Y1LmNvbXBldGVuY3lUaGVtZVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcImxpbWl0XCI6IDAsXG4gICAgICAgICAgXCJvZmZzZXRcIjogMCxcbiAgICAgICAgICBcImZpZWxkc1wiOiBbXG4gICAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgXG4gIHRyeSB7XG4gICAgbGV0IHJldHVybmVkRGF0YSA6IGFueSA9IFxuICAgIHRoaXMubG9hZENvbWV0ZW5jeSA9IHRydWVcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2FsbENvbXBldGVuY3lTZWFyY2gocmVxdWVzdCk7XG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnJlc3VsdHMpIHtcbiAgICAgIGlmKHJlc3BvbnNlLnJlc3VsdHMucmVzdWx0LmZhY2V0cyl7XG4gICAgICAgIGxldCBjb21wZXRlbmN5VGhlbWVEYXRhIDogYW55ID0gcmVzcG9uc2UucmVzdWx0cy5yZXN1bHQuZmFjZXRzWzBdLnZhbHVlcyBcbiAgICAgICAgdGhpcy5vcmlnaW5hbENvbXBldGVuY3lBcnJheS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgICBpZihlbGVtZW50Lm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gYXJlYS5uYW1lKSB7XG4gICAgICAgICAgIHJldHVybmVkRGF0YSA9IGNvbXBldGVuY3lUaGVtZURhdGEuZmlsdGVyKChlbGUxOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuICBlbGVtZW50LmNoaWxkcmVuLmZpbmQoKGVsZTI6IGFueSkgPT4gZWxlMi5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IGVsZTEubmFtZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHRoaXMuc2hvd0FsbFRoZW1lID0gW3tuYW1lOidTaG93IGFsbCcsIHNob3dBbGw6IGZhbHNlfV1cbiAgICAgICAgICAgIHRoaXMuY29tcGV0ZW5jeVRoZW1lTGVuZ3RoID0gNlxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLmxvYWRDb21ldGVuY3kgPSBmYWxzZVxuICAgICAgcmV0dXJuIHJldHVybmVkRGF0YVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBIYW5kbGUgZXJyb3JzXG4gICAgLy8gY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyb3IpO1xuICB9XG4gIH1cblxuICByZXNldFZpZXdNb3JlKCl7XG4gICAgT2JqZWN0LmtleXModGhpcy5hbGxjb21wZXRlbmN5VGhlbWUpLmZvckVhY2goKGNvbXA6IGFueSkgPT4ge1xuICAgICAgdGhpcy5hbGxjb21wZXRlbmN5VGhlbWVbY29tcF1bJ3ZpZXdNb3JlJ10gPSBmYWxzZVxuICAgIH0pXG4gIH1cbiAgdmlld01vcmVDaGlsZHJlbihkYXRhOiBhbnkpIHtcbiAgICBkYXRhLnZpZXdNb3JlID0gIWRhdGEudmlld01vcmVcbiAgICB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVtkYXRhLm5hbWUudG9Mb3dlckNhc2UoKV0udmlld01vcmUgPSBkYXRhLnZpZXdNb3JlXG4gIH1cbiAgZGlzcGxheUFsbFRoZW1lKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNob3dBbGxUaGVtZVswXVsnc2hvd0FsbCddID0gIWV2ZW50LnNob3dBbGwgXG4gICAgdGhpcy5jb21wZXRlbmN5VGhlbWVMZW5ndGggPSBldmVudC5zaG93QWxsID8gIHRoaXMuY29tcGV0ZW5jeVRoZW1lLmxlbmd0aCA6IDZcbiAgICB0aGlzLnNob3dBbGxUaGVtZVswXVsnbmFtZSddID0gZXZlbnQuc2hvd0FsbCA/ICdTaG93IGxlc3MnIDogJ1Nob3cgYWxsJ1xuICAgIHRoaXMudGVtZWxldHJ5UmVzcG9uc2UuZW1pdChldmVudC5uYW1lKVxuICB9XG5cbiAgbmF2aWdhdGVUb0NvbXBldGVuY3koY29tcERhdGE6IGFueSl7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgL2FwcC9sZWFybi9icm93c2UtYnkvY29tcGV0ZW5jeS8ke2NvbXBEYXRhLm5hbWV9YClcbiAgfVxuXG5cbiAgYXN5bmMgZ2V0Y29tcGV0ZW5jeVN1YlRoZW1lKGNvbXBBcmVhOiBhbnksYWRkRmlsdGVyPzogYW55KSB7XG4gICAgbGV0IHJlcXVlc3QgPSB7XG4gICAgICBcInJlcXVlc3RcIjoge1xuICAgICAgICAgIFwicXVlcnlcIjogXCJcIixcbiAgICAgICAgICBcImZpbHRlcnNcIjoge1xuICAgICAgICAgICAgICBcImNvbnRlbnRUeXBlXCI6XCJDb3Vyc2VcIixcbiAgICAgICAgICAgICAgLi4uYWRkRmlsdGVyLFxuICAgICAgICAgICAgICBcImNvbXBldGVuY2llc192NS5jb21wZXRlbmN5QXJlYVwiIDogY29tcEFyZWEubmFtZSxcbiAgICAgICAgICAgICAgXCJzdGF0dXNcIjogW1xuICAgICAgICAgICAgICAgICAgXCJMaXZlXCJcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzb3J0X2J5XCI6IHtcbiAgICAgICAgICAgICAgXCJsYXN0VXBkYXRlZE9uXCI6IFwiZGVzY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhY2V0c1wiOiBbXG4gICAgICAgICAgICAgIFwiY29tcGV0ZW5jaWVzX3Y1LmNvbXBldGVuY3lTdWJUaGVtZUlkXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibGltaXRcIjogMCxcbiAgICAgICAgICBcIm9mZnNldFwiOiAwLFxuICAgICAgICAgIFwiZmllbGRzXCI6IFtcbiAgICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBcbiAgdHJ5IHtcbiAgICB0aGlzLmxvYWRDb21ldGVuY3kgPSB0cnVlXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNhbGxDb21wZXRlbmN5U2VhcmNoKHJlcXVlc3QpO1xuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5yZXN1bHRzKSB7XG4gICAgICBpZihyZXNwb25zZS5yZXN1bHRzLnJlc3VsdC5mYWNldHMpe1xuICAgICAgICBsZXQgY29tcGV0ZW5jeVN1YlRoZW1lRGF0YSA6IGFueSA9IHJlc3BvbnNlLnJlc3VsdHMucmVzdWx0LmZhY2V0c1swXS52YWx1ZXMgXG4gICAgICAgIHRoaXMuY29tcGV0ZW5jeUFyZWEuZm9yRWFjaCgoYXJlYUVsZTogYW55KSA9PiB7XG4gICAgICAgICAgaWYoYXJlYUVsZS5uYW1lID09PSBjb21wQXJlYS5uYW1lKSB7XG4gICAgICAgICAgICBhcmVhRWxlLnRoZW1lRGF0YS5mb3JFYWNoKCh0aGVtZUVsZSkgPT4ge1xuICAgICAgICAgICAgICBpZih0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVt0aGVtZUVsZS5uYW1lLnRvTG93ZXJDYXNlKCldICYmXG4gICAgICAgICAgICAgIHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW3RoZW1lRWxlLm5hbWUudG9Mb3dlckNhc2UoKV0uY2hpbGRyZW4gJiYgXG4gICAgICAgICAgICAgIHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW3RoZW1lRWxlLm5hbWUudG9Mb3dlckNhc2UoKV0uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB0aGlzLmFsbGNvbXBldGVuY3lUaGVtZVt0aGVtZUVsZS5uYW1lLnRvTG93ZXJDYXNlKCldLmNoaWxkcmVuLmZpbHRlcihvYmoxID0+IFxuICAgICAgICAgICAgICAgICAgY29tcGV0ZW5jeVN1YlRoZW1lRGF0YS5zb21lKG9iajIgPT4gXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKG9iajEpLmV2ZXJ5KGtleSA9PiBvYmoxWydpZCddID09PSBOdW1iZXIob2JqMlsnbmFtZSddKSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHRoaXMuYWxsY29tcGV0ZW5jeVRoZW1lW3RoZW1lRWxlLm5hbWUudG9Mb3dlckNhc2UoKV1bJ2NoaWxkcmVuJ10gPSBkYXRhXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIHRoaXMubG9hZENvbWV0ZW5jeSA9IGZhbHNlXG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIEhhbmRsZSBlcnJvcnNcbiAgICAvLyBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnJvcik7XG4gIH1cbiAgfVxufVxuIl19
@@ -215,7 +215,7 @@ ProvidersV2Component.decorators = [
215
215
  { type: Component, args: [{
216
216
  selector: 'sb-uic-providers-v2',
217
217
  template: "<ws-widget-btn-page-back [widgetData]=\"{ url: 'home', titles: titles }\">\n</ws-widget-btn-page-back>\n<div class=\"container-fluid\" id=\"section-micro-sites\">\n <div class=\"flex flex-col flex-1\">\n <ng-container *ngIf=\"sectionList?.length\">\n <ng-container *ngFor=\"let section of sectionList\">\n <ng-container *ngIf=\"section?.enabled\">\n <section id=\"{{section?.key}}\" class=\"w-full grid grid-cols-12 gap-4\">\n <ng-container *ngFor=\"let column of section.column\">\n <div id=\"{{column?.key}}\" class=\"col-span-{{column.colspan || 12}} \">\n <ng-container *ngIf=\"column?.enabled\" [ngSwitch]=\"column?.key\">\n <ng-container *ngSwitchCase=\"'topSection'\" [ngTemplateOutlet]=\"topSection\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'trainingCalendar'\" [ngTemplateOutlet]=\"trainingCalendar\"\n [ngTemplateOutletContext]=\"{trainingCalendar: column.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contributors'\" [ngTemplateOutlet]=\"contributors\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'infra'\" [ngTemplateOutlet]=\"infra\"\n [ngTemplateOutletContext]=\"{infra: column?.data}\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentFeaturedStrip'\" [ngTemplateOutlet]=\"contentStripTemplate\"\n [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container>\n <ng-container *ngSwitchCase=\"'contentTopStrip'\" [ngTemplateOutlet]=\"contentStripTemplate\"\n [ngTemplateOutletContext]=\"{\n data: {contentStrip: column?.data, sectionKey: section.key}\n }\"></ng-container> \n <ng-container *ngSwitchCase=\"'competency'\" [ngTemplateOutlet]=\"competency\"\n [ngTemplateOutletContext]=\"{competency: column}\"></ng-container> \n <ng-container *ngSwitchCase=\"'learnerReview'\" [ngTemplateOutlet]=\"learnerReviewBlock\"\n [ngTemplateOutletContext]=\"{data: column?.data}\"></ng-container> \n </ng-container>\n </div>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n<div class=\"container-fluid\" *ngIf=\"navList?.length\">\n <div class=\"flex sticky-navigator gap-4\">\n <mat-icon class=\"nav-up-arrow cursor-pointer\" (click)=\"scrollToSection('section-micro-sites')\">arrow_upwards</mat-icon>\n <ng-container *ngFor=\"let section of navList\">\n <ng-container *ngIf=\"section.navigation\">\n <div class=\"nav-button\" (click)=\"scrollToSection(section?.key); raiseNavTelemetry(section?.title)\">{{section?.title}}</div>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #topSection let-data=\"data\">\n <!-- <div class=\"w-full grid grid-cols-12 gap-4\"> -->\n <div class=\"col-span-12 \">\n <div class=\"grid grid-cols-12\">\n <div class=\"hidden md:block p-5 custombgsection\">\n <sb-uic-data-points [providerId]=\"providerId\" [fetchDataFromApi]=\"true\" [objectData]=\"data?.metrics?.data\" [layoutType]=\"'multipleRows-V2'\"></sb-uic-data-points>\n </div>\n <div class=\"col-span-3\"></div>\n <div class=\"col-span-12 md:col-span-9\">\n <div class=\"slider h-full\" *ngIf=\"data?.sliderData?.sliders\">\n <sb-uic-sliders [title]=\"providerName\" [widgetData]=\"data?.sliderData?.sliders\" [styleData]=\"data?.sliderData?.styleData\" [type]=\"'atictitop'\"></sb-uic-sliders>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 title-section px-5 md:py-5 mob-container\">\n <div class=\"container flex flex-col md:flex-row\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-rounded top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n </div>\n </div>\n <div class=\"w-full md:w-9/12 flex-1 flex flex-col\">\n <h1 class=\" txt-ellipsis-2 break-words\">{{data?.title || providerName}}</h1>\n <p>{{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n </p>\n <div class=\"block md:hidden overflow-y-auto mb-3\">\n <sb-uic-data-points [providerId]=\"providerId\" [fetchDataFromApi]=\"true\" [objectData]=\"data?.metrics?.data\" [layoutType]=\"'singleRow-v2'\"></sb-uic-data-points>\n </div>\n <button\n (click)=\"raiseTelemetry(data?.contentButton?.title)\"\n [routerLink]=\"[data?.contentButton?.redirectUrl, providerName, providerId, 'all-CBP']\"\n [queryParams]=\"{pageDetails: true}\" mat-button type=\"button\"\n class=\"view-btn margin-left-xs margin-right-xs small-button blue-border flex-auto-display\">\n <span class=\"mat-heading-1 bold ws-mat-default-text\" i18n>\n {{data?.contentButton?.title}}\n </span>\n </button>\n </div>\n </div>\n </div>\n <!-- </div> -->\n</ng-template>\n\n<ng-template #contentStripTemplate let-data=\"data\">\n <ng-container *ngIf=\"!data?.contentStrip?.hideSection\">\n <div class=\"flex justify-center relative\">\n <img class=\"absolute {{data?.contentStrip?.sectionImagePosition}}\" src=\"{{data?.contentStrip?.sectionImage}}\" alt=\"\">\n <div class=\"container \">\n <div class=\"w-full\">\n <sb-uic-content-strip-with-tabs\n [emitViewAll]=\"true\"\n (viewAllResponse)=\"showAllContent($event,data)\"\n (emptyResponse)=\"hideContentStrip($event, data)\"\n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\"\n [providerId]=\"providerId\"\n [widgetData]=\"data?.contentStrip\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #contributors let-data=\"data\">\n <div class=\"contributors-background px-5 py-5\" [style.background]=\"data?.background\">\n <div class=\"container\">\n <div class=\"grid grid-cols-12 gap-4 padding-top-l mb-6\">\n <div class=\"col-span-12 md:col-span-3 contributor-desc\">\n <div class=\"infra-box flex flex-col\">\n <div class=\"infra-title-v2 hidden md:block\">\n {{data.detaulTitle}}<span class=\"infra-title2-v2\">{{data.defaultTitle1}}</span>\n </div>\n <div class=\"infra-title-v2 hidden md:block\">\n {{data.myTitle}}<span class=\"infra-title2-v2\">{{data.myTitle1}}</span>\n </div>\n <div class=\"block md:hidden\">\n <span class=\"infra-title-v2\">{{data.detaulTitle}}</span>\n <span class=\"infra-title2-v2\">{{data.defaultTitle1}}</span>\n <span class=\"infra-title-v2\"> {{data.myTitle}}</span>\n <span class=\"infra-title2-v2\">{{data.myTitle1}}</span>\n </div>\n <div class=\"infra-description padding-top-s\">\n {{data.description}}\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-9\">\n <sb-uic-common-strip [widgetData]=\"data\"></sb-uic-common-strip>\n </div>\n </div>\n <div class=\"w-full section-divider pt-6\">\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #infra let-infra=\"infra\">\n <div class=\"infra-background px-5\" [style.background]=\"infra?.background\">\n <div class=\"container\">\n <div class=\"grid grid-cols-12 gap-4 infra-sec margin-bottom-xl\">\n <div class=\"col-span-12 md:col-span-4 infra-sec-desc margin-bottom-xl\">\n <div class=\"infra-box flex flex-col\">\n <div class=\"infra-title2 hidden md:block\">\n {{infra?.detaulTitle}}\n </div>\n <div class=\"block md:hidden\">\n <span class=\"infra-title2\">{{infra?.detaulTitle}}</span>\n </div>\n <div class=\"infra-description padding-top-s\">\n {{infra?.description}}\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-8 margin-bottom-xl\">\n <sb-uic-data-points [objectData]=\"infra\" [layoutType]=\"'gridLayout'\"></sb-uic-data-points>\n </div>\n </div>\n </div>\n </div>\n <div class=\"infra-background slider-background\" [style.background]=\"infra?.background\">\n </div>\n <div class=\"slider-background1 mb-8\">\n <div class=\"container-balanced w-full slider-background-2\">\n <div class=\"info-slider\">\n <sb-uic-sliders class=\"infobanner\" [widgetData]=\"infra?.sliderData?.sliders\" [styleData]=\"infra?.sliderData?.styleData\"></sb-uic-sliders>\n </div>\n </div>\n </div>\n</ng-template>\n\n<!-- Start Competencies -->\n<ng-template #competency let-competency=\"competency\">\n <div class=\"padding-top-l padding-bottom-l relative\" [style.background]=\"competency?.background\" *ngIf=\"!hideCompetencyBlock\">\n <div class=\"w-full container-balanced\">\n <div class=\"pl-4 pr-4 md:pl-0 md:pr-0\">\n <sb-uic-competency-passbook\n (emptyResponse)=\"hideCompetency($event, competency)\"\n (temeletryResponse)=\"raiseCompetencyTelemetry($event)\"\n [objectData]=\"competency\"\n [providerId]=\"providerId\">\n </sb-uic-competency-passbook>\n </div>\n </div>\n <img class=\"absolute comp-back-img\" src=\"assets/icons/microsite/competency.svg\" alt=\"\">\n </div>\n</ng-template>\n<!-- End Competencies -->\n\n<ng-template #trainingCalendar let-trainingCalendar=\"trainingCalendar\">\n <div class=\"hidden md:block\">\n <div class=\"col-span-12 px-8 py-8\" [style.background]=\"trainingCalendar?.background\">\n <div class=\"container-balanced flex flex-col\">\n <div class=\"col-span-12 mat-subheading-1 margin-remove\">{{trainingCalendar?.title}}: {{currentMonthAndYear}}</div>\n <sb-uic-calender\n [objectData]=\"trainingCalendar\"\n [fetchDataFromApi]=\"true\"\n [layoutType]=\"'grid'\"\n [defaultDays]=\"trainingCalendar?.defaultDays\"\n [providerId]=\"providerId\">\n </sb-uic-calender>\n </div>\n <div class=\"flex item-center justify-center\">\n <button mat-button type=\"button\"\n (click)=\"raiseTelemetry(trainingCalendar?.contentButton?.title)\"\n [routerLink]=\"[trainingCalendar?.contentButton?.redirectUrl, providerName, providerId, 'training-calendar']\"\n class=\"view-btn margin-left-xs margin-right-xs small-button blue-border flex-auto-display\">\n <span class=\"mat-heading-1 bold ws-mat-default-text\" i18n>\n {{trainingCalendar?.contentButton?.title}}\n </span>\n </button>\n </div>\n </div>\n </div>\n <div class=\"block md:hidden\">\n <div class=\"col-span-12 px-5 py-3 mob-header\">{{trainingCalendar?.title}}: {{currentMonthAndYear}}</div>\n <div class=\"col-span-12\">\n <sb-uic-calender\n [objectData]=\"trainingCalendar\"\n [fetchDataFromApi]=\"true\"\n [layoutType]=\"'row'\"\n [defaultDays]=\"trainingCalendar?.defaultDays\"\n [providerId]=\"providerId\">\n </sb-uic-calender>\n </div>\n <div class=\"col-span-12 flex item-center justify-center\">\n <button mat-button type=\"button\"\n (click)=\"raiseTelemetry(trainingCalendar?.contentButton?.title)\"\n [routerLink]=\"[trainingCalendar?.contentButton?.redirectUrl, providerName, providerId, 'training-calendar']\"\n class=\"view-btn margin-left-xs margin-right-xs small-button blue-border flex-auto-display\">\n <span class=\"mat-heading-1 bold ws-mat-default-text\" i18n>\n {{trainingCalendar?.contentButton?.title}}\n </span>\n </button>\n </div>\n </div>\n</ng-template>\n<ng-template #learnerReviewBlock let-data=\"data\">\n <div class=\"contributors-background px-5 py-5\" [style.background]=\"data?.background\" *ngIf=\"!data?.hideSection\">\n <div class=\"container\">\n <div class=\"grid grid-cols-12 gap-4 padding-top-l mb-6\">\n <div class=\"col-span-12 md:col-span-4 contributor-desc\">\n <div class=\"infra-box-review flex flex-col\">\n <div class=\"learner-title hidden md:block\">\n {{data?.detaulTitle}}\n </div>\n <div class=\"infra-title2 hidden md:block\">\n {{data?.myTitle}}\n </div>\n <div class=\"block md:hidden\">\n <span class=\"learner-title\">{{data?.detaulTitle}}</span> <span class=\"infra-title2\"> {{data?.myTitle}}</span>\n </div> \n </div> \n </div>\n <div class=\"col-span-12 md:col-span-8\">\n <sb-uic-user-content-rating (emptyResponse)=\"hideLearnerReview($event, data)\" [formData]=\"data\" [providerId]=\"providerId\"></sb-uic-user-content-rating>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n",
218
- styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.section-divider{border-bottom:1px solid rgba(0,0,0,.16)}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.logo-box{vertical-align:middle;max-width:250px;background:#f5fdf1;padding:8px;border:1px solid rgba(0,0,0,.5)}.title-section{position:relative;display:flex;justify-content:center;background-color:#fff}.logo-box-container{width:180px;position:relative}@media only screen and (max-width:599px){.logo-box-container{width:112px;height:72px}}.view-btn{width:160px;background:#fff;padding:0 16px;border-radius:49px;border:1px solid #1b4ca9;font-weight:700!important;font-size:14px;margin-top:4px;margin-bottom:4px;line-height:36px;cursor:pointer}.logo-box-rounded{height:180px;width:180px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px 0 rgba(0,0,0,.06)}.logo-box-rounded .logo-img{max-width:122px}@media only screen and (max-width:599px){.view-btn{margin-top:12px;margin-bottom:16px}.logo-box-rounded{width:112px;height:112px}.logo-box-rounded .logo-img{max-width:84px}}.slider-box{max-width:30%}.stats-container{justify-content:space-around;display:flex;flex-wrap:wrap}.stats-item{display:flex;align-items:center;flex-wrap:nowrap;padding:8px 16px;margin-bottom:16px}.banner-metrics{background:linear-gradient(180deg,#f9cb97 -107.59%,#ef951e 110.74%)}.infra-sec-desc{padding-top:32px}.contributors-background,.infra-background{align-items:center;justify-content:center;display:flex}.contributor-desc{align-items:center;display:inline-flex;margin-top:-24px}.infra-box{width:256px}.infra-box-review{width:100%}.infra-title-v2{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left;color:#fff}.infra-title2-v2{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left;color:#ef951e}.infra-title{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left;color:#fff}.infra-title2{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left;color:#ef951e}.infra-description{font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px;text-align:left;color:#fff;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.overlay{position:absolute;top:-20px}.slider-background{height:160px}.slider-background1{height:195px}.slider-background-2{position:relative}.info-slider{position:absolute;top:-12em;left:50%;transform:translateX(-50%)}.sticky-navigator{padding:15px 5px;background-color:#fdead5;align-items:center;overflow:auto;position:fixed;left:0;bottom:0;width:100%;z-index:1002;justify-content:center}.nav-button{padding:12px 16px;border-radius:40px;border:1px solid #000;text-align:center;font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;cursor:pointer;min-width:140px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-up-arrow{height:28px}.img-left{left:0}.img-right{right:0;z-index:-1}.learner-title{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left;color:#000}@media screen and (max-width:1201px){.img-left,.img-right{display:none}}@media screen and (max-width:767px){.infra-sec{padding:0}.infra-box,.infra-box-review{width:99%;height:auto}.infra-sec-desc{padding-top:0}.mob-container{background-image:url(/assets/icons/microsite/MDOChannel_RightGraphic.svg);background-position:bottom 0 right 0;background-repeat:no-repeat}.infra-title,.infra-title-v2,.infra-title2,.infra-title2-v2{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left}.slider-background,.slider-background1{height:150px}.info-slider{position:absolute;top:-155px;width:94%}.sticky-navigator{align-items:center;justify-content:left;bottom:63px}.logo-box-rounded.top{position:absolute;top:-50px}.learner-title{font-size:16px}}.competencies-backgroud{background-color:#1b2133}.txt-ellipsis-2{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.comp-back-img{bottom:0;left:0;right:0;margin-left:auto;margin-right:auto;width:50%;z-index:-1;filter:brightness(100)}.mob-header{font-family:Lato;font-size:16px;font-weight:600}.custombgsection{background:url(/assets/icons/microsite/side_banner.png) 0 0/cover no-repeat;width:40%;position:absolute;z-index:99;left:0;height:21.3em}@media screen and (min-width:768px) and (max-width:1023px){.custombgsection{height:16em!important;width:22%;padding:.75rem 1rem!important}}@media screen and (max-width:768px){::ng-deep.featuredContents .mat-tab-header{padding-left:20px}::ng-deep.topContents .mat-tab-header{padding-left:20px}}@media screen and (min-width:1023px){.custombgsection{width:38%;height:15em}}@media screen and (min-width:1014px){.info-slider{width:1014px!important}}@media screen and (min-width:1280px){.custombgsection{width:42%;height:21.3em}.infobanner.banner-container{width:1014px!important}}"]
218
+ styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.section-divider{border-bottom:1px solid rgba(0,0,0,.16)}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.logo-box{vertical-align:middle;max-width:250px;background:#f5fdf1;padding:8px;border:1px solid rgba(0,0,0,.5)}.title-section{position:relative;display:flex;justify-content:center;background-color:#fff}.logo-box-container{width:180px;position:relative}@media only screen and (max-width:599px){.logo-box-container{width:112px;height:72px}}.view-btn{width:160px;background:#fff;padding:0 16px;border-radius:49px;border:1px solid #1b4ca9;font-weight:700!important;font-size:14px;margin-top:4px;margin-bottom:4px;line-height:36px;cursor:pointer}.logo-box-rounded{height:180px;width:180px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px 0 rgba(0,0,0,.06)}.logo-box-rounded .logo-img{max-width:122px}@media only screen and (max-width:599px){.view-btn{margin-top:12px;margin-bottom:16px}.logo-box-rounded{width:112px;height:112px}.logo-box-rounded .logo-img{max-width:84px}}.slider-box{max-width:30%}.stats-container{justify-content:space-around;display:flex;flex-wrap:wrap}.stats-item{display:flex;align-items:center;flex-wrap:nowrap;padding:8px 16px;margin-bottom:16px}.banner-metrics{background:linear-gradient(180deg,#f9cb97 -107.59%,#ef951e 110.74%)}.infra-sec-desc{padding-top:32px}.contributors-background,.infra-background{align-items:center;justify-content:center;display:flex}.contributor-desc{align-items:center;display:inline-flex;margin-top:-24px}.infra-box{width:256px}.infra-box-review{width:100%}.infra-title-v2{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left;color:#fff}.infra-title2-v2{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left;color:#ef951e}.infra-title{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left;color:#fff}.infra-title2{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left;color:#ef951e}.infra-description{font-family:Lato;font-size:14px;font-weight:400;line-height:16.8px;text-align:left;color:#fff;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.overlay{position:absolute;top:-20px}.slider-background{height:160px}.slider-background1{height:195px}.slider-background-2{position:relative}.info-slider{position:absolute;top:-12em;left:50%;transform:translateX(-50%)}.sticky-navigator{padding:15px 5px;background-color:#fdead5;align-items:center;overflow:auto;position:fixed;left:0;bottom:0;width:100%;z-index:1002;justify-content:center}.nav-button{padding:12px 16px;border-radius:40px;border:1px solid #000;text-align:center;font-family:Lato;font-size:14px;font-weight:700;line-height:16.8px;cursor:pointer;min-width:140px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-up-arrow{height:28px}.img-left{left:0}.img-right{right:0;z-index:-1}.learner-title{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:left;color:#000}@media screen and (max-width:1201px){.img-left,.img-right{display:none}}@media screen and (max-width:767px){.infra-sec{padding:0}.infra-box,.infra-box-review{width:99%;height:auto}.infra-sec-desc{padding-top:0}.mob-container{background-image:url(/assets/icons/microsite/MDOChannel_RightGraphic.svg);background-position:bottom 0 right 0;background-repeat:no-repeat}.infra-title,.infra-title-v2,.infra-title2,.infra-title2-v2{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left}.slider-background,.slider-background1{height:150px}.info-slider{position:absolute;top:-155px;width:94%}.sticky-navigator{align-items:center;justify-content:left;bottom:63px}.logo-box-rounded.top{position:absolute;top:-50px}.learner-title{font-size:16px}}.competencies-backgroud{background-color:#1b2133}.txt-ellipsis-2{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.comp-back-img{bottom:0;left:0;right:0;margin-left:auto;margin-right:auto;width:50%;z-index:-1;filter:brightness(100)}.mob-header{font-family:Lato;font-size:16px;font-weight:600}.custombgsection{background:url(/assets/icons/microsite/side_banner.png) 0 0/cover no-repeat;width:40%;position:absolute;z-index:99;left:0;height:21.3em}@media screen and (min-width:768px) and (max-width:1023px){.custombgsection{height:16em!important;width:22%;padding:.75rem 1rem!important}}@media screen and (max-width:768px){::ng-deep.featuredContents .mat-tab-header{padding-left:20px}::ng-deep.topContents .mat-tab-header{padding-left:20px}}@media screen and (min-width:1023px){.custombgsection{width:34%;height:15em}}@media screen and (min-width:1014px){.info-slider{width:1014px!important}}@media screen and (min-width:1280px){.custombgsection{width:36%;height:21.3em}.infobanner.banner-container{width:1014px!important}}"]
219
219
  }] }
220
220
  ];
221
221
  /** @nocollapse */