simpo-component-library 3.6.311 → 3.6.312
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/directive/icon-directive.directive.mjs +2 -1
- package/esm2022/lib/directive/image-directive.directive.mjs +2 -2
- package/esm2022/lib/directive/spacing-around.directive.mjs +2 -2
- package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +3 -19
- package/esm2022/lib/ecommerce/sections/returns-calculator/returns-calculator.component.mjs +19 -192
- package/esm2022/lib/ecommerce/sections/scheme-details/scheme-details.component.mjs +14 -169
- package/esm2022/lib/ecommerce/sections/user-profile/user-profile.component.mjs +21 -163
- package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +31 -90
- package/esm2022/lib/elements/image-editor/image-editor.component.mjs +2 -1
- package/esm2022/lib/sections/header-section/header-section.component.mjs +3 -15
- package/esm2022/lib/services/rest.service.mjs +7 -77
- package/esm2022/lib/services/storage.service.mjs +1 -8
- package/esm2022/lib/styles/index.mjs +1 -2
- package/esm2022/public-api.mjs +1 -3
- package/fesm2022/simpo-component-library.mjs +88 -1028
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +0 -1
- package/lib/ecommerce/sections/returns-calculator/returns-calculator.component.d.ts +3 -32
- package/lib/ecommerce/sections/scheme-details/scheme-details.component.d.ts +3 -30
- package/lib/ecommerce/sections/user-profile/user-profile.component.d.ts +2 -17
- package/lib/ecommerce/sections/verify-payment/verify-payment.component.d.ts +0 -4
- package/lib/sections/header-section/header-section.component.d.ts +0 -3
- package/lib/services/rest.service.d.ts +2 -17
- package/lib/services/storage.service.d.ts +0 -2
- package/lib/styles/index.d.ts +1 -2
- package/package.json +1 -1
- package/public-api.d.ts +0 -2
- package/simpo-component-library-3.6.312.tgz +0 -0
- package/esm2022/lib/ecommerce/sections/passbook-transactions/passbook-transactions.component.mjs +0 -37
- package/esm2022/lib/ecommerce/sections/schemes/schemes.component.mjs +0 -108
- package/esm2022/lib/ecommerce/sections/schemes/schemes.component.model.mjs +0 -2
- package/esm2022/lib/sections/scheme-detail/scheme-detail.component.mjs +0 -223
- package/esm2022/lib/sections/scheme-detail/scheme-detail.modal.mjs +0 -2
- package/lib/ecommerce/sections/passbook-transactions/passbook-transactions.component.d.ts +0 -14
- package/lib/ecommerce/sections/schemes/schemes.component.d.ts +0 -28
- package/lib/ecommerce/sections/schemes/schemes.component.model.d.ts +0 -21
- package/lib/sections/scheme-detail/scheme-detail.component.d.ts +0 -58
- package/lib/sections/scheme-detail/scheme-detail.modal.d.ts +0 -17
- package/simpo-component-library-3.6.311.tgz +0 -0
@@ -1,4 +1,5 @@
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
2
|
+
import Swal from 'sweetalert2';
|
2
3
|
import { MessageService } from 'primeng/api';
|
3
4
|
import { ToastModule } from 'primeng/toast';
|
4
5
|
import { BackgroundDirective } from '../../../directive/background-directive';
|
@@ -7,15 +8,14 @@ import { HoverDirective } from '../../../directive/hover-element-directive';
|
|
7
8
|
import { HoverElementsComponent } from '../../../components/hover-elements/hover-elements.component';
|
8
9
|
import { DeleteHoverElementComponent } from '../../../components/delete-hover-element/delete-hover-element.component';
|
9
10
|
import { CommonModule } from '@angular/common';
|
10
|
-
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
11
11
|
import * as i0 from "@angular/core";
|
12
12
|
import * as i1 from "../../../services/rest.service";
|
13
13
|
import * as i2 from "@angular/router";
|
14
14
|
import * as i3 from "../../../services/storage.service";
|
15
15
|
import * as i4 from "primeng/api";
|
16
16
|
import * as i5 from "../../../services/events.service";
|
17
|
-
import * as i6 from "
|
18
|
-
import * as i7 from "@angular/
|
17
|
+
import * as i6 from "primeng/toast";
|
18
|
+
import * as i7 from "@angular/common";
|
19
19
|
export class VerifyComponent extends BaseSection {
|
20
20
|
constructor(restService, router, storageService, messageService, _eventService) {
|
21
21
|
super();
|
@@ -25,12 +25,9 @@ export class VerifyComponent extends BaseSection {
|
|
25
25
|
this.messageService = messageService;
|
26
26
|
this._eventService = _eventService;
|
27
27
|
this.userDetails = null;
|
28
|
-
this.paymentStatus = 'ONGOING';
|
29
28
|
this.loadingText = "Please wait...";
|
30
29
|
this.API_COUNT = 0;
|
31
30
|
this.MAX_API_COUNT = 20;
|
32
|
-
this.PASSBOOK_API_COUNT = 0;
|
33
|
-
this.MAX_PASSBOOK_API_COUNT = 20;
|
34
31
|
}
|
35
32
|
ngOnInit() {
|
36
33
|
this.content = this.data?.content;
|
@@ -43,21 +40,15 @@ export class VerifyComponent extends BaseSection {
|
|
43
40
|
if (localStorage.getItem("REQUEST_FROM") == "ECOMMERCE")
|
44
41
|
return;
|
45
42
|
setTimeout(() => {
|
46
|
-
this.loadingText = 'Thanks for choosing us';
|
43
|
+
this.loadingText = this.content?.inputText?.[0]?.value ?? 'Thanks for choosing us';
|
47
44
|
setTimeout(() => {
|
48
|
-
this.loadingText = 'We are processing your payments';
|
45
|
+
this.loadingText = this.content?.inputText?.[1]?.value ?? 'We are processing your payments';
|
49
46
|
setTimeout(() => {
|
50
|
-
this.loadingText = 'Hold On...';
|
47
|
+
this.loadingText = this.content?.inputText?.[2]?.value ?? 'Hold On...';
|
48
|
+
this.checkPaymentStatus();
|
51
49
|
}, 3000);
|
52
50
|
}, 3000);
|
53
51
|
}, 3000);
|
54
|
-
const passBookOrderId = localStorage.getItem("passbookOrderId");
|
55
|
-
if (passBookOrderId) {
|
56
|
-
this.checkPassbookPaymentStatus();
|
57
|
-
}
|
58
|
-
else {
|
59
|
-
this.checkPaymentStatus();
|
60
|
-
}
|
61
52
|
}
|
62
53
|
get getImageUrl() {
|
63
54
|
return this.content?.image?.url;
|
@@ -75,83 +66,34 @@ export class VerifyComponent extends BaseSection {
|
|
75
66
|
localStorage.removeItem("cartId");
|
76
67
|
localStorage.removeItem("paymentFor");
|
77
68
|
this.storageService.clearUserCart();
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
// if (response.isConfirmed) {
|
89
|
-
// this.router.navigate(['/profile']);
|
90
|
-
// }
|
91
|
-
// })
|
69
|
+
Swal.fire({
|
70
|
+
icon: "success",
|
71
|
+
title: "Hurray",
|
72
|
+
text: "Order placed successfully",
|
73
|
+
confirmButtonText: "See Details"
|
74
|
+
}).then((response) => {
|
75
|
+
if (response.isConfirmed) {
|
76
|
+
this.router.navigate(['/profile']);
|
77
|
+
}
|
78
|
+
});
|
92
79
|
}, (error) => {
|
93
80
|
if (this.API_COUNT >= this.MAX_API_COUNT) {
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
// if (response.isConfirmed) {
|
105
|
-
// this.router.navigate(['/']);
|
106
|
-
// }
|
107
|
-
// })
|
81
|
+
Swal.fire({
|
82
|
+
icon: "error",
|
83
|
+
title: "Sorry",
|
84
|
+
text: "We encountered some issue while placing your order",
|
85
|
+
confirmButtonText: "Go To Home"
|
86
|
+
}).then((response) => {
|
87
|
+
if (response.isConfirmed) {
|
88
|
+
this.router.navigate(['/']);
|
89
|
+
}
|
90
|
+
});
|
108
91
|
}
|
109
92
|
else {
|
110
93
|
this.checkPaymentStatus();
|
111
94
|
}
|
112
95
|
});
|
113
96
|
}
|
114
|
-
checkPassbookPaymentStatus() {
|
115
|
-
const orderId = localStorage.getItem("passbookOrderId");
|
116
|
-
this.PASSBOOK_API_COUNT++;
|
117
|
-
this.restService.getPassbookOrderStatus(orderId).subscribe((response) => {
|
118
|
-
localStorage.removeItem("passbookOrderId");
|
119
|
-
this.paymentStatus = 'SUCCESS';
|
120
|
-
setTimeout(() => {
|
121
|
-
this.router.navigate(['/profile']);
|
122
|
-
}, 3000);
|
123
|
-
// Swal.fire({
|
124
|
-
// icon: "success",
|
125
|
-
// title: "Hurray",
|
126
|
-
// text: "Payment Successful",
|
127
|
-
// confirmButtonText: "See Details"
|
128
|
-
// }).then((response) => {
|
129
|
-
// if (response.isConfirmed) {
|
130
|
-
// this.router.navigate(['/profile'], {queryParams: {tab: 'Scheme Passbook'}});
|
131
|
-
// }
|
132
|
-
// })
|
133
|
-
}, (error) => {
|
134
|
-
if (this.PASSBOOK_API_COUNT >= this.MAX_PASSBOOK_API_COUNT) {
|
135
|
-
// Swal.fire({
|
136
|
-
// icon: "error",
|
137
|
-
// title: "Sorry",
|
138
|
-
// text: "We encountered some issue while placing your order",
|
139
|
-
// confirmButtonText: "Go To Home"
|
140
|
-
// }).then((response) => {
|
141
|
-
// if (response.isConfirmed) {
|
142
|
-
// this.router.navigate(['/']);
|
143
|
-
// }
|
144
|
-
// })
|
145
|
-
this.paymentStatus = 'FAILED';
|
146
|
-
setTimeout(() => {
|
147
|
-
this.router.navigate(['/']);
|
148
|
-
}, 3000);
|
149
|
-
}
|
150
|
-
else {
|
151
|
-
this.checkPassbookPaymentStatus();
|
152
|
-
}
|
153
|
-
});
|
154
|
-
}
|
155
97
|
editSection() {
|
156
98
|
if (window.innerWidth <= 475)
|
157
99
|
return;
|
@@ -161,7 +103,7 @@ export class VerifyComponent extends BaseSection {
|
|
161
103
|
}, 100);
|
162
104
|
}
|
163
105
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VerifyComponent, deps: [{ token: i1.RestService }, { token: i2.Router }, { token: i3.StorageServiceService }, { token: i4.MessageService }, { token: i5.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
164
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VerifyComponent, isStandalone: true, selector: "simpo-verify-payment", inputs: { data: "data", responseData: "responseData", edit: "edit", index: "index", delete: "delete", customClass: "customClass" }, providers: [MessageService], usesInheritance: true, ngImport: i0, template: "
|
106
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: VerifyComponent, isStandalone: true, selector: "simpo-verify-payment", inputs: { data: "data", responseData: "responseData", edit: "edit", index: "index", delete: "delete", customClass: "customClass" }, providers: [MessageService], usesInheritance: true, ngImport: i0, template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\" [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\r\n<section class=\"d-flex flex-column align-items-center justify-content-center total-container\" style=\"height: 100vh;\" [simpoBackground]=\"styles?.background\" simpoHover (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\r\n <img loading=\"lazy\" onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" [src]=\"getImageUrl\" style=\"height: 200px; width: 200px;\" [alt]=\"content?.image?.altText\">\r\n <span class=\"font-bold\">{{loadingText}}</span>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\" [isEcommerce]=\"true\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</section>\r\n", styles: ["span{color:#000;font-weight:600;font-size:larger}.total-container{position:relative;height:auto}\n"], dependencies: [{ kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i6.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }] }); }
|
165
107
|
}
|
166
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VerifyComponent, decorators: [{
|
167
109
|
type: Component,
|
@@ -171,9 +113,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
171
113
|
ToastModule,
|
172
114
|
CommonModule,
|
173
115
|
HoverElementsComponent,
|
174
|
-
DeleteHoverElementComponent
|
175
|
-
|
176
|
-
], providers: [MessageService], template: "<!-- <p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\" [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\r\n<section class=\"d-flex flex-column align-items-center justify-content-center total-container\" style=\"height: 100vh;\" [simpoBackground]=\"styles?.background\" simpoHover (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\r\n <img loading=\"lazy\" onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" [src]=\"getImageUrl\" style=\"height: 200px; width: 200px;\" [alt]=\"content?.image?.altText\">\r\n <span class=\"font-bold\">{{loadingText}}</span>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\" [isEcommerce]=\"true\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</section> -->\r\n<section *ngIf=\"paymentStatus === 'SUCCESS'\" class=\"main_section\">\r\n <div class=\"image_section\">\r\n <img alt=\"loader\" src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/688996c175593490852796237-success.gif\">\r\n </div>\r\n <div class=\"success_heading heading\">\r\n Payment Successfull\r\n </div>\r\n <div class=\"payment_sub_text\">\r\n Your payment has been successfully processed.\r\n </div>\r\n <!-- <div class=\"plan_description\">\r\n <div class=\"title_value\">\r\n <div class=\"plan_title\">\r\n Subscribed Plan\r\n </div>\r\n <div class=\"plan_value\">\r\n {{ planName | titlecase }}\r\n </div>\r\n </div>\r\n <div class=\"title_value\">\r\n <div class=\"plan_title\">\r\n Amount Paid\r\n </div>\r\n <div class=\"plan_value\">\r\n <span>\u20B9</span><span>{{ planAmount }}</span>\r\n </div>\r\n </div>\r\n <div class=\"title_value\">\r\n <div class=\"plan_title\">\r\n Valid till\r\n </div>\r\n <div class=\"plan_value\">\r\n {{ validity | date }}\r\n </div>\r\n </div>\r\n </div> -->\r\n</section>\r\n<section *ngIf=\"paymentStatus === 'FAILED'\" class=\"main_section\">\r\n <div class=\"image_section\">\r\n <img alt=\"loader\" src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/663878c1755934932573paymentfailed.gif\">\r\n </div>\r\n <div class=\"success_heading heading\">\r\n Payment Failed\r\n </div>\r\n <div class=\"payment_sub_text\">\r\n Unfortunately Payment was rejected\r\n </div>\r\n <div class=\"payment_minimal_text\">\r\n Page will be automatically redirect to homepage\r\n </div>\r\n <!-- <div class=\"plan_description\">\r\n <button (click)=\"done()\">Done</button>\r\n </div> -->\r\n</section>\r\n\r\n<section *ngIf=\"paymentStatus === 'ONGOING'\" class=\"main_section spinner\">\r\n <div class=\"payment-ongoing\">\r\n <mat-spinner style=\"width: 100%;\"></mat-spinner>\r\n <p>{{loadingText}}</p>\r\n </div>\r\n</section>\r\n", styles: ["*{font-family:var(--website-font-family)}.main_section{background-color:#fff;height:calc(90vh + -0px);overflow-y:scroll;display:flex;justify-content:center;align-items:center;flex-direction:column}.image_section img{width:100px}.success_heading{color:#000;margin-top:10px}.payment_sub_text{margin-top:10px;width:35%;text-align:center;line-height:32px}.plan_description{margin-top:10px!important;box-shadow:0 0 1px #28293d14,0 .5px 2px #60617029;background-color:#fff;border-radius:10px;width:30%;margin:0 auto;padding:40px}.title_value{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px}@media only screen and (max-width: 475px){.payment_sub_text{width:80%}.plan_description{width:80%;height:auto}}.spinner{display:flex;align-items:center;justify-content:center}.spinner p{margin-top:22px;font-size:18px;font-weight:500}.payment-ongoing mat-spinner{width:100%!important}.heading{font-size:18px;font-weight:700}\n"] }]
|
116
|
+
DeleteHoverElementComponent
|
117
|
+
], providers: [MessageService], template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\" [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\r\n<section class=\"d-flex flex-column align-items-center justify-content-center total-container\" style=\"height: 100vh;\" [simpoBackground]=\"styles?.background\" simpoHover (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\r\n <img loading=\"lazy\" onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" [src]=\"getImageUrl\" style=\"height: 200px; width: 200px;\" [alt]=\"content?.image?.altText\">\r\n <span class=\"font-bold\">{{loadingText}}</span>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\" [isEcommerce]=\"true\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</section>\r\n", styles: ["span{color:#000;font-weight:600;font-size:larger}.total-container{position:relative;height:auto}\n"] }]
|
177
118
|
}], ctorParameters: () => [{ type: i1.RestService }, { type: i2.Router }, { type: i3.StorageServiceService }, { type: i4.MessageService }, { type: i5.EventsService }], propDecorators: { data: [{
|
178
119
|
type: Input
|
179
120
|
}], responseData: [{
|
@@ -187,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
187
128
|
}], customClass: [{
|
188
129
|
type: Input
|
189
130
|
}] } });
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXBheW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvdmVyaWZ5LXBheW1lbnQvdmVyaWZ5LXBheW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvdmVyaWZ5LXBheW1lbnQvdmVyaWZ5LXBheW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTlFLE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7OztBQWtCOUUsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQWE5QyxZQUNtQixXQUF3QixFQUN4QixNQUFjLEVBQ2QsY0FBcUMsRUFDckMsY0FBOEIsRUFDOUIsYUFBNEI7UUFFN0MsS0FBSyxFQUFFLENBQUM7UUFOUyxnQkFBVyxHQUFYLFdB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QzFCLE9BQU87UUFFVCxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7K0dBcktVLGVBQWU7bUdBQWYsZUFBZSx1TUFKZixDQUFDLGNBQWMsQ0FBQyxpREM5QjdCLCtrR0F5RUEsdytCRGpESSxXQUFXLDhCQUNYLFlBQVksa0lBR1osd0JBQXdCOzs0RkFNZixlQUFlO2tCQWhCM0IsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0QiwyQkFBMkI7d0JBQzNCLHdCQUF3QjtxQkFDekIsYUFDVSxDQUFDLGNBQWMsQ0FBQztrTUFNbEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFZlcmlmeVBheW1lbnRDb250ZW50TW9kZWwsIFZlcmlmeVBheW1lbnRTZWN0aW9uTW9kYWwsIFZlcmlmeVBheW1lbnRTdHlsZXNNb2RlbCB9IGZyb20gJy4vdmVyaWZ5LXBheW1lbnQubW9kZWwnO1xyXG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9zdHlsZXMvdXNlci5tb2RhbCc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3ZlckVsZW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9ob3Zlci1lbGVtZW50cy9ob3Zlci1lbGVtZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWxldGVIb3ZlckVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2RlbGV0ZS1ob3Zlci1lbGVtZW50L2RlbGV0ZS1ob3Zlci1lbGVtZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby12ZXJpZnktcGF5bWVudCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBUb2FzdE1vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEhvdmVyRWxlbWVudHNDb21wb25lbnQsXHJcbiAgICBEZWxldGVIb3ZlckVsZW1lbnRDb21wb25lbnQsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmVyaWZ5LXBheW1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi92ZXJpZnktcGF5bWVudC5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVmVyaWZ5Q29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb24gaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBkYXRhPzogVmVyaWZ5UGF5bWVudFNlY3Rpb25Nb2RhbDtcclxuICBASW5wdXQoKSByZXNwb25zZURhdGE6IGFueTtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlcz86IFZlcmlmeVBheW1lbnRTdHlsZXNNb2RlbDtcclxuICBjb250ZW50PzogVmVyaWZ5UGF5bWVudENvbnRlbnRNb2RlbDtcclxuICBwcml2YXRlIHVzZXJEZXRhaWxzOiBVc2VyIHwgbnVsbCA9IG51bGw7XHJcbiAgcGF5bWVudFN0YXR1czogJ1NVQ0NFU1MnIHwgJ0ZBSUxFRCcgfCAnT05HT0lORycgPSAnT05HT0lORydcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2FkaW5nVGV4dDogc3RyaW5nID0gXCJQbGVhc2Ugd2FpdC4uLlwiO1xyXG4gIHByaXZhdGUgQVBJX0NPVU5UOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgTUFYX0FQSV9DT1VOVDogbnVtYmVyID0gMjA7XHJcbiAgcHJpdmF0ZSBQQVNTQk9PS19BUElfQ09VTlQ6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBNQVhfUEFTU0JPT0tfQVBJX0NPVU5UID0gMjA7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuXHJcbiAgICB0aGlzLnVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCkgYXMgVXNlcjtcclxuICAgIGlmICghdGhpcy51c2VyRGV0YWlscyAmJiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJSRVFVRVNUX0ZST01cIikgPT0gXCJVU0VSXCIpKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvcicsIGRldGFpbDogJ1BsZWFzZSBsb2dpbiB0byBhY2Nlc3MgcHJvZmlsZScgfSk7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJSRVFVRVNUX0ZST01cIikgPT0gXCJFQ09NTUVSQ0VcIilcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmxvYWRpbmdUZXh0ID0gJ1RoYW5rcyBmb3IgY2hvb3NpbmcgdXMnO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmdUZXh0ID0gJ1dlIGFyZSBwcm9jZXNzaW5nIHlvdXIgcGF5bWVudHMnO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nVGV4dCA9ICdIb2xkIE9uLi4uJztcclxuICAgICAgICB9LCAzMDAwKTtcclxuICAgICAgfSwgMzAwMCk7XHJcbiAgICB9LCAzMDAwKTtcclxuXHJcbiAgICBjb25zdCBwYXNzQm9va09yZGVySWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInBhc3Nib29rT3JkZXJJZFwiKTtcclxuICAgICAgaWYgKHBhc3NCb29rT3JkZXJJZCkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tQYXNzYm9va1BheW1lbnRTdGF0dXMoKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrUGF5bWVudFN0YXR1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGdldEltYWdlVXJsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGVudD8uaW1hZ2U/LnVybDtcclxuICB9XHJcbiAgZ2V0IGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgNDc1O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrUGF5bWVudFN0YXR1cygpIHtcclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIFwib3JkZXJJZFwiOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm9yZGVySWRcIilcclxuICAgIH1cclxuICAgIHRoaXMuQVBJX0NPVU5UKys7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmNoZWNrUGF5bWVudFN0YXR1cyhwYXlsb2FkKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwib3JkZXJJZFwiKTtcclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJjYXJ0SWRcIik7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwicGF5bWVudEZvclwiKTtcclxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5jbGVhclVzZXJDYXJ0KCk7XHJcbiAgICAgIHRoaXMucGF5bWVudFN0YXR1cyA9ICdTVUNDRVNTJ1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcHJvZmlsZSddKTtcclxuICAgICAgfSwgMzAwMCk7XHJcbiAgICAgIC8vIFN3YWwuZmlyZSh7XHJcbiAgICAgIC8vICAgaWNvbjogXCJzdWNjZXNzXCIsXHJcbiAgICAgIC8vICAgdGl0bGU6IFwiSHVycmF5XCIsXHJcbiAgICAgIC8vICAgdGV4dDogXCJPcmRlciBwbGFjZWQgc3VjY2Vzc2Z1bGx5XCIsXHJcbiAgICAgIC8vICAgY29uZmlybUJ1dHRvblRleHQ6IFwiU2VlIERldGFpbHNcIlxyXG4gICAgICAvLyB9KS50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAvLyAgIGlmIChyZXNwb25zZS5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAvLyAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcHJvZmlsZSddKTtcclxuICAgICAgLy8gICB9XHJcbiAgICAgIC8vIH0pXHJcbiAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgaWYgKHRoaXMuQVBJX0NPVU5UID49IHRoaXMuTUFYX0FQSV9DT1VOVCkge1xyXG4gICAgICAgIHRoaXMucGF5bWVudFN0YXR1cyA9ICdGQUlMRUQnXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XHJcbiAgICAgICAgfSwgMzAwMCk7XHJcbiAgICAgICAgLy8gU3dhbC5maXJlKHtcclxuICAgICAgICAvLyAgIGljb246IFwiZXJyb3JcIixcclxuICAgICAgICAvLyAgIHRpdGxlOiBcIlNvcnJ5XCIsXHJcbiAgICAgICAgLy8gICB0ZXh0OiBcIldlIGVuY291bnRlcmVkIHNvbWUgaXNzdWUgd2hpbGUgcGxhY2luZyB5b3VyIG9yZGVyXCIsXHJcbiAgICAgICAgLy8gICBjb25maXJtQnV0dG9uVGV4dDogXCJHbyBUbyBIb21lXCJcclxuICAgICAgICAvLyB9KS50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIC8vICAgaWYgKHJlc3BvbnNlLmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcclxuICAgICAgICAvLyAgIH1cclxuICAgICAgICAvLyB9KVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hlY2tQYXltZW50U3RhdHVzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHB1YmxpYyBjaGVja1Bhc3Nib29rUGF5bWVudFN0YXR1cygpIHtcclxuICAgIGNvbnN0IG9yZGVySWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInBhc3Nib29rT3JkZXJJZFwiKVxyXG4gICAgdGhpcy5QQVNTQk9PS19BUElfQ09VTlQrKztcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0UGFzc2Jvb2tPcmRlclN0YXR1cyhvcmRlcklkKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwicGFzc2Jvb2tPcmRlcklkXCIpO1xyXG4gICAgICB0aGlzLnBheW1lbnRTdGF0dXMgPSAnU1VDQ0VTUydcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSk7XHJcbiAgICAgIH0sIDMwMDApO1xyXG4gICAgICAvLyBTd2FsLmZpcmUoe1xyXG4gICAgICAvLyAgIGljb246IFwic3VjY2Vzc1wiLFxyXG4gICAgICAvLyAgIHRpdGxlOiBcIkh1cnJheVwiLFxyXG4gICAgICAvLyAgIHRleHQ6IFwiUGF5bWVudCBTdWNjZXNzZnVsXCIsXHJcbiAgICAgIC8vICAgY29uZmlybUJ1dHRvblRleHQ6IFwiU2VlIERldGFpbHNcIlxyXG4gICAgICAvLyB9KS50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAvLyAgIGlmIChyZXNwb25zZS5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAvLyAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcHJvZmlsZSddLCB7cXVlcnlQYXJhbXM6IHt0YWI6ICdTY2hlbWUgUGFzc2Jvb2snfX0pO1xyXG4gICAgICAvLyAgIH1cclxuICAgICAgLy8gfSlcclxuXHJcbiAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgaWYgKHRoaXMuUEFTU0JPT0tfQVBJX0NPVU5UID49IHRoaXMuTUFYX1BBU1NCT09LX0FQSV9DT1VOVCkge1xyXG4gICAgICAgIC8vIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgLy8gICBpY29uOiBcImVycm9yXCIsXHJcbiAgICAgICAgLy8gICB0aXRsZTogXCJTb3JyeVwiLFxyXG4gICAgICAgIC8vICAgdGV4dDogXCJXZSBlbmNvdW50ZXJlZCBzb21lIGlzc3VlIHdoaWxlIHBsYWNpbmcgeW91ciBvcmRlclwiLFxyXG4gICAgICAgIC8vICAgY29uZmlybUJ1dHRvblRleHQ6IFwiR28gVG8gSG9tZVwiXHJcbiAgICAgICAgLy8gfSkudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAvLyAgIGlmIChyZXNwb25zZS5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgIC8vICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XHJcbiAgICAgICAgLy8gICB9XHJcbiAgICAgICAgLy8gfSlcclxuICAgICAgICB0aGlzLnBheW1lbnRTdGF0dXMgPSAnRkFJTEVEJ1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xyXG4gICAgICAgIH0sIDMwMDApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hlY2tQYXNzYm9va1BheW1lbnRTdGF0dXMoKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZWRpdFNlY3Rpb24oKSB7XHJcblxyXG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7IGRhdGE6IHRoaXMuZGF0YSB9KTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gPHAtdG9hc3QgcG9zaXRpb249XCJib3R0b20tcmlnaHRcIiBbYmFzZVpJbmRleF09XCIxMDAwMDAwMDAwMFwiIFthdXRvWkluZGV4XT1cInRydWVcIiBbc2hvd1RyYW5zZm9ybU9wdGlvbnNdPVwiaXNNb2JpbGUgPyAndHJhbnNsYXRlWSgtMTAwJSknIDogJydcIj48L3AtdG9hc3Q+XHJcbjxzZWN0aW9uIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHRvdGFsLWNvbnRhaW5lclwiIHN0eWxlPVwiaGVpZ2h0OiAxMDB2aDtcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlcz8uYmFja2dyb3VuZFwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIj5cclxuICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBvbmVycm9yPVwidGhpcy5zcmM9J2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgICBbc3JjXT1cImdldEltYWdlVXJsXCIgc3R5bGU9XCJoZWlnaHQ6IDIwMHB4OyB3aWR0aDogMjAwcHg7XCIgW2FsdF09XCJjb250ZW50Py5pbWFnZT8uYWx0VGV4dFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj57e2xvYWRpbmdUZXh0fX08L3NwYW4+XHJcblxyXG4gICAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCIgW2lzRWNvbW1lcmNlXT1cInRydWVcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxyXG4gICAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XHJcbiAgPC9kaXY+XHJcbjwvc2VjdGlvbj4gLS0+XHJcbjxzZWN0aW9uICpuZ0lmPVwicGF5bWVudFN0YXR1cyA9PT0gJ1NVQ0NFU1MnXCIgY2xhc3M9XCJtYWluX3NlY3Rpb25cIj5cclxuICA8ZGl2IGNsYXNzPVwiaW1hZ2Vfc2VjdGlvblwiPlxyXG4gICAgPGltZyBhbHQ9XCJsb2FkZXJcIiBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzY4ODk5NmMxNzU1OTM0OTA4NTI3OTYyMzctc3VjY2Vzcy5naWZcIj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwic3VjY2Vzc19oZWFkaW5nIGhlYWRpbmdcIj5cclxuICAgIFBheW1lbnQgU3VjY2Vzc2Z1bGxcclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwicGF5bWVudF9zdWJfdGV4dFwiPlxyXG4gICAgWW91ciBwYXltZW50IGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBwcm9jZXNzZWQuXHJcbiAgPC9kaXY+XHJcbiAgPCEtLSA8ZGl2IGNsYXNzPVwicGxhbl9kZXNjcmlwdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRpdGxlX3ZhbHVlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwbGFuX3RpdGxlXCI+XHJcbiAgICAgICAgU3Vic2NyaWJlZCBQbGFuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGxhbl92YWx1ZVwiPlxyXG4gICAgICAgIHt7IHBsYW5OYW1lIHwgdGl0bGVjYXNlIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGl0bGVfdmFsdWVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBsYW5fdGl0bGVcIj5cclxuICAgICAgICBBbW91bnQgUGFpZFxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBsYW5fdmFsdWVcIj5cclxuICAgICAgICA8c3Bhbj7igrk8L3NwYW4+PHNwYW4+e3sgcGxhbkFtb3VudCB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0aXRsZV92YWx1ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGxhbl90aXRsZVwiPlxyXG4gICAgICAgIFZhbGlkIHRpbGxcclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwbGFuX3ZhbHVlXCI+XHJcbiAgICAgICAge3sgdmFsaWRpdHkgfCBkYXRlIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+IC0tPlxyXG48L3NlY3Rpb24+XHJcbjxzZWN0aW9uICpuZ0lmPVwicGF5bWVudFN0YXR1cyA9PT0gJ0ZBSUxFRCdcIiBjbGFzcz1cIm1haW5fc2VjdGlvblwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpbWFnZV9zZWN0aW9uXCI+XHJcbiAgICA8aW1nIGFsdD1cImxvYWRlclwiIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNjYzODc4YzE3NTU5MzQ5MzI1NzNwYXltZW50ZmFpbGVkLmdpZlwiPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJzdWNjZXNzX2hlYWRpbmcgaGVhZGluZ1wiPlxyXG4gICAgUGF5bWVudCBGYWlsZWRcclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwicGF5bWVudF9zdWJfdGV4dFwiPlxyXG4gICAgVW5mb3J0dW5hdGVseSBQYXltZW50IHdhcyByZWplY3RlZFxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJwYXltZW50X21pbmltYWxfdGV4dFwiPlxyXG4gICAgUGFnZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcmVkaXJlY3QgdG8gaG9tZXBhZ2VcclxuICA8L2Rpdj5cclxuICA8IS0tIDxkaXYgY2xhc3M9XCJwbGFuX2Rlc2NyaXB0aW9uXCI+XHJcbiAgICAgIDxidXR0b24gKGNsaWNrKT1cImRvbmUoKVwiPkRvbmU8L2J1dHRvbj5cclxuICA8L2Rpdj4gLS0+XHJcbjwvc2VjdGlvbj5cclxuXHJcbjxzZWN0aW9uICpuZ0lmPVwicGF5bWVudFN0YXR1cyA9PT0gJ09OR09JTkcnXCIgY2xhc3M9XCJtYWluX3NlY3Rpb24gc3Bpbm5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJwYXltZW50LW9uZ29pbmdcIj5cclxuICAgIDxtYXQtc3Bpbm5lciBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPjwvbWF0LXNwaW5uZXI+XHJcbiAgICA8cD57e2xvYWRpbmdUZXh0fX08L3A+XHJcbiAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuIl19
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXBheW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvdmVyaWZ5LXBheW1lbnQvdmVyaWZ5LXBheW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvdmVyaWZ5LXBheW1lbnQvdmVyaWZ5LXBheW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLekQsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUU5RSxPQUFPLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDckcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFDdEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFpQi9DLE1BQU0sT0FBTyxlQUFnQixTQUFRLFdBQVc7SUFZOUMsWUFDbUIsV0FBd0IsRUFDeEIsTUFBYyxFQUNkLGNBQXFDLEVBQ3JDLGNBQThCLEVBQzlCLGFBQTRCO1FBRTdDLEtBQUssRUFBRSxDQUFDO1FBTlMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIs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LFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLENBQUM7UUFDeEQsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0F6R1UsZUFBZTttR0FBZixlQUFlLHVNQUpmLENBQUMsY0FBYyxDQUFDLGlEQzVCN0IsbWtDQVlBLDRKRFNJLG1CQUFtQiwwR0FDbkIsY0FBYywrRUFDZCxXQUFXLHVXQUNYLFlBQVksaU9BQ1osc0JBQXNCLHlKQUN0QiwyQkFBMkI7OzRGQU1sQixlQUFlO2tCQWYzQixTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixzQkFBc0I7d0JBQ3RCLDJCQUEyQjtxQkFDNUIsYUFDVSxDQUFDLGNBQWMsQ0FBQztrTUFNbEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFZlcmlmeVBheW1lbnRDb250ZW50TW9kZWwsIFZlcmlmeVBheW1lbnRTZWN0aW9uTW9kYWwsIFZlcmlmeVBheW1lbnRTdHlsZXNNb2RlbCB9IGZyb20gJy4vdmVyaWZ5LXBheW1lbnQubW9kZWwnO1xyXG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9zdHlsZXMvdXNlci5tb2RhbCc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3ZlckVsZW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9ob3Zlci1lbGVtZW50cy9ob3Zlci1lbGVtZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWxldGVIb3ZlckVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2RlbGV0ZS1ob3Zlci1lbGVtZW50L2RlbGV0ZS1ob3Zlci1lbGVtZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLXZlcmlmeS1wYXltZW50JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXHJcbiAgICBIb3ZlckRpcmVjdGl2ZSxcclxuICAgIFRvYXN0TW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSG92ZXJFbGVtZW50c0NvbXBvbmVudCxcclxuICAgIERlbGV0ZUhvdmVyRWxlbWVudENvbXBvbmVudFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJpZnktcGF5bWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3ZlcmlmeS1wYXltZW50LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWZXJpZnlDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIGRhdGE/OiBWZXJpZnlQYXltZW50U2VjdGlvbk1vZGFsO1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNlRGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGVzPzogVmVyaWZ5UGF5bWVudFN0eWxlc01vZGVsO1xyXG4gIGNvbnRlbnQ/OiBWZXJpZnlQYXltZW50Q29udGVudE1vZGVsO1xyXG4gIHByaXZhdGUgdXNlckRldGFpbHM6IFVzZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2FkaW5nVGV4dDogc3RyaW5nID0gXCJQbGVhc2Ugd2FpdC4uLlwiO1xyXG4gIHByaXZhdGUgQVBJX0NPVU5UOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgTUFYX0FQSV9DT1VOVDogbnVtYmVyID0gMjA7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuXHJcbiAgICB0aGlzLnVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCkgYXMgVXNlcjtcclxuICAgIGlmICghdGhpcy51c2VyRGV0YWlscyAmJiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJSRVFVRVNUX0ZST01cIikgPT0gXCJVU0VSXCIpKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvcicsIGRldGFpbDogJ1BsZWFzZSBsb2dpbiB0byBhY2Nlc3MgcHJvZmlsZScgfSk7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcclxuICAgIH1cclxuXHJcbiAgICBpZihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlJFUVVFU1RfRlJPTVwiKSA9PSBcIkVDT01NRVJDRVwiKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGluZ1RleHQgPSB0aGlzLmNvbnRlbnQ/LmlucHV0VGV4dD8uWzBdPy52YWx1ZSA/PyAnVGhhbmtzIGZvciBjaG9vc2luZyB1cyc7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZ1RleHQgPSB0aGlzLmNvbnRlbnQ/LmlucHV0VGV4dD8uWzFdPy52YWx1ZSA/PyAnV2UgYXJlIHByb2Nlc3NpbmcgeW91ciBwYXltZW50cyc7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmdUZXh0ID0gdGhpcy5jb250ZW50Py5pbnB1dFRleHQ/LlsyXT8udmFsdWUgPz8gJ0hvbGQgT24uLi4nO1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrUGF5bWVudFN0YXR1cygpO1xyXG4gICAgICAgIH0sIDMwMDApO1xyXG4gICAgICB9LCAzMDAwKTtcclxuICAgIH0sIDMwMDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdldEltYWdlVXJsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGVudD8uaW1hZ2U/LnVybDtcclxuICB9XHJcbiAgZ2V0IGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgNDc1O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrUGF5bWVudFN0YXR1cygpIHtcclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIFwib3JkZXJJZFwiOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm9yZGVySWRcIilcclxuICAgIH1cclxuICAgIHRoaXMuQVBJX0NPVU5UKys7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmNoZWNrUGF5bWVudFN0YXR1cyhwYXlsb2FkKS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJvcmRlcklkXCIpO1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcImNhcnRJZFwiKTtcclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJwYXltZW50Rm9yXCIpO1xyXG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmNsZWFyVXNlckNhcnQoKTtcclxuICAgICAgU3dhbC5maXJlKHtcclxuICAgICAgICBpY29uOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICB0aXRsZTogXCJIdXJyYXlcIixcclxuICAgICAgICB0ZXh0OiBcIk9yZGVyIHBsYWNlZCBzdWNjZXNzZnVsbHlcIixcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCJTZWUgRGV0YWlsc1wiXHJcbiAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKT0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2UuaXNDb25maXJtZWQpIHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG5cclxuICAgIH0sIChlcnJvcik9PiB7XHJcbiAgICAgIGlmICh0aGlzLkFQSV9DT1VOVCA+PSB0aGlzLk1BWF9BUElfQ09VTlQpIHtcclxuICAgICAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgICAgaWNvbjogXCJlcnJvclwiLFxyXG4gICAgICAgICAgdGl0bGU6IFwiU29ycnlcIixcclxuICAgICAgICAgIHRleHQ6IFwiV2UgZW5jb3VudGVyZWQgc29tZSBpc3N1ZSB3aGlsZSBwbGFjaW5nIHlvdXIgb3JkZXJcIixcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIkdvIFRvIEhvbWVcIlxyXG4gICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKT0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrUGF5bWVudFN0YXR1cygpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBlZGl0U2VjdGlvbigpe1xyXG5cclxuICAgIGlmKHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcclxuICAgIHNldFRpbWVvdXQoKCk9PiB7XHJcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHtkYXRhOnRoaXMuZGF0YX0pO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcbn1cclxuIiwiPHAtdG9hc3QgcG9zaXRpb249XCJib3R0b20tcmlnaHRcIiBbYmFzZVpJbmRleF09XCIxMDAwMDAwMDAwMFwiIFthdXRvWkluZGV4XT1cInRydWVcIiBbc2hvd1RyYW5zZm9ybU9wdGlvbnNdPVwiaXNNb2JpbGUgPyAndHJhbnNsYXRlWSgtMTAwJSknIDogJydcIj48L3AtdG9hc3Q+XHJcbjxzZWN0aW9uIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHRvdGFsLWNvbnRhaW5lclwiIHN0eWxlPVwiaGVpZ2h0OiAxMDB2aDtcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlcz8uYmFja2dyb3VuZFwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIj5cclxuICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBvbmVycm9yPVwidGhpcy5zcmM9J2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgICBbc3JjXT1cImdldEltYWdlVXJsXCIgc3R5bGU9XCJoZWlnaHQ6IDIwMHB4OyB3aWR0aDogMjAwcHg7XCIgW2FsdF09XCJjb250ZW50Py5pbWFnZT8uYWx0VGV4dFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj57e2xvYWRpbmdUZXh0fX08L3NwYW4+XHJcblxyXG4gICAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCIgW2lzRWNvbW1lcmNlXT1cInRydWVcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxyXG4gICAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XHJcbiAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuIl19
|
@@ -118,6 +118,7 @@ export class ImageEditorComponent {
|
|
118
118
|
});
|
119
119
|
}
|
120
120
|
changeIconColor() {
|
121
|
+
debugger;
|
121
122
|
this.eventsService.iconChanged.emit({ id: this.sectionId + this.iconData.id, icon: this.iconData });
|
122
123
|
}
|
123
124
|
horizontalPosition() {
|
@@ -230,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
230
231
|
type: Inject,
|
231
232
|
args: [MAT_DIALOG_DATA]
|
232
233
|
}] }, { type: i3.MatDialog }] });
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWxlbWVudHMvaW1hZ2UtZWRpdG9yL2ltYWdlLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2ltYWdlLWVkaXRvci9pbWFnZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUEyQixNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFHcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7O0FBU3hFLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFDVSxhQUE0QixFQUM1QixhQUFvQyxFQUNyQyxTQUE2QyxFQUNwQixJQUFTLEVBQ2pDLFNBQW9CO1FBSnBCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFvQztRQUNwQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLGNB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bnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCdXR0b24sIEljb24sIEltYWdlIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgTWVkaWFTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL21lZGlhLXNlbGVjdG9yL21lZGlhLXNlbGVjdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbGVtZW50U2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9lZGl0b3Itc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVkaXJlY3Rpb25MaW5rVHlwZSB9IGZyb20gJy4uLy4uL3N0eWxlcy9pbmRleCc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLWltYWdlLWVkaXRvcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0U2xpZGVyTW9kdWxlLCBNYXRQcm9ncmVzc1NwaW5uZXJdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9pbWFnZS1lZGl0b3IuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEltYWdlRWRpdG9yQ29tcG9uZW50IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGV2ZW50c1NlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVsZW1lbnRTZXJ2aWNlU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxJbWFnZUVkaXRvckNvbXBvbmVudD4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcclxuICAgIHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2csXHJcbiAgKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgaW1hZ2VEYXRhOiBJbWFnZSA9IHtcclxuICAgIGlkOiAnJyxcclxuICAgIHVybDogJycsXHJcbiAgICBibHVyaGFzaDogJycsXHJcbiAgICBhbHRUZXh0OiAnJyxcclxuICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgIHg6IDAsXHJcbiAgICAgIHk6IDBcclxuICAgIH0sXHJcbiAgICBjb250ZW50OiB7XHJcbiAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgbGlua1R5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuUGFnZSxcclxuICAgICAgcmVkaXJlY3Rpb25Vcmw6ICcnLFxyXG4gICAgICBwYWdlSWQ6ICcnLFxyXG4gICAgICBuZXdUYWI6IGZhbHNlXHJcbiAgICB9XHJcbiAgfTtcclxuICBpY29uRGF0YTogSWNvbiA9IHtcclxuICAgIHVybDogJycsXHJcbiAgICBjb2xvcjogJycsXHJcbiAgICBzaG93QmFja2dyb3VuZDogZmFsc2UsXHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcnXHJcbiAgfVxyXG4gIHNlY3Rpb25JZCE6IHN0cmluZztcclxuICBwcml2YXRlIGJhY2tEcm9wOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gIGxpbms6IEJ1dHRvbiA9IHtcclxuICAgIGxpbmtUeXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLlBhZ2UsXHJcbiAgICBsYWJlbDogJycsXHJcbiAgICByZWRpcmVjdGlvblVybDogJycsXHJcbiAgICBwYWdlSWQ6ICcnLFxyXG4gICAgbmV3VGFiOiBmYWxzZVxyXG4gIH07XHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNlY3Rpb25JZCA9IHRoaXMuZGF0YS5zZWN0aW9uSWQ7XHJcbiAgICBpZiAodGhpcy5kYXRhPy5zaG93SWNvbikge1xyXG4gICAgICB0aGlzLmljb25EYXRhID0gdGhpcy5kYXRhLmljb25EYXRhO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmljb25EYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW1hZ2VIZWxwZXJGdW5jdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuICBSZWRpcmVjdGlvbkxpbmsgPSBSZWRpcmVjdGlvbkxpbmtUeXBlXHJcbiAgYWRkTGluazogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1heCA9IDEwMDtcclxuICBtaW4gPSAwO1xyXG5cclxuXHJcbiAgaW1nTG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYXN5bmMgdXBkYXRlSW1hZ2UoKSB7XHJcbiAgICB0aGlzLmltZ0xvYWRlciA9IHRydWU7XHJcbiAgICBjb25zdCBtZWRpYVNlbGVjdG9yRGlhbG9nID0gdGhpcy5tYXREaWFsb2cub3BlbihNZWRpYVNlbGVjdG9yQ29tcG9uZW50LCB7IGRhdGE6IHsgbXVsdGlwbGU6IGZhbHNlIH0sIHBhbmVsQ2xhc3M6IFwibWVkaWEtc2VsZWN0b3JcIiB9KVxyXG4gICAgbWVkaWFTZWxlY3RvckRpYWxvZy5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5kYXRhPy5zaG93SWNvbikge1xyXG4gICAgICAgICAgICB0aGlzLmljb25EYXRhLnVybCA9IHJlc1swXS5hc3NldHNbMF0udXJsO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pY29uRGF0YS51cmwgJiYgKHRoaXMuaWNvbkRhdGEudXJsLmluY2x1ZGVzKCcucG5nJykgfHwgdGhpcy5pY29uRGF0YS51cmwuaW5jbHVkZXMoJy5zdmcnKSkpIHtcclxuICAgICAgICAgICAgICB0aGlzLmV2ZW50c1NlcnZpY2UuaWNvbkNoYW5nZWQuZW1pdCh7IGlkOiB0aGlzLnNlY3Rpb25JZCArIHRoaXMuaWNvbkRhdGEuaWQsIGljb246IHRoaXMuaWNvbkRhdGEgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlRGF0YS51cmwgPSByZXNbMF0uYXNzZXRzWzBdLnVybDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbWdMb2FkZXIgPSBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlSWNvbkNvbG9yKCkge1xyXG4gICAgdGhpcy5ldmVudHNTZXJ2aWNlLmljb25DaGFuZ2VkLmVtaXQoeyBpZDogdGhpcy5zZWN0aW9uSWQgKyB0aGlzLmljb25EYXRhLmlkLCBpY29uOiB0aGlzLmljb25EYXRhIH0pO1xyXG4gIH1cclxuXHJcbiAgaG9yaXpvbnRhbFBvc2l0aW9uKCkge1xyXG4gICAgdGhpcy5ldmVudHNTZXJ2aWNlLm9iamVjdFBvc2l0aW9uQ2hhbmdlQ2hlY2suZW1pdCh7IGlkOiB0aGlzLnNlY3Rpb25JZCArIHRoaXMuaW1hZ2VEYXRhLmlkLCBwb3NpdGlvbjogdGhpcy5pbWFnZURhdGEucG9zaXRpb24gfSlcclxuICB9XHJcblxyXG4gIGRlbGV0ZUltYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YT8uc2hvd0ljb24pIHtcclxuICAgICAgdGhpcy5pY29uRGF0YS51cmwgPSAnJztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmltYWdlRGF0YS51cmwgPSAnJztcclxuICAgIH1cclxuICB9XHJcbiAgbGlua1R5cGU6IGFueVtdID0gW1xyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLlBhZ2VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuc2VjdGlvblxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5FeHRlcm5hbFxyXG4gICAgfVxyXG4gIF1cclxuICBzZWxlY3RlZFR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUgPSBSZWRpcmVjdGlvbkxpbmtUeXBlLlBhZ2U7XHJcbiAgY2hhbmdlVHlwZSh0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLmxpbmsubGlua1R5cGUgPSB0aGlzLnNlbGVjdGVkVHlwZTtcclxuICB9XHJcbiAgdGVtcGxhdGVQYWdlOiBhbnlbXSA9IFtdO1xyXG4gIGdldFRlbXBsYXRlUGFnZSgpIHtcclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5nZXRUZW1wbGF0ZSgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy50ZW1wbGF0ZVBhZ2UgPSByZXMuZGF0YTtcclxuICAgIH0pXHJcbiAgfVxyXG4gIGV4dGVybmFsTGlua1R5cGU6IEFycmF5PHR5cGU+ID0gW1xyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLkV4dGVybmFsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLkVtYWlsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLlBob25lXHJcbiAgICB9XHJcbiAgXVxyXG4gIGNvbGxlY3Rpb25MaXN0OiBhbnkgPSBbXTtcclxuICBjYXRlZ29yeUxpc3Q6IGFueSA9IFtdO1xyXG4gIGNvbGxlY3Rpb25QYXRoOiBhbnkgPSBcIlwiXHJcbiAgZ2V0Q29sbGVjdGlvbkxpc3QoKSB7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0QWxsQ29sbGVjdGlvbnMoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb25MaXN0ID0gcmVzO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBnZXRDYXRlZ29yeUxpc3QoKSB7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0QWxsQ2F0ZWdvcmllcygpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gcmVzO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIHBhZ2VOYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG4gIGFkZENvbGxlY3Rpb25Ub1BhdGgoKSB7XHJcbiAgICBpZiAodGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsLmluY2x1ZGVzKFwiP2NvbGxlY3Rpb25zPVwiKSkge1xyXG4gICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25Vcmwuc3BsaXQoXCI/Y29sbGVjdGlvbnM9XCIpWzBdO1xyXG4gICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgKyBcIj9jb2xsZWN0aW9ucz1cIiArIHRoaXMuY29sbGVjdGlvblBhdGg7XHJcbiAgICAgIGlmICh0aGlzLmNhdGVnb3J5UGF0aC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsICsgXCImY2F0ZWdvcnk9XCIgKyB0aGlzLmNhdGVnb3J5UGF0aDtcclxuICAgICAgfVxyXG5cclxuICAgIH0gZWxzZSBpZiAodGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsLmluY2x1ZGVzKFwiY2F0ZWdvcnk9XCIpKSB7XHJcbiAgICAgIHRoaXMubGluay5yZWRpcmVjdGlvblVybCA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybCArIFwiJmNvbGxlY3Rpb25zPVwiICsgdGhpcy5jb2xsZWN0aW9uUGF0aDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgKyBcIj9jb2xsZWN0aW9ucz1cIiArIHRoaXMuY29sbGVjdGlvblBhdGg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNhdGVnb3J5UGF0aDogYW55ID0gXCJcIjtcclxuICBhZGRDYXRlZ29yeVRvUGF0aCgpIHtcclxuICAgIGlmICh0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwuaW5jbHVkZXMoXCI/Y2F0ZWdvcnk9XCIpKSB7XHJcbiAgICAgIHRoaXMubGluay5yZWRpcmVjdGlvblVybCA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybC5zcGxpdChcIj9jYXRlZ29yeT1cIilbMF07XHJcbiAgICAgIHRoaXMubGluay5yZWRpcmVjdGlvblVybCA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybCArIFwiP2NhdGVnb3J5PVwiICsgdGhpcy5jYXRlZ29yeVBhdGg7XHJcbiAgICAgIGlmICh0aGlzLmNvbGxlY3Rpb25QYXRoLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgKyBcIiZjb2xsZWN0aW9ucz1cIiArIHRoaXMuY29sbGVjdGlvblBhdGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMubGluay5yZWRpcmVjdGlvblVybC5pbmNsdWRlcyhcImNvbGxlY3Rpb25zPVwiKSkge1xyXG4gICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgKyBcIiZjYXRlZ29yeT1cIiArIHRoaXMuY2F0ZWdvcnlQYXRoO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsICsgXCI/Y2F0ZWdvcnk9XCIgKyB0aGlzLmNhdGVnb3J5UGF0aDtcclxuICAgIH1cclxuICB9XHJcbiAgb25QYWdlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkUGFnZUlkID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRQYWdlID0gdGhpcy50ZW1wbGF0ZVBhZ2UuZmluZChwYWdlID0+IHBhZ2UuaWQgPT09IHNlbGVjdGVkUGFnZUlkKTtcclxuICAgIGlmIChzZWxlY3RlZFBhZ2UpIHtcclxuICAgICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gc2VsZWN0ZWRQYWdlLnBhdGg7XHJcbiAgICAgIHRoaXMucGFnZU5hbWUgPSBzZWxlY3RlZFBhZ2UucGFnZU5hbWU7XHJcbiAgICAgIGlmICh0aGlzLnBhZ2VOYW1lID09ICdQcm9kdWN0IExpc3QnKSB7XHJcbiAgICAgICAgdGhpcy5nZXRDb2xsZWN0aW9uTGlzdCgpO1xyXG4gICAgICAgIHRoaXMuZ2V0Q2F0ZWdvcnlMaXN0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIGltYWdlSGVscGVyRnVuY3Rpb24oKSB7XHJcbiAgICB0aGlzLmltYWdlRGF0YSA9IHRoaXMuZGF0YS5pbWFnZURhdGE7XHJcbiAgICB0aGlzLmFkZExpbmsgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZGF0YT8uaW1hZ2VEYXRhPy5jb250ZW50KSB7XHJcbiAgICAgIHRoaXMubGluayA9IHRoaXMuZGF0YS5pbWFnZURhdGE/LmNvbnRlbnQ7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUeXBlID0gdGhpcy5saW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmtUeXBlLkVtYWlsIHx8IHRoaXMubGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rVHlwZS5QaG9uZSA/IFJlZGlyZWN0aW9uTGlua1R5cGUuRXh0ZXJuYWwgOiB0aGlzLmxpbmsubGlua1R5cGU7XHJcbiAgICAgIHRoaXMuYWRkTGluayA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRUZW1wbGF0ZVBhZ2UoKTtcclxuICAgIGlmICh0aGlzLmxpbms/LnJlZGlyZWN0aW9uVXJsLmluY2x1ZGVzKFwiY29sbGVjdGlvbnM9XCIpKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuZ2V0Q29sbGVjdGlvbkxpc3QoKTtcclxuICAgICAgdGhpcy5wYWdlTmFtZSA9IFwiUHJvZHVjdCBMaXN0XCI7XHJcbiAgICAgIGxldCBxdWVyeSA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybC5zcGxpdChcIj9cIilbMV07XHJcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocXVlcnkpO1xyXG4gICAgICB0aGlzLmNvbGxlY3Rpb25QYXRoID0gcGFyYW1zLmdldCgnY29sbGVjdGlvbnMnKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxpbms/LnJlZGlyZWN0aW9uVXJsLmluY2x1ZGVzKFwiY2F0ZWdvcnk9XCIpKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuZ2V0Q2F0ZWdvcnlMaXN0KCk7XHJcbiAgICAgIHRoaXMucGFnZU5hbWUgPSBcIlByb2R1Y3QgTGlzdFwiO1xyXG4gICAgICBsZXQgcXVlcnkgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25Vcmwuc3BsaXQoXCI/XCIpWzFdO1xyXG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHF1ZXJ5KTtcclxuICAgICAgdGhpcy5jYXRlZ29yeVBhdGggPSBwYXJhbXMuZ2V0KCdjYXRlZ29yeScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuaW50ZXJmYWNlIHR5cGUge1xyXG4gIHR5cGU6IHN0cmluZztcclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cIm1haW4tc2VjdGlvblwiPlxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItc2VjdGlvbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVhZC10ZXh0XCI+SW1hZ2UgU2V0dGluZ3M8L2Rpdj5cclxuICAgIDxtYXQtaWNvbiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBmLTE4IGNwXCJcclxuICAgICAgKGNsaWNrKT1cImRpYWxvZ1JlZi5jbG9zZSgpXCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXY+XHJcbiAgICA8IS0tIDxwIGNsYXNzPVwiaGVhZGluZyBtYi0wXCI+SW1hZ2U8L3A+IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1pbWFnZSBjcFwiICpuZ0lmPVwiIWltYWdlRGF0YS51cmwgJiYgIWljb25EYXRhLnVybFwiIChjbGljayk9XCJ1cGRhdGVJbWFnZSgpXCI+XHJcbiAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIlxyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvNTQ3NTAwYzE3NDQ2OTg4MzAzNDN1cGxvYWQtb25lJTIwJTI4MSUyOS5wbmdcIlxyXG4gICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICA8cCBjbGFzcz1cInVwbG9hZC10ZXh0IG1iLTBcIj5VcGxvYWQgYSBmaWxlPC9wPlxyXG4gICAgICA8cCBjbGFzcz1cInVwbG9hZC10ZXh0IG1iLTBcIj5vciBzZWxlY3QgYW4gZXhpc3Rpbmcgb25lPC9wPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZC10ZXh0XCI+dXAgdG8gMzJNQjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInNlYyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgKm5nSWY9XCJpbWFnZURhdGEudXJsIHx8IGljb25EYXRhLnVybFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWltZ0xvYWRlclwiPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJpbWFnZURhdGEudXJsIHx8IGljb25EYXRhLnVybFwiIFthbHRdPVwiaW1hZ2VEYXRhLmFsdFRleHQgPz8gJydcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVwYWxjZS1pbWFnZSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJ1cGRhdGVJbWFnZSgpXCI+XHJcbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCJcclxuICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIiBjbGFzcz1cImljb24gdy00IGgtNFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2Utd2lkdGg9XCIxLjVcIlxyXG4gICAgICAgICAgICAgIGQ9XCJtNCAxNiA0LjU4NTc5LTQuNTg1OGMuNzgxMDQtLjc4MSAyLjA0NzQxLS43ODEgMi44Mjg0MSAwTDE2IDE2bS0yLTIgMS41ODU4LTEuNTg1OGMuNzgxLS43ODEgMi4wNDc0LS43ODEgMi44Mjg0IDBMMjAgMTRtLTYtNmguMDFNNiAyMGgxMmMxLjEwNDYgMCAyLS44OTU0IDItMlY2YzAtMS4xMDQ1Ny0uODk1NC0yLTItMkg2Yy0xLjEwNDU3IDAtMiAuODk1NDMtMiAydjEyYzAgMS4xMDQ2Ljg5NTQzIDIgMiAyWlwiPlxyXG4gICAgICAgICAgICA8L3BhdGg+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZS1pbWFnZSBjdXJzb3ItcG9pbnRlciBcIiAoY2xpY2spPVwiZGVsZXRlSW1hZ2UoKVwiPlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCIjZmZmZmZmXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIlxyXG4gICAgICAgICAgICBoZWlnaHQ9XCIyNFwiIGNsYXNzPVwiaWNvbiBoLTQgdy00XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgZD1cIm0xOSA3LS44NjczIDEyLjE0MjVDMTguMDU3OSAyMC4xODkxIDE3LjE4NyAyMSAxNi4xMzc4IDIxSDcuODYyMjRjLTEuMDQ5MjggMC0xLjkyMDE2LS44MTA5LTEuOTk0OTItMS44NTc1TDUgN201IDR2Nm00LTZ2Nm0xLTEwVjRjMC0uNTUyMjgtLjQ0NzctMS0xLTFoLTRjLS41NTIyOCAwLTEgLjQ0NzcyLTEgMXYzTTQgN2gxNlwiPlxyXG4gICAgICAgICAgICA8L3BhdGg+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbWdMb2FkZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkX3NwaW5uZXIgZC1mbGV4IHctMTAwIGgtMTAwIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICA8bWF0LXNwaW5uZXI+PC9tYXQtc3Bpbm5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkYXRhLnNob3dJY29uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidy0xMDAgcC0wLTEwIG1iLTIyXCIgKm5nSWY9XCJpbWFnZURhdGEuaGFzT3duUHJvcGVydHkoJ2FsdFRleHQnKVwiPlxyXG4gICAgICA8cCBjbGFzcz1cImhlYWRpbmcgbWItMlwiPkFsdCB0ZXh0PC9wPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGFsdCB0ZXh0XCIgY2xhc3M9XCJpbnB1dC1maWVsZCB3LTEwMFwiIFsobmdNb2RlbCldPVwiaW1hZ2VEYXRhLmFsdFRleHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+V2hlbiB0aGUgaW1hZ2UgZmFpbHMgdG8gbG9hZCwgdGhpcyB0ZXh0IHdpbGwgYmUgZGlzcGxheWVkLjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImltYWdlIG1iLTIyXCIgKm5nSWY9XCJpbWFnZURhdGEuaGFzT3duUHJvcGVydHkoJ3Bvc2l0aW9uJylcIj5cclxuICAgICAgPHAgY2xhc3M9XCJoZWFkaW5nIG1iLTFcIj5JbWFnZSBQb3NpdGlvbjwvcD5cclxuICAgICAgPGRpdiBjbGFzcz1cImhvcml6b250YWwtYWN0aW9uXCI+XHJcbiAgICAgICAgPGxhYmVsPkhvcml6b250YWw8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgY3BcIj5cclxuICAgICAgICAgIDxpbnB1dCBbbWluXT1cIm1pblwiIFttYXhdPVwibWF4XCIgc3RlcD1cIjVcIiB0eXBlPVwicmFuZ2VcIiBbKG5nTW9kZWwpXT1cImltYWdlRGF0YS5wb3NpdGlvbi54XCJcclxuICAgICAgICAgICAgKGlucHV0KT1cImhvcml6b250YWxQb3NpdGlvbigpXCIgY2xhc3M9XCJ3LTc1XCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1hY3Rpb25cIiBzdHlsZT1cIm1hcmdpbi10b3A6IDVweDtcIj5cclxuICAgICAgICA8bGFiZWw+VmVydGljYWw8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgY3BcIj5cclxuICAgICAgICAgIDxpbnB1dCBbbWluXT1cIm1pblwiIFttYXhdPVwibWF4XCIgc3RlcD1cIjVcIiB0eXBlPVwicmFuZ2VcIiBbKG5nTW9kZWwpXT1cImltYWdlRGF0YS5wb3NpdGlvbi55XCJcclxuICAgICAgICAgICAgKGlucHV0KT1cImhvcml6b250YWxQb3NpdGlvbigpXCIgY2xhc3M9XCJ3LTc1XCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBzIGNwIHB4LTNcIj5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdHlwZSBvZiBsaW5rVHlwZVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUeXBlJyA6IHR5cGUudHlwZSA9PT0gc2VsZWN0ZWRUeXBlfVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZVR5cGUodHlwZS50eXBlKVwiPnt7dHlwZS50eXBlfX08L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZpZWxkLWNvbnRhaW5lciBtdC0zIG14LTNcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cImxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5QYWdlXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwtMSBtdC0zIG1iLTJcIj5TZWxlY3QgUGFnZTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtZG93bi1jb250YWluZXIgdy0xMDAgZC1mbGV4IG1iLTJcIj5cclxuICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJsaW5rLnBhZ2VJZFwiIChjaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiIHNlbGVjdGVkPlNlbGVjdCBmcm9tIHlvdXIgZXhpc3RpbmcgcGFnZXM8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgcGFnZSBvZiB0ZW1wbGF0ZVBhZ2VcIiBbdmFsdWVdPVwicGFnZS5pZFwiIHN0eWxlPVwicGFkZGluZzogMTBweDtcIj5cclxuICAgICAgICAgICAgICB7e3BhZ2UucGFnZU5hbWV9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG93bi1hcnJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj48aW1nXHJcbiAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy8yNjg0MTBjMTc0MjI4NjA1Mjk0MERvd24lMjAyLnBuZ1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VOYW1lID09ICdQcm9kdWN0IExpc3QnXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbC0xIG10LTMgbWItMlwiPlNlbGVjdCBDb2xsZWN0aW9uPC9sYWJlbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wLWRvd24tY29udGFpbmVyIHctMTAwIGQtZmxleCBtYi0yXCI+XHJcbiAgICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJjb2xsZWN0aW9uUGF0aFwiIChuZ01vZGVsQ2hhbmdlKT1cImFkZENvbGxlY3Rpb25Ub1BhdGgoKVwiPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiBzZWxlY3RlZD5TZWxlY3QgZnJvbSB5b3VyIGV4aXN0aW5nIHBhZ2VzPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY29sbCBvZiBjb2xsZWN0aW9uTGlzdFwiIHN0eWxlPVwicGFkZGluZzogMTBweDtcIiBbdmFsdWVdPVwiY29sbC5jb2xsZWN0aW9uTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAge3tjb2xsPy5jb2xsZWN0aW9uTmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbC0xIG10LTMgbWItMlwiPlNlbGVjdCBDYXRlZ29yeTwvbGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcC1kb3duLWNvbnRhaW5lciB3LTEwMCBkLWZsZXggbWItMlwiPlxyXG4gICAgICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwiY2F0ZWdvcnlQYXRoXCIgKG5nTW9kZWxDaGFuZ2UpPVwiYWRkQ2F0ZWdvcnlUb1BhdGgoKVwiPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiBzZWxlY3RlZD5TZWxlY3QgZnJvbSB5b3VyIGV4aXN0aW5nIHBhZ2VzPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY29sbCBvZiBjYXRlZ29yeUxpc3RcIiBzdHlsZT1cInBhZGRpbmc6IDEwcHg7XCIgW3ZhbHVlXT1cImNvbGwuY2F0ZWdvcnlOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICB7e2NvbGw/LmNhdGVnb3J5TmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5TZWxlY3QgZnJvbSB5b3VyIGV4aXN0aW5nIHBhZ2VzPC9kaXY+IC0tPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5zZWN0aW9uXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwibXQtMyBtYi0yIGlucHV0LWxhYmVsLTFcIj5TZWN0aW9uPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcC1kb3duLWNvbnRhaW5lciB3LTEwMCBkLWZsZXggbWItMlwiPlxyXG4gICAgICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cImxpbmsucGFnZUlkXCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiBzZWxlY3RlZD5TZWxlY3QgdGhlIFNlY3Rpb248L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiB0ZW1wbGF0ZVBhZ2VbMF0/LmNvbXBvbmVudHNcIiBbdmFsdWVdPVwic2VjdGlvbi5pZFwiPnt7c2VjdGlvbi5zZWN0aW9uTmFtZX19XHJcbiAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG93bi1hcnJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj48aW1nXHJcbiAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy8yNjg0MTBjMTc0MjI4NjA1Mjk0MERvd24lMjAyLnBuZ1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0xMFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsLTJcIj5PcGVuIGluIGEgbmV3IGJyb3dzZXIgdGFiPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtbC1hdXRvXCI+XHJcbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHN3aXRjaC1idG4gY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cImxpbmsubmV3VGFiXCJcclxuICAgICAgICAgICAgcm9sZT1cInN3aXRjaFwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cImxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5FeHRlcm5hbCB8fCBsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuRW1haWwgfHwgbGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rLlBob25lXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwibXQtMyBtYi0yIGlucHV0LWxhYmVsLTFcIj5TZWxlY3QgdHlwZTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtZG93bi1jb250YWluZXIgdy0xMDAgZC1mbGV4IG1iLTJcIj5cclxuICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJsaW5rLmxpbmtUeXBlXCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiBzZWxlY3RlZD5TZWxlY3QgdGhlIFR5cGU8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdHlwZSBvZiBleHRlcm5hbExpbmtUeXBlXCIgW3ZhbHVlXT1cInR5cGUudHlwZVwiPnt7dHlwZS50eXBlfX08L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRvd24tYXJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+PGltZ1xyXG4gICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMjY4NDEwYzE3NDIyODYwNTI5NDBEb3duJTIwMi5wbmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsIG1iLTJcIj57e2xpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5FeHRlcm5hbCA/ICdXZWJzaXRlJyA6IGxpbmsubGlua1R5cGUgPT09XHJcbiAgICAgICAgICBSZWRpcmVjdGlvbkxpbmsuRW1haWwgPyAnRW1haWwgQWRkcmVzcycgOiAnUGhvbmUgTnVtYmVyJ319PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImlucHV0LXRleHRcIiBbKG5nTW9kZWwpXT1cImxpbmsucmVkaXJlY3Rpb25VcmxcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5FeHRlcm5hbCA/ICdleGFtcGxlIDogaHR0cHM6Ly9mYWNlYm9vay5jb20nOiAnJ1wiPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5zaG93SWNvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImljb24tY29sb3IgcHgtMyBtYi0zIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbC0xIG1iLTQgdy0xMDBcIj5JY29uIENvbG9yPC9sYWJlbD5cclxuICAgICAgPGRpdiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImljb25EYXRhLmNvbG9yXCIgY2xhc3M9XCJjdXN0b20taW5wdXRcIiAoY2xpY2spPVwiY29sb3JJbnB1dC5jbGljaygpXCI+PC9kaXY+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIiBbKG5nTW9kZWwpXT1cImljb25EYXRhLmNvbG9yXCIgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlSWNvbkNvbG9yKClcIiBjbGFzcz1cImlucHV0LXRleHQgZC1ub25lXCJcclxuICAgICAgICAjY29sb3JJbnB1dCAvPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImJhY2tncm91bmQtb24gZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHB4LTMgbWItMlwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbC0xXCI+U2hvdyBCYWNrZ3JvdW5kPC9sYWJlbD5cclxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbWwtYXV0b1wiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgc3dpdGNoLWJ0biBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwiaWNvbkRhdGEuc2hvd0JhY2tncm91bmRcIlxyXG4gICAgICAgICAgcm9sZT1cInN3aXRjaFwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJpY29uLWJhY2tncm91bmQgcHgtMyAgZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgKm5nSWY9XCJpY29uRGF0YS5zaG93QmFja2dyb3VuZFwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbC0xIG1iLTMgdy0xMDBcIj5JY29uIEJhY2tncm91bmQ8L2xhYmVsPlxyXG4gICAgICA8ZGl2IFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiaWNvbkRhdGEuYmFja2dyb3VuZENvbG9yXCIgY2xhc3M9XCJjdXN0b20taW5wdXRcIiAoY2xpY2spPVwiY29sb3JJbnB1dDEuY2xpY2soKVwiPjwvZGl2PlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCIgWyhuZ01vZGVsKV09XCJpY29uRGF0YS5iYWNrZ3JvdW5kQ29sb3JcIiBjbGFzcz1cImlucHV0LXRleHQgZC1ub25lXCIgI2NvbG9ySW5wdXQxIC8+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG48L3NlY3Rpb24+Il19
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWxlbWVudHMvaW1hZ2UtZWRpdG9yL2ltYWdlLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2ltYWdlLWVkaXRvci9pbWFnZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUEyQixNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFHcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7O0FBU3hFLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFDVSxhQUE0QixFQUM1QixhQUFvQyxFQUNyQyxTQUE2QyxFQUNwQixJQUFTLEVBQ2pDLFNBQW9CO1FBSnBCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFvQztRQUNwQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLGNB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QUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCdXR0b24sIEljb24sIEltYWdlIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgTWVkaWFTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL21lZGlhLXNlbGVjdG9yL21lZGlhLXNlbGVjdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbGVtZW50U2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9lZGl0b3Itc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVkaXJlY3Rpb25MaW5rVHlwZSB9IGZyb20gJy4uLy4uL3N0eWxlcy9pbmRleCc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLWltYWdlLWVkaXRvcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0U2xpZGVyTW9kdWxlLCBNYXRQcm9ncmVzc1NwaW5uZXJdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9pbWFnZS1lZGl0b3IuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEltYWdlRWRpdG9yQ29tcG9uZW50IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGV2ZW50c1NlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVsZW1lbnRTZXJ2aWNlU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxJbWFnZUVkaXRvckNvbXBvbmVudD4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcclxuICAgIHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2csXHJcbiAgKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgaW1hZ2VEYXRhOiBJbWFnZSA9IHtcclxuICAgIGlkOiAnJyxcclxuICAgIHVybDogJycsXHJcbiAgICBibHVyaGFzaDogJycsXHJcbiAgICBhbHRUZXh0OiAnJyxcclxuICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgIHg6IDAsXHJcbiAgICAgIHk6IDBcclxuICAgIH0sXHJcbiAgICBjb250ZW50OiB7XHJcbiAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgbGlua1R5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuUGFnZSxcclxuICAgICAgcmVkaXJlY3Rpb25Vcmw6ICcnLFxyXG4gICAgICBwYWdlSWQ6ICcnLFxyXG4gICAgICBuZXdUYWI6IGZhbHNlXHJcbiAgICB9XHJcbiAgfTtcclxuICBpY29uRGF0YTogSWNvbiA9IHtcclxuICAgIHVybDogJycsXHJcbiAgICBjb2xvcjogJycsXHJcbiAgICBzaG93QmFja2dyb3VuZDogZmFsc2UsXHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcnXHJcbiAgfVxyXG4gIHNlY3Rpb25JZCE6IHN0cmluZztcclxuICBwcml2YXRlIGJhY2tEcm9wOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gIGxpbms6IEJ1dHRvbiA9IHtcclxuICAgIGxpbmtUeXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLlBhZ2UsXHJcbiAgICBsYWJlbDogJycsXHJcbiAgICByZWRpcmVjdGlvblVybDogJycsXHJcbiAgICBwYWdlSWQ6ICcnLFxyXG4gICAgbmV3VGFiOiBmYWxzZVxyXG4gIH07XHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNlY3Rpb25JZCA9IHRoaXMuZGF0YS5zZWN0aW9uSWQ7XHJcbiAgICBpZiAodGhpcy5kYXRhPy5zaG93SWNvbikge1xyXG4gICAgICB0aGlzLmljb25EYXRhID0gdGhpcy5kYXRhLmljb25EYXRhO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmljb25EYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW1hZ2VIZWxwZXJGdW5jdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuICBSZWRpcmVjdGlvbkxpbmsgPSBSZWRpcmVjdGlvbkxpbmtUeXBlXHJcbiAgYWRkTGluazogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1heCA9IDEwMDtcclxuICBtaW4gPSAwO1xyXG5cclxuXHJcbiAgaW1nTG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYXN5bmMgdXBkYXRlSW1hZ2UoKSB7XHJcbiAgICB0aGlzLmltZ0xvYWRlciA9IHRydWU7XHJcbiAgICBjb25zdCBtZWRpYVNlbGVjdG9yRGlhbG9nID0gdGhpcy5tYXREaWFsb2cub3BlbihNZWRpYVNlbGVjdG9yQ29tcG9uZW50LCB7IGRhdGE6IHsgbXVsdGlwbGU6IGZhbHNlIH0sIHBhbmVsQ2xhc3M6IFwibWVkaWEtc2VsZWN0b3JcIiB9KVxyXG4gICAgbWVkaWFTZWxlY3RvckRpYWxvZy5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5kYXRhPy5zaG93SWNvbikge1xyXG4gICAgICAgICAgICB0aGlzLmljb25EYXRhLnVybCA9IHJlc1swXS5hc3NldHNbMF0udXJsO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pY29uRGF0YS51cmwgJiYgKHRoaXMuaWNvbkRhdGEudXJsLmluY2x1ZGVzKCcucG5nJykgfHwgdGhpcy5pY29uRGF0YS51cmwuaW5jbHVkZXMoJy5zdmcnKSkpIHtcclxuICAgICAgICAgICAgICB0aGlzLmV2ZW50c1NlcnZpY2UuaWNvbkNoYW5nZWQuZW1pdCh7IGlkOiB0aGlzLnNlY3Rpb25JZCArIHRoaXMuaWNvbkRhdGEuaWQsIGljb246IHRoaXMuaWNvbkRhdGEgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlRGF0YS51cmwgPSByZXNbMF0uYXNzZXRzWzBdLnVybDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbWdMb2FkZXIgPSBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlSWNvbkNvbG9yKCkge1xyXG4gICAgZGVidWdnZXJcclxuICAgIHRoaXMuZXZlbnRzU2VydmljZS5pY29uQ2hhbmdlZC5lbWl0KHsgaWQ6IHRoaXMuc2VjdGlvbklkICsgdGhpcy5pY29uRGF0YS5pZCwgaWNvbjogdGhpcy5pY29uRGF0YSB9KTtcclxuICB9XHJcblxyXG4gIGhvcml6b250YWxQb3NpdGlvbigpIHtcclxuICAgIHRoaXMuZXZlbnRzU2VydmljZS5vYmplY3RQb3NpdGlvbkNoYW5nZUNoZWNrLmVtaXQoeyBpZDogdGhpcy5zZWN0aW9uSWQgKyB0aGlzLmltYWdlRGF0YS5pZCwgcG9zaXRpb246IHRoaXMuaW1hZ2VEYXRhLnBvc2l0aW9uIH0pXHJcbiAgfVxyXG5cclxuICBkZWxldGVJbWFnZSgpIHtcclxuICAgIGlmICh0aGlzLmRhdGE/LnNob3dJY29uKSB7XHJcbiAgICAgIHRoaXMuaWNvbkRhdGEudXJsID0gJyc7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5pbWFnZURhdGEudXJsID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGxpbmtUeXBlOiBhbnlbXSA9IFtcclxuICAgIHtcclxuICAgICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5QYWdlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLnNlY3Rpb25cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuRXh0ZXJuYWxcclxuICAgIH1cclxuICBdXHJcbiAgc2VsZWN0ZWRUeXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlID0gUmVkaXJlY3Rpb25MaW5rVHlwZS5QYWdlO1xyXG4gIGNoYW5nZVR5cGUodHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy5saW5rLmxpbmtUeXBlID0gdGhpcy5zZWxlY3RlZFR5cGU7XHJcbiAgfVxyXG4gIHRlbXBsYXRlUGFnZTogYW55W10gPSBbXTtcclxuICBnZXRUZW1wbGF0ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0VGVtcGxhdGUoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudGVtcGxhdGVQYWdlID0gcmVzLmRhdGE7XHJcbiAgICB9KVxyXG4gIH1cclxuICBleHRlcm5hbExpbmtUeXBlOiBBcnJheTx0eXBlPiA9IFtcclxuICAgIHtcclxuICAgICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5FeHRlcm5hbFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5FbWFpbFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5QaG9uZVxyXG4gICAgfVxyXG4gIF1cclxuICBjb2xsZWN0aW9uTGlzdDogYW55ID0gW107XHJcbiAgY2F0ZWdvcnlMaXN0OiBhbnkgPSBbXTtcclxuICBjb2xsZWN0aW9uUGF0aDogYW55ID0gXCJcIlxyXG4gIGdldENvbGxlY3Rpb25MaXN0KCkge1xyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmdldEFsbENvbGxlY3Rpb25zKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9uTGlzdCA9IHJlcztcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZ2V0Q2F0ZWdvcnlMaXN0KCkge1xyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmdldEFsbENhdGVnb3JpZXMoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IHJlcztcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuICBwYWdlTmFtZTogc3RyaW5nID0gXCJcIjtcclxuICBhZGRDb2xsZWN0aW9uVG9QYXRoKCkge1xyXG4gICAgaWYgKHRoaXMubGluay5yZWRpcmVjdGlvblVybC5pbmNsdWRlcyhcIj9jb2xsZWN0aW9ucz1cIikpIHtcclxuICAgICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsLnNwbGl0KFwiP2NvbGxlY3Rpb25zPVwiKVswXTtcclxuICAgICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsICsgXCI/Y29sbGVjdGlvbnM9XCIgKyB0aGlzLmNvbGxlY3Rpb25QYXRoO1xyXG4gICAgICBpZiAodGhpcy5jYXRlZ29yeVBhdGgubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMubGluay5yZWRpcmVjdGlvblVybCA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybCArIFwiJmNhdGVnb3J5PVwiICsgdGhpcy5jYXRlZ29yeVBhdGg7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubGluay5yZWRpcmVjdGlvblVybC5pbmNsdWRlcyhcImNhdGVnb3J5PVwiKSkge1xyXG4gICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgKyBcIiZjb2xsZWN0aW9ucz1cIiArIHRoaXMuY29sbGVjdGlvblBhdGg7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsICsgXCI/Y29sbGVjdGlvbnM9XCIgKyB0aGlzLmNvbGxlY3Rpb25QYXRoO1xyXG4gICAgfVxyXG4gIH1cclxuICBjYXRlZ29yeVBhdGg6IGFueSA9IFwiXCI7XHJcbiAgYWRkQ2F0ZWdvcnlUb1BhdGgoKSB7XHJcbiAgICBpZiAodGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsLmluY2x1ZGVzKFwiP2NhdGVnb3J5PVwiKSkge1xyXG4gICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25Vcmwuc3BsaXQoXCI/Y2F0ZWdvcnk9XCIpWzBdO1xyXG4gICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgKyBcIj9jYXRlZ29yeT1cIiArIHRoaXMuY2F0ZWdvcnlQYXRoO1xyXG4gICAgICBpZiAodGhpcy5jb2xsZWN0aW9uUGF0aC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsICsgXCImY29sbGVjdGlvbnM9XCIgKyB0aGlzLmNvbGxlY3Rpb25QYXRoO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwuaW5jbHVkZXMoXCJjb2xsZWN0aW9ucz1cIikpIHtcclxuICAgICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsICsgXCImY2F0ZWdvcnk9XCIgKyB0aGlzLmNhdGVnb3J5UGF0aDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubGluay5yZWRpcmVjdGlvblVybCA9IHRoaXMubGluay5yZWRpcmVjdGlvblVybCArIFwiP2NhdGVnb3J5PVwiICsgdGhpcy5jYXRlZ29yeVBhdGg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uUGFnZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZFBhZ2VJZCA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIGNvbnN0IHNlbGVjdGVkUGFnZSA9IHRoaXMudGVtcGxhdGVQYWdlLmZpbmQocGFnZSA9PiBwYWdlLmlkID09PSBzZWxlY3RlZFBhZ2VJZCk7XHJcbiAgICBpZiAoc2VsZWN0ZWRQYWdlKSB7XHJcbiAgICAgIHRoaXMubGluay5yZWRpcmVjdGlvblVybCA9IHNlbGVjdGVkUGFnZS5wYXRoO1xyXG4gICAgICB0aGlzLnBhZ2VOYW1lID0gc2VsZWN0ZWRQYWdlLnBhZ2VOYW1lO1xyXG4gICAgICBpZiAodGhpcy5wYWdlTmFtZSA9PSAnUHJvZHVjdCBMaXN0Jykge1xyXG4gICAgICAgIHRoaXMuZ2V0Q29sbGVjdGlvbkxpc3QoKTtcclxuICAgICAgICB0aGlzLmdldENhdGVnb3J5TGlzdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBpbWFnZUhlbHBlckZ1bmN0aW9uKCkge1xyXG4gICAgdGhpcy5pbWFnZURhdGEgPSB0aGlzLmRhdGEuaW1hZ2VEYXRhO1xyXG4gICAgdGhpcy5hZGRMaW5rID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmRhdGE/LmltYWdlRGF0YT8uY29udGVudCkge1xyXG4gICAgICB0aGlzLmxpbmsgPSB0aGlzLmRhdGEuaW1hZ2VEYXRhPy5jb250ZW50O1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVHlwZSA9IHRoaXMubGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rVHlwZS5FbWFpbCB8fCB0aGlzLmxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGlua1R5cGUuUGhvbmUgPyBSZWRpcmVjdGlvbkxpbmtUeXBlLkV4dGVybmFsIDogdGhpcy5saW5rLmxpbmtUeXBlO1xyXG4gICAgICB0aGlzLmFkZExpbmsgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0VGVtcGxhdGVQYWdlKCk7XHJcbiAgICBpZiAodGhpcy5saW5rPy5yZWRpcmVjdGlvblVybC5pbmNsdWRlcyhcImNvbGxlY3Rpb25zPVwiKSkge1xyXG4gICAgICBhd2FpdCB0aGlzLmdldENvbGxlY3Rpb25MaXN0KCk7XHJcbiAgICAgIHRoaXMucGFnZU5hbWUgPSBcIlByb2R1Y3QgTGlzdFwiO1xyXG4gICAgICBsZXQgcXVlcnkgPSB0aGlzLmxpbmsucmVkaXJlY3Rpb25Vcmwuc3BsaXQoXCI/XCIpWzFdO1xyXG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHF1ZXJ5KTtcclxuICAgICAgdGhpcy5jb2xsZWN0aW9uUGF0aCA9IHBhcmFtcy5nZXQoJ2NvbGxlY3Rpb25zJyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5saW5rPy5yZWRpcmVjdGlvblVybC5pbmNsdWRlcyhcImNhdGVnb3J5PVwiKSkge1xyXG4gICAgICBhd2FpdCB0aGlzLmdldENhdGVnb3J5TGlzdCgpO1xyXG4gICAgICB0aGlzLnBhZ2VOYW1lID0gXCJQcm9kdWN0IExpc3RcIjtcclxuICAgICAgbGV0IHF1ZXJ5ID0gdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsLnNwbGl0KFwiP1wiKVsxXTtcclxuICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhxdWVyeSk7XHJcbiAgICAgIHRoaXMuY2F0ZWdvcnlQYXRoID0gcGFyYW1zLmdldCgnY2F0ZWdvcnknKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbmludGVyZmFjZSB0eXBlIHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbn1cclxuIiwiPHNlY3Rpb24gY2xhc3M9XCJtYWluLXNlY3Rpb25cIj5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXNlY3Rpb24gZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWQtdGV4dFwiPkltYWdlIFNldHRpbmdzPC9kaXY+XHJcbiAgICA8bWF0LWljb24gY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZi0xOCBjcFwiXHJcbiAgICAgIChjbGljayk9XCJkaWFsb2dSZWYuY2xvc2UoKVwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2PlxyXG4gICAgPCEtLSA8cCBjbGFzcz1cImhlYWRpbmcgbWItMFwiPkltYWdlPC9wPiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtaW1hZ2UgY3BcIiAqbmdJZj1cIiFpbWFnZURhdGEudXJsICYmICFpY29uRGF0YS51cmxcIiAoY2xpY2spPVwidXBkYXRlSW1hZ2UoKVwiPlxyXG4gICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCJcclxuICAgICAgICBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzU0NzUwMGMxNzQ0Njk4ODMwMzQzdXBsb2FkLW9uZSUyMCUyODElMjkucG5nXCJcclxuICAgICAgICBhbHQ9XCJcIj5cclxuICAgICAgPHAgY2xhc3M9XCJ1cGxvYWQtdGV4dCBtYi0wXCI+VXBsb2FkIGEgZmlsZTwvcD5cclxuICAgICAgPHAgY2xhc3M9XCJ1cGxvYWQtdGV4dCBtYi0wXCI+b3Igc2VsZWN0IGFuIGV4aXN0aW5nIG9uZTwvcD5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ1cGxvYWQtdGV4dFwiPnVwIHRvIDMyTUI8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiICpuZ0lmPVwiaW1hZ2VEYXRhLnVybCB8fCBpY29uRGF0YS51cmxcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpbWdMb2FkZXJcIj5cclxuICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2VEYXRhLnVybCB8fCBpY29uRGF0YS51cmxcIiBbYWx0XT1cImltYWdlRGF0YS5hbHRUZXh0ID8/ICcnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJlcGFsY2UtaW1hZ2UgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwidXBkYXRlSW1hZ2UoKVwiPlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiXHJcbiAgICAgICAgICAgIGhlaWdodD1cIjI0XCIgY2xhc3M9XCJpY29uIHctNCBoLTRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCJcclxuICAgICAgICAgICAgICBkPVwibTQgMTYgNC41ODU3OS00LjU4NThjLjc4MTA0LS43ODEgMi4wNDc0MS0uNzgxIDIuODI4NDEgMEwxNiAxNm0tMi0yIDEuNTg1OC0xLjU4NThjLjc4MS0uNzgxIDIuMDQ3NC0uNzgxIDIuODI4NCAwTDIwIDE0bS02LTZoLjAxTTYgMjBoMTJjMS4xMDQ2IDAgMi0uODk1NCAyLTJWNmMwLTEuMTA0NTctLjg5NTQtMi0yLTJINmMtMS4xMDQ1NyAwLTIgLjg5NTQzLTIgMnYxMmMwIDEuMTA0Ni44OTU0MyAyIDIgMlpcIj5cclxuICAgICAgICAgICAgPC9wYXRoPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWxldGUtaW1hZ2UgY3Vyc29yLXBvaW50ZXIgXCIgKGNsaWNrKT1cImRlbGV0ZUltYWdlKClcIj5cclxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiI2ZmZmZmZlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCJcclxuICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIiBjbGFzcz1cImljb24gaC00IHctNFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2Utd2lkdGg9XCIxLjVcIlxyXG4gICAgICAgICAgICAgIGQ9XCJtMTkgNy0uODY3MyAxMi4xNDI1QzE4LjA1NzkgMjAuMTg5MSAxNy4xODcgMjEgMTYuMTM3OCAyMUg3Ljg2MjI0Yy0xLjA0OTI4IDAtMS45MjAxNi0uODEwOS0xLjk5NDkyLTEuODU3NUw1IDdtNSA0djZtNC02djZtMS0xMFY0YzAtLjU1MjI4LS40NDc3LTEtMS0xaC00Yy0uNTUyMjggMC0xIC40NDc3Mi0xIDF2M000IDdoMTZcIj5cclxuICAgICAgICAgICAgPC9wYXRoPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW1nTG9hZGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZF9zcGlubmVyIGQtZmxleCB3LTEwMCBoLTEwMCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgPG1hdC1zcGlubmVyPjwvbWF0LXNwaW5uZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZGF0YS5zaG93SWNvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInctMTAwIHAtMC0xMCBtYi0yMlwiICpuZ0lmPVwiaW1hZ2VEYXRhLmhhc093blByb3BlcnR5KCdhbHRUZXh0JylcIj5cclxuICAgICAgPHAgY2xhc3M9XCJoZWFkaW5nIG1iLTJcIj5BbHQgdGV4dDwvcD5cclxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJFbnRlciBhbHQgdGV4dFwiIGNsYXNzPVwiaW5wdXQtZmllbGQgdy0xMDBcIiBbKG5nTW9kZWwpXT1cImltYWdlRGF0YS5hbHRUZXh0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPldoZW4gdGhlIGltYWdlIGZhaWxzIHRvIGxvYWQsIHRoaXMgdGV4dCB3aWxsIGJlIGRpc3BsYXllZC48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJpbWFnZSBtYi0yMlwiICpuZ0lmPVwiaW1hZ2VEYXRhLmhhc093blByb3BlcnR5KCdwb3NpdGlvbicpXCI+XHJcbiAgICAgIDxwIGNsYXNzPVwiaGVhZGluZyBtYi0xXCI+SW1hZ2UgUG9zaXRpb248L3A+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJob3Jpem9udGFsLWFjdGlvblwiPlxyXG4gICAgICAgIDxsYWJlbD5Ib3Jpem9udGFsPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2xpZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LXN0YXJ0IGNwXCI+XHJcbiAgICAgICAgICA8aW5wdXQgW21pbl09XCJtaW5cIiBbbWF4XT1cIm1heFwiIHN0ZXA9XCI1XCIgdHlwZT1cInJhbmdlXCIgWyhuZ01vZGVsKV09XCJpbWFnZURhdGEucG9zaXRpb24ueFwiXHJcbiAgICAgICAgICAgIChpbnB1dCk9XCJob3Jpem9udGFsUG9zaXRpb24oKVwiIGNsYXNzPVwidy03NVwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhvcml6b250YWwtYWN0aW9uXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA1cHg7XCI+XHJcbiAgICAgICAgPGxhYmVsPlZlcnRpY2FsPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2xpZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LXN0YXJ0IGNwXCI+XHJcbiAgICAgICAgICA8aW5wdXQgW21pbl09XCJtaW5cIiBbbWF4XT1cIm1heFwiIHN0ZXA9XCI1XCIgdHlwZT1cInJhbmdlXCIgWyhuZ01vZGVsKV09XCJpbWFnZURhdGEucG9zaXRpb24ueVwiXHJcbiAgICAgICAgICAgIChpbnB1dCk9XCJob3Jpem9udGFsUG9zaXRpb24oKVwiIGNsYXNzPVwidy03NVwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImdyb3VwcyBjcCBweC0zXCI+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHR5cGUgb2YgbGlua1R5cGVcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkVHlwZScgOiB0eXBlLnR5cGUgPT09IHNlbGVjdGVkVHlwZX1cIlxyXG4gICAgICAgIChjbGljayk9XCJjaGFuZ2VUeXBlKHR5cGUudHlwZSlcIj57e3R5cGUudHlwZX19PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1jb250YWluZXIgbXQtMyBteC0zXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuUGFnZVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsLTEgbXQtMyBtYi0yXCI+U2VsZWN0IFBhZ2U8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wLWRvd24tY29udGFpbmVyIHctMTAwIGQtZmxleCBtYi0yXCI+XHJcbiAgICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwibGluay5wYWdlSWRcIiAoY2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiBzZWxlY3RlZD5TZWxlY3QgZnJvbSB5b3VyIGV4aXN0aW5nIHBhZ2VzPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHBhZ2Ugb2YgdGVtcGxhdGVQYWdlXCIgW3ZhbHVlXT1cInBhZ2UuaWRcIiBzdHlsZT1cInBhZGRpbmc6IDEwcHg7XCI+XHJcbiAgICAgICAgICAgICAge3twYWdlLnBhZ2VOYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRvd24tYXJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+PGltZ1xyXG4gICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMjY4NDEwYzE3NDIyODYwNTI5NDBEb3duJTIwMi5wbmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlTmFtZSA9PSAnUHJvZHVjdCBMaXN0J1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwtMSBtdC0zIG1iLTJcIj5TZWxlY3QgQ29sbGVjdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcC1kb3duLWNvbnRhaW5lciB3LTEwMCBkLWZsZXggbWItMlwiPlxyXG4gICAgICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwiY29sbGVjdGlvblBhdGhcIiAobmdNb2RlbENoYW5nZSk9XCJhZGRDb2xsZWN0aW9uVG9QYXRoKClcIj5cclxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+U2VsZWN0IGZyb20geW91ciBleGlzdGluZyBwYWdlczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGNvbGwgb2YgY29sbGVjdGlvbkxpc3RcIiBzdHlsZT1cInBhZGRpbmc6IDEwcHg7XCIgW3ZhbHVlXT1cImNvbGwuY29sbGVjdGlvbk5hbWVcIj5cclxuICAgICAgICAgICAgICAgIHt7Y29sbD8uY29sbGVjdGlvbk5hbWV9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwtMSBtdC0zIG1iLTJcIj5TZWxlY3QgQ2F0ZWdvcnk8L2xhYmVsPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtZG93bi1jb250YWluZXIgdy0xMDAgZC1mbGV4IG1iLTJcIj5cclxuICAgICAgICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cImNhdGVnb3J5UGF0aFwiIChuZ01vZGVsQ2hhbmdlKT1cImFkZENhdGVnb3J5VG9QYXRoKClcIj5cclxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+U2VsZWN0IGZyb20geW91ciBleGlzdGluZyBwYWdlczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGNvbGwgb2YgY2F0ZWdvcnlMaXN0XCIgc3R5bGU9XCJwYWRkaW5nOiAxMHB4O1wiIFt2YWx1ZV09XCJjb2xsLmNhdGVnb3J5TmFtZVwiPlxyXG4gICAgICAgICAgICAgICAge3tjb2xsPy5jYXRlZ29yeU5hbWV9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+U2VsZWN0IGZyb20geW91ciBleGlzdGluZyBwYWdlczwvZGl2PiAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuc2VjdGlvblwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cIm10LTMgbWItMiBpbnB1dC1sYWJlbC0xXCI+U2VjdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtZG93bi1jb250YWluZXIgdy0xMDAgZC1mbGV4IG1iLTJcIj5cclxuICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJsaW5rLnBhZ2VJZFwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+U2VsZWN0IHRoZSBTZWN0aW9uPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHNlY3Rpb24gb2YgdGVtcGxhdGVQYWdlWzBdPy5jb21wb25lbnRzXCIgW3ZhbHVlXT1cInNlY3Rpb24uaWRcIj57e3NlY3Rpb24uc2VjdGlvbk5hbWV9fVxyXG4gICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRvd24tYXJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+PGltZ1xyXG4gICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMjY4NDEwYzE3NDIyODYwNTI5NDBEb3duJTIwMi5wbmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtMTBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbC0yXCI+T3BlbiBpbiBhIG5ldyBicm93c2VyIHRhYjwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbWwtYXV0b1wiPlxyXG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBzd2l0Y2gtYnRuIGN1cnNvci1wb2ludGVyXCIgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJsaW5rLm5ld1RhYlwiXHJcbiAgICAgICAgICAgIHJvbGU9XCJzd2l0Y2hcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuRXh0ZXJuYWwgfHwgbGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rLkVtYWlsIHx8IGxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5QaG9uZVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cIm10LTMgbWItMiBpbnB1dC1sYWJlbC0xXCI+U2VsZWN0IHR5cGU8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wLWRvd24tY29udGFpbmVyIHctMTAwIGQtZmxleCBtYi0yXCI+XHJcbiAgICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwibGluay5saW5rVHlwZVwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+U2VsZWN0IHRoZSBUeXBlPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHR5cGUgb2YgZXh0ZXJuYWxMaW5rVHlwZVwiIFt2YWx1ZV09XCJ0eXBlLnR5cGVcIj57e3R5cGUudHlwZX19PC9vcHRpb24+XHJcbiAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb3duLWFycm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPjxpbWdcclxuICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzI2ODQxMGMxNzQyMjg2MDUyOTQwRG93biUyMDIucG5nXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbCBtYi0yXCI+e3tsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuRXh0ZXJuYWwgPyAnV2Vic2l0ZScgOiBsaW5rLmxpbmtUeXBlID09PVxyXG4gICAgICAgICAgUmVkaXJlY3Rpb25MaW5rLkVtYWlsID8gJ0VtYWlsIEFkZHJlc3MnIDogJ1Bob25lIE51bWJlcid9fTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJpbnB1dC10ZXh0XCIgWyhuZ01vZGVsKV09XCJsaW5rLnJlZGlyZWN0aW9uVXJsXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuRXh0ZXJuYWwgPyAnZXhhbXBsZSA6IGh0dHBzOi8vZmFjZWJvb2suY29tJzogJydcIj5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEuc2hvd0ljb25cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpY29uLWNvbG9yIHB4LTMgbWItMyBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwtMSBtYi00IHctMTAwXCI+SWNvbiBDb2xvcjwvbGFiZWw+XHJcbiAgICAgIDxkaXYgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJpY29uRGF0YS5jb2xvclwiIGNsYXNzPVwiY3VzdG9tLWlucHV0XCIgKGNsaWNrKT1cImNvbG9ySW5wdXQuY2xpY2soKVwiPjwvZGl2PlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImNvbG9yXCIgWyhuZ01vZGVsKV09XCJpY29uRGF0YS5jb2xvclwiIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUljb25Db2xvcigpXCIgY2xhc3M9XCJpbnB1dC10ZXh0IGQtbm9uZVwiXHJcbiAgICAgICAgI2NvbG9ySW5wdXQgLz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJiYWNrZ3JvdW5kLW9uIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBweC0zIG1iLTJcIj5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwtMVwiPlNob3cgQmFja2dyb3VuZDwvbGFiZWw+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1sLWF1dG9cIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IHN3aXRjaC1idG4gY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cImljb25EYXRhLnNob3dCYWNrZ3JvdW5kXCJcclxuICAgICAgICAgIHJvbGU9XCJzd2l0Y2hcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiaWNvbi1iYWNrZ3JvdW5kIHB4LTMgIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICpuZ0lmPVwiaWNvbkRhdGEuc2hvd0JhY2tncm91bmRcIj5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwtMSBtYi0zIHctMTAwXCI+SWNvbiBCYWNrZ3JvdW5kPC9sYWJlbD5cclxuICAgICAgPGRpdiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImljb25EYXRhLmJhY2tncm91bmRDb2xvclwiIGNsYXNzPVwiY3VzdG9tLWlucHV0XCIgKGNsaWNrKT1cImNvbG9ySW5wdXQxLmNsaWNrKClcIj48L2Rpdj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiIFsobmdNb2RlbCldPVwiaWNvbkRhdGEuYmFja2dyb3VuZENvbG9yXCIgY2xhc3M9XCJpbnB1dC10ZXh0IGQtbm9uZVwiICNjb2xvcklucHV0MSAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuPC9zZWN0aW9uPiJdfQ==
|