tango-app-ui-shared 3.3.1-beta.37 → 3.3.1-beta.39
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/esm2022/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.mjs +4 -4
- package/esm2022/lib/modules/layout/toolbar/client-settings/client-settings.component.mjs +3 -2
- package/esm2022/lib/modules/layout/toolbar/date-single-select/date-single-select.component.mjs +3 -2
- package/esm2022/lib/modules/layout/toolbar/toolbar.component.mjs +4 -4
- package/esm2022/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.mjs +27 -14
- package/esm2022/lib/modules/notification/notification/notification.component.mjs +128 -18
- package/esm2022/lib/modules/notification/notification-routing.module.mjs +5 -1
- package/esm2022/lib/modules/notification/notification.module.mjs +2 -2
- package/esm2022/lib/services/notification.service.mjs +6 -1
- package/fesm2022/{tango-app-ui-shared-intro.module-CZdX0CkN.mjs → tango-app-ui-shared-intro.module-0F5I6zgS.mjs} +3 -3
- package/fesm2022/{tango-app-ui-shared-intro.module-CZdX0CkN.mjs.map → tango-app-ui-shared-intro.module-0F5I6zgS.mjs.map} +1 -1
- package/fesm2022/tango-app-ui-shared-notification.module-B0moW4JN.mjs +352 -0
- package/fesm2022/tango-app-ui-shared-notification.module-B0moW4JN.mjs.map +1 -0
- package/fesm2022/tango-app-ui-shared.mjs +66 -47
- package/fesm2022/tango-app-ui-shared.mjs.map +1 -1
- package/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.d.ts +4 -1
- package/lib/modules/notification/notification/notification.component.d.ts +13 -0
- package/lib/services/notification.service.d.ts +2 -0
- package/package.json +1 -1
- package/fesm2022/tango-app-ui-shared-notification.module-CbWXIyly.mjs +0 -238
- package/fesm2022/tango-app-ui-shared-notification.module-CbWXIyly.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
|
-
import { Subject, takeUntil } from "rxjs";
|
|
2
|
+
import { debounceTime, Subject, takeUntil } from "rxjs";
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "tango-app-ui-global";
|
|
5
5
|
import * as i2 from "@angular/router";
|
|
@@ -20,6 +20,8 @@ export class NotificationComponent {
|
|
|
20
20
|
showdownload = false;
|
|
21
21
|
loading = true;
|
|
22
22
|
noData = false;
|
|
23
|
+
downloadloading = true;
|
|
24
|
+
downloadnoData = false;
|
|
23
25
|
itemsPerPage = 10;
|
|
24
26
|
currentPage = 1;
|
|
25
27
|
totalItems = 0;
|
|
@@ -35,6 +37,14 @@ export class NotificationComponent {
|
|
|
35
37
|
destroy$ = new Subject();
|
|
36
38
|
notification;
|
|
37
39
|
total;
|
|
40
|
+
downloads = [];
|
|
41
|
+
headerData;
|
|
42
|
+
searchInput = "";
|
|
43
|
+
sortColumName = '';
|
|
44
|
+
sortDirection = '';
|
|
45
|
+
searchValue;
|
|
46
|
+
tabtype;
|
|
47
|
+
user_id;
|
|
38
48
|
constructor(pageInfo, gs, route, service, cd, toast, router) {
|
|
39
49
|
this.pageInfo = pageInfo;
|
|
40
50
|
this.gs = gs;
|
|
@@ -45,17 +55,31 @@ export class NotificationComponent {
|
|
|
45
55
|
this.router = router;
|
|
46
56
|
}
|
|
47
57
|
ngOnInit() {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
this.gs.dataRangeValue
|
|
59
|
+
.pipe(takeUntil(this.destroy$), debounceTime(300)).subscribe((data) => {
|
|
60
|
+
if ("user-info" in localStorage) {
|
|
61
|
+
const userData = JSON.parse(localStorage.getItem("user-info") || "{}");
|
|
62
|
+
this.user_id = userData._id;
|
|
63
|
+
}
|
|
64
|
+
this.route.queryParams.subscribe(params => {
|
|
65
|
+
const tabType = params['tab'];
|
|
66
|
+
if (tabType) {
|
|
67
|
+
this.chooseManager(tabType);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
this.chooseManager('alert');
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
if (data) {
|
|
74
|
+
this.headerData = data;
|
|
75
|
+
// this.notificationList();
|
|
76
|
+
this.downloadmanagerList();
|
|
77
|
+
// this.chooseManager("type")
|
|
78
|
+
// this.setPageData();
|
|
79
|
+
// this.service.reloadData$.subscribe(() => {
|
|
80
|
+
// this.notificationList()
|
|
81
|
+
// })
|
|
82
|
+
}
|
|
59
83
|
});
|
|
60
84
|
}
|
|
61
85
|
setPageData() {
|
|
@@ -78,6 +102,7 @@ export class NotificationComponent {
|
|
|
78
102
|
if (res && res.code == 200) {
|
|
79
103
|
this.total = res.data.count;
|
|
80
104
|
this.notification = res.data.result || [];
|
|
105
|
+
this.setPaginationSizes();
|
|
81
106
|
if (this.total < 10) {
|
|
82
107
|
this.paginationSizes = [this.total];
|
|
83
108
|
}
|
|
@@ -149,18 +174,61 @@ export class NotificationComponent {
|
|
|
149
174
|
});
|
|
150
175
|
}
|
|
151
176
|
chooseManager(type) {
|
|
177
|
+
this.tabtype = type;
|
|
178
|
+
this.sortColumName = "",
|
|
179
|
+
this.sortDirection = "",
|
|
180
|
+
this.searchValue = "",
|
|
181
|
+
this.limit = 10,
|
|
182
|
+
this.offset = 1,
|
|
183
|
+
this.currentPage = 1,
|
|
184
|
+
this.pageSize = 10;
|
|
185
|
+
this.router.navigate([], {
|
|
186
|
+
relativeTo: this.route,
|
|
187
|
+
queryParams: { tab: type },
|
|
188
|
+
queryParamsHandling: 'merge' // keeps existing query params and merges with new ones
|
|
189
|
+
});
|
|
190
|
+
if (this.tabtype === 'alert') {
|
|
191
|
+
this.showalert = true;
|
|
192
|
+
this.showdownload = false;
|
|
193
|
+
this.notificationList();
|
|
194
|
+
}
|
|
195
|
+
else if (this.tabtype === 'download') {
|
|
196
|
+
this.showdownload = true;
|
|
197
|
+
this.showalert = false;
|
|
198
|
+
this.downloadmanagerList();
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
setPaginationSizes() {
|
|
202
|
+
if (this.totalItems > 10) {
|
|
203
|
+
this.paginationSizes = [10, 20, 30];
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
this.paginationSizes = [this.totalItems];
|
|
207
|
+
this.pageSize = this.totalItems; // Just one option if less than 10
|
|
208
|
+
}
|
|
152
209
|
}
|
|
153
210
|
onPageChange(pageOffset) {
|
|
154
211
|
this.offset = Number(pageOffset);
|
|
155
|
-
this.
|
|
212
|
+
if (this.tabtype === 'alert') {
|
|
213
|
+
this.notificationList();
|
|
214
|
+
}
|
|
215
|
+
else if (this.tabtype === 'download') {
|
|
216
|
+
this.downloadmanagerList();
|
|
217
|
+
}
|
|
156
218
|
}
|
|
157
219
|
onPageSizeChange(pageSize) {
|
|
220
|
+
this.currentPage = 1;
|
|
158
221
|
this.limit = Number(pageSize);
|
|
159
222
|
this.offset = 1;
|
|
160
|
-
this.
|
|
223
|
+
if (this.tabtype === 'alert') {
|
|
224
|
+
this.notificationList();
|
|
225
|
+
}
|
|
226
|
+
else if (this.tabtype === 'download') {
|
|
227
|
+
this.downloadmanagerList();
|
|
228
|
+
}
|
|
229
|
+
// this.notificationList();
|
|
161
230
|
}
|
|
162
231
|
paginationSize() {
|
|
163
|
-
console.log('this.limit', this.limit, this.total);
|
|
164
232
|
if (this.total < 10) {
|
|
165
233
|
return this.total;
|
|
166
234
|
}
|
|
@@ -168,11 +236,53 @@ export class NotificationComponent {
|
|
|
168
236
|
return this.limit;
|
|
169
237
|
}
|
|
170
238
|
}
|
|
239
|
+
downloadmanagerList() {
|
|
240
|
+
this.downloadloading = true;
|
|
241
|
+
const requestData = {
|
|
242
|
+
fromDate: this.headerData.date.startDate,
|
|
243
|
+
toDate: this.headerData.date.endDate,
|
|
244
|
+
clientId: this.headerData.client,
|
|
245
|
+
limit: this.limit,
|
|
246
|
+
offset: 0,
|
|
247
|
+
sortBy: this.sortDirection,
|
|
248
|
+
sortColumnName: this.sortColumName,
|
|
249
|
+
searchValue: this.searchInput,
|
|
250
|
+
createdBy: this.user_id
|
|
251
|
+
};
|
|
252
|
+
this.service.getdownloadlist(requestData)
|
|
253
|
+
.pipe(takeUntil(this.destroy$))
|
|
254
|
+
.subscribe({
|
|
255
|
+
next: (res) => {
|
|
256
|
+
if (res && res.code === 200) {
|
|
257
|
+
this.downloads = res.data.data;
|
|
258
|
+
this.total = res.data.count;
|
|
259
|
+
this.setPaginationSizes();
|
|
260
|
+
this.paginationSizes = this.total < 10 ? [this.total] : [10, 20, 30];
|
|
261
|
+
this.downloadloading = false;
|
|
262
|
+
this.downloadnoData = this.downloads.length === 0;
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
this.downloadnoData = true;
|
|
266
|
+
this.downloadloading = false;
|
|
267
|
+
this.downloads = [];
|
|
268
|
+
}
|
|
269
|
+
this.cd.detectChanges();
|
|
270
|
+
},
|
|
271
|
+
error: () => {
|
|
272
|
+
this.downloadnoData = true;
|
|
273
|
+
this.downloadloading = false;
|
|
274
|
+
this.downloads = [];
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
downloadFile(record) {
|
|
279
|
+
window.open(record.url, '_blank');
|
|
280
|
+
}
|
|
171
281
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationComponent, deps: [{ token: i1.PageInfoService }, { token: i1.GlobalStateService }, { token: i2.ActivatedRoute }, { token: i3.NotificationService }, { token: i0.ChangeDetectorRef }, { token: i4.ToastService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
172
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NotificationComponent, selector: "lib-notification", ngImport: i0, template: "<!-- <div class=\"row buttonsec mb-10\">\r\n <button [ngClass]=\"showalert?'':'submenu'\" class=\" col-lg-6 btn bg-light-primary text-primary\"\r\n (click)=\"chooseManager('alert')\">Alerts Manager</button>\r\n <button [ngClass]=\"showdownload?'':'submenu'\" class=\"col-lg-6 btn bg-light-primary \"\r\n (click)=\"chooseManager('download')\">Download Manager</button>\r\n</div> -->\r\n\r\n<div class=\"card topbar\">\r\n <div class=\"card-header\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Alerts Manager</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"d-flex flex-column flex-xl-row p-7 \">\r\n <div class=\"flex-lg-row-fluid mb-20 mb-xl-0\">\r\n <div class=\"mb-0\">\r\n <div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/noNotification.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No New Notification</span>\r\n <span class=\"noNotification mt-2\">Any new notification will be shown\r\n here.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row w-100\" *ngIf=\"notification?.length && !loading\">\r\n\r\n <div class=\"col-lg-6\" *ngFor=\"let item of notification;let i=index\">\r\n <div class=\"mb-8 border-value w-100\">\r\n <div class=\"flex-grow-1 me-2\">\r\n <div class=\"row mt-4\">\r\n <div class=\"col-lg-11\">\r\n <div class=\"symbol symbol-50px mx-4\">\r\n <span class=\"mt-2\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"40\" height=\"40\" rx=\"20\"\r\n fill=\"#DAF1FF\" />\r\n <g clip-path=\"url(#clip0_12108_56367)\">\r\n <path\r\n d=\"M19.9993 23.3333V20M19.9993 16.6666H20.0077M28.3327 20C28.3327 24.6023 24.6017 28.3333 19.9993 28.3333C15.397 28.3333 11.666 24.6023 11.666 20C11.666 15.3976 15.397 11.6666 19.9993 11.6666C24.6017 11.6666 28.3327 15.3976 28.3327 20Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12108_56367\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(10 10)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"alert-title mx-4\">{{ item._source.title }}<span\r\n class=\"alertdot m-2\">\u2022</span><span\r\n class=\"alertdot\">{{\r\n item._source.date | customDateFormat }} Today</span>\r\n </span>\r\n <div class=\"alt-desc d-block ms-17\">{{\r\n item._source.description\r\n }}</div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-1\">\r\n <span (click)=\"updateNotification(item,'')\"\r\n class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ms-20 mt-2\">\r\n <ng-container *ngFor=\"let cta of item._source.alertCta\">\r\n <button *ngIf=\"!['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"btn btn-sm btn-primary\">{{ cta.buttonName }}</button>\r\n <span *ngIf=\"['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"text-primary mx-6 remindlatertext cursor-pointer\">{{\r\n cta.buttonName }}</span>\r\n </ng-container>\r\n\r\n </div>\r\n <!-- </div> -->\r\n <!-- </div> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"notification?.length && !loading\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\" [totalItems]=\"total\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<!-- <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" width=\"200px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n</div> -->", styles: [".border-value{border-radius:12px!important;border:1.095px solid var(--Gray-200, #EAECF0)!important;background:var(--White, #FFF)!important;height:155px}.buttonsec{border-radius:8px;margin:0;background:var(--gray-50, white);width:100%;height:fit-content;padding:5px}.submenu{background:var(--gray-50, white)!important;color:var(--gray-500, #667085)!important;font-size:16px!important;font-weight:500!important;outline:none!important}.text-primary{color:var(--primary-700, #009BF3)!important;font-size:16px;font-weight:500}.alert-title{color:var(--Gray-900, #101828);font-size:18px;font-style:normal;font-weight:600;line-height:28px}.alt-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.alertdot{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.remindlatertext{color:var(--Primary-700, #009BF3);font-size:16px;font-weight:600;line-height:24px;text-decoration-line:underline;text-transform:capitalize}.notificationAlign{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.noNotification{color:var(--Gray-500, #667085);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "pipe", type: i7.CustomDateFormatPipe, name: "customDateFormat" }] });
|
|
282
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NotificationComponent, selector: "lib-notification", ngImport: i0, template: "<div class=\"row buttonsec mb-10\">\r\n <button [ngClass]=\"showalert?'':'submenu'\" class=\" col-lg-6 btn bg-light-primary text-primary\"\r\n (click)=\"chooseManager('alert')\">Alerts Manager</button>\r\n <button [ngClass]=\"showdownload?'':'submenu'\" class=\"col-lg-6 btn bg-light-primary text-primary\"\r\n (click)=\"chooseManager('download')\">Download Manager</button>\r\n</div>\r\n<div *ngIf=\"showalert\" class=\"card topbar\">\r\n <div class=\"card-header\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Alerts Manager</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"d-flex flex-column flex-xl-row p-7 \">\r\n <div class=\"flex-lg-row-fluid mb-20 mb-xl-0\">\r\n <div class=\"mb-0\">\r\n <div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/noNotification.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No New Notification</span>\r\n <span class=\"noNotification mt-2\">Any new notification will be shown\r\n here.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row w-100\" *ngIf=\"notification?.length && !loading\">\r\n <div class=\"col-lg-6\" *ngFor=\"let item of notification;let i=index\">\r\n <div class=\"mb-8 border-value w-100\">\r\n <div class=\"flex-grow-1 me-2\">\r\n <div class=\"row mt-4\">\r\n <div class=\"col-lg-11\">\r\n <div class=\"symbol symbol-50px mx-4\">\r\n <span class=\"mt-2\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"40\" height=\"40\" rx=\"20\"\r\n fill=\"#DAF1FF\" />\r\n <g clip-path=\"url(#clip0_12108_56367)\">\r\n <path\r\n d=\"M19.9993 23.3333V20M19.9993 16.6666H20.0077M28.3327 20C28.3327 24.6023 24.6017 28.3333 19.9993 28.3333C15.397 28.3333 11.666 24.6023 11.666 20C11.666 15.3976 15.397 11.6666 19.9993 11.6666C24.6017 11.6666 28.3327 15.3976 28.3327 20Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12108_56367\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(10 10)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"alert-title mx-4\">{{ item._source.title }}<span\r\n class=\"alertdot m-2\">\u2022</span><span\r\n class=\"alertdot\">{{\r\n item._source.date | customDateFormat }} Today</span>\r\n </span>\r\n <div class=\"alt-desc d-block ms-17\">{{\r\n item._source.description\r\n }}</div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-1\">\r\n <span (click)=\"updateNotification(item,'')\"\r\n class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ms-20 mt-2\">\r\n <ng-container *ngFor=\"let cta of item._source.alertCta\">\r\n <button *ngIf=\"!['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"btn btn-sm btn-primary\">{{ cta.buttonName }}</button>\r\n <span *ngIf=\"['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"text-primary mx-6 remindlatertext cursor-pointer\">{{\r\n cta.buttonName }}</span>\r\n </ng-container>\r\n\r\n </div>\r\n <!-- </div> -->\r\n <!-- </div> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"notification?.length && !loading\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\" [totalItems]=\"total\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div class=\"card topbar\" *ngIf=\"showdownload\">\r\n <div class=\"card-header\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Download Manager</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body\">\r\n <ng-container *ngIf=\"downloadloading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"downloadnoData && !downloadloading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No data found</span>\r\n <span class=\"noNotification mt-2\">There is no result for Download Manager.\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row\" *ngIf=\"downloads?.length && !downloadloading\">\r\n <div *ngFor=\"let record of downloads\" class=\"col-md-5 card border px-5 py-5 mt-5\" style=\"margin-left: 70px;\">\r\n <div class=\"d-flex justify-content-between\" *ngIf=\"downloads?.length\">\r\n <div class=\"d-flex\">\r\n <img class=\"downloadimage\" src=\"./assets/tango/Icons/Trax_Folder_Icon.svg\" alt=\"Folder Icon\">\r\n <div class=\"mx-5\">\r\n <span class=\"foldername\">{{ record.name }}.{{record?.type ? record.type : 'zip' }}</span><br>\r\n <span class=\"downloadstatus\" *ngIf=\"record.status === 'completed'\">\r\n Initiated Time: {{ record.downloadedTime }} | {{ record.downloadedDate }}\r\n </span>\r\n <span class=\"downloadstatus\" *ngIf=\"record.status === 'inprogress'\">Processing...</span>\r\n </div>\r\n </div>\r\n <button *ngIf=\"record.status === 'completed'\" class=\"btn btn-primary download\" (click)=\"downloadFile(record)\">\r\n Download\r\n </button>\r\n <div *ngIf=\"record.status === 'inprogress'\">\r\n <img class=\"loader\" src=\"./assets/tango/Icons/Trax-Loader GIF.gif\" alt=\"Loading\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"downloads?.length && !downloadloading\" class=\"my-3\">\r\n <lib-pagination \r\n [itemsPerPage]=\"limit\" \r\n [currentPage]=\"offset\" \r\n [totalItems]=\"total\"\r\n [paginationSizes]=\"paginationSizes\" \r\n [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\">\r\n </lib-pagination>\r\n </div>\r\n </div>\r\n </div>", styles: [".border-value{border-radius:12px!important;border:1.095px solid var(--Gray-200, #EAECF0)!important;background:var(--White, #FFF)!important;height:155px}.buttonsec{border-radius:8px;margin:0;background:var(--gray-50, white);width:100%;height:fit-content;padding:5px}.submenu{background:var(--gray-50, white)!important;color:var(--gray-500, #667085)!important;font-size:16px!important;font-weight:500!important;outline:none!important}.text-primary{color:var(--primary-700, #009BF3)!important;font-size:16px;font-weight:500}.alert-title{color:var(--Gray-900, #101828);font-size:18px;font-style:normal;font-weight:600;line-height:28px}.alt-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.alertdot{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.remindlatertext{color:var(--Primary-700, #009BF3);font-size:16px;font-weight:600;line-height:24px;text-decoration-line:underline;text-transform:capitalize}.notificationAlign{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.noNotification{color:var(--Gray-500, #667085);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.downloadimage{width:56px;height:56px}.foldername{color:var(--gray-700, #344054);font-size:16px;font-style:normal;font-weight:500;line-height:24px}.downloadstatus{color:var(--gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.download{border-radius:8px;border:1px solid var(--primary-600, #00A3FF);background:var(--primary-600, #00A3FF);box-shadow:0 1px 2px #1018280d;padding:10px 18px;justify-content:center;align-items:center;gap:8px;height:45px;color:var(--White, #FFF);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "pipe", type: i7.CustomDateFormatPipe, name: "customDateFormat" }] });
|
|
173
283
|
}
|
|
174
284
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationComponent, decorators: [{
|
|
175
285
|
type: Component,
|
|
176
|
-
args: [{ selector: 'lib-notification', template: "<!-- <div class=\"row buttonsec mb-10\">\r\n <button [ngClass]=\"showalert?'':'submenu'\" class=\" col-lg-6 btn bg-light-primary text-primary\"\r\n (click)=\"chooseManager('alert')\">Alerts Manager</button>\r\n <button [ngClass]=\"showdownload?'':'submenu'\" class=\"col-lg-6 btn bg-light-primary \"\r\n (click)=\"chooseManager('download')\">Download Manager</button>\r\n</div> -->\r\n\r\n<div class=\"card topbar\">\r\n <div class=\"card-header\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Alerts Manager</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"d-flex flex-column flex-xl-row p-7 \">\r\n <div class=\"flex-lg-row-fluid mb-20 mb-xl-0\">\r\n <div class=\"mb-0\">\r\n <div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/noNotification.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No New Notification</span>\r\n <span class=\"noNotification mt-2\">Any new notification will be shown\r\n here.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row w-100\" *ngIf=\"notification?.length && !loading\">\r\n\r\n <div class=\"col-lg-6\" *ngFor=\"let item of notification;let i=index\">\r\n <div class=\"mb-8 border-value w-100\">\r\n <div class=\"flex-grow-1 me-2\">\r\n <div class=\"row mt-4\">\r\n <div class=\"col-lg-11\">\r\n <div class=\"symbol symbol-50px mx-4\">\r\n <span class=\"mt-2\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"40\" height=\"40\" rx=\"20\"\r\n fill=\"#DAF1FF\" />\r\n <g clip-path=\"url(#clip0_12108_56367)\">\r\n <path\r\n d=\"M19.9993 23.3333V20M19.9993 16.6666H20.0077M28.3327 20C28.3327 24.6023 24.6017 28.3333 19.9993 28.3333C15.397 28.3333 11.666 24.6023 11.666 20C11.666 15.3976 15.397 11.6666 19.9993 11.6666C24.6017 11.6666 28.3327 15.3976 28.3327 20Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12108_56367\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(10 10)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"alert-title mx-4\">{{ item._source.title }}<span\r\n class=\"alertdot m-2\">\u2022</span><span\r\n class=\"alertdot\">{{\r\n item._source.date | customDateFormat }} Today</span>\r\n </span>\r\n <div class=\"alt-desc d-block ms-17\">{{\r\n item._source.description\r\n }}</div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-1\">\r\n <span (click)=\"updateNotification(item,'')\"\r\n class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ms-20 mt-2\">\r\n <ng-container *ngFor=\"let cta of item._source.alertCta\">\r\n <button *ngIf=\"!['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"btn btn-sm btn-primary\">{{ cta.buttonName }}</button>\r\n <span *ngIf=\"['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"text-primary mx-6 remindlatertext cursor-pointer\">{{\r\n cta.buttonName }}</span>\r\n </ng-container>\r\n\r\n </div>\r\n <!-- </div> -->\r\n <!-- </div> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"notification?.length && !loading\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\" [totalItems]=\"total\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<!-- <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" width=\"200px\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n</div> -->", styles: [".border-value{border-radius:12px!important;border:1.095px solid var(--Gray-200, #EAECF0)!important;background:var(--White, #FFF)!important;height:155px}.buttonsec{border-radius:8px;margin:0;background:var(--gray-50, white);width:100%;height:fit-content;padding:5px}.submenu{background:var(--gray-50, white)!important;color:var(--gray-500, #667085)!important;font-size:16px!important;font-weight:500!important;outline:none!important}.text-primary{color:var(--primary-700, #009BF3)!important;font-size:16px;font-weight:500}.alert-title{color:var(--Gray-900, #101828);font-size:18px;font-style:normal;font-weight:600;line-height:28px}.alt-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.alertdot{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.remindlatertext{color:var(--Primary-700, #009BF3);font-size:16px;font-weight:600;line-height:24px;text-decoration-line:underline;text-transform:capitalize}.notificationAlign{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.noNotification{color:var(--Gray-500, #667085);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"] }]
|
|
286
|
+
args: [{ selector: 'lib-notification', template: "<div class=\"row buttonsec mb-10\">\r\n <button [ngClass]=\"showalert?'':'submenu'\" class=\" col-lg-6 btn bg-light-primary text-primary\"\r\n (click)=\"chooseManager('alert')\">Alerts Manager</button>\r\n <button [ngClass]=\"showdownload?'':'submenu'\" class=\"col-lg-6 btn bg-light-primary text-primary\"\r\n (click)=\"chooseManager('download')\">Download Manager</button>\r\n</div>\r\n<div *ngIf=\"showalert\" class=\"card topbar\">\r\n <div class=\"card-header\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Alerts Manager</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"d-flex flex-column flex-xl-row p-7 \">\r\n <div class=\"flex-lg-row-fluid mb-20 mb-xl-0\">\r\n <div class=\"mb-0\">\r\n <div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData && !loading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/noNotification.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No New Notification</span>\r\n <span class=\"noNotification mt-2\">Any new notification will be shown\r\n here.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row w-100\" *ngIf=\"notification?.length && !loading\">\r\n <div class=\"col-lg-6\" *ngFor=\"let item of notification;let i=index\">\r\n <div class=\"mb-8 border-value w-100\">\r\n <div class=\"flex-grow-1 me-2\">\r\n <div class=\"row mt-4\">\r\n <div class=\"col-lg-11\">\r\n <div class=\"symbol symbol-50px mx-4\">\r\n <span class=\"mt-2\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"40\" height=\"40\" rx=\"20\"\r\n fill=\"#DAF1FF\" />\r\n <g clip-path=\"url(#clip0_12108_56367)\">\r\n <path\r\n d=\"M19.9993 23.3333V20M19.9993 16.6666H20.0077M28.3327 20C28.3327 24.6023 24.6017 28.3333 19.9993 28.3333C15.397 28.3333 11.666 24.6023 11.666 20C11.666 15.3976 15.397 11.6666 19.9993 11.6666C24.6017 11.6666 28.3327 15.3976 28.3327 20Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12108_56367\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(10 10)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"alert-title mx-4\">{{ item._source.title }}<span\r\n class=\"alertdot m-2\">\u2022</span><span\r\n class=\"alertdot\">{{\r\n item._source.date | customDateFormat }} Today</span>\r\n </span>\r\n <div class=\"alt-desc d-block ms-17\">{{\r\n item._source.description\r\n }}</div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-1\">\r\n <span (click)=\"updateNotification(item,'')\"\r\n class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ms-20 mt-2\">\r\n <ng-container *ngFor=\"let cta of item._source.alertCta\">\r\n <button *ngIf=\"!['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"btn btn-sm btn-primary\">{{ cta.buttonName }}</button>\r\n <span *ngIf=\"['remind','cancel'].includes(cta.redirectionUrl)\"\r\n (click)=\"updateNotification(item,cta)\"\r\n class=\"text-primary mx-6 remindlatertext cursor-pointer\">{{\r\n cta.buttonName }}</span>\r\n </ng-container>\r\n\r\n </div>\r\n <!-- </div> -->\r\n <!-- </div> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"notification?.length && !loading\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\" [totalItems]=\"total\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div class=\"card topbar\" *ngIf=\"showdownload\">\r\n <div class=\"card-header\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Download Manager</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body\">\r\n <ng-container *ngIf=\"downloadloading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"downloadnoData && !downloadloading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <span class=\"notificationAlign mt-10\">No data found</span>\r\n <span class=\"noNotification mt-2\">There is no result for Download Manager.\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row\" *ngIf=\"downloads?.length && !downloadloading\">\r\n <div *ngFor=\"let record of downloads\" class=\"col-md-5 card border px-5 py-5 mt-5\" style=\"margin-left: 70px;\">\r\n <div class=\"d-flex justify-content-between\" *ngIf=\"downloads?.length\">\r\n <div class=\"d-flex\">\r\n <img class=\"downloadimage\" src=\"./assets/tango/Icons/Trax_Folder_Icon.svg\" alt=\"Folder Icon\">\r\n <div class=\"mx-5\">\r\n <span class=\"foldername\">{{ record.name }}.{{record?.type ? record.type : 'zip' }}</span><br>\r\n <span class=\"downloadstatus\" *ngIf=\"record.status === 'completed'\">\r\n Initiated Time: {{ record.downloadedTime }} | {{ record.downloadedDate }}\r\n </span>\r\n <span class=\"downloadstatus\" *ngIf=\"record.status === 'inprogress'\">Processing...</span>\r\n </div>\r\n </div>\r\n <button *ngIf=\"record.status === 'completed'\" class=\"btn btn-primary download\" (click)=\"downloadFile(record)\">\r\n Download\r\n </button>\r\n <div *ngIf=\"record.status === 'inprogress'\">\r\n <img class=\"loader\" src=\"./assets/tango/Icons/Trax-Loader GIF.gif\" alt=\"Loading\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"downloads?.length && !downloadloading\" class=\"my-3\">\r\n <lib-pagination \r\n [itemsPerPage]=\"limit\" \r\n [currentPage]=\"offset\" \r\n [totalItems]=\"total\"\r\n [paginationSizes]=\"paginationSizes\" \r\n [pageSize]=\"paginationSize()\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\">\r\n </lib-pagination>\r\n </div>\r\n </div>\r\n </div>", styles: [".border-value{border-radius:12px!important;border:1.095px solid var(--Gray-200, #EAECF0)!important;background:var(--White, #FFF)!important;height:155px}.buttonsec{border-radius:8px;margin:0;background:var(--gray-50, white);width:100%;height:fit-content;padding:5px}.submenu{background:var(--gray-50, white)!important;color:var(--gray-500, #667085)!important;font-size:16px!important;font-weight:500!important;outline:none!important}.text-primary{color:var(--primary-700, #009BF3)!important;font-size:16px;font-weight:500}.alert-title{color:var(--Gray-900, #101828);font-size:18px;font-style:normal;font-weight:600;line-height:28px}.alt-desc{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.alertdot{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.remindlatertext{color:var(--Primary-700, #009BF3);font-size:16px;font-weight:600;line-height:24px;text-decoration-line:underline;text-transform:capitalize}.notificationAlign{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.noNotification{color:var(--Gray-500, #667085);text-align:center;font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.downloadimage{width:56px;height:56px}.foldername{color:var(--gray-700, #344054);font-size:16px;font-style:normal;font-weight:500;line-height:24px}.downloadstatus{color:var(--gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.download{border-radius:8px;border:1px solid var(--primary-600, #00A3FF);background:var(--primary-600, #00A3FF);box-shadow:0 1px 2px #1018280d;padding:10px 18px;justify-content:center;align-items:center;gap:8px;height:45px;color:var(--White, #FFF);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize}\n"] }]
|
|
177
287
|
}], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i1.GlobalStateService }, { type: i2.ActivatedRoute }, { type: i3.NotificationService }, { type: i0.ChangeDetectorRef }, { type: i4.ToastService }, { type: i2.Router }] });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFVMUMsTUFBTSxPQUFPLHFCQUFxQjtJQXNCZDtJQUFnQztJQUFnQztJQUErQjtJQUFvQztJQUE4QjtJQUE2QjtJQXJCaE4sU0FBUyxHQUFXLElBQUksQ0FBQztJQUN6QixZQUFZLEdBQVcsS0FBSyxDQUFDO0lBQzdCLE9BQU8sR0FBWSxJQUFJLENBQUM7SUFDeEIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDaEIsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmLGVBQWUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0IsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixNQUFNLEdBQVcsQ0FBQyxDQUFDO0lBQ25CLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDZCxJQUFJLENBQU07SUFDVixZQUFZLENBQU07SUFDbEIsUUFBUSxDQUFNO0lBQ2QsR0FBRyxDQUFLO0lBQ1IsSUFBSSxDQUFJO0lBQ1MsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDMUMsWUFBWSxDQUFNO0lBQ2xCLEtBQUssQ0FBSztJQUdaLFlBQW9CLFFBQXdCLEVBQVEsRUFBc0IsRUFBVSxLQUFxQixFQUFVLE9BQTJCLEVBQVMsRUFBcUIsRUFBUyxLQUFtQixFQUFVLE1BQWE7UUFBM00sYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFBUSxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUFTLFVBQUssR0FBTCxLQUFLLENBQWM7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFPO0lBQUUsQ0FBQztJQUNoTyxRQUFRO1FBQ04sbUZBQW1GO1FBRW5GLHdCQUF3QjtRQUN4QixzRUFBc0U7UUFDdEUsZ0NBQWdDO1FBQ2hDLGtEQUFrRDtRQUNsRCxNQUFNO1FBQ04sTUFBTTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQ3pCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1lBQzNCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtTQUM3RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxJQUFJLEdBQUc7WUFDVCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO29CQUMxQyxJQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxFQUFDO3dCQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO3FCQUNwQzt5QkFBSTt3QkFDSCxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztxQkFDckM7b0JBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2lCQUNyQjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO2lCQUN4QjtnQkFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzFCLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDYixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBUyxFQUFFLFVBQWU7UUFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUM5RixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRTtnQkFDMUIsSUFBRyxDQUFDLFVBQVUsSUFBSSxVQUFVLEVBQUUsY0FBYyxJQUFJLFlBQVk7b0JBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDMUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDMUIsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNSLElBQUcsVUFBVSxJQUFJLFVBQVUsRUFBRSxjQUFjLElBQUksRUFBRSxJQUFJLFVBQVUsRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3JHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDdEQ7Z0JBQ0QsSUFBRyxVQUFVLElBQUksVUFBVSxFQUFFLGNBQWMsSUFBSSxRQUFRLEVBQUU7b0JBQ3ZELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQTtpQkFDdkY7Z0JBQ0QsSUFBRyxVQUFVLElBQUksVUFBVSxFQUFFLGNBQWMsSUFBSSxlQUFlLEVBQUU7b0JBQzlELElBQUksTUFBTSxHQUFHO3dCQUNYLEVBQUUsRUFBQyxVQUFVLENBQUMsRUFBRTt3QkFDaEIsSUFBSSxFQUFDLFNBQVM7cUJBQ2YsQ0FBQTtvQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQTtpQkFDdEY7Z0JBQ0QsSUFBRyxVQUFVLElBQUksVUFBVSxFQUFFLGNBQWMsSUFBSSxZQUFZLEVBQUU7b0JBQzNELElBQUksTUFBTSxHQUFHO3dCQUNYLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUTt3QkFDOUIsUUFBUSxFQUFFOzRCQUNOO2dDQUNJLElBQUksRUFBRSxVQUFVLENBQUMsT0FBTztnQ0FDeEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxJQUFJO2dDQUM1QixJQUFJLEVBQUUsY0FBYztnQ0FDcEIsT0FBTyxFQUFFLEtBQUs7NkJBQ2pCO3lCQUNKO3FCQUNGLENBQUE7b0JBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQU8sRUFBRSxFQUFFO3dCQUMzRixJQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRTs0QkFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsaUNBQWlDLENBQUMsQ0FBQzt5QkFDL0Q7b0JBQ0gsQ0FBQyxDQUFDLENBQUE7aUJBQ0g7Z0JBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN6QjtRQUNILENBQUMsRUFBQyxDQUFDLEtBQVMsRUFBRSxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVE7SUFFdEIsQ0FBQztJQUVELFlBQVksQ0FBQyxVQUFrQjtRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBZ0I7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBQyxJQUFJLENBQUMsS0FBSyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNuQjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQzt3R0F0SlUscUJBQXFCOzRGQUFyQixxQkFBcUIsd0RDWmxDLDY0VEF5SVU7OzRGRDdIRyxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSwgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW5vdGlmaWNhdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgc2hvd2FsZXJ0OmJvb2xlYW4gPSB0cnVlO1xyXG4gIHNob3dkb3dubG9hZDpib29sZWFuID0gZmFsc2U7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXRlbXNQZXJQYWdlID0gMTA7XHJcbiAgY3VycmVudFBhZ2UgPSAxO1xyXG4gIHRvdGFsSXRlbXMgPSAwO1xyXG4gIHBhZ2luYXRpb25TaXplcyA9IFsxMCwgMjAsIDMwXTtcclxuICBsaW1pdDogbnVtYmVyID0gMTA7XHJcbiAgb2Zmc2V0OiBudW1iZXIgPSAxO1xyXG4gIHBhZ2VTaXplID0gMTA7XHJcbiAgdXNlcjogYW55O1xyXG4gIGhlYWRlckZpbHRlcjogYW55O1xyXG4gIGNsaWVudElkOiBhbnk7XHJcbiAgX2lkOmFueTtcclxuICBkYXRhOmFueVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIG5vdGlmaWNhdGlvbjogYW55O1xyXG4gIHRvdGFsOmFueTtcclxuXHJcbiAgXHJcbmNvbnN0cnVjdG9yKHByaXZhdGUgcGFnZUluZm86UGFnZUluZm9TZXJ2aWNlLHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSBzZXJ2aWNlOk5vdGlmaWNhdGlvblNlcnZpY2UscHJpdmF0ZSBjZCA6Q2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjpSb3V0ZXIpe31cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcblxyXG4gICAgLy8gICBpZiAoZGF0YSAhPSBudWxsKSB7XHJcbiAgICAvLyAgICAgdGhpcy51c2VyID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci1pbmZvJykgfHwgXCJcIilcclxuICAgIC8vICAgICB0aGlzLmhlYWRlckZpbHRlciA9IGRhdGE7XHJcbiAgICAvLyAgICAgdGhpcy5jbGllbnRJZCA9IHRoaXMuaGVhZGVyRmlsdGVyPy5jbGllbnRzIFxyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KTtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uTGlzdCgpXHJcbiAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcbiAgICB0aGlzLnNlcnZpY2UucmVsb2FkRGF0YSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25MaXN0KClcclxuICAgIH0pXHJcbiAgfVxyXG4gIHNldFBhZ2VEYXRhKCkge1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZShcIkFsZXJ0c1wiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0RGVzY3JpcHRpb24oXCJUcmFjayBhbGwgeW91ciBhY3Rpdml0aWVzIGFuZCBub3RpZmljYXRpb25zIGhlcmVcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAgICAgeyB0aXRsZTogXCJcIiwgcGF0aDogXCJcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogZmFsc2UgfSxcclxuICAgIF0pO1xyXG4gIH1cclxuICBub3RpZmljYXRpb25MaXN0KCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldFxyXG4gICAgfTtcclxuICAgIHRoaXMuc2VydmljZS5ub3RpZmljYXRpb25MaXN0KGRhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFsID0gcmVzLmRhdGEuY291bnQ7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uID0gcmVzLmRhdGEucmVzdWx0IHx8IFtdO1xyXG4gICAgICAgICAgICBpZih0aGlzLnRvdGFsIDwgMTApe1xyXG4gICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gW3RoaXMudG90YWxdXHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24gPSBbXTsgXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZU5vdGlmaWNhdGlvbihkYXRhOiBhbnksIGJ0bkRldGFpbHM6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VydmljZS5ub3RpZmljYXRpb25VcGRhdGUoZGF0YS5faWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgaWYoIWJ0bkRldGFpbHMgfHwgYnRuRGV0YWlscz8ucmVkaXJlY3Rpb25VcmwgIT0gJ3N1YnNjcmliZWQnKVxyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QocmVzLm1lc3NhZ2UpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25MaXN0KCk7XHJcbiAgICAgICAgfSwxMDAwKTtcclxuICAgICAgICBpZihidG5EZXRhaWxzICYmIGJ0bkRldGFpbHM/LnJlZGlyZWN0aW9uVXJsICE9ICcnICYmIGJ0bkRldGFpbHM/LnJlZGlyZWN0aW9uVXJsLnNwbGl0KCcvJykubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChidG5EZXRhaWxzLnJlZGlyZWN0aW9uVXJsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoYnRuRGV0YWlscyAmJiBidG5EZXRhaWxzPy5yZWRpcmVjdGlvblVybCA9PSAncmVtaW5kJykge1xyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZVJlbWluZChkYXRhLl9pZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7fSlcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoYnRuRGV0YWlscyAmJiBidG5EZXRhaWxzPy5yZWRpcmVjdGlvblVybCA9PSAndHJpYWxBcHByb3ZlZCcpIHtcclxuICAgICAgICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgICAgICAgIGlkOmJ0bkRldGFpbHMuaWQsXHJcbiAgICAgICAgICAgIHR5cGU6J2FwcHJvdmUnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UudHJpYWxBcHByb3ZlZChwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge30pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGJ0bkRldGFpbHMgJiYgYnRuRGV0YWlscz8ucmVkaXJlY3Rpb25VcmwgPT0gJ3N1YnNjcmliZWQnKSB7XHJcbiAgICAgICAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICAgICAgICBjbGllbnRJZDogYnRuRGV0YWlscz8uY2xpZW50SWQsXHJcbiAgICAgICAgICAgIHByb2R1Y3RzOiBbXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogYnRuRGV0YWlscy5wcm9kdWN0LFxyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3ROYW1lOiBidG5EZXRhaWxzLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdWJzY3JpcHRpb25cIixcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIm5ld1wiXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2VydmljZS51cGRhdGVTdWJzY3JpcHRpb24ocGFyYW1zKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChyZXM6YW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdCgnUHJvZHVjdCBTdWJzY3JpYmVkIFN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfSwoZXJyb3I6YW55KSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICB9KVxyXG4gIH1cclxuICBcclxuICBjaG9vc2VNYW5hZ2VyKHR5cGU6YW55KXtcclxuXHJcbiAgfVxyXG5cclxuICBvblBhZ2VDaGFuZ2UocGFnZU9mZnNldDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm9mZnNldCA9IE51bWJlcihwYWdlT2Zmc2V0KTtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlU2l6ZUNoYW5nZShwYWdlU2l6ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmxpbWl0ID0gTnVtYmVyKHBhZ2VTaXplKTtcclxuICAgIHRoaXMub2Zmc2V0ID0gMTtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgcGFnaW5hdGlvblNpemUoKTogbnVtYmVyIHtcclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLmxpbWl0Jyx0aGlzLmxpbWl0LHRoaXMudG90YWwpXHJcbiAgICBpZiAodGhpcy50b3RhbCA8IDEwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRvdGFsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGltaXQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8IS0tIDxkaXYgY2xhc3M9XCJyb3cgYnV0dG9uc2VjIG1iLTEwXCI+XHJcbiAgICA8YnV0dG9uIFtuZ0NsYXNzXT1cInNob3dhbGVydD8nJzonc3VibWVudSdcIiBjbGFzcz1cIiBjb2wtbGctNiBidG4gYmctbGlnaHQtcHJpbWFyeSB0ZXh0LXByaW1hcnlcIlxyXG4gICAgICAgIChjbGljayk9XCJjaG9vc2VNYW5hZ2VyKCdhbGVydCcpXCI+QWxlcnRzIE1hbmFnZXI8L2J1dHRvbj5cclxuICAgIDxidXR0b24gW25nQ2xhc3NdPVwic2hvd2Rvd25sb2FkPycnOidzdWJtZW51J1wiIGNsYXNzPVwiY29sLWxnLTYgYnRuIGJnLWxpZ2h0LXByaW1hcnkgXCJcclxuICAgICAgICAoY2xpY2spPVwiY2hvb3NlTWFuYWdlcignZG93bmxvYWQnKVwiPkRvd25sb2FkIE1hbmFnZXI8L2J1dHRvbj5cclxuPC9kaXY+IC0tPlxyXG5cclxuPGRpdiBjbGFzcz1cImNhcmQgdG9wYmFyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBtYi0yXCI+QWxlcnRzIE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgICAgPC9oMz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC14bC1yb3cgcC03IFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1sZy1yb3ctZmx1aWQgIG1iLTIwIG1iLXhsLTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9EYXRhICYmICFsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyB3LTI1XCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvbm9Ob3RpZmljYXRpb24uc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vdGlmaWNhdGlvbkFsaWduIG10LTEwXCI+Tm8gTmV3IE5vdGlmaWNhdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm9Ob3RpZmljYXRpb24gbXQtMlwiPkFueSBuZXcgbm90aWZpY2F0aW9uIHdpbGwgYmUgc2hvd25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZXJlLjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgdy0xMDBcIiAqbmdJZj1cIm5vdGlmaWNhdGlvbj8ubGVuZ3RoICYmICFsb2FkaW5nXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygbm90aWZpY2F0aW9uO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTggYm9yZGVyLXZhbHVlIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xIG1lLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTExXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtNTBweCBteC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTIxMDhfNTYzNjcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE5Ljk5OTMgMjMuMzMzM1YyME0xOS45OTkzIDE2LjY2NjZIMjAuMDA3N00yOC4zMzI3IDIwQzI4LjMzMjcgMjQuNjAyMyAyNC42MDE3IDI4LjMzMzMgMTkuOTk5MyAyOC4zMzMzQzE1LjM5NyAyOC4zMzMzIDExLjY2NiAyNC42MDIzIDExLjY2NiAyMEMxMS42NjYgMTUuMzk3NiAxNS4zOTcgMTEuNjY2NiAxOS45OTkzIDExLjY2NjZDMjQuNjAxNyAxMS42NjY2IDI4LjMzMjcgMTUuMzk3NiAyOC4zMzI3IDIwWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzEyMTA4XzU2MzY3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxMCAxMClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxlcnQtdGl0bGUgbXgtNFwiPnt7IGl0ZW0uX3NvdXJjZS50aXRsZSB9fTxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhbGVydGRvdCBtLTJcIj7igKI8L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFsZXJ0ZG90XCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLl9zb3VyY2UuZGF0ZSB8IGN1c3RvbURhdGVGb3JtYXQgfX0gVG9kYXk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsdC1kZXNjIGQtYmxvY2sgbXMtMTdcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5fc291cmNlLmRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwidXBkYXRlTm90aWZpY2F0aW9uKGl0ZW0sJycpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1IDVMNSAxNU01IDVMMTUgMTVcIiBzdHJva2U9XCIjNjY3MDg1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy0yMCBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGN0YSBvZiBpdGVtLl9zb3VyY2UuYWxlcnRDdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhWydyZW1pbmQnLCdjYW5jZWwnXS5pbmNsdWRlcyhjdGEucmVkaXJlY3Rpb25VcmwpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlTm90aWZpY2F0aW9uKGl0ZW0sY3RhKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5XCI+e3sgY3RhLmJ1dHRvbk5hbWUgfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiWydyZW1pbmQnLCdjYW5jZWwnXS5pbmNsdWRlcyhjdGEucmVkaXJlY3Rpb25VcmwpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlTm90aWZpY2F0aW9uKGl0ZW0sY3RhKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgbXgtNiByZW1pbmRsYXRlcnRleHQgY3Vyc29yLXBvaW50ZXJcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0YS5idXR0b25OYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm90aWZpY2F0aW9uPy5sZW5ndGggJiYgIWxvYWRpbmdcIiBjbGFzcz1cIm15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcGFnaW5hdGlvbiBbaXRlbXNQZXJQYWdlXT1cImxpbWl0XCIgW2N1cnJlbnRQYWdlXT1cIm9mZnNldFwiIFt0b3RhbEl0ZW1zXT1cInRvdGFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFnaW5hdGlvblNpemVzXT1cInBhZ2luYXRpb25TaXplc1wiIFtwYWdlU2l6ZV09XCJwYWdpbmF0aW9uU2l6ZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhZ2VTaXplQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPjwvbGliLXBhZ2luYXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcbjwhLS0gPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtYi0zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjXCIgd2lkdGg9XCIyMDBweFwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4gLS0+Il19
|
|
288
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBVXhELE1BQU0sT0FBTyxxQkFBcUI7SUErQmQ7SUFBZ0M7SUFBZ0M7SUFBK0I7SUFBb0M7SUFBOEI7SUFBNkI7SUE5QmhOLFNBQVMsR0FBVyxJQUFJLENBQUM7SUFDekIsWUFBWSxHQUFXLEtBQUssQ0FBQztJQUM3QixPQUFPLEdBQVksSUFBSSxDQUFDO0lBQ3hCLE1BQU0sR0FBWSxLQUFLLENBQUM7SUFDeEIsZUFBZSxHQUFZLElBQUksQ0FBQztJQUNoQyxjQUFjLEdBQVksS0FBSyxDQUFDO0lBQ2hDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDbEIsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUNoQixVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsZUFBZSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLE1BQU0sR0FBVyxDQUFDLENBQUM7SUFDbkIsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNkLElBQUksQ0FBTTtJQUNWLFlBQVksQ0FBTTtJQUNsQixRQUFRLENBQU07SUFDZCxHQUFHLENBQUs7SUFDUixJQUFJLENBQUk7SUFDUyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMxQyxZQUFZLENBQU07SUFDbEIsS0FBSyxDQUFLO0lBQ1YsU0FBUyxHQUFVLEVBQUUsQ0FBQztJQUN0QixVQUFVLENBQU07SUFDaEIsV0FBVyxHQUFPLEVBQUUsQ0FBQztJQUNyQixhQUFhLEdBQVcsRUFBRSxDQUFDO0lBQzNCLGFBQWEsR0FBUSxFQUFFLENBQUM7SUFDeEIsV0FBVyxDQUFTO0lBQ3BCLE9BQU8sQ0FBSztJQUNaLE9BQU8sQ0FBTTtJQUVmLFlBQW9CLFFBQXdCLEVBQVEsRUFBc0IsRUFBVSxLQUFxQixFQUFVLE9BQTJCLEVBQVMsRUFBcUIsRUFBUyxLQUFtQixFQUFVLE1BQWE7UUFBM00sYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFBUSxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUFTLFVBQUssR0FBTCxLQUFLLENBQWM7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFPO0lBQUUsQ0FBQztJQUdsTyxRQUFRO1FBQ04sSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjO2FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3pFLElBQUksV0FBVyxJQUFJLFlBQVksRUFBRTtnQkFDL0IsTUFBTSxRQUFRLEdBQVEsSUFBSSxDQUFDLEtBQUssQ0FDOUIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQzFDLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDO2FBQzdCO1lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN4QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzlCLElBQUksT0FBTyxFQUFFO29CQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQzdCO3FCQUFNO29CQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQzdCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFHLElBQUksRUFBQztnQkFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDdkIsMkJBQTJCO2dCQUMzQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDM0IsNkJBQTZCO2dCQUM3QixzQkFBc0I7Z0JBQ3RCLDZDQUE2QztnQkFDN0MsNEJBQTRCO2dCQUM1QixLQUFLO2FBQ047UUFFTCxDQUFDLENBQUMsQ0FBQTtJQUVGLENBQUM7SUFDQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsa0RBQWtELENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztZQUMzQixFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7U0FDN0QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksSUFBSSxHQUFHO1lBQ1QsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7YUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFO29CQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztvQkFDMUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7b0JBQ3pCLElBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEVBQUM7d0JBQ2pCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7cUJBQ3BDO3lCQUFJO3dCQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO3FCQUNyQztvQkFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7aUJBQ3JCO3FCQUFNO29CQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7aUJBQ3hCO2dCQUNELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDMUIsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDekIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFTLEVBQUUsVUFBZTtRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQzlGLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFO2dCQUMxQixJQUFHLENBQUMsVUFBVSxJQUFJLFVBQVUsRUFBRSxjQUFjLElBQUksWUFBWTtvQkFDMUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMxQyxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMxQixDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ1IsSUFBRyxVQUFVLElBQUksVUFBVSxFQUFFLGNBQWMsSUFBSSxFQUFFLElBQUksVUFBVSxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDckcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2lCQUN0RDtnQkFDRCxJQUFHLFVBQVUsSUFBSSxVQUFVLEVBQUUsY0FBYyxJQUFJLFFBQVEsRUFBRTtvQkFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFBO2lCQUN2RjtnQkFDRCxJQUFHLFVBQVUsSUFBSSxVQUFVLEVBQUUsY0FBYyxJQUFJLGVBQWUsRUFBRTtvQkFDOUQsSUFBSSxNQUFNLEdBQUc7d0JBQ1gsRUFBRSxFQUFDLFVBQVUsQ0FBQyxFQUFFO3dCQUNoQixJQUFJLEVBQUMsU0FBUztxQkFDZixDQUFBO29CQUNELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFBO2lCQUN0RjtnQkFDRCxJQUFHLFVBQVUsSUFBSSxVQUFVLEVBQUUsY0FBYyxJQUFJLFlBQVksRUFBRTtvQkFDM0QsSUFBSSxNQUFNLEdBQUc7d0JBQ1gsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRO3dCQUM5QixRQUFRLEVBQUU7NEJBQ047Z0NBQ0ksSUFBSSxFQUFFLFVBQVUsQ0FBQyxPQUFPO2dDQUN4QixXQUFXLEVBQUUsVUFBVSxDQUFDLElBQUk7Z0NBQzVCLElBQUksRUFBRSxjQUFjO2dDQUNwQixPQUFPLEVBQUUsS0FBSzs2QkFDakI7eUJBQ0o7cUJBQ0YsQ0FBQTtvQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBTyxFQUFFLEVBQUU7d0JBQzNGLElBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFOzRCQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO3lCQUMvRDtvQkFDSCxDQUFDLENBQUMsQ0FBQTtpQkFDSDtnQkFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxFQUFDLENBQUMsS0FBUyxFQUFFLEVBQUU7WUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBUTtRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRTtZQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxHQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsV0FBVyxHQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSztZQUN0QixXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQzFCLG1CQUFtQixFQUFFLE9BQU8sQ0FBRSx1REFBdUQ7U0FDdEYsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRTtZQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUN6QjthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNMLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsa0NBQWtDO1NBQ3BFO0lBRUgsQ0FBQztJQUVELFlBQVksQ0FBQyxVQUFrQjtRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUFFO1lBQzVCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO2FBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFVBQVUsRUFBRTtZQUN0QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUFnQjtRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUFFO1lBQzVCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO2FBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFVBQVUsRUFBRTtZQUN0QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztTQUM1QjtRQUNELDJCQUEyQjtJQUM3QixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ25CO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBSUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBRTVCLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQ3hDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQ3BDLFFBQVEsRUFBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU07WUFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxDQUFDO1lBQ1QsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQzFCLGNBQWMsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNsQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3hCLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUM7YUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFO29CQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUM1QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtvQkFFekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDckUsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7b0JBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO2lCQUNuRDtxQkFBTTtvQkFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztvQkFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7b0JBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO2lCQUNyQjtnQkFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzFCLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDdEIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBVztRQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQzt3R0E1UVUscUJBQXFCOzRGQUFyQixxQkFBcUIsd0RDWmxDLDAvYUEyTVE7OzRGRC9MSyxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSwgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbm90aWZpY2F0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBzaG93YWxlcnQ6Ym9vbGVhbiA9IHRydWU7XHJcbiAgc2hvd2Rvd25sb2FkOmJvb2xlYW4gPSBmYWxzZTtcclxuICBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBub0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkb3dubG9hZGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGRvd25sb2Fkbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXRlbXNQZXJQYWdlID0gMTA7XHJcbiAgY3VycmVudFBhZ2UgPSAxO1xyXG4gIHRvdGFsSXRlbXMgPSAwO1xyXG4gIHBhZ2luYXRpb25TaXplcyA9IFsxMCwgMjAsIDMwXTtcclxuICBsaW1pdDogbnVtYmVyID0gMTA7XHJcbiAgb2Zmc2V0OiBudW1iZXIgPSAxO1xyXG4gIHBhZ2VTaXplID0gMTA7XHJcbiAgdXNlcjogYW55O1xyXG4gIGhlYWRlckZpbHRlcjogYW55O1xyXG4gIGNsaWVudElkOiBhbnk7XHJcbiAgX2lkOmFueTtcclxuICBkYXRhOmFueVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIG5vdGlmaWNhdGlvbjogYW55O1xyXG4gIHRvdGFsOmFueTtcclxuICBkb3dubG9hZHM6IGFueVtdID0gW107XHJcbiAgaGVhZGVyRGF0YTogYW55O1xyXG4gIHNlYXJjaElucHV0OiBhbnkgPVwiXCI7XHJcbiAgc29ydENvbHVtTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgc29ydERpcmVjdGlvbjogYW55ID0gJyc7XHJcbiAgc2VhcmNoVmFsdWU6IHN0cmluZztcclxuICB0YWJ0eXBlOiBhbnlcclxuICB1c2VyX2lkOiBhbnk7XHJcbiAgXHJcbmNvbnN0cnVjdG9yKHByaXZhdGUgcGFnZUluZm86UGFnZUluZm9TZXJ2aWNlLHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSBzZXJ2aWNlOk5vdGlmaWNhdGlvblNlcnZpY2UscHJpdmF0ZSBjZCA6Q2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjpSb3V0ZXIpe31cclxuXHJcblxyXG5uZ09uSW5pdCgpOiB2b2lkIHtcclxuICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlXHJcbiAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCBkZWJvdW5jZVRpbWUoMzAwKSkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgIGlmIChcInVzZXItaW5mb1wiIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICBjb25zdCB1c2VyRGF0YTogYW55ID0gSlNPTi5wYXJzZShcclxuICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXItaW5mb1wiKSB8fCBcInt9XCJcclxuICAgICAgKTtcclxuICAgICAgdGhpcy51c2VyX2lkID0gdXNlckRhdGEuX2lkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgY29uc3QgdGFiVHlwZSA9IHBhcmFtc1sndGFiJ107XHJcbiAgICAgIGlmICh0YWJUeXBlKSB7XHJcbiAgICAgICAgdGhpcy5jaG9vc2VNYW5hZ2VyKHRhYlR5cGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hvb3NlTWFuYWdlcignYWxlcnQnKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYoZGF0YSl7XHJcbiAgICAgIHRoaXMuaGVhZGVyRGF0YSA9IGRhdGE7XHJcbiAgICAgIC8vIHRoaXMubm90aWZpY2F0aW9uTGlzdCgpO1xyXG4gICAgICB0aGlzLmRvd25sb2FkbWFuYWdlckxpc3QoKTtcclxuICAgICAgLy8gdGhpcy5jaG9vc2VNYW5hZ2VyKFwidHlwZVwiKVxyXG4gICAgICAvLyB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcbiAgICAgIC8vIHRoaXMuc2VydmljZS5yZWxvYWREYXRhJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAvLyAgIHRoaXMubm90aWZpY2F0aW9uTGlzdCgpXHJcbiAgICAgIC8vIH0pXHJcbiAgICB9XHJcbiAgICAgIFxyXG59KVxyXG4gXHJcbn1cclxuICBzZXRQYWdlRGF0YSgpIHtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0VGl0bGUoXCJBbGVydHNcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldERlc2NyaXB0aW9uKFwiVHJhY2sgYWxsIHlvdXIgYWN0aXZpdGllcyBhbmQgbm90aWZpY2F0aW9ucyBoZXJlXCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXHJcbiAgICAgIHsgdGl0bGU6IFwiXCIsIHBhdGg6IFwiXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlIH0sXHJcbiAgICBdKTtcclxuICB9XHJcblxyXG4gIG5vdGlmaWNhdGlvbkxpc3QoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIGxpbWl0OiB0aGlzLmxpbWl0LFxyXG4gICAgICBvZmZzZXQ6IHRoaXMub2Zmc2V0XHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXJ2aWNlLm5vdGlmaWNhdGlvbkxpc3QoZGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG90YWwgPSByZXMuZGF0YS5jb3VudDtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24gPSByZXMuZGF0YS5yZXN1bHQgfHwgW107XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGFnaW5hdGlvblNpemVzKClcclxuICAgICAgICAgICAgaWYodGhpcy50b3RhbCA8IDEwKXtcclxuICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFt0aGlzLnRvdGFsXVxyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFsxMCwgMjAsIDMwXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uID0gW107IFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbiA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVOb3RpZmljYXRpb24oZGF0YTogYW55LCBidG5EZXRhaWxzOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnNlcnZpY2Uubm90aWZpY2F0aW9uVXBkYXRlKGRhdGEuX2lkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIGlmKCFidG5EZXRhaWxzIHx8IGJ0bkRldGFpbHM/LnJlZGlyZWN0aW9uVXJsICE9ICdzdWJzY3JpYmVkJylcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KHJlcy5tZXNzYWdlKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uTGlzdCgpO1xyXG4gICAgICAgIH0sMTAwMCk7XHJcbiAgICAgICAgaWYoYnRuRGV0YWlscyAmJiBidG5EZXRhaWxzPy5yZWRpcmVjdGlvblVybCAhPSAnJyAmJiBidG5EZXRhaWxzPy5yZWRpcmVjdGlvblVybC5zcGxpdCgnLycpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYnRuRGV0YWlscy5yZWRpcmVjdGlvblVybCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGJ0bkRldGFpbHMgJiYgYnRuRGV0YWlscz8ucmVkaXJlY3Rpb25VcmwgPT0gJ3JlbWluZCcpIHtcclxuICAgICAgICAgIHRoaXMuc2VydmljZS51cGRhdGVSZW1pbmQoZGF0YS5faWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge30pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGJ0bkRldGFpbHMgJiYgYnRuRGV0YWlscz8ucmVkaXJlY3Rpb25VcmwgPT0gJ3RyaWFsQXBwcm92ZWQnKSB7XHJcbiAgICAgICAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICAgICAgICBpZDpidG5EZXRhaWxzLmlkLFxyXG4gICAgICAgICAgICB0eXBlOidhcHByb3ZlJ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLnRyaWFsQXBwcm92ZWQocGFyYW1zKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHt9KVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihidG5EZXRhaWxzICYmIGJ0bkRldGFpbHM/LnJlZGlyZWN0aW9uVXJsID09ICdzdWJzY3JpYmVkJykge1xyXG4gICAgICAgICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgICAgICAgY2xpZW50SWQ6IGJ0bkRldGFpbHM/LmNsaWVudElkLFxyXG4gICAgICAgICAgICBwcm9kdWN0czogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGJ0bkRldGFpbHMucHJvZHVjdCxcclxuICAgICAgICAgICAgICAgICAgICBwcm9kdWN0TmFtZTogYnRuRGV0YWlscy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3Vic2NyaXB0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJuZXdcIlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlU3Vic2NyaXB0aW9uKHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzOmFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ1Byb2R1Y3QgU3Vic2NyaWJlZCBTdWNjZXNzZnVsbHknKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0sKGVycm9yOmFueSkgPT4ge1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGNob29zZU1hbmFnZXIodHlwZTphbnkpe1xyXG4gICAgdGhpcy50YWJ0eXBlID0gdHlwZVxyXG4gICAgdGhpcy5zb3J0Q29sdW1OYW1lID0gXCJcIixcclxuICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IFwiXCIsXHJcbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gXCJcIixcclxuICAgIHRoaXMubGltaXQgPSAxMCwgICAgICAgICAgICAgICAgIFxyXG4gICAgdGhpcy5vZmZzZXQ9IDEsXHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlPSAxLFxyXG4gICAgdGhpcy5wYWdlU2l6ZSA9IDEwXHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xyXG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxyXG4gICAgICBxdWVyeVBhcmFtczogeyB0YWI6IHR5cGUgfSxcclxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyAgLy8ga2VlcHMgZXhpc3RpbmcgcXVlcnkgcGFyYW1zIGFuZCBtZXJnZXMgd2l0aCBuZXcgb25lc1xyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy50YWJ0eXBlID09PSAnYWxlcnQnKSB7XHJcbiAgICAgIHRoaXMuc2hvd2FsZXJ0ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zaG93ZG93bmxvYWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25MaXN0KCk7IFxyXG4gICAgfSBlbHNlIGlmICh0aGlzLnRhYnR5cGUgPT09ICdkb3dubG9hZCcpIHtcclxuICAgICAgdGhpcy5zaG93ZG93bmxvYWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNob3dhbGVydCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmRvd25sb2FkbWFuYWdlckxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBhZ2luYXRpb25TaXplcygpIHtcclxuICAgIGlmICh0aGlzLnRvdGFsSXRlbXMgPiAxMCkge1xyXG4gICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFsxMCwgMjAsIDMwXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gW3RoaXMudG90YWxJdGVtc107XHJcbiAgICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLnRvdGFsSXRlbXM7IC8vIEp1c3Qgb25lIG9wdGlvbiBpZiBsZXNzIHRoYW4gMTBcclxuICAgIH1cclxuICAgIFxyXG4gIH1cclxuXHJcbiAgb25QYWdlQ2hhbmdlKHBhZ2VPZmZzZXQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5vZmZzZXQgPSBOdW1iZXIocGFnZU9mZnNldCk7XHJcbiAgICBpZiAodGhpcy50YWJ0eXBlID09PSAnYWxlcnQnKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uTGlzdCgpOyBcclxuICAgIH0gZWxzZSBpZiAodGhpcy50YWJ0eXBlID09PSAnZG93bmxvYWQnKSB7XHJcbiAgICAgIHRoaXMuZG93bmxvYWRtYW5hZ2VyTGlzdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25QYWdlU2l6ZUNoYW5nZShwYWdlU2l6ZTogbnVtYmVyLCkge1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICB0aGlzLmxpbWl0ID0gTnVtYmVyKHBhZ2VTaXplKTtcclxuICAgIHRoaXMub2Zmc2V0ID0gMTtcclxuICAgIGlmICh0aGlzLnRhYnR5cGUgPT09ICdhbGVydCcpIHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25MaXN0KCk7IFxyXG4gICAgfSBlbHNlIGlmICh0aGlzLnRhYnR5cGUgPT09ICdkb3dubG9hZCcpIHtcclxuICAgICAgdGhpcy5kb3dubG9hZG1hbmFnZXJMaXN0KCk7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLm5vdGlmaWNhdGlvbkxpc3QoKTtcclxuICB9XHJcblxyXG4gIHBhZ2luYXRpb25TaXplKCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy50b3RhbCA8IDEwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRvdGFsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGltaXQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgXHJcbiAgZG93bmxvYWRtYW5hZ2VyTGlzdCgpIHtcclxuICAgIHRoaXMuZG93bmxvYWRsb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdCByZXF1ZXN0RGF0YSA9IHtcclxuICAgICAgZnJvbURhdGU6IHRoaXMuaGVhZGVyRGF0YS5kYXRlLnN0YXJ0RGF0ZSxcclxuICAgICAgdG9EYXRlOiB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlLFxyXG4gICAgICBjbGllbnRJZDp0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgICBzb3J0Qnk6IHRoaXMuc29ydERpcmVjdGlvbixcclxuICAgICAgc29ydENvbHVtbk5hbWU6IHRoaXMuc29ydENvbHVtTmFtZSxcclxuICAgICAgc2VhcmNoVmFsdWU6IHRoaXMuc2VhcmNoSW5wdXQsXHJcbiAgICAgIGNyZWF0ZWRCeTogdGhpcy51c2VyX2lkXHJcbiAgICB9O1xyXG4gIFxyXG4gICAgdGhpcy5zZXJ2aWNlLmdldGRvd25sb2FkbGlzdChyZXF1ZXN0RGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmRvd25sb2FkcyA9IHJlcy5kYXRhLmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMudG90YWwgPSByZXMuZGF0YS5jb3VudDtcclxuICAgICAgICAgICAgdGhpcy5zZXRQYWdpbmF0aW9uU2l6ZXMoKVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSB0aGlzLnRvdGFsIDwgMTAgPyBbdGhpcy50b3RhbF0gOiBbMTAsIDIwLCAzMF07XHJcbiAgICAgICAgICAgIHRoaXMuZG93bmxvYWRsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuZG93bmxvYWRub0RhdGEgPSB0aGlzLmRvd25sb2Fkcy5sZW5ndGggPT09IDA7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRvd25sb2Fkbm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZHMgPSBbXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZG93bmxvYWRub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5kb3dubG9hZGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZG93bmxvYWRzID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkRmlsZShyZWNvcmQ6IGFueSkge1xyXG4gICAgd2luZG93Lm9wZW4ocmVjb3JkLnVybCwgJ19ibGFuaycpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93IGJ1dHRvbnNlYyBtYi0xMFwiPlxyXG4gICAgPGJ1dHRvbiBbbmdDbGFzc109XCJzaG93YWxlcnQ/Jyc6J3N1Ym1lbnUnXCIgY2xhc3M9XCIgY29sLWxnLTYgYnRuIGJnLWxpZ2h0LXByaW1hcnkgdGV4dC1wcmltYXJ5XCJcclxuICAgICAgICAoY2xpY2spPVwiY2hvb3NlTWFuYWdlcignYWxlcnQnKVwiPkFsZXJ0cyBNYW5hZ2VyPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIFtuZ0NsYXNzXT1cInNob3dkb3dubG9hZD8nJzonc3VibWVudSdcIiBjbGFzcz1cImNvbC1sZy02IGJ0biBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNob29zZU1hbmFnZXIoJ2Rvd25sb2FkJylcIj5Eb3dubG9hZCBNYW5hZ2VyPC9idXR0b24+XHJcbjwvZGl2PlxyXG48ZGl2ICAqbmdJZj1cInNob3dhbGVydFwiIGNsYXNzPVwiY2FyZCB0b3BiYXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkLWxhYmVsIG1iLTJcIj5BbGVydHMgTWFuYWdlcjwvc3Bhbj5cclxuICAgICAgICA8L2gzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LXhsLXJvdyBwLTcgXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWxnLXJvdy1mbHVpZCAgbWItMjAgbWIteGwtMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub0RhdGEgJiYgIWxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjIHctMjVcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9ub05vdGlmaWNhdGlvbi5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm90aWZpY2F0aW9uQWxpZ24gbXQtMTBcIj5ObyBOZXcgTm90aWZpY2F0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub05vdGlmaWNhdGlvbiBtdC0yXCI+QW55IG5ldyBub3RpZmljYXRpb24gd2lsbCBiZSBzaG93blxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlcmUuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyB3LTEwMFwiICpuZ0lmPVwibm90aWZpY2F0aW9uPy5sZW5ndGggJiYgIWxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNlwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vdGlmaWNhdGlvbjtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi04IGJvcmRlci12YWx1ZSB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMSBtZS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzeW1ib2wgc3ltYm9sLTUwcHggbXgtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgcng9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjREFGMUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzEyMTA4XzU2MzY3KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOS45OTkzIDIzLjMzMzNWMjBNMTkuOTk5MyAxNi42NjY2SDIwLjAwNzdNMjguMzMyNyAyMEMyOC4zMzI3IDI0LjYwMjMgMjQuNjAxNyAyOC4zMzMzIDE5Ljk5OTMgMjguMzMzM0MxNS4zOTcgMjguMzMzMyAxMS42NjYgMjQuNjAyMyAxMS42NjYgMjBDMTEuNjY2IDE1LjM5NzYgMTUuMzk3IDExLjY2NjYgMTkuOTk5MyAxMS42NjY2QzI0LjYwMTcgMTEuNjY2NiAyOC4zMzI3IDE1LjM5NzYgMjguMzMyNyAyMFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMjEwOF81NjM2N1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMTAgMTApXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFsZXJ0LXRpdGxlIG14LTRcIj57eyBpdGVtLl9zb3VyY2UudGl0bGUgfX08c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxlcnRkb3QgbS0yXCI+4oCiPC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhbGVydGRvdFwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5fc291cmNlLmRhdGUgfCBjdXN0b21EYXRlRm9ybWF0IH19IFRvZGF5PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbHQtZGVzYyBkLWJsb2NrIG1zLTE3XCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uX3NvdXJjZS5kZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cInVwZGF0ZU5vdGlmaWNhdGlvbihpdGVtLCcnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNSA1TDUgMTVNNSA1TDE1IDE1XCIgc3Ryb2tlPVwiIzY2NzA4NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtMjAgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjdGEgb2YgaXRlbS5fc291cmNlLmFsZXJ0Q3RhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIVsncmVtaW5kJywnY2FuY2VsJ10uaW5jbHVkZXMoY3RhLnJlZGlyZWN0aW9uVXJsKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZU5vdGlmaWNhdGlvbihpdGVtLGN0YSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiPnt7IGN0YS5idXR0b25OYW1lIH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIlsncmVtaW5kJywnY2FuY2VsJ10uaW5jbHVkZXMoY3RhLnJlZGlyZWN0aW9uVXJsKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZU5vdGlmaWNhdGlvbihpdGVtLGN0YSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IG14LTYgcmVtaW5kbGF0ZXJ0ZXh0IGN1cnNvci1wb2ludGVyXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdGEuYnV0dG9uTmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vdGlmaWNhdGlvbj8ubGVuZ3RoICYmICFsb2FkaW5nXCIgY2xhc3M9XCJteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLXBhZ2luYXRpb24gW2l0ZW1zUGVyUGFnZV09XCJsaW1pdFwiIFtjdXJyZW50UGFnZV09XCJvZmZzZXRcIiBbdG90YWxJdGVtc109XCJ0b3RhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2luYXRpb25TaXplc109XCJwYWdpbmF0aW9uU2l6ZXNcIiBbcGFnZVNpemVdPVwicGFnaW5hdGlvblNpemUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlU2l6ZUNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCRldmVudClcIj48L2xpYi1wYWdpbmF0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcblxyXG48ZGl2IGNsYXNzPVwiY2FyZCB0b3BiYXJcIiAqbmdJZj1cInNob3dkb3dubG9hZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtbGFiZWwgbWItMlwiPkRvd25sb2FkIE1hbmFnZXI8L3NwYW4+XHJcbiAgICAgIDwvaDM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZG93bmxvYWRsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRvd25sb2Fkbm9EYXRhICYmICFkb3dubG9hZGxvYWRpbmdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmMgdy0yNVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm90aWZpY2F0aW9uQWxpZ24gbXQtMTBcIj5ObyBkYXRhIGZvdW5kPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vTm90aWZpY2F0aW9uIG10LTJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIERvd25sb2FkIE1hbmFnZXIuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiZG93bmxvYWRzPy5sZW5ndGggJiYgIWRvd25sb2FkbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByZWNvcmQgb2YgZG93bmxvYWRzXCIgY2xhc3M9XCJjb2wtbWQtNSBjYXJkIGJvcmRlciBweC01IHB5LTUgbXQtNVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDcwcHg7XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiICpuZ0lmPVwiZG93bmxvYWRzPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImRvd25sb2FkaW1hZ2VcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9UcmF4X0ZvbGRlcl9JY29uLnN2Z1wiIGFsdD1cIkZvbGRlciBJY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb2xkZXJuYW1lXCI+e3sgcmVjb3JkLm5hbWUgfX0ue3tyZWNvcmQ/LnR5cGUgPyByZWNvcmQudHlwZSA6ICd6aXAnIH19PC9zcGFuPjxicj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvd25sb2Fkc3RhdHVzXCIgKm5nSWY9XCJyZWNvcmQuc3RhdHVzID09PSAnY29tcGxldGVkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJbml0aWF0ZWQgVGltZToge3sgcmVjb3JkLmRvd25sb2FkZWRUaW1lIH19IHwge3sgcmVjb3JkLmRvd25sb2FkZWREYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZG93bmxvYWRzdGF0dXNcIiAqbmdJZj1cInJlY29yZC5zdGF0dXMgPT09ICdpbnByb2dyZXNzJ1wiPlByb2Nlc3NpbmcuLi48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwicmVjb3JkLnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCdcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBkb3dubG9hZFwiIChjbGljayk9XCJkb3dubG9hZEZpbGUocmVjb3JkKVwiPlxyXG4gICAgICAgICAgICAgICAgICBEb3dubG9hZFxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVjb3JkLnN0YXR1cyA9PT0gJ2lucHJvZ3Jlc3MnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJsb2FkZXJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9UcmF4LUxvYWRlciBHSUYuZ2lmXCIgYWx0PVwiTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZG93bmxvYWRzPy5sZW5ndGggJiYgIWRvd25sb2FkbG9hZGluZ1wiIGNsYXNzPVwibXktM1wiPlxyXG4gICAgICAgICAgICA8bGliLXBhZ2luYXRpb24gXHJcbiAgICAgICAgICAgICAgW2l0ZW1zUGVyUGFnZV09XCJsaW1pdFwiIFxyXG4gICAgICAgICAgICAgIFtjdXJyZW50UGFnZV09XCJvZmZzZXRcIiBcclxuICAgICAgICAgICAgICBbdG90YWxJdGVtc109XCJ0b3RhbFwiXHJcbiAgICAgICAgICAgICAgW3BhZ2luYXRpb25TaXplc109XCJwYWdpbmF0aW9uU2l6ZXNcIiBcclxuICAgICAgICAgICAgICBbcGFnZVNpemVdPVwicGFnaW5hdGlvblNpemUoKVwiXHJcbiAgICAgICAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChwYWdlU2l6ZUNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9saWItcGFnaW5hdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+Il19
|
|
@@ -7,6 +7,10 @@ const routes = [
|
|
|
7
7
|
{
|
|
8
8
|
path: 'alerts',
|
|
9
9
|
component: NotificationComponent
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
path: 'downloadmanager',
|
|
13
|
+
component: NotificationComponent
|
|
10
14
|
}
|
|
11
15
|
];
|
|
12
16
|
export class NotificationRoutingModule {
|
|
@@ -21,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
21
25
|
exports: [RouterModule]
|
|
22
26
|
}]
|
|
23
27
|
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBRTlFLE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFDLFFBQVE7UUFDYixTQUFTLEVBQUMscUJBQXFCO0tBQ2hDO0lBQ0Q7UUFDRSxJQUFJLEVBQUMsaUJBQWlCO1FBQ3RCLFNBQVMsRUFBQyxxQkFBcUI7S0FDaEM7Q0FDRixDQUFDO0FBTUYsTUFBTSxPQUFPLHlCQUF5Qjt3R0FBekIseUJBQXlCO3lHQUF6Qix5QkFBeUIsd0NBRjFCLFlBQVk7eUdBRVgseUJBQXlCLFlBSDFCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7OzRGQUVYLHlCQUF5QjtrQkFKckMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50JztcclxuXHJcbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xyXG4gIHtcclxuICAgIHBhdGg6J2FsZXJ0cycsXHJcbiAgICBjb21wb25lbnQ6Tm90aWZpY2F0aW9uQ29tcG9uZW50XHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOidkb3dubG9hZG1hbmFnZXInLFxyXG4gICAgY29tcG9uZW50Ok5vdGlmaWNhdGlvbkNvbXBvbmVudFxyXG4gIH1cclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcclxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uUm91dGluZ01vZHVsZSB7IH1cclxuIl19
|
|
@@ -17,7 +17,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
17
17
|
type: NgModule,
|
|
18
18
|
args: [{
|
|
19
19
|
declarations: [
|
|
20
|
-
NotificationComponent
|
|
20
|
+
NotificationComponent,
|
|
21
21
|
],
|
|
22
22
|
imports: [
|
|
23
23
|
CommonModule,
|
|
@@ -26,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
26
26
|
]
|
|
27
27
|
}]
|
|
28
28
|
}] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQWFwRSxNQUFNLE9BQU8sa0JBQWtCO3dHQUFsQixrQkFBa0I7eUdBQWxCLGtCQUFrQixpQkFSM0IscUJBQXFCLGFBR3JCLFlBQVk7WUFDWix5QkFBeUI7WUFDekIsa0JBQWtCO3lHQUdULGtCQUFrQixZQUwzQixZQUFZO1lBQ1oseUJBQXlCO1lBQ3pCLGtCQUFrQjs7NEZBR1Qsa0JBQWtCO2tCQVY5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixxQkFBcUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLHlCQUF5Qjt3QkFDekIsa0JBQWtCO3FCQUNuQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25Sb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9ub3RpZmljYXRpb24tcm91dGluZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vY29tbW9uL2NvbW1vbi1zaGFyZWQubW9kdWxlJztcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgTm90aWZpY2F0aW9uQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTm90aWZpY2F0aW9uUm91dGluZ01vZHVsZSxcclxuICAgIENvbW1vblNoYXJlZE1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbk1vZHVsZSB7IH1cclxuIl19
|