tango-app-ui-manage-billing 3.3.11 → 3.3.13
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/components/billing-groups/billing-group-form/billing-group-form.component.mjs +11 -3
- package/esm2022/lib/components/billing-groups/billing-groups.component.mjs +24 -3
- package/esm2022/lib/components/billing-summary/billing-summary.component.mjs +36 -12
- package/esm2022/lib/components/brand-invoices/brand-invoices.component.mjs +2 -1
- package/esm2022/lib/components/brands-billing/brands-billing.component.mjs +9 -5
- package/esm2022/lib/components/estimates/estimate-preview/estimate-preview.component.mjs +2 -1
- package/esm2022/lib/components/estimates/estimates.component.mjs +48 -7
- package/esm2022/lib/components/invoice-preview/invoice-preview.component.mjs +20 -3
- package/esm2022/lib/components/services/billing.service.mjs +15 -2
- package/esm2022/lib/components/setup-billing/setup-billing.component.mjs +3 -2
- package/esm2022/lib/components/tango-manage-billing/edit-invoice/edit-invoice.component.mjs +35 -5
- package/esm2022/lib/components/tango-manage-billing/request-confirmation/request-confirmation.component.mjs +12 -3
- package/esm2022/lib/components/tango-manage-billing/tango-manage-billing.component.mjs +21 -8
- package/fesm2022/tango-app-ui-manage-billing.mjs +225 -43
- package/fesm2022/tango-app-ui-manage-billing.mjs.map +1 -1
- package/lib/components/billing-groups/billing-group-form/billing-group-form.component.d.ts +1 -0
- package/lib/components/billing-groups/billing-groups.component.d.ts +3 -0
- package/lib/components/brands-billing/brands-billing.component.d.ts +1 -0
- package/lib/components/estimates/estimates.component.d.ts +3 -1
- package/lib/components/invoice-preview/invoice-preview.component.d.ts +4 -2
- package/lib/components/services/billing.service.d.ts +3 -0
- package/lib/components/tango-manage-billing/edit-invoice/edit-invoice.component.d.ts +1 -1
- package/lib/components/tango-manage-billing/request-confirmation/request-confirmation.component.d.ts +3 -1
- package/lib/components/tango-manage-billing/tango-manage-billing.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -106,15 +106,19 @@ export class BillingGroupsComponent {
|
|
|
106
106
|
return;
|
|
107
107
|
if (!this.reminderEmails.includes(email)) {
|
|
108
108
|
this.reminderEmails.push(email);
|
|
109
|
+
// Autosave so the recipient persists immediately (no separate Save click).
|
|
110
|
+
this.persistPaymentReminder(true);
|
|
109
111
|
}
|
|
110
112
|
this.reminderEmailInput = '';
|
|
111
113
|
}
|
|
112
114
|
removeReminderEmail(email) {
|
|
113
115
|
this.reminderEmails = this.reminderEmails.filter(e => e !== email);
|
|
116
|
+
this.persistPaymentReminder(true);
|
|
114
117
|
}
|
|
115
118
|
toggleReminderTemplate(key) {
|
|
116
119
|
if (this.reminderTemplates[key]) {
|
|
117
120
|
this.reminderTemplates[key].enabled = !this.reminderTemplates[key].enabled;
|
|
121
|
+
this.debouncedPersistReminder();
|
|
118
122
|
}
|
|
119
123
|
}
|
|
120
124
|
onPreDueDaysChange(value) {
|
|
@@ -122,8 +126,20 @@ export class BillingGroupsComponent {
|
|
|
122
126
|
if (!Number.isFinite(n))
|
|
123
127
|
n = 1;
|
|
124
128
|
this.reminderTemplates.preDue.daysBefore = Math.min(365, Math.max(1, n));
|
|
129
|
+
this.debouncedPersistReminder();
|
|
125
130
|
}
|
|
126
|
-
|
|
131
|
+
// Coalesce rapid schedule edits (toggles, day changes) into one save.
|
|
132
|
+
reminderSaveTimer = null;
|
|
133
|
+
debouncedPersistReminder() {
|
|
134
|
+
if (this.reminderSaveTimer)
|
|
135
|
+
clearTimeout(this.reminderSaveTimer);
|
|
136
|
+
this.reminderSaveTimer = setTimeout(() => this.persistPaymentReminder(true), 600);
|
|
137
|
+
}
|
|
138
|
+
// Shared save. silent=true → autosave (no toast); silent=false → explicit
|
|
139
|
+
// Save button (shows confirmation toast).
|
|
140
|
+
persistPaymentReminder(silent) {
|
|
141
|
+
if (!this.clientId)
|
|
142
|
+
return;
|
|
127
143
|
this.reminderSaving = true;
|
|
128
144
|
const payload = {
|
|
129
145
|
clientId: this.clientId,
|
|
@@ -133,7 +149,9 @@ export class BillingGroupsComponent {
|
|
|
133
149
|
this.billingService.savePaymentReminder(payload).pipe(takeUntil(this.destroy$)).subscribe({
|
|
134
150
|
next: () => {
|
|
135
151
|
this.reminderSaving = false;
|
|
136
|
-
|
|
152
|
+
if (!silent) {
|
|
153
|
+
this.toast.getPrimaryToast(`Payment reminder schedule saved · ${this.reminderEnabledCount} of 5 enabled`);
|
|
154
|
+
}
|
|
137
155
|
},
|
|
138
156
|
error: (err) => {
|
|
139
157
|
this.reminderSaving = false;
|
|
@@ -141,6 +159,9 @@ export class BillingGroupsComponent {
|
|
|
141
159
|
},
|
|
142
160
|
});
|
|
143
161
|
}
|
|
162
|
+
savePaymentReminder() {
|
|
163
|
+
this.persistPaymentReminder(false);
|
|
164
|
+
}
|
|
144
165
|
loadBillingGroups() {
|
|
145
166
|
this.searchDisabled = false;
|
|
146
167
|
this.groupLoading = true;
|
|
@@ -360,4 +381,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
360
381
|
type: ViewChild,
|
|
361
382
|
args: ['bulkUploadInput']
|
|
362
383
|
}] } });
|
|
363
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGluZy1ncm91cHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLWJpbGxpbmcvc3JjL2xpYi9jb21wb25lbnRzL2JpbGxpbmctZ3JvdXBzL2JpbGxpbmctZ3JvdXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1iaWxsaW5nL3NyYy9saWIvY29tcG9uZW50cy9iaWxsaW5nLWdyb3Vwcy9iaWxsaW5nLWdyb3Vwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxLQUFLLEVBQStDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUkxQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7OztBQU8zRixNQUFNLE9BQU8sc0JBQXNCO0lBNkN2QjtJQUNBO0lBQ0E7SUFDQTtJQS9DTyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVqQyxRQUFRLEdBQVcsRUFBRSxDQUFDO0lBRS9CLEdBQUcsQ0FBTTtJQUNULGNBQWMsR0FBWSxLQUFLLENBQUM7SUFDaEMsZUFBZSxHQUFZLEtBQUssQ0FBQztJQUNqQyxhQUFhLEdBQVksS0FBSyxDQUFDO0lBQ0QsZUFBZSxDQUFnQztJQUU3RSxVQUFVO0lBQ1YsT0FBTyxHQUFRLEVBQUUsQ0FBQztJQUVsQixRQUFRO0lBQ1IsU0FBUyxHQUFRLEVBQUUsQ0FBQztJQUNwQixZQUFZLEdBQVksSUFBSSxDQUFDO0lBQzdC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ZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgQmlsbGluZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9iaWxsaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XG5pbXBvcnQgeyBCaWxsaW5nR3JvdXBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9iaWxsaW5nLWdyb3VwLWZvcm0vYmlsbGluZy1ncm91cC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWxldGVXYXJuaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9kZWxldGUtd2FybmluZy9kZWxldGUtd2FybmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnVsa1VwbG9hZEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi9idWxrLXVwbG9hZC1lcnJvci9idWxrLXVwbG9hZC1lcnJvci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYmlsbGluZy1ncm91cHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYmlsbGluZy1ncm91cHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYmlsbGluZy1ncm91cHMuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEJpbGxpbmdHcm91cHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgQElucHV0KCkgY2xpZW50SWQ6IHN0cmluZyA9ICcnO1xuXG4gIGxlbjogYW55O1xuICBzZWFyY2hEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBidWxrRG93bmxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYnVsa1VwbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBAVmlld0NoaWxkKCdidWxrVXBsb2FkSW5wdXQnKSBidWxrVXBsb2FkSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIC8vIFN1bW1hcnlcbiAgc3VtbWFyeTogYW55ID0ge307XG5cbiAgLy8gVGFibGVcbiAgZ3JvdXBMaXN0OiBhbnkgPSBbXTtcbiAgZ3JvdXBMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcbiAgZ3JvdXBOb0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdG90YWxJdGVtczogbnVtYmVyID0gMDtcbiAgcGFnZVNpemU6IG51bWJlciA9IDEwO1xuICBjdXJyZW50UGFnZTogbnVtYmVyID0gMTtcbiAgaXRlbXNQZXJQYWdlOiBudW1iZXIgPSAxMDtcbiAgcGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdO1xuICBzb3J0Q29sdW1OYW1lOiBzdHJpbmcgPSAnY3JlYXRlZEF0JztcbiAgc29ydEJ5OiBudW1iZXIgPSAtMTtcblxuICAvLyBGaWx0ZXJcbiAgZ3JvdXBGaWx0ZXJPYmplY3QgPSBbXG4gICAgeyBEZXNjcmlwdGlvbjogJ0FubmV4dXJlJywgdHlwZTogJ3NpbmdsZScsIElzc3VlczogW3sgaWQ6ICdhdHRhY2hlZCcsIHRleHQ6ICdBdHRhY2hlZCcgfSwgeyBpZDogJ25vdEF0dGFjaGVkJywgdGV4dDogJ05vdCBBdHRhY2hlZCcgfV0gfSxcbiAgXTtcbiAgYW5uZXh1cmVGaWx0ZXI6IHN0cmluZyA9ICcnO1xuXG4gIC8vID09PT09IFBheW1lbnQgUmVtaW5kZXJzID09PT09XG4gIHJlbWluZGVyRW1haWxzOiBzdHJpbmdbXSA9IFtdO1xuICByZW1pbmRlckVtYWlsSW5wdXQ6IHN0cmluZyA9ICcnO1xuICByZW1pbmRlclRlbXBsYXRlczogYW55ID0ge1xuICAgIHByZUR1ZTogeyBlbmFibGVkOiB0cnVlLCBkYXlzQmVmb3JlOiAzIH0sXG4gICAgb25EdWU6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgIG9uSG9sZDogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgc3VzcGVuZDogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgZGVhY3RpdmF0ZWQ6IHsgZW5hYmxlZDogZmFsc2UgfSxcbiAgfTtcbiAgcmVtaW5kZXJTYXZpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJpbGxpbmdTZXJ2aWNlOiBCaWxsaW5nU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHRvYXN0OiBUb2FzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jbGllbnRJZCkge1xuICAgICAgdGhpcy5sb2FkQmlsbGluZ0dyb3VwcygpO1xuICAgICAgdGhpcy5sb2FkUGF5bWVudFJlbWluZGVyKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydjbGllbnRJZCddICYmICFjaGFuZ2VzWydjbGllbnRJZCddLmZpcnN0Q2hhbmdlICYmIHRoaXMuY2xpZW50SWQpIHtcbiAgICAgIHRoaXMubG9hZEJpbGxpbmdHcm91cHMoKTtcbiAgICAgIHRoaXMubG9hZFBheW1lbnRSZW1pbmRlcigpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvLyA9PT09PSBQYXltZW50IFJlbWluZGVycyA9PT09PVxuICBsb2FkUGF5bWVudFJlbWluZGVyKCkge1xuICAgIHRoaXMuYmlsbGluZ1NlcnZpY2UuZ2V0UGF5bWVudFJlbWluZGVyKHRoaXMuY2xpZW50SWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGQgPSByZXM/LmRhdGE7XG4gICAgICAgIGlmIChkKSB7XG4gICAgICAgICAgdGhpcy5yZW1pbmRlckVtYWlscyA9IEFycmF5LmlzQXJyYXkoZC5yZW1pbmRlckVtYWlscykgPyBkLnJlbWluZGVyRW1haWxzIDogW107XG4gICAgICAgICAgaWYgKGQudGVtcGxhdGVzKSB7XG4gICAgICAgICAgICAvLyBNZXJnZSBvdmVyIGRlZmF1bHRzIHNvIGEgcGFydGlhbCBkb2MgbmV2ZXIgZHJvcHMgYSB0ZW1wbGF0ZS5cbiAgICAgICAgICAgIHRoaXMucmVtaW5kZXJUZW1wbGF0ZXMgPSB7XG4gICAgICAgICAgICAgIHByZUR1ZTogeyBlbmFibGVkOiBkLnRlbXBsYXRlcy5wcmVEdWU/LmVuYWJsZWQgPz8gdHJ1ZSwgZGF5c0JlZm9yZTogZC50ZW1wbGF0ZXMucHJlRHVlPy5kYXlzQmVmb3JlID8/IDMgfSxcbiAgICAgICAgICAgICAgb25EdWU6IHsgZW5hYmxlZDogZC50ZW1wbGF0ZXMub25EdWU/LmVuYWJsZWQgPz8gdHJ1ZSB9LFxuICAgICAgICAgICAgICBvbkhvbGQ6IHsgZW5hYmxlZDogZC50ZW1wbGF0ZXMub25Ib2xkPy5lbmFibGVkID8/IHRydWUgfSxcbiAgICAgICAgICAgICAgc3VzcGVuZDogeyBlbmFibGVkOiBkLnRlbXBsYXRlcy5zdXNwZW5kPy5lbmFibGVkID8/IHRydWUgfSxcbiAgICAgICAgICAgICAgZGVhY3RpdmF0ZWQ6IHsgZW5hYmxlZDogZC50ZW1wbGF0ZXMuZGVhY3RpdmF0ZWQ/LmVuYWJsZWQgPz8gZmFsc2UgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHt9LFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHJlbWluZGVyRW5hYmxlZENvdW50KCk6IG51bWJlciB7XG4gICAgY29uc3QgdCA9IHRoaXMucmVtaW5kZXJUZW1wbGF0ZXM7XG4gICAgcmV0dXJuIFsncHJlRHVlJywgJ29uRHVlJywgJ29uSG9sZCcsICdzdXNwZW5kJywgJ2RlYWN0aXZhdGVkJ11cbiAgICAgIC5maWx0ZXIoayA9PiB0W2tdPy5lbmFibGVkKS5sZW5ndGg7XG4gIH1cblxuICBhZGRSZW1pbmRlckVtYWlsKCkge1xuICAgIGNvbnN0IGVtYWlsID0gKHRoaXMucmVtaW5kZXJFbWFpbElucHV0IHx8ICcnKS50cmltKCk7XG4gICAgaWYgKCFlbWFpbCkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5yZW1pbmRlckVtYWlscy5pbmNsdWRlcyhlbWFpbCkpIHtcbiAgICAgIHRoaXMucmVtaW5kZXJFbWFpbHMucHVzaChlbWFpbCk7XG4gICAgfVxuICAgIHRoaXMucmVtaW5kZXJFbWFpbElucHV0ID0gJyc7XG4gIH1cblxuICByZW1vdmVSZW1pbmRlckVtYWlsKGVtYWlsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlbWluZGVyRW1haWxzID0gdGhpcy5yZW1pbmRlckVtYWlscy5maWx0ZXIoZSA9PiBlICE9PSBlbWFpbCk7XG4gIH1cblxuICB0b2dnbGVSZW1pbmRlclRlbXBsYXRlKGtleTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMucmVtaW5kZXJUZW1wbGF0ZXNba2V5XSkge1xuICAgICAgdGhpcy5yZW1pbmRlclRlbXBsYXRlc1trZXldLmVuYWJsZWQgPSAhdGhpcy5yZW1pbmRlclRlbXBsYXRlc1trZXldLmVuYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgb25QcmVEdWVEYXlzQ2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICBsZXQgbiA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUobikpIG4gPSAxO1xuICAgIHRoaXMucmVtaW5kZXJUZW1wbGF0ZXMucHJlRHVlLmRheXNCZWZvcmUgPSBNYXRoLm1pbigzNjUsIE1hdGgubWF4KDEsIG4pKTtcbiAgfVxuXG4gIHNhdmVQYXltZW50UmVtaW5kZXIoKSB7XG4gICAgdGhpcy5yZW1pbmRlclNhdmluZyA9IHRydWU7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxuICAgICAgcmVtaW5kZXJFbWFpbHM6IHRoaXMucmVtaW5kZXJFbWFpbHMsXG4gICAgICB0ZW1wbGF0ZXM6IHRoaXMucmVtaW5kZXJUZW1wbGF0ZXMsXG4gICAgfTtcbiAgICB0aGlzLmJpbGxpbmdTZXJ2aWNlLnNhdmVQYXltZW50UmVtaW5kZXIocGF5bG9hZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVtaW5kZXJTYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy50b2FzdC5nZXRQcmltYXJ5VG9hc3QoYFBheW1lbnQgcmVtaW5kZXIgc2NoZWR1bGUgc2F2ZWQgwrcgJHt0aGlzLnJlbWluZGVyRW5hYmxlZENvdW50fSBvZiA1IGVuYWJsZWRgKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucmVtaW5kZXJTYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycj8uZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBzYXZlIHJlbWluZGVycycpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWRCaWxsaW5nR3JvdXBzKCkge1xuICAgIHRoaXMuc2VhcmNoRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmdyb3VwTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5ncm91cE5vRGF0YSA9IGZhbHNlO1xuXG4gICAgbGV0IGZpbHRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7XG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcbiAgICAgIGxpbWl0OiB0aGlzLnBhZ2VTaXplLFxuICAgICAgb2Zmc2V0OiB0aGlzLmN1cnJlbnRQYWdlLFxuICAgICAgc2VhcmNoVmFsdWU6IHRoaXMubGVuLFxuICAgICAgc29ydENvbHVtTmFtZTogdGhpcy5zb3J0Q29sdW1OYW1lLFxuICAgICAgc29ydEJ5OiB0aGlzLnNvcnRCeSxcbiAgICAgIGFubmV4dXJlRmlsdGVyOiB0aGlzLmFubmV4dXJlRmlsdGVyLFxuICAgICAgZXhwb3J0OiBmYWxzZVxuICAgIH07XG5cbiAgICB0aGlzLmJpbGxpbmdTZXJ2aWNlLmJyYW5kQmlsbGluZ0dyb3VwcyhmaWx0ZXJzKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChlKSA9PiB7XG4gICAgICAgIGlmIChlPy5kYXRhPy5jb3VudCkge1xuICAgICAgICAgIHRoaXMuZ3JvdXBMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ncm91cE5vRGF0YSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZ3JvdXBMaXN0ID0gZS5kYXRhPy5kYXRhO1xuICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IGUuZGF0YT8uY291bnQ7XG4gICAgICAgICAgdGhpcy5zdW1tYXJ5ID0gZS5kYXRhPy5zdW1tYXJ5IHx8IHt9O1xuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZ3JvdXBMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ncm91cE5vRGF0YSA9IHRydWU7XG4gICAgICAgICAgdGhpcy5zZWFyY2hEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgaWYgKHRoaXMubGVuPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5ncm91cExpc3QgPSBbXTtcbiAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSAwO1xuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5ncm91cExvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ncm91cE5vRGF0YSA9IHRydWU7XG4gICAgICAgIHRoaXMuZ3JvdXBMaXN0ID0gW107XG4gICAgICAgIHRoaXMudG90YWxJdGVtcyA9IDA7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYWRkQmlsbGluZ0dyb3VwKCkge1xuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihCaWxsaW5nR3JvdXBGb3JtQ29tcG9uZW50LCB7XG4gICAgICBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ2xnJywgc2Nyb2xsYWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuZWRpdE1vZGUgPSBmYWxzZTtcbiAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT09ICdzdWNjZXNzJykge1xuICAgICAgICB0aGlzLmxvYWRCaWxsaW5nR3JvdXBzKCk7XG4gICAgICB9XG4gICAgfSkuY2F0Y2goKCkgPT4ge30pO1xuICB9XG5cbiAgZWRpdEJpbGxpbmdHcm91cChncm91cDogYW55KSB7XG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEJpbGxpbmdHcm91cEZvcm1Db21wb25lbnQsIHtcbiAgICAgIGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbGcnLCBzY3JvbGxhYmxlOiB0cnVlLFxuICAgIH0pO1xuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5lZGl0TW9kZSA9IHRydWU7XG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuZ3JvdXBEYXRhID0gZ3JvdXA7XG4gICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgdGhpcy5sb2FkQmlsbGluZ0dyb3VwcygpO1xuICAgICAgfVxuICAgIH0pLmNhdGNoKCgpID0+IHt9KTtcbiAgfVxuXG4gIGRlbGV0ZUJpbGxpbmdHcm91cChncm91cDogYW55KSB7XG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKERlbGV0ZVdhcm5pbmdDb21wb25lbnQsIHtcbiAgICAgIGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnLCBzY3JvbGxhYmxlOiB0cnVlLFxuICAgIH0pO1xuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmdyb3VwTmFtZSA9IGdyb3VwPy5ncm91cE5hbWUgfHwgJyc7XG4gICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSAnWWVzJykge1xuICAgICAgICB0aGlzLmJpbGxpbmdTZXJ2aWNlLmRlbGV0ZUJpbGxpbmdHcm91cChncm91cC5faWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0UHJpbWFyeVRvYXN0KCdCaWxsaW5nIGdyb3VwIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgICAgICB0aGlzLmxvYWRCaWxsaW5nR3JvdXBzKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdGYWlsZWQgdG8gZGVsZXRlIGJpbGxpbmcgZ3JvdXAnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pLmNhdGNoKCgpID0+IHt9KTtcbiAgfVxuXG4gIGFwcGx5R3JvdXBGaWx0ZXJzKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQ/Lmxlbmd0aCkge1xuICAgICAgZXZlbnQuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LkRlc2NyaXB0aW9uID09PSAnQW5uZXh1cmUnKSB7XG4gICAgICAgICAgdGhpcy5hbm5leHVyZUZpbHRlciA9IGVsZW1lbnQuSXNzdWVzPy5pZCB8fCAnJztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYW5uZXh1cmVGaWx0ZXIgPSAnJztcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5sb2FkQmlsbGluZ0dyb3VwcygpO1xuICB9XG5cbiAgc2VhcmNoRmllbGQoKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5sb2FkQmlsbGluZ0dyb3VwcygpO1xuICB9XG5cbiAgc29ydERhdGEoY29sdW1uOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNvcnRDb2x1bU5hbWUgPSBjb2x1bW47XG4gICAgdGhpcy5zb3J0QnkgKj0gLTE7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5sb2FkQmlsbGluZ0dyb3VwcygpO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlKHBhZ2VPZmZzZXQ6IGFueSkge1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYXJzZUludChwYWdlT2Zmc2V0KTtcbiAgICB0aGlzLmxvYWRCaWxsaW5nR3JvdXBzKCk7XG4gIH1cblxuICBvblBhZ2VTaXplQ2hhbmdlKHBhZ2VTaXplOiBhbnkpIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLnBhZ2VTaXplID0gcGFyc2VJbnQocGFnZVNpemUpO1xuICAgIHRoaXMubG9hZEJpbGxpbmdHcm91cHMoKTtcbiAgfVxuXG4gIG9uRXhwb3J0KCkge1xuICAgIGxldCBmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICBzZWFyY2hWYWx1ZTogdGhpcy5sZW4sXG4gICAgICBzb3J0Q29sdW1OYW1lOiB0aGlzLnNvcnRDb2x1bU5hbWUsXG4gICAgICBzb3J0Qnk6IHRoaXMuc29ydEJ5LFxuICAgICAgZXhwb3J0OiB0cnVlXG4gICAgfTtcblxuICAgIHRoaXMuYmlsbGluZ1NlcnZpY2UuYnJhbmRCaWxsaW5nR3JvdXBzRXhwb3J0KGZpbHRlcnMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmJpbGxpbmdTZXJ2aWNlLnNhdmVBc0V4Y2VsRmlsZShyZXMsICdiaWxsaW5nLWdyb3VwcycpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnU29tZXRoaW5nIHdlbnQgV3JvbmcuLicpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYnVsa0Rvd25sb2FkKCkge1xuICAgIGlmICh0aGlzLmJ1bGtEb3dubG9hZGluZykgcmV0dXJuO1xuICAgIGlmICghdGhpcy5jbGllbnRJZCkge1xuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdTZWxlY3QgYSBicmFuZCBmaXJzdCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmJ1bGtEb3dubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5iaWxsaW5nU2VydmljZS5idWxrRG93bmxvYWRCaWxsaW5nR3JvdXBzKHRoaXMuY2xpZW50SWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuYmlsbGluZ1NlcnZpY2Uuc2F2ZUFzVGVtcGxhdGUocmVzLCBgYmlsbGluZy1ncm91cHMtJHt0aGlzLmNsaWVudElkfS0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zbGljZSgwLCAxMCl9YCk7XG4gICAgICAgIHRoaXMuYnVsa0Rvd25sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYnVsa0Rvd25sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnQnVsayBkb3dubG9hZCBmYWlsZWQnKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvbkJ1bGtVcGxvYWRGaWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGZpbGUgPSBldmVudD8udGFyZ2V0Py5maWxlcz8uWzBdO1xuICAgIGlmICghZmlsZSkgcmV0dXJuO1xuICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xuICAgIGlmICghdGhpcy5jbGllbnRJZCkge1xuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdTZWxlY3QgYSBicmFuZCBmaXJzdCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmJ1bGtVcGxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuYmlsbGluZ1NlcnZpY2UuYnVsa1VwZGF0ZUJpbGxpbmdHcm91cHMoZmlsZSwgdGhpcy5jbGllbnRJZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5idWxrVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWQgPSByZXM/LmRhdGE/LnN1bW1hcnk/LnVwZGF0ZWQgPz8gMDtcbiAgICAgICAgdGhpcy50b2FzdC5nZXRQcmltYXJ5VG9hc3QoYFVwZGF0ZWQgJHt1cGRhdGVkfSBiaWxsaW5nIGdyb3VwKHMpYCk7XG4gICAgICAgIHRoaXMubG9hZEJpbGxpbmdHcm91cHMoKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuYnVsa1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBjb25zdCBlcnJQYXlsb2FkID0gZXJyPy5lcnJvcj8uZGF0YSB8fCBlcnI/LmVycm9yO1xuICAgICAgICBpZiAoZXJyPy5zdGF0dXMgPT09IDQyMiAmJiBlcnJQYXlsb2FkPy5lcnJvcnMpIHtcbiAgICAgICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQnVsa1VwbG9hZEVycm9yQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ2xnJywgc2Nyb2xsYWJsZTogdHJ1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5lcnJvcnMgPSBlcnJQYXlsb2FkLmVycm9ycztcbiAgICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS50b3RhbCA9IGVyclBheWxvYWQuc3VtbWFyeT8udG90YWwgPz8gMDtcbiAgICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5mYWlsZWQgPSBlcnJQYXlsb2FkLnN1bW1hcnk/LmZhaWxlZCA/PyAwO1xuICAgICAgICB9IGVsc2UgaWYgKGVycj8uc3RhdHVzID09PSA0MTMpIHtcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ0ZpbGUgdG9vIGxhcmdlIChtYXggNU1CKScpO1xuICAgICAgICB9IGVsc2UgaWYgKGVycj8uc3RhdHVzID09PSA0MDApIHtcbiAgICAgICAgICBjb25zdCBtc2cgPSBlcnI/LmVycm9yPy5tZXNzYWdlIHx8IGVyclBheWxvYWQ/Lm1lc3NhZ2UgfHwgJ0ludmFsaWQgZmlsZSBmb3JtYXQg4oCUIHVzZSBYTFNYJztcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QobXNnKTtcbiAgICAgICAgfSBlbHNlIGlmIChlcnI/LnN0YXR1cyA9PT0gMjA3KSB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZCA9IGVyclBheWxvYWQ/LnN1bW1hcnk/LnVwZGF0ZWQgPz8gMDtcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYEJ1bGsgdXBsb2FkIHBhcnRpYWxseSBhcHBsaWVkOiAke3VwZGF0ZWR9IHVwZGF0ZWQsIHRoZW4gYWJvcnRlZC4gUGxlYXNlIHJlLXVwbG9hZC5gKTtcbiAgICAgICAgICB0aGlzLmxvYWRCaWxsaW5nR3JvdXBzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdCdWxrIHVwbG9hZCBmYWlsZWQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufSIsIjxkaXYgY2xhc3M9XCJpbnZvaWNlcy1zZWN0aW9uXCI+XG4gICAgPCEtLSBIZWFkZXIgUm93IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTNcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi42NjY2NyAxMEgxMy4zMzMzTTYuNjY2NjcgNi42NjY2N0gxMy4zMzMzTTYuNjY2NjcgMTMuMzMzM0gxME01IDE3LjVIMTVDMTUuOTIwNSAxNy41IDE2LjY2NjcgMTYuNzUzOCAxNi42NjY3IDE1LjgzMzNWNC4xNjY2N0MxNi42NjY3IDMuMjQ2MTkgMTUuOTIwNSAyLjUgMTUgMi41SDVDNC4wNzk1MyAyLjUgMy4zMzMzMyAzLjI0NjE5IDMuMzMzMzMgNC4xNjY2N1YxNS44MzMzQzMuMzMzMzMgMTYuNzUzOCA0LjA3OTUzIDE3LjUgNSAxNy41WlwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmlsbGluZ2hlYWRlclwiPkJpbGxpbmcgR3JvdXBzPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmctbGlnaHQgdGV4dC1kYXJrIG1zLTFcIj57eyBzdW1tYXJ5Py50b3RhbEdyb3VwcyB8fCAwIH19IHRvdGFsPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tdXRlZCBzbWFsbCBtdC0xXCI+TWFuYWdlIEdTVCBlbnRpdGllcyBmb3IgY29uc29saWRhdGVkIGludm9pY2luZy4gRWFjaCBncm91cCBnZXRzIGl0cyBvd24gaW52b2ljZS48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXY+PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFN1bW1hcnkgQ2FyZHMgLS0+XG4gICAgPGRpdiBjbGFzcz1cInJvdyBnLTMgbWItNFwiICpuZ0lmPVwic3VtbWFyeT8udG90YWxHcm91cHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktY2FyZC1zbVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LWxhYmVsLXNtXCI+VG90YWwgR3JvdXBzPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktdmFsdWUtc21cIj57eyBzdW1tYXJ5Py50b3RhbEdyb3VwcyB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1jYXJkLXNtXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktbGFiZWwtc21cIj5BY3RpdmU8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS12YWx1ZS1zbSB0ZXh0LXByaW1hcnlcIj57eyBzdW1tYXJ5Py5hY3RpdmUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktY2FyZC1zbVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LWxhYmVsLXNtXCI+SW5hY3RpdmU8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS12YWx1ZS1zbVwiPnt7IHN1bW1hcnk/LmluYWN0aXZlIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LWNhcmQtc21cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1sYWJlbC1zbVwiPlRvdGFsIFJlY2VpdmVyczwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LXZhbHVlLXNtXCI+e3sgc3VtbWFyeT8udG90YWxSZWNlaXZlcnMgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gU2VhcmNoICsgRmlsdGVyICsgRXhwb3J0ICsgQWRkIFJvdyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgcGF5bWVudGhpc3RvcnkgYm9yZGVyLTAgcHgtMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyIHctMTAwXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gaW52b2ljZXNlYXJjaCBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG10LTYgbXMtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuNVwiIHg9XCIxNy4wMzY1XCIgeT1cIjE1LjEyMjNcIiB3aWR0aD1cIjguMTU1NDZcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwicm90YXRlKDQ1IDE3LjAzNjUgMTUuMTIyMylcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9yZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEgMTlDNi41NTU1NiAxOSAzIDE1LjQ0NDQgMyAxMUMzIDYuNTU1NTYgNi41NTU1NiAzIDExIDNDMTUuNDQ0NCAzIDE5IDYuNTU1NTYgMTkgMTFDMTkgMTUuNDQ0NCAxNS40NDQ0IDE5IDExIDE5Wk0xMSA1QzcuNTMzMzMgNSA1IDcuNTMzMzMgNSAxMUM1IDE0LjQ2NjcgNy41MzMzMyAxNyAxMSAxN0MxNC40NjY3IDE3IDE3IDE0LjQ2NjcgMTcgMTFDMTcgNy41MzMzMyAxNC40NjY3IDUgMTEgNVpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwibGVuXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBwcy0xNCBpbnZvaWNlc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoLi4uXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgKGNoYW5nZSk9XCJzZWFyY2hGaWVsZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWFyY2hEaXNhYmxlZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItZmlsdGVycyBbZGF0YU9iamVjdF09XCJncm91cEZpbHRlck9iamVjdFwiIChhcHBsaWVkRmlsdGVycyk9XCJhcHBseUdyb3VwRmlsdGVycygkZXZlbnQpXCI+PC9saWItZmlsdGVycz5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImJ1bGtEb3dubG9hZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuIGFsaWduLWl0ZW1zLWVuZCB0ZXh0LW5vd3JhcCBpbnZoZWFkZXIgbWUtMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnVsa0Rvd25sb2FkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNNS44MzMzMyA4LjMzMzMzTDEwIDEyLjVNMTAgMTIuNUwxNC4xNjY3IDguMzMzMzNNMTAgMTIuNVYyLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiICpuZ0lmPVwiIWJ1bGtEb3dubG9hZGluZ1wiPkJ1bGsgRG93bmxvYWQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTJcIiAqbmdJZj1cImJ1bGtEb3dubG9hZGluZ1wiPkRvd25sb2FkaW5nLi4uPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImJ1bGtVcGxvYWRJbnB1dC5jbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuIGFsaWduLWl0ZW1zLWVuZCB0ZXh0LW5vd3JhcCBpbnZoZWFkZXIgbWUtMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnVsa1VwbG9hZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTE0LjE2NjcgNi42NjY2N0wxMCAyLjVNMTAgMi41TDUuODMzMzMgNi42NjY2N00xMCAyLjVWMTIuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yXCIgKm5nSWY9XCIhYnVsa1VwbG9hZGluZ1wiPkJ1bGsgVXBsb2FkPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yXCIgKm5nSWY9XCJidWxrVXBsb2FkaW5nXCI+VXBsb2FkaW5nLi4uPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0ICNidWxrVXBsb2FkSW5wdXQgdHlwZT1cImZpbGVcIiBhY2NlcHQ9XCIueGxzeCwueGxzXCIgaGlkZGVuIChjaGFuZ2UpPVwib25CdWxrVXBsb2FkRmlsZVNlbGVjdGVkKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uRXhwb3J0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tb3V0bGluZSBidG4gYWxpZ24taXRlbXMtZW5kIHRleHQtbm93cmFwIGludmhlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWdyb3VwTGlzdC5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU0xNC4xNjY3IDYuNjY2NjdMMTAgMi41TTEwIDIuNUw1LjgzMzMzIDYuNjY2NjdNMTAgMi41VjEyLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiPkV4cG9ydDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHRleHQtbm93cmFwIG1zLTNcIiAoY2xpY2spPVwiYWRkQmlsbGluZ0dyb3VwKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICsgQWRkIEJpbGxpbmcgR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIExvYWRpbmcgU2hpbW1lciAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBMb2FkaW5nXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBObyBEYXRhIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cE5vRGF0YVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyB3LTI1XCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhLnN2Z1wiIGFsdD1cIlwiPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBHcm91cHMgTGlzdCAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiIWdyb3VwTG9hZGluZyAmJiAhZ3JvdXBOb0RhdGFcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgZ3JvdXBMaXN0XCIgY2xhc3M9XCJncm91cC1jYXJkIG1iLTNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi42NjY2NyAxMEgxMy4zMzMzTTYuNjY2NjcgNi42NjY2N0gxMy4zMzMzTTYuNjY2NjcgMTMuMzMzM0gxME01IDE3LjVIMTVDMTUuOTIwNSAxNy41IDE2LjY2NjcgMTYuNzUzOCAxNi42NjY3IDE1LjgzMzNWNC4xNjY2N0MxNi42NjY3IDMuMjQ2MTkgMTUuOTIwNSAyLjUgMTUgMi41SDVDNC4wNzk1MyAyLjUgMy4zMzMzMyAzLjI0NjE5IDMuMzMzMzMgNC4xNjY2N1YxNS44MzMzQzMuMzMzMzMgMTYuNzUzOCA0LjA3OTUzIDE3LjUgNSAxNy41WlwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdyb3VwLW5hbWVcIj57eyBncm91cD8uZ3JvdXBOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2Vzc1wiPkFjdGl2ZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbXV0ZWQgc21hbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImdyb3VwPy5nc3RcIj5HU1Q6IHt7IGdyb3VwPy5nc3QgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJncm91cD8uZ3N0ICYmIGdyb3VwPy5yZWdpc3RlcmVkQ29tcGFueU5hbWVcIiBjbGFzcz1cIm14LTJcIj4mbWlkZG90Ozwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImdyb3VwPy5yZWdpc3RlcmVkQ29tcGFueU5hbWVcIj57eyBncm91cD8ucmVnaXN0ZXJlZENvbXBhbnlOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGJ0bi1pY29uXCIgKGNsaWNrKT1cImVkaXRCaWxsaW5nR3JvdXAoZ3JvdXApXCIgdGl0bGU9XCJFZGl0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExLjMzMzMgMi4wMDAwNEMxMS41MDgzIDEuODI0OTQgMTEuNzE2MyAxLjY4NjA1IDExLjk0NTEgMS41OTEyOUMxMi4xNzM5IDEuNDk2NTMgMTIuNDE5MSAxLjQ0Nzc1IDEyLjY2NjcgMS40NDc3NUMxMi45MTQzIDEuNDQ3NzUgMTMuMTU5NCAxLjQ5NjUzIDEzLjM4ODIgMS41OTEyOUMxMy42MTcgMS42ODYwNSAxMy44MjUgMS44MjQ5NCAxNCAyLjAwMDA0QzE0LjE3NTEgMi4xNzUxMyAxNC4zMTQgMi4zODMxOCAxNC40MDg4IDIuNjExOTdDMTQuNTAzNSAyLjg0MDc2IDE0LjU1MjMgMy4wODU4NiAxNC41NTIzIDMuMzMzMzdDMTQuNTUyMyAzLjU4MDg5IDE0LjUwMzUgMy44MjU5OSAxNC40MDg4IDQuMDU0NzhDMTQuMzE0IDQuMjgzNTcgMTQuMTc1MSA0LjQ5MTYyIDE0IDQuNjY2NzFMNSAxMy42NjY3TDEuMzMzMzMgMTQuNjY2N0wyLjMzMzMzIDExTDExLjMzMzMgMi4wMDAwNFpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFncm91cD8uaXNQcmltYXJ5XCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBidG4taWNvblwiIChjbGljayk9XCJkZWxldGVCaWxsaW5nR3JvdXAoZ3JvdXApXCIgdGl0bGU9XCJEZWxldGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMiA0SDMuMzMzMzNIMTRNMTIuNjY2NyA0VjEzLjMzMzNDMTIuNjY2NyAxMy42ODcgMTIuNTI2MiAxNC4wMjYxIDEyLjI3NjEgMTQuMjc2MUMxMi4wMjYxIDE0LjUyNjIgMTEuNjg3IDE0LjY2NjcgMTEuMzMzMyAxNC42NjY3SDQuNjY2NjdDNC4zMTMwNCAxNC42NjY3IDMuOTczOTEgMTQuNTI2MiAzLjcyMzg2IDE0LjI3NjFDMy40NzM4MSAxNC4wMjYxIDMuMzMzMzMgMTMuNjg3IDMuMzMzMzMgMTMuMzMzM1Y0TTUuMzMzMzMgNFYyLjY2NjY3QzUuMzMzMzMgMi4zMTMwNCA1LjQ3MzgxIDEuOTczOTEgNS43MjM4NiAxLjcyMzg2QzUuOTczOTEgMS40NzM4MSA2LjMxMzA0IDEuMzMzMzMgNi42NjY2NyAxLjMzMzMzSDkuMzMzMzNDOS42ODY5NiAxLjMzMzMzIDEwLjAyNjEgMS40NzM4MSAxMC4yNzYxIDEuNzIzODZDMTAuNTI2MiAxLjk3MzkxIDEwLjY2NjcgMi4zMTMwNCAxMC42NjY3IDIuNjY2NjdWNFwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMyBtdC0yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlsLWxhYmVsXCI+Q29udGFjdCBFbWFpbDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlsLXZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiBjbGFzcz1cIm1lLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEuMTY2NjcgNC4wODMyNUw2LjE0NjE3IDcuNDA2MTdDNi41MDUzMyA3LjY0NTU4IDYuNjg1IDcuNzY1MjUgNi44NzkzMyA3LjgxMDQyQzcuMDUxMzMgNy44NTA0MiA3LjIzMDMzIDcuODUwNDIgNy40MDIzMyA3LjgxMDQyQzcuNTk2NjcgNy43NjUyNSA3Ljc3NjMzIDcuNjQ1NTggOC4xMzU1IDcuNDA2MTdMMTMuMTE1IDQuMDgzMjVNMy45NjY2NyAxMS42NjY2SDEwLjMxNDdDMTEuMTk0OCAxMS42NjY2IDExLjYzNDggMTEuNjY2NiAxMS45NzE3IDExLjQ5NTFDMTIuMjY4NyAxMS4zNDM5IDEyLjUxMDUgMTEuMTAyMSAxMi42NjE3IDEwLjgwNTFDMTIuODMzMyAxMC40NjgyIDEyLjgzMzMgMTAuMDI4MiAxMi44MzMzIDkuMTQ4MDhWNS4xMzUwOEMxMi44MzMzIDQuMjU0OTkgMTIuODMzMyAzLjgxNDk5IDEyLjY2MTcgMy40NzgwOEMxMi41MTA1IDMuMTgxMDggMTIuMjY4NyAyLjkzOTMzIDExLjk3MTcgMi43ODgwOEMxMS42MzQ4IDIuNjE2NTggMTEuMTk0OCAyLjYxNjU4IDEwLjMxNDcgMi42MTY1OEgzLjk2NjY3QzMuMDg2NTggMi42MTY1OCAyLjY0NjU4IDIuNjE2NTggMi4zMDk2NyAyLjc4ODA4QzIuMDEyNjcgMi45MzkzMyAxLjc3MDkyIDMuMTgxMDggMS42MTk2NyAzLjQ3ODA4QzEuNDQ4MTcgMy44MTQ5OSAxLjQ0ODE3IDQuMjU0OTkgMS40NDgxNyA1LjEzNTA4VjkuMTQ4MDhDMS40NDgxNyAxMC4wMjgyIDEuNDQ4MTcgMTAuNDY4MiAxLjYxOTY3IDEwLjgwNTFDMS43NzA5MiAxMS4xMDIxIDIuMDEyNjcgMTEuMzQzOSAyLjMwOTY3IDExLjQ5NTFDMi42NDY1OCAxMS42NjY2IDMuMDg2NTggMTEuNjY2NiAzLjk2NjY3IDExLjY2NjZaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJncm91cD8uZ2VuZXJhdGVJbnZvaWNlVG8/Lmxlbmd0aFwiPnt7IGdyb3VwPy5nZW5lcmF0ZUludm9pY2VUb1swXSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWdyb3VwPy5nZW5lcmF0ZUludm9pY2VUbz8ubGVuZ3RoXCIgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+4oCUPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kZXRhaWwtbGFiZWxcIj5TdG9yZXM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWRldGFpbC12YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgY2xhc3M9XCJtZS0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xLjE2NjY3IDcuMDAwMDhMNi41NjQ4MyAxLjYwMTkyQzYuNzg2ODMgMS4zNzk5MiA2Ljg5NzgzIDEuMjY4OTIgNy4wMjU4MyAxLjIyMTkyQzcuMTM4ODMgMS4xODAyNSA3LjI2MjgzIDEuMTgwMjUgNy4zNzU4MyAxLjIyMTkyQzcuNTAzODMgMS4yNjg5MiA3LjYxNDgzIDEuMzc5OTIgNy44MzY4MyAxLjYwMTkyTDEzLjIzNSA3LjAwMDA4TTIuOTE2NjcgNS41NDE3NVYxMS4wMjUxQzIuOTE2NjcgMTEuNDY1MSAyLjkxNjY3IDExLjY4NTEgMy4wMDI0MiAxMS44NTM2QzMuMDc4MDggMTIuMDAyMSAzLjE5ODI1IDEyLjEyMjMgMy4zNDY3NSAxMi4xOTc5QzMuNTE1MzMgMTIuMjgzNyAzLjczNTMzIDEyLjI4MzcgNC4xNzUzMyAxMi4yODM3SDUuODMzMzNWOS4zMzM0MkM1LjgzMzMzIDguODc1MDggNS44MzMzMyA4LjY0NTkyIDUuOTIyMDggOC40Njg5MkM2LjAwMDMzIDguMzEzMDggNi4xMjYxNyA4LjE4NzI1IDYuMjgyIDguMTA5MDhDNi40NTkgOC4wMjAyNSA2LjY4ODE3IDguMDIwMjUgNy4xNDY2NyA4LjAyMDI1SDcuMjU0MTdDNy43MTI2NyA4LjAyMDI1IDcuOTQxODMgOC4wMjAyNSA4LjExODgzIDguMTA5MDhDOC4yNzQ2NyA4LjE4NzI1IDguNDAwNjcgOC4zMTMwOCA4LjQ3ODgzIDguNDY4OTJDOC41Njc1IDguNjQ1OTIgOC41Njc1IDguODc1MDggOC41Njc1IDkuMzMzNDJWMTIuMjgzN0gxMC4yMjZDMTAuNjY2IDEyLjI4MzcgMTAuODg2IDEyLjI4MzcgMTEuMDU0NSAxMi4xOTc5QzExLjIwMyAxMi4xMjIzIDExLjMyMzIgMTIuMDAyMSAxMS4zOTg4IDExLjg1MzZDMTEuNDg0NyAxMS42ODUxIDExLjQ4NDcgMTEuNDY1MSAxMS40ODQ3IDExLjAyNTFWNS41NDE3NVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdyb3VwPy5zdG9yZUNvdW50IHx8IDAgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlsLWxhYmVsXCI+QW5uZXh1cmUgQXR0YWNobWVudDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlsLXZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlXCIgW25nQ2xhc3NdPVwiZ3JvdXA/LmF0dGFjaEFubmV4dXJlID8gJ2JhZGdlLWxpZ2h0LXN1Y2Nlc3MnIDogJ2JhZGdlLWxpZ2h0LXNlY29uZGFyeSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBncm91cD8uYXR0YWNoQW5uZXh1cmUgPyAnQXR0YWNoZWQnIDogJ05vdCBhdHRhY2hlZCcgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlsLWxhYmVsXCI+SW52b2ljZSBSZWNlaXZlcnM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWRldGFpbC12YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgY2xhc3M9XCJtZS0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05LjMzMzMzIDEyLjI1VjExLjA4MzNDOS4zMzMzMyAxMC40NjQ1IDkuMDg3MzUgOS44NzEgOC42NDk3NiA5LjQzMzQyQzguMjEyMTggOC45OTU4MyA3LjYxODY4IDguNzUgNyA4Ljc1SDIuOTE2NjdDMi4yOTc5OSA4Ljc1IDEuNzA0NDkgOC45OTU4MyAxLjI2NjkgOS40MzM0MkMwLjgyOTMxNiA5Ljg3MSAwLjU4MzMzMyAxMC40NjQ1IDAuNTgzMzMzIDExLjA4MzNWMTIuMjVNMTIuODMzMyAxMi4yNVYxMS4wODMzQzEyLjgzMyAxMC41NzM1IDEyLjY2ODggMTAuMDc3OCAxMi4zNjU0IDkuNjY4NThDMTIuMDYyMSA5LjI1OTMzIDExLjYzNiA4Ljk1ODU4IDExLjE0NTggOC44MTA4M005LjA0MTY3IDEuODEwODNDOS41MzMwOCAxLjk1NzkyIDkuOTYwNTggMi4yNTg1OCAxMC4yNjUgMi42NjgyNUMxMC41Njk0IDMuMDc3OTIgMTAuNzM0IDMuNTc0NjcgMTAuNzM0IDQuMDg1NDJDMTAuNzM0IDQuNTk2MTcgMTAuNTY5NCA1LjA5MjkyIDEwLjI2NSA1LjUwMjU4QzkuOTYwNTggNS45MTIyNSA5LjUzMzA4IDYuMjEyOTIgOS4wNDE2NyA2LjM2TTcuMjkxNjcgNC4wODMzM0M3LjI5MTY3IDUuMzcyNDIgNi4yNDc0MiA2LjQxNjY3IDQuOTU4MzMgNi40MTY2N0MzLjY2OTI1IDYuNDE2NjcgMi42MjUgNS4zNzI0MiAyLjYyNSA0LjA4MzMzQzIuNjI1IDIuNzk0MjUgMy42NjkyNSAxLjc1IDQuOTU4MzMgMS43NUM2LjI0NzQyIDEuNzUgNy4yOTE2NyAyLjc5NDI1IDcuMjkxNjcgNC4wODMzM1pcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBncm91cD8ucmVjZWl2ZXJDb3VudCB8fCAwIH19IHJlY2lwaWVudHNcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGxpYi1wYWdpbmF0aW9uIGNsYXNzPVwidGV4dC1zdGFydFwiIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlXCIgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcbiAgICAgICAgICAgIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIiBbcGFnaW5hdGlvblNpemVzXT1cInBhZ2luYXRpb25TaXplc1wiIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgICAgICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiIChwYWdlU2l6ZUNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCRldmVudClcIj48L2xpYi1wYWdpbmF0aW9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gPT09PT09PT09PT09PT09PT09PT09IFBheW1lbnQgUmVtaW5kZXJzID09PT09PT09PT09PT09PT09PT09PSAtLT5cbjxkaXYgY2xhc3M9XCJwci1wYW5lbCBtdC00XCI+XG4gICAgPGRpdiBjbGFzcz1cInByLWhlYWRcIj5cbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHN0cm9rZT1cIiMxNDkzZjVcIiBzdHJva2Utd2lkdGg9XCIyXCI+PHBhdGggZD1cIk0xOCA4YTYgNiAwIDAgMC0xMiAwYzAgNy0zIDktMyA5aDE4cy0zLTItMy05TTEzLjcgMjFhMiAyIDAgMCAxLTMuNCAwXCIvPjwvc3ZnPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByLXRpdGxlXCI+UGF5bWVudCBSZW1pbmRlcnM8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci1zdWJcIj5UaGVzZSByZWNpcGllbnRzIHJlY2VpdmUgcGF5bWVudC1yZW1pbmRlciBlbWFpbHMgZm9yIGFsbCBiaWxsaW5nIGdyb3VwcyBpbiB0aGlzIGJyYW5kLjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gUmVjaXBpZW50cyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwicHItZmllbGQgbXQtM1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJwci1sYWJlbFwiPlJlbWluZGVyIFJlY2lwaWVudHM8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHItY2hpcHNcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHItY2hpcFwiICpuZ0Zvcj1cImxldCBlIG9mIHJlbWluZGVyRW1haWxzXCI+XG4gICAgICAgICAgICAgICAge3sgZSB9fTxzcGFuIGNsYXNzPVwicHItY2hpcC14XCIgKGNsaWNrKT1cInJlbW92ZVJlbWluZGVyRW1haWwoZSlcIj7Dlzwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInByLWNoaXAtaW5wdXRcIiBbKG5nTW9kZWwpXT1cInJlbWluZGVyRW1haWxJbnB1dFwiIHBsYWNlaG9sZGVyPVwiQWRkIGVtYWlsICsgRW50ZXJcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBhZGRSZW1pbmRlckVtYWlsKClcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cImFkZFJlbWluZGVyRW1haWwoKVwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByLWhpbnRcIj5BcHBsaWVkIHRvIGV2ZXJ5IGJpbGxpbmcgZ3JvdXAgZm9yIHRoaXMgYnJhbmQuPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFNjaGVkdWxlIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtdC00XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwci1zY2hlZHVsZS1sYWJlbFwiPlJlbWluZGVyIFNjaGVkdWxlPC9sYWJlbD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHItY291bnRcIj57eyByZW1pbmRlckVuYWJsZWRDb3VudCB9fSBvZiA1IGVuYWJsZWQ8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHItaGludCBtYi0zXCI+UHJlZGVmaW5lZCByZW1pbmRlciBmbG93cy4gRW5hYmxlIHRoZSB0ZW1wbGF0ZXMgeW91IHdhbnQg4oCUIHRpbWluZ3MgYXJlIGZpeGVkIGV4Y2VwdCB3aGVyZSBub3RlZC48L2Rpdj5cblxuICAgICAgICA8IS0tIER1ZSBEYXRlIFJlbWluZGVyIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHItdG1wbFwiIFtjbGFzcy5vbl09XCJyZW1pbmRlclRlbXBsYXRlcy5wcmVEdWUuZW5hYmxlZCB8fCByZW1pbmRlclRlbXBsYXRlcy5vbkR1ZS5lbmFibGVkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItdG1wbC1oZWFkXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwci1kb3QgYW1iZXJcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci10bXBsLW5hbWVcIj5EdWUgRGF0ZSBSZW1pbmRlcjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItaGludFwiPlJlbWluZCB0aGUgY3VzdG9tZXIgYXJvdW5kIHRoZSBpbnZvaWNlIGR1ZSBkYXRlLiBFbmFibGUgZWFjaCBzdGFnZSBpbmRlcGVuZGVudGx5LjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHItdGFnIGFtYmVyXCI+QXJvdW5kIGR1ZTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByLXRtcGwtYm9keVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByLXJvdy10ZXh0XCI+PGI+QmVmb3JlIGR1ZTwvYj4g4oCUIHNlbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgbWluPVwiMVwiIG1heD1cIjM2NVwiIGNsYXNzPVwicHItZGF5LWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJyZW1pbmRlclRlbXBsYXRlcy5wcmVEdWUuZGF5c0JlZm9yZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25QcmVEdWVEYXlzQ2hhbmdlKCRldmVudClcIj4gZGF5KHMpIGJlZm9yZSB0aGUgZHVlIGRhdGVcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci10b2dnbGVcIiBbY2xhc3Mub25dPVwicmVtaW5kZXJUZW1wbGF0ZXMucHJlRHVlLmVuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVJlbWluZGVyVGVtcGxhdGUoJ3ByZUR1ZScpXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItcm93LXRleHRcIj48Yj5PbiBkdWUgZGF0ZTwvYj4g4oCUIHNlbnQgb24gdGhlIGludm9pY2UgZHVlIGRhdGU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByLXRvZ2dsZVwiIFtjbGFzcy5vbl09XCJyZW1pbmRlclRlbXBsYXRlcy5vbkR1ZS5lbmFibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSZW1pbmRlclRlbXBsYXRlKCdvbkR1ZScpXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBQYXltZW50IE92ZXJkdWUgUmVtaW5kZXIgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwci10bXBsIG10LTNcIlxuICAgICAgICAgICAgW2NsYXNzLm9uXT1cInJlbWluZGVyVGVtcGxhdGVzLm9uSG9sZC5lbmFibGVkIHx8IHJlbWluZGVyVGVtcGxhdGVzLnN1c3BlbmQuZW5hYmxlZCB8fCByZW1pbmRlclRlbXBsYXRlcy5kZWFjdGl2YXRlZC5lbmFibGVkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItdG1wbC1oZWFkXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwci1kb3QgcmVkXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItdG1wbC1uYW1lXCI+UGF5bWVudCBPdmVyZHVlIFJlbWluZGVyPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci1oaW50XCI+U2VudCBhZnRlciB0aGUgaW52b2ljZSBjcm9zc2VzIHRoZSBkdWUgZGF0ZS4gRW5hYmxlIGVhY2ggc3RhZ2UgaW5kZXBlbmRlbnRseS48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByLXRhZyByZWRcIj5BZnRlciBkdWU8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci10bXBsLWJvZHlcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci1yb3ctdGV4dFwiPjxiPk9uIEhvbGQ8L2I+IOKAlCBhY2NvdW50IG9uIGhvbGQgaW1tZWRpYXRlbHkgYWZ0ZXIgZHVlIGRhdGU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByLXRvZ2dsZVwiIFtjbGFzcy5vbl09XCJyZW1pbmRlclRlbXBsYXRlcy5vbkhvbGQuZW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUmVtaW5kZXJUZW1wbGF0ZSgnb25Ib2xkJylcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci1yb3ctdGV4dFwiPjxiPlN1c3BlbmRlZDwvYj4g4oCUIGFjY291bnQgc3VzcGVuZGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgPGI+MzAgZGF5czwvYj4gdW5wYWlkPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci10b2dnbGVcIiBbY2xhc3Mub25dPVwicmVtaW5kZXJUZW1wbGF0ZXMuc3VzcGVuZC5lbmFibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSZW1pbmRlclRlbXBsYXRlKCdzdXNwZW5kJylcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci1yb3ctdGV4dFwiPjxiPkRlYWN0aXZhdGVkPC9iPiDigJQgYWNjb3VudCBkZWFjdGl2YXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIDxiPjYwIGRheXM8L2I+IHVucGFpZDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItdG9nZ2xlXCIgW2NsYXNzLm9uXT1cInJlbWluZGVyVGVtcGxhdGVzLmRlYWN0aXZhdGVkLmVuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVJlbWluZGVyVGVtcGxhdGUoJ2RlYWN0aXZhdGVkJylcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC00XCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgW2Rpc2FibGVkXT1cInJlbWluZGVyU2F2aW5nXCIgKGNsaWNrKT1cInNhdmVQYXltZW50UmVtaW5kZXIoKVwiPlxuICAgICAgICAgICAge3sgcmVtaW5kZXJTYXZpbmcgPyAnU2F2aW5n4oCmJyA6ICdTYXZlJyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
384
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGluZy1ncm91cHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLWJpbGxpbmcvc3JjL2xpYi9jb21wb25lbnRzL2JpbGxpbmctZ3JvdXBzL2JpbGxpbmctZ3JvdXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1iaWxsaW5nL3NyYy9saWIvY29tcG9uZW50cy9iaWxsaW5nLWdyb3Vwcy9iaWxsaW5nLWdyb3Vwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxLQUFLLEVBQStDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUkxQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7OztBQU8zRixNQUFNLE9BQU8sc0JBQXNCO0lBNkN2QjtJQUNBO0lBQ0E7SUFDQTtJQS9DTyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVqQyxRQUFRLEdBQVcsRUFBRSxDQUFDO0lBRS9CLEdBQUcsQ0FBTTtJQUNULGNBQWMsR0FBWSxLQUFLLENBQUM7SUFDaEMsZUFBZSxHQUFZLEtBQUssQ0FBQztJQUNqQyxhQUFhLEdBQVksS0FBSyxDQUFDO0lBQ0QsZUFBZSxDQUFnQztJQUU3RSxVQUFVO0lBQ1YsT0FBTyxHQUFRLEVBQUUsQ0FBQztJQUVsQixRQUFRO0lBQ1IsU0FBUyxHQUFRLEVBQUUsQ0FBQztJQUNwQixZQUFZLEdBQVksSUFBSSxDQUFDO0lBQzdC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QUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDL0I7cUJBQU0sSUFBSSxHQUFHLEVBQUUsTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDOUIsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDO29CQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxrQ0FBa0MsT0FBTywyQ0FBMkMsQ0FBQyxDQUFDO29CQUMvRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztpQkFDMUI7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQztpQkFDaEQ7Z0JBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN0QyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0F6WFUsc0JBQXNCOzRGQUF0QixzQkFBc0IscU9DZG5DLG14c0JBcVRNOzs0RkR2U08sc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjtxS0FPckIsUUFBUTtzQkFBaEIsS0FBSztnQkFNd0IsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgQmlsbGluZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9iaWxsaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XG5pbXBvcnQgeyBCaWxsaW5nR3JvdXBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9iaWxsaW5nLWdyb3VwLWZvcm0vYmlsbGluZy1ncm91cC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWxldGVXYXJuaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9kZWxldGUtd2FybmluZy9kZWxldGUtd2FybmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnVsa1VwbG9hZEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi9idWxrLXVwbG9hZC1lcnJvci9idWxrLXVwbG9hZC1lcnJvci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYmlsbGluZy1ncm91cHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYmlsbGluZy1ncm91cHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYmlsbGluZy1ncm91cHMuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEJpbGxpbmdHcm91cHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgQElucHV0KCkgY2xpZW50SWQ6IHN0cmluZyA9ICcnO1xuXG4gIGxlbjogYW55O1xuICBzZWFyY2hEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBidWxrRG93bmxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYnVsa1VwbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBAVmlld0NoaWxkKCdidWxrVXBsb2FkSW5wdXQnKSBidWxrVXBsb2FkSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIC8vIFN1bW1hcnlcbiAgc3VtbWFyeTogYW55ID0ge307XG5cbiAgLy8gVGFibGVcbiAgZ3JvdXBMaXN0OiBhbnkgPSBbXTtcbiAgZ3JvdXBMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcbiAgZ3JvdXBOb0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdG90YWxJdGVtczogbnVtYmVyID0gMDtcbiAgcGFnZVNpemU6IG51bWJlciA9IDEwO1xuICBjdXJyZW50UGFnZTogbnVtYmVyID0gMTtcbiAgaXRlbXNQZXJQYWdlOiBudW1iZXIgPSAxMDtcbiAgcGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdO1xuICBzb3J0Q29sdW1OYW1lOiBzdHJpbmcgPSAnY3JlYXRlZEF0JztcbiAgc29ydEJ5OiBudW1iZXIgPSAtMTtcblxuICAvLyBGaWx0ZXJcbiAgZ3JvdXBGaWx0ZXJPYmplY3QgPSBbXG4gICAgeyBEZXNjcmlwdGlvbjogJ0FubmV4dXJlJywgdHlwZTogJ3NpbmdsZScsIElzc3VlczogW3sgaWQ6ICdhdHRhY2hlZCcsIHRleHQ6ICdBdHRhY2hlZCcgfSwgeyBpZDogJ25vdEF0dGFjaGVkJywgdGV4dDogJ05vdCBBdHRhY2hlZCcgfV0gfSxcbiAgXTtcbiAgYW5uZXh1cmVGaWx0ZXI6IHN0cmluZyA9ICcnO1xuXG4gIC8vID09PT09IFBheW1lbnQgUmVtaW5kZXJzID09PT09XG4gIHJlbWluZGVyRW1haWxzOiBzdHJpbmdbXSA9IFtdO1xuICByZW1pbmRlckVtYWlsSW5wdXQ6IHN0cmluZyA9ICcnO1xuICByZW1pbmRlclRlbXBsYXRlczogYW55ID0ge1xuICAgIHByZUR1ZTogeyBlbmFibGVkOiB0cnVlLCBkYXlzQmVmb3JlOiAzIH0sXG4gICAgb25EdWU6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgIG9uSG9sZDogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgc3VzcGVuZDogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgZGVhY3RpdmF0ZWQ6IHsgZW5hYmxlZDogZmFsc2UgfSxcbiAgfTtcbiAgcmVtaW5kZXJTYXZpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJpbGxpbmdTZXJ2aWNlOiBCaWxsaW5nU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHRvYXN0OiBUb2FzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jbGllbnRJZCkge1xuICAgICAgdGhpcy5sb2FkQmlsbGluZ0dyb3VwcygpO1xuICAgICAgdGhpcy5sb2FkUGF5bWVudFJlbWluZGVyKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydjbGllbnRJZCddICYmICFjaGFuZ2VzWydjbGllbnRJZCddLmZpcnN0Q2hhbmdlICYmIHRoaXMuY2xpZW50SWQpIHtcbiAgICAgIHRoaXMubG9hZEJpbGxpbmdHcm91cHMoKTtcbiAgICAgIHRoaXMubG9hZFBheW1lbnRSZW1pbmRlcigpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvLyA9PT09PSBQYXltZW50IFJlbWluZGVycyA9PT09PVxuICBsb2FkUGF5bWVudFJlbWluZGVyKCkge1xuICAgIHRoaXMuYmlsbGluZ1NlcnZpY2UuZ2V0UGF5bWVudFJlbWluZGVyKHRoaXMuY2xpZW50SWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGQgPSByZXM/LmRhdGE7XG4gICAgICAgIGlmIChkKSB7XG4gICAgICAgICAgdGhpcy5yZW1pbmRlckVtYWlscyA9IEFycmF5LmlzQXJyYXkoZC5yZW1pbmRlckVtYWlscykgPyBkLnJlbWluZGVyRW1haWxzIDogW107XG4gICAgICAgICAgaWYgKGQudGVtcGxhdGVzKSB7XG4gICAgICAgICAgICAvLyBNZXJnZSBvdmVyIGRlZmF1bHRzIHNvIGEgcGFydGlhbCBkb2MgbmV2ZXIgZHJvcHMgYSB0ZW1wbGF0ZS5cbiAgICAgICAgICAgIHRoaXMucmVtaW5kZXJUZW1wbGF0ZXMgPSB7XG4gICAgICAgICAgICAgIHByZUR1ZTogeyBlbmFibGVkOiBkLnRlbXBsYXRlcy5wcmVEdWU/LmVuYWJsZWQgPz8gdHJ1ZSwgZGF5c0JlZm9yZTogZC50ZW1wbGF0ZXMucHJlRHVlPy5kYXlzQmVmb3JlID8/IDMgfSxcbiAgICAgICAgICAgICAgb25EdWU6IHsgZW5hYmxlZDogZC50ZW1wbGF0ZXMub25EdWU/LmVuYWJsZWQgPz8gdHJ1ZSB9LFxuICAgICAgICAgICAgICBvbkhvbGQ6IHsgZW5hYmxlZDogZC50ZW1wbGF0ZXMub25Ib2xkPy5lbmFibGVkID8/IHRydWUgfSxcbiAgICAgICAgICAgICAgc3VzcGVuZDogeyBlbmFibGVkOiBkLnRlbXBsYXRlcy5zdXNwZW5kPy5lbmFibGVkID8/IHRydWUgfSxcbiAgICAgICAgICAgICAgZGVhY3RpdmF0ZWQ6IHsgZW5hYmxlZDogZC50ZW1wbGF0ZXMuZGVhY3RpdmF0ZWQ/LmVuYWJsZWQgPz8gZmFsc2UgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHt9LFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHJlbWluZGVyRW5hYmxlZENvdW50KCk6IG51bWJlciB7XG4gICAgY29uc3QgdCA9IHRoaXMucmVtaW5kZXJUZW1wbGF0ZXM7XG4gICAgcmV0dXJuIFsncHJlRHVlJywgJ29uRHVlJywgJ29uSG9sZCcsICdzdXNwZW5kJywgJ2RlYWN0aXZhdGVkJ11cbiAgICAgIC5maWx0ZXIoayA9PiB0W2tdPy5lbmFibGVkKS5sZW5ndGg7XG4gIH1cblxuICBhZGRSZW1pbmRlckVtYWlsKCkge1xuICAgIGNvbnN0IGVtYWlsID0gKHRoaXMucmVtaW5kZXJFbWFpbElucHV0IHx8ICcnKS50cmltKCk7XG4gICAgaWYgKCFlbWFpbCkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5yZW1pbmRlckVtYWlscy5pbmNsdWRlcyhlbWFpbCkpIHtcbiAgICAgIHRoaXMucmVtaW5kZXJFbWFpbHMucHVzaChlbWFpbCk7XG4gICAgICAvLyBBdXRvc2F2ZSBzbyB0aGUgcmVjaXBpZW50IHBlcnNpc3RzIGltbWVkaWF0ZWx5IChubyBzZXBhcmF0ZSBTYXZlIGNsaWNrKS5cbiAgICAgIHRoaXMucGVyc2lzdFBheW1lbnRSZW1pbmRlcih0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5yZW1pbmRlckVtYWlsSW5wdXQgPSAnJztcbiAgfVxuXG4gIHJlbW92ZVJlbWluZGVyRW1haWwoZW1haWw6IHN0cmluZykge1xuICAgIHRoaXMucmVtaW5kZXJFbWFpbHMgPSB0aGlzLnJlbWluZGVyRW1haWxzLmZpbHRlcihlID0+IGUgIT09IGVtYWlsKTtcbiAgICB0aGlzLnBlcnNpc3RQYXltZW50UmVtaW5kZXIodHJ1ZSk7XG4gIH1cblxuICB0b2dnbGVSZW1pbmRlclRlbXBsYXRlKGtleTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMucmVtaW5kZXJUZW1wbGF0ZXNba2V5XSkge1xuICAgICAgdGhpcy5yZW1pbmRlclRlbXBsYXRlc1trZXldLmVuYWJsZWQgPSAhdGhpcy5yZW1pbmRlclRlbXBsYXRlc1trZXldLmVuYWJsZWQ7XG4gICAgICB0aGlzLmRlYm91bmNlZFBlcnNpc3RSZW1pbmRlcigpO1xuICAgIH1cbiAgfVxuXG4gIG9uUHJlRHVlRGF5c0NoYW5nZSh2YWx1ZTogYW55KSB7XG4gICAgbGV0IG4gPSBwYXJzZUludCh2YWx1ZSwgMTApO1xuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKG4pKSBuID0gMTtcbiAgICB0aGlzLnJlbWluZGVyVGVtcGxhdGVzLnByZUR1ZS5kYXlzQmVmb3JlID0gTWF0aC5taW4oMzY1LCBNYXRoLm1heCgxLCBuKSk7XG4gICAgdGhpcy5kZWJvdW5jZWRQZXJzaXN0UmVtaW5kZXIoKTtcbiAgfVxuXG4gIC8vIENvYWxlc2NlIHJhcGlkIHNjaGVkdWxlIGVkaXRzICh0b2dnbGVzLCBkYXkgY2hhbmdlcykgaW50byBvbmUgc2F2ZS5cbiAgcHJpdmF0ZSByZW1pbmRlclNhdmVUaW1lcjogYW55ID0gbnVsbDtcbiAgcHJpdmF0ZSBkZWJvdW5jZWRQZXJzaXN0UmVtaW5kZXIoKSB7XG4gICAgaWYgKHRoaXMucmVtaW5kZXJTYXZlVGltZXIpIGNsZWFyVGltZW91dCh0aGlzLnJlbWluZGVyU2F2ZVRpbWVyKTtcbiAgICB0aGlzLnJlbWluZGVyU2F2ZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnBlcnNpc3RQYXltZW50UmVtaW5kZXIodHJ1ZSksIDYwMCk7XG4gIH1cblxuICAvLyBTaGFyZWQgc2F2ZS4gc2lsZW50PXRydWUg4oaSIGF1dG9zYXZlIChubyB0b2FzdCk7IHNpbGVudD1mYWxzZSDihpIgZXhwbGljaXRcbiAgLy8gU2F2ZSBidXR0b24gKHNob3dzIGNvbmZpcm1hdGlvbiB0b2FzdCkuXG4gIHByaXZhdGUgcGVyc2lzdFBheW1lbnRSZW1pbmRlcihzaWxlbnQ6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuY2xpZW50SWQpIHJldHVybjtcbiAgICB0aGlzLnJlbWluZGVyU2F2aW5nID0gdHJ1ZTtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICByZW1pbmRlckVtYWlsczogdGhpcy5yZW1pbmRlckVtYWlscyxcbiAgICAgIHRlbXBsYXRlczogdGhpcy5yZW1pbmRlclRlbXBsYXRlcyxcbiAgICB9O1xuICAgIHRoaXMuYmlsbGluZ1NlcnZpY2Uuc2F2ZVBheW1lbnRSZW1pbmRlcihwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5yZW1pbmRlclNhdmluZyA9IGZhbHNlO1xuICAgICAgICBpZiAoIXNpbGVudCkge1xuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0UHJpbWFyeVRvYXN0KGBQYXltZW50IHJlbWluZGVyIHNjaGVkdWxlIHNhdmVkIMK3ICR7dGhpcy5yZW1pbmRlckVuYWJsZWRDb3VudH0gb2YgNSBlbmFibGVkYCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucmVtaW5kZXJTYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycj8uZXJyb3I/Lm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBzYXZlIHJlbWluZGVycycpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHNhdmVQYXltZW50UmVtaW5kZXIoKSB7XG4gICAgdGhpcy5wZXJzaXN0UGF5bWVudFJlbWluZGVyKGZhbHNlKTtcbiAgfVxuXG4gIGxvYWRCaWxsaW5nR3JvdXBzKCkge1xuICAgIHRoaXMuc2VhcmNoRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmdyb3VwTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5ncm91cE5vRGF0YSA9IGZhbHNlO1xuXG4gICAgbGV0IGZpbHRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7XG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcbiAgICAgIGxpbWl0OiB0aGlzLnBhZ2VTaXplLFxuICAgICAgb2Zmc2V0OiB0aGlzLmN1cnJlbnRQYWdlLFxuICAgICAgc2VhcmNoVmFsdWU6IHRoaXMubGVuLFxuICAgICAgc29ydENvbHVtTmFtZTogdGhpcy5zb3J0Q29sdW1OYW1lLFxuICAgICAgc29ydEJ5OiB0aGlzLnNvcnRCeSxcbiAgICAgIGFubmV4dXJlRmlsdGVyOiB0aGlzLmFubmV4dXJlRmlsdGVyLFxuICAgICAgZXhwb3J0OiBmYWxzZVxuICAgIH07XG5cbiAgICB0aGlzLmJpbGxpbmdTZXJ2aWNlLmJyYW5kQmlsbGluZ0dyb3VwcyhmaWx0ZXJzKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChlKSA9PiB7XG4gICAgICAgIGlmIChlPy5kYXRhPy5jb3VudCkge1xuICAgICAgICAgIHRoaXMuZ3JvdXBMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ncm91cE5vRGF0YSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZ3JvdXBMaXN0ID0gZS5kYXRhPy5kYXRhO1xuICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IGUuZGF0YT8uY291bnQ7XG4gICAgICAgICAgdGhpcy5zdW1tYXJ5ID0gZS5kYXRhPy5zdW1tYXJ5IHx8IHt9O1xuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZ3JvdXBMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ncm91cE5vRGF0YSA9IHRydWU7XG4gICAgICAgICAgdGhpcy5zZWFyY2hEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgaWYgKHRoaXMubGVuPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5ncm91cExpc3QgPSBbXTtcbiAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSAwO1xuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5ncm91cExvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ncm91cE5vRGF0YSA9IHRydWU7XG4gICAgICAgIHRoaXMuZ3JvdXBMaXN0ID0gW107XG4gICAgICAgIHRoaXMudG90YWxJdGVtcyA9IDA7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYWRkQmlsbGluZ0dyb3VwKCkge1xuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihCaWxsaW5nR3JvdXBGb3JtQ29tcG9uZW50LCB7XG4gICAgICBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ2xnJywgc2Nyb2xsYWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5jbGllbnRJZCA9IHRoaXMuY2xpZW50SWQ7XG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuZWRpdE1vZGUgPSBmYWxzZTtcbiAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT09ICdzdWNjZXNzJykge1xuICAgICAgICB0aGlzLmxvYWRCaWxsaW5nR3JvdXBzKCk7XG4gICAgICB9XG4gICAgfSkuY2F0Y2goKCkgPT4ge30pO1xuICB9XG5cbiAgZWRpdEJpbGxpbmdHcm91cChncm91cDogYW55KSB7XG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEJpbGxpbmdHcm91cEZvcm1Db21wb25lbnQsIHtcbiAgICAgIGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbGcnLCBzY3JvbGxhYmxlOiB0cnVlLFxuICAgIH0pO1xuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmNsaWVudElkID0gdGhpcy5jbGllbnRJZDtcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5lZGl0TW9kZSA9IHRydWU7XG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuZ3JvdXBEYXRhID0gZ3JvdXA7XG4gICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgdGhpcy5sb2FkQmlsbGluZ0dyb3VwcygpO1xuICAgICAgfVxuICAgIH0pLmNhdGNoKCgpID0+IHt9KTtcbiAgfVxuXG4gIGRlbGV0ZUJpbGxpbmdHcm91cChncm91cDogYW55KSB7XG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKERlbGV0ZVdhcm5pbmdDb21wb25lbnQsIHtcbiAgICAgIGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnLCBzY3JvbGxhYmxlOiB0cnVlLFxuICAgIH0pO1xuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmdyb3VwTmFtZSA9IGdyb3VwPy5ncm91cE5hbWUgfHwgJyc7XG4gICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSAnWWVzJykge1xuICAgICAgICB0aGlzLmJpbGxpbmdTZXJ2aWNlLmRlbGV0ZUJpbGxpbmdHcm91cChncm91cC5faWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0UHJpbWFyeVRvYXN0KCdCaWxsaW5nIGdyb3VwIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgICAgICB0aGlzLmxvYWRCaWxsaW5nR3JvdXBzKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdGYWlsZWQgdG8gZGVsZXRlIGJpbGxpbmcgZ3JvdXAnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pLmNhdGNoKCgpID0+IHt9KTtcbiAgfVxuXG4gIGFwcGx5R3JvdXBGaWx0ZXJzKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQ/Lmxlbmd0aCkge1xuICAgICAgZXZlbnQuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LkRlc2NyaXB0aW9uID09PSAnQW5uZXh1cmUnKSB7XG4gICAgICAgICAgdGhpcy5hbm5leHVyZUZpbHRlciA9IGVsZW1lbnQuSXNzdWVzPy5pZCB8fCAnJztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYW5uZXh1cmVGaWx0ZXIgPSAnJztcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5sb2FkQmlsbGluZ0dyb3VwcygpO1xuICB9XG5cbiAgc2VhcmNoRmllbGQoKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5sb2FkQmlsbGluZ0dyb3VwcygpO1xuICB9XG5cbiAgc29ydERhdGEoY29sdW1uOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNvcnRDb2x1bU5hbWUgPSBjb2x1bW47XG4gICAgdGhpcy5zb3J0QnkgKj0gLTE7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5sb2FkQmlsbGluZ0dyb3VwcygpO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlKHBhZ2VPZmZzZXQ6IGFueSkge1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYXJzZUludChwYWdlT2Zmc2V0KTtcbiAgICB0aGlzLmxvYWRCaWxsaW5nR3JvdXBzKCk7XG4gIH1cblxuICBvblBhZ2VTaXplQ2hhbmdlKHBhZ2VTaXplOiBhbnkpIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLnBhZ2VTaXplID0gcGFyc2VJbnQocGFnZVNpemUpO1xuICAgIHRoaXMubG9hZEJpbGxpbmdHcm91cHMoKTtcbiAgfVxuXG4gIG9uRXhwb3J0KCkge1xuICAgIGxldCBmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICBzZWFyY2hWYWx1ZTogdGhpcy5sZW4sXG4gICAgICBzb3J0Q29sdW1OYW1lOiB0aGlzLnNvcnRDb2x1bU5hbWUsXG4gICAgICBzb3J0Qnk6IHRoaXMuc29ydEJ5LFxuICAgICAgZXhwb3J0OiB0cnVlXG4gICAgfTtcblxuICAgIHRoaXMuYmlsbGluZ1NlcnZpY2UuYnJhbmRCaWxsaW5nR3JvdXBzRXhwb3J0KGZpbHRlcnMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmJpbGxpbmdTZXJ2aWNlLnNhdmVBc0V4Y2VsRmlsZShyZXMsICdiaWxsaW5nLWdyb3VwcycpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnU29tZXRoaW5nIHdlbnQgV3JvbmcuLicpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYnVsa0Rvd25sb2FkKCkge1xuICAgIGlmICh0aGlzLmJ1bGtEb3dubG9hZGluZykgcmV0dXJuO1xuICAgIGlmICghdGhpcy5jbGllbnRJZCkge1xuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdTZWxlY3QgYSBicmFuZCBmaXJzdCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmJ1bGtEb3dubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5iaWxsaW5nU2VydmljZS5idWxrRG93bmxvYWRCaWxsaW5nR3JvdXBzKHRoaXMuY2xpZW50SWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuYmlsbGluZ1NlcnZpY2Uuc2F2ZUFzVGVtcGxhdGUocmVzLCBgYmlsbGluZy1ncm91cHMtJHt0aGlzLmNsaWVudElkfS0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zbGljZSgwLCAxMCl9YCk7XG4gICAgICAgIHRoaXMuYnVsa0Rvd25sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYnVsa0Rvd25sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnQnVsayBkb3dubG9hZCBmYWlsZWQnKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvbkJ1bGtVcGxvYWRGaWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGZpbGUgPSBldmVudD8udGFyZ2V0Py5maWxlcz8uWzBdO1xuICAgIGlmICghZmlsZSkgcmV0dXJuO1xuICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xuICAgIGlmICghdGhpcy5jbGllbnRJZCkge1xuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdTZWxlY3QgYSBicmFuZCBmaXJzdCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmJ1bGtVcGxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuYmlsbGluZ1NlcnZpY2UuYnVsa1VwZGF0ZUJpbGxpbmdHcm91cHMoZmlsZSwgdGhpcy5jbGllbnRJZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5idWxrVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWQgPSByZXM/LmRhdGE/LnN1bW1hcnk/LnVwZGF0ZWQgPz8gMDtcbiAgICAgICAgdGhpcy50b2FzdC5nZXRQcmltYXJ5VG9hc3QoYFVwZGF0ZWQgJHt1cGRhdGVkfSBiaWxsaW5nIGdyb3VwKHMpYCk7XG4gICAgICAgIHRoaXMubG9hZEJpbGxpbmdHcm91cHMoKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuYnVsa1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBjb25zdCBlcnJQYXlsb2FkID0gZXJyPy5lcnJvcj8uZGF0YSB8fCBlcnI/LmVycm9yO1xuICAgICAgICBpZiAoZXJyPy5zdGF0dXMgPT09IDQyMiAmJiBlcnJQYXlsb2FkPy5lcnJvcnMpIHtcbiAgICAgICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQnVsa1VwbG9hZEVycm9yQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ2xnJywgc2Nyb2xsYWJsZTogdHJ1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5lcnJvcnMgPSBlcnJQYXlsb2FkLmVycm9ycztcbiAgICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS50b3RhbCA9IGVyclBheWxvYWQuc3VtbWFyeT8udG90YWwgPz8gMDtcbiAgICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5mYWlsZWQgPSBlcnJQYXlsb2FkLnN1bW1hcnk/LmZhaWxlZCA/PyAwO1xuICAgICAgICB9IGVsc2UgaWYgKGVycj8uc3RhdHVzID09PSA0MTMpIHtcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ0ZpbGUgdG9vIGxhcmdlIChtYXggNU1CKScpO1xuICAgICAgICB9IGVsc2UgaWYgKGVycj8uc3RhdHVzID09PSA0MDApIHtcbiAgICAgICAgICBjb25zdCBtc2cgPSBlcnI/LmVycm9yPy5tZXNzYWdlIHx8IGVyclBheWxvYWQ/Lm1lc3NhZ2UgfHwgJ0ludmFsaWQgZmlsZSBmb3JtYXQg4oCUIHVzZSBYTFNYJztcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QobXNnKTtcbiAgICAgICAgfSBlbHNlIGlmIChlcnI/LnN0YXR1cyA9PT0gMjA3KSB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZCA9IGVyclBheWxvYWQ/LnN1bW1hcnk/LnVwZGF0ZWQgPz8gMDtcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoYEJ1bGsgdXBsb2FkIHBhcnRpYWxseSBhcHBsaWVkOiAke3VwZGF0ZWR9IHVwZGF0ZWQsIHRoZW4gYWJvcnRlZC4gUGxlYXNlIHJlLXVwbG9hZC5gKTtcbiAgICAgICAgICB0aGlzLmxvYWRCaWxsaW5nR3JvdXBzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdCdWxrIHVwbG9hZCBmYWlsZWQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufSIsIjxkaXYgY2xhc3M9XCJpbnZvaWNlcy1zZWN0aW9uXCI+XG4gICAgPCEtLSBIZWFkZXIgUm93IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTNcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi42NjY2NyAxMEgxMy4zMzMzTTYuNjY2NjcgNi42NjY2N0gxMy4zMzMzTTYuNjY2NjcgMTMuMzMzM0gxME01IDE3LjVIMTVDMTUuOTIwNSAxNy41IDE2LjY2NjcgMTYuNzUzOCAxNi42NjY3IDE1LjgzMzNWNC4xNjY2N0MxNi42NjY3IDMuMjQ2MTkgMTUuOTIwNSAyLjUgMTUgMi41SDVDNC4wNzk1MyAyLjUgMy4zMzMzMyAzLjI0NjE5IDMuMzMzMzMgNC4xNjY2N1YxNS44MzMzQzMuMzMzMzMgMTYuNzUzOCA0LjA3OTUzIDE3LjUgNSAxNy41WlwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmlsbGluZ2hlYWRlclwiPkJpbGxpbmcgR3JvdXBzPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmctbGlnaHQgdGV4dC1kYXJrIG1zLTFcIj57eyBzdW1tYXJ5Py50b3RhbEdyb3VwcyB8fCAwIH19IHRvdGFsPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tdXRlZCBzbWFsbCBtdC0xXCI+TWFuYWdlIEdTVCBlbnRpdGllcyBmb3IgY29uc29saWRhdGVkIGludm9pY2luZy4gRWFjaCBncm91cCBnZXRzIGl0cyBvd24gaW52b2ljZS48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXY+PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFN1bW1hcnkgQ2FyZHMgLS0+XG4gICAgPGRpdiBjbGFzcz1cInJvdyBnLTMgbWItNFwiICpuZ0lmPVwic3VtbWFyeT8udG90YWxHcm91cHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktY2FyZC1zbVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LWxhYmVsLXNtXCI+VG90YWwgR3JvdXBzPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktdmFsdWUtc21cIj57eyBzdW1tYXJ5Py50b3RhbEdyb3VwcyB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1jYXJkLXNtXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktbGFiZWwtc21cIj5BY3RpdmU8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS12YWx1ZS1zbSB0ZXh0LXByaW1hcnlcIj57eyBzdW1tYXJ5Py5hY3RpdmUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktY2FyZC1zbVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LWxhYmVsLXNtXCI+SW5hY3RpdmU8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS12YWx1ZS1zbVwiPnt7IHN1bW1hcnk/LmluYWN0aXZlIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LWNhcmQtc21cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1sYWJlbC1zbVwiPlRvdGFsIFJlY2VpdmVyczwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LXZhbHVlLXNtXCI+e3sgc3VtbWFyeT8udG90YWxSZWNlaXZlcnMgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gU2VhcmNoICsgRmlsdGVyICsgRXhwb3J0ICsgQWRkIFJvdyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgcGF5bWVudGhpc3RvcnkgYm9yZGVyLTAgcHgtMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyIHctMTAwXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gaW52b2ljZXNlYXJjaCBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG10LTYgbXMtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuNVwiIHg9XCIxNy4wMzY1XCIgeT1cIjE1LjEyMjNcIiB3aWR0aD1cIjguMTU1NDZcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwicm90YXRlKDQ1IDE3LjAzNjUgMTUuMTIyMylcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9yZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEgMTlDNi41NTU1NiAxOSAzIDE1LjQ0NDQgMyAxMUMzIDYuNTU1NTYgNi41NTU1NiAzIDExIDNDMTUuNDQ0NCAzIDE5IDYuNTU1NTYgMTkgMTFDMTkgMTUuNDQ0NCAxNS40NDQ0IDE5IDExIDE5Wk0xMSA1QzcuNTMzMzMgNSA1IDcuNTMzMzMgNSAxMUM1IDE0LjQ2NjcgNy41MzMzMyAxNyAxMSAxN0MxNC40NjY3IDE3IDE3IDE0LjQ2NjcgMTcgMTFDMTcgNy41MzMzMyAxNC40NjY3IDUgMTEgNVpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwibGVuXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBwcy0xNCBpbnZvaWNlc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoLi4uXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgKGNoYW5nZSk9XCJzZWFyY2hGaWVsZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWFyY2hEaXNhYmxlZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItZmlsdGVycyBbZGF0YU9iamVjdF09XCJncm91cEZpbHRlck9iamVjdFwiIChhcHBsaWVkRmlsdGVycyk9XCJhcHBseUdyb3VwRmlsdGVycygkZXZlbnQpXCI+PC9saWItZmlsdGVycz5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImJ1bGtEb3dubG9hZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuIGFsaWduLWl0ZW1zLWVuZCB0ZXh0LW5vd3JhcCBpbnZoZWFkZXIgbWUtMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnVsa0Rvd25sb2FkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNNS44MzMzMyA4LjMzMzMzTDEwIDEyLjVNMTAgMTIuNUwxNC4xNjY3IDguMzMzMzNNMTAgMTIuNVYyLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiICpuZ0lmPVwiIWJ1bGtEb3dubG9hZGluZ1wiPkJ1bGsgRG93bmxvYWQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTJcIiAqbmdJZj1cImJ1bGtEb3dubG9hZGluZ1wiPkRvd25sb2FkaW5nLi4uPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImJ1bGtVcGxvYWRJbnB1dC5jbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuIGFsaWduLWl0ZW1zLWVuZCB0ZXh0LW5vd3JhcCBpbnZoZWFkZXIgbWUtMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnVsa1VwbG9hZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTE0LjE2NjcgNi42NjY2N0wxMCAyLjVNMTAgMi41TDUuODMzMzMgNi42NjY2N00xMCAyLjVWMTIuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yXCIgKm5nSWY9XCIhYnVsa1VwbG9hZGluZ1wiPkJ1bGsgVXBsb2FkPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yXCIgKm5nSWY9XCJidWxrVXBsb2FkaW5nXCI+VXBsb2FkaW5nLi4uPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0ICNidWxrVXBsb2FkSW5wdXQgdHlwZT1cImZpbGVcIiBhY2NlcHQ9XCIueGxzeCwueGxzXCIgaGlkZGVuIChjaGFuZ2UpPVwib25CdWxrVXBsb2FkRmlsZVNlbGVjdGVkKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uRXhwb3J0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tb3V0bGluZSBidG4gYWxpZ24taXRlbXMtZW5kIHRleHQtbm93cmFwIGludmhlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWdyb3VwTGlzdC5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU0xNC4xNjY3IDYuNjY2NjdMMTAgMi41TTEwIDIuNUw1LjgzMzMzIDYuNjY2NjdNMTAgMi41VjEyLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiPkV4cG9ydDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHRleHQtbm93cmFwIG1zLTNcIiAoY2xpY2spPVwiYWRkQmlsbGluZ0dyb3VwKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICsgQWRkIEJpbGxpbmcgR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIExvYWRpbmcgU2hpbW1lciAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBMb2FkaW5nXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBObyBEYXRhIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cE5vRGF0YVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyB3LTI1XCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhLnN2Z1wiIGFsdD1cIlwiPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBHcm91cHMgTGlzdCAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiIWdyb3VwTG9hZGluZyAmJiAhZ3JvdXBOb0RhdGFcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgZ3JvdXBMaXN0XCIgY2xhc3M9XCJncm91cC1jYXJkIG1iLTNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi42NjY2NyAxMEgxMy4zMzMzTTYuNjY2NjcgNi42NjY2N0gxMy4zMzMzTTYuNjY2NjcgMTMuMzMzM0gxME01IDE3LjVIMTVDMTUuOTIwNSAxNy41IDE2LjY2NjcgMTYuNzUzOCAxNi42NjY3IDE1LjgzMzNWNC4xNjY2N0MxNi42NjY3IDMuMjQ2MTkgMTUuOTIwNSAyLjUgMTUgMi41SDVDNC4wNzk1MyAyLjUgMy4zMzMzMyAzLjI0NjE5IDMuMzMzMzMgNC4xNjY2N1YxNS44MzMzQzMuMzMzMzMgMTYuNzUzOCA0LjA3OTUzIDE3LjUgNSAxNy41WlwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdyb3VwLW5hbWVcIj57eyBncm91cD8uZ3JvdXBOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2Vzc1wiPkFjdGl2ZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbXV0ZWQgc21hbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImdyb3VwPy5nc3RcIj5HU1Q6IHt7IGdyb3VwPy5nc3QgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJncm91cD8uZ3N0ICYmIGdyb3VwPy5yZWdpc3RlcmVkQ29tcGFueU5hbWVcIiBjbGFzcz1cIm14LTJcIj4mbWlkZG90Ozwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImdyb3VwPy5yZWdpc3RlcmVkQ29tcGFueU5hbWVcIj57eyBncm91cD8ucmVnaXN0ZXJlZENvbXBhbnlOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGJ0bi1pY29uXCIgKGNsaWNrKT1cImVkaXRCaWxsaW5nR3JvdXAoZ3JvdXApXCIgdGl0bGU9XCJFZGl0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExLjMzMzMgMi4wMDAwNEMxMS41MDgzIDEuODI0OTQgMTEuNzE2MyAxLjY4NjA1IDExLjk0NTEgMS41OTEyOUMxMi4xNzM5IDEuNDk2NTMgMTIuNDE5MSAxLjQ0Nzc1IDEyLjY2NjcgMS40NDc3NUMxMi45MTQzIDEuNDQ3NzUgMTMuMTU5NCAxLjQ5NjUzIDEzLjM4ODIgMS41OTEyOUMxMy42MTcgMS42ODYwNSAxMy44MjUgMS44MjQ5NCAxNCAyLjAwMDA0QzE0LjE3NTEgMi4xNzUxMyAxNC4zMTQgMi4zODMxOCAxNC40MDg4IDIuNjExOTdDMTQuNTAzNSAyLjg0MDc2IDE0LjU1MjMgMy4wODU4NiAxNC41NTIzIDMuMzMzMzdDMTQuNTUyMyAzLjU4MDg5IDE0LjUwMzUgMy44MjU5OSAxNC40MDg4IDQuMDU0NzhDMTQuMzE0IDQuMjgzNTcgMTQuMTc1MSA0LjQ5MTYyIDE0IDQuNjY2NzFMNSAxMy42NjY3TDEuMzMzMzMgMTQuNjY2N0wyLjMzMzMzIDExTDExLjMzMzMgMi4wMDAwNFpcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFncm91cD8uaXNQcmltYXJ5XCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBidG4taWNvblwiIChjbGljayk9XCJkZWxldGVCaWxsaW5nR3JvdXAoZ3JvdXApXCIgdGl0bGU9XCJEZWxldGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMiA0SDMuMzMzMzNIMTRNMTIuNjY2NyA0VjEzLjMzMzNDMTIuNjY2NyAxMy42ODcgMTIuNTI2MiAxNC4wMjYxIDEyLjI3NjEgMTQuMjc2MUMxMi4wMjYxIDE0LjUyNjIgMTEuNjg3IDE0LjY2NjcgMTEuMzMzMyAxNC42NjY3SDQuNjY2NjdDNC4zMTMwNCAxNC42NjY3IDMuOTczOTEgMTQuNTI2MiAzLjcyMzg2IDE0LjI3NjFDMy40NzM4MSAxNC4wMjYxIDMuMzMzMzMgMTMuNjg3IDMuMzMzMzMgMTMuMzMzM1Y0TTUuMzMzMzMgNFYyLjY2NjY3QzUuMzMzMzMgMi4zMTMwNCA1LjQ3MzgxIDEuOTczOTEgNS43MjM4NiAxLjcyMzg2QzUuOTczOTEgMS40NzM4MSA2LjMxMzA0IDEuMzMzMzMgNi42NjY2NyAxLjMzMzMzSDkuMzMzMzNDOS42ODY5NiAxLjMzMzMzIDEwLjAyNjEgMS40NzM4MSAxMC4yNzYxIDEuNzIzODZDMTAuNTI2MiAxLjk3MzkxIDEwLjY2NjcgMi4zMTMwNCAxMC42NjY3IDIuNjY2NjdWNFwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMyBtdC0yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlsLWxhYmVsXCI+Q29udGFjdCBFbWFpbDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlsLXZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiBjbGFzcz1cIm1lLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEuMTY2NjcgNC4wODMyNUw2LjE0NjE3IDcuNDA2MTdDNi41MDUzMyA3LjY0NTU4IDYuNjg1IDcuNzY1MjUgNi44NzkzMyA3LjgxMDQyQzcuMDUxMzMgNy44NTA0MiA3LjIzMDMzIDcuODUwNDIgNy40MDIzMyA3LjgxMDQyQzcuNTk2NjcgNy43NjUyNSA3Ljc3NjMzIDcuNjQ1NTggOC4xMzU1IDcuNDA2MTdMMTMuMTE1IDQuMDgzMjVNMy45NjY2NyAxMS42NjY2SDEwLjMxNDdDMTEuMTk0OCAxMS42NjY2IDExLjYzNDggMTEuNjY2NiAxMS45NzE3IDExLjQ5NTFDMTIuMjY4NyAxMS4zNDM5IDEyLjUxMDUgMTEuMTAyMSAxMi42NjE3IDEwLjgwNTFDMTIuODMzMyAxMC40NjgyIDEyLjgzMzMgMTAuMDI4MiAxMi44MzMzIDkuMTQ4MDhWNS4xMzUwOEMxMi44MzMzIDQuMjU0OTkgMTIuODMzMyAzLjgxNDk5IDEyLjY2MTcgMy40NzgwOEMxMi41MTA1IDMuMTgxMDggMTIuMjY4NyAyLjkzOTMzIDExLjk3MTcgMi43ODgwOEMxMS42MzQ4IDIuNjE2NTggMTEuMTk0OCAyLjYxNjU4IDEwLjMxNDcgMi42MTY1OEgzLjk2NjY3QzMuMDg2NTggMi42MTY1OCAyLjY0NjU4IDIuNjE2NTggMi4zMDk2NyAyLjc4ODA4QzIuMDEyNjcgMi45MzkzMyAxLjc3MDkyIDMuMTgxMDggMS42MTk2NyAzLjQ3ODA4QzEuNDQ4MTcgMy44MTQ5OSAxLjQ0ODE3IDQuMjU0OTkgMS40NDgxNyA1LjEzNTA4VjkuMTQ4MDhDMS40NDgxNyAxMC4wMjgyIDEuNDQ4MTcgMTAuNDY4MiAxLjYxOTY3IDEwLjgwNTFDMS43NzA5MiAxMS4xMDIxIDIuMDEyNjcgMTEuMzQzOSAyLjMwOTY3IDExLjQ5NTFDMi42NDY1OCAxMS42NjY2IDMuMDg2NTggMTEuNjY2NiAzLjk2NjY3IDExLjY2NjZaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJncm91cD8uZ2VuZXJhdGVJbnZvaWNlVG8/Lmxlbmd0aFwiPnt7IGdyb3VwPy5nZW5lcmF0ZUludm9pY2VUb1swXSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWdyb3VwPy5nZW5lcmF0ZUludm9pY2VUbz8ubGVuZ3RoXCIgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+4oCUPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kZXRhaWwtbGFiZWxcIj5TdG9yZXM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWRldGFpbC12YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgY2xhc3M9XCJtZS0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xLjE2NjY3IDcuMDAwMDhMNi41NjQ4MyAxLjYwMTkyQzYuNzg2ODMgMS4zNzk5MiA2Ljg5NzgzIDEuMjY4OTIgNy4wMjU4MyAxLjIyMTkyQzcuMTM4ODMgMS4xODAyNSA3LjI2MjgzIDEuMTgwMjUgNy4zNzU4MyAxLjIyMTkyQzcuNTAzODMgMS4yNjg5MiA3LjYxNDgzIDEuMzc5OTIgNy44MzY4MyAxLjYwMTkyTDEzLjIzNSA3LjAwMDA4TTIuOTE2NjcgNS41NDE3NVYxMS4wMjUxQzIuOTE2NjcgMTEuNDY1MSAyLjkxNjY3IDExLjY4NTEgMy4wMDI0MiAxMS44NTM2QzMuMDc4MDggMTIuMDAyMSAzLjE5ODI1IDEyLjEyMjMgMy4zNDY3NSAxMi4xOTc5QzMuNTE1MzMgMTIuMjgzNyAzLjczNTMzIDEyLjI4MzcgNC4xNzUzMyAxMi4yODM3SDUuODMzMzNWOS4zMzM0MkM1LjgzMzMzIDguODc1MDggNS44MzMzMyA4LjY0NTkyIDUuOTIyMDggOC40Njg5MkM2LjAwMDMzIDguMzEzMDggNi4xMjYxNyA4LjE4NzI1IDYuMjgyIDguMTA5MDhDNi40NTkgOC4wMjAyNSA2LjY4ODE3IDguMDIwMjUgNy4xNDY2NyA4LjAyMDI1SDcuMjU0MTdDNy43MTI2NyA4LjAyMDI1IDcuOTQxODMgOC4wMjAyNSA4LjExODgzIDguMTA5MDhDOC4yNzQ2NyA4LjE4NzI1IDguNDAwNjcgOC4zMTMwOCA4LjQ3ODgzIDguNDY4OTJDOC41Njc1IDguNjQ1OTIgOC41Njc1IDguODc1MDggOC41Njc1IDkuMzMzNDJWMTIuMjgzN0gxMC4yMjZDMTAuNjY2IDEyLjI4MzcgMTAuODg2IDEyLjI4MzcgMTEuMDU0NSAxMi4xOTc5QzExLjIwMyAxMi4xMjIzIDExLjMyMzIgMTIuMDAyMSAxMS4zOTg4IDExLjg1MzZDMTEuNDg0NyAxMS42ODUxIDExLjQ4NDcgMTEuNDY1MSAxMS40ODQ3IDExLjAyNTFWNS41NDE3NVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdyb3VwPy5zdG9yZUNvdW50IHx8IDAgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlsLWxhYmVsXCI+QW5uZXh1cmUgQXR0YWNobWVudDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlsLXZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlXCIgW25nQ2xhc3NdPVwiZ3JvdXA/LmF0dGFjaEFubmV4dXJlID8gJ2JhZGdlLWxpZ2h0LXN1Y2Nlc3MnIDogJ2JhZGdlLWxpZ2h0LXNlY29uZGFyeSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBncm91cD8uYXR0YWNoQW5uZXh1cmUgPyAnQXR0YWNoZWQnIDogJ05vdCBhdHRhY2hlZCcgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlsLWxhYmVsXCI+SW52b2ljZSBSZWNlaXZlcnM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWRldGFpbC12YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgY2xhc3M9XCJtZS0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05LjMzMzMzIDEyLjI1VjExLjA4MzNDOS4zMzMzMyAxMC40NjQ1IDkuMDg3MzUgOS44NzEgOC42NDk3NiA5LjQzMzQyQzguMjEyMTggOC45OTU4MyA3LjYxODY4IDguNzUgNyA4Ljc1SDIuOTE2NjdDMi4yOTc5OSA4Ljc1IDEuNzA0NDkgOC45OTU4MyAxLjI2NjkgOS40MzM0MkMwLjgyOTMxNiA5Ljg3MSAwLjU4MzMzMyAxMC40NjQ1IDAuNTgzMzMzIDExLjA4MzNWMTIuMjVNMTIuODMzMyAxMi4yNVYxMS4wODMzQzEyLjgzMyAxMC41NzM1IDEyLjY2ODggMTAuMDc3OCAxMi4zNjU0IDkuNjY4NThDMTIuMDYyMSA5LjI1OTMzIDExLjYzNiA4Ljk1ODU4IDExLjE0NTggOC44MTA4M005LjA0MTY3IDEuODEwODNDOS41MzMwOCAxLjk1NzkyIDkuOTYwNTggMi4yNTg1OCAxMC4yNjUgMi42NjgyNUMxMC41Njk0IDMuMDc3OTIgMTAuNzM0IDMuNTc0NjcgMTAuNzM0IDQuMDg1NDJDMTAuNzM0IDQuNTk2MTcgMTAuNTY5NCA1LjA5MjkyIDEwLjI2NSA1LjUwMjU4QzkuOTYwNTggNS45MTIyNSA5LjUzMzA4IDYuMjEyOTIgOS4wNDE2NyA2LjM2TTcuMjkxNjcgNC4wODMzM0M3LjI5MTY3IDUuMzcyNDIgNi4yNDc0MiA2LjQxNjY3IDQuOTU4MzMgNi40MTY2N0MzLjY2OTI1IDYuNDE2NjcgMi42MjUgNS4zNzI0MiAyLjYyNSA0LjA4MzMzQzIuNjI1IDIuNzk0MjUgMy42NjkyNSAxLjc1IDQuOTU4MzMgMS43NUM2LjI0NzQyIDEuNzUgNy4yOTE2NyAyLjc5NDI1IDcuMjkxNjcgNC4wODMzM1pcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBncm91cD8ucmVjZWl2ZXJDb3VudCB8fCAwIH19IHJlY2lwaWVudHNcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGxpYi1wYWdpbmF0aW9uIGNsYXNzPVwidGV4dC1zdGFydFwiIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlXCIgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcbiAgICAgICAgICAgIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIiBbcGFnaW5hdGlvblNpemVzXT1cInBhZ2luYXRpb25TaXplc1wiIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgICAgICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiIChwYWdlU2l6ZUNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCRldmVudClcIj48L2xpYi1wYWdpbmF0aW9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gPT09PT09PT09PT09PT09PT09PT09IFBheW1lbnQgUmVtaW5kZXJzID09PT09PT09PT09PT09PT09PT09PSAtLT5cbjxkaXYgY2xhc3M9XCJwci1wYW5lbCBtdC00XCI+XG4gICAgPGRpdiBjbGFzcz1cInByLWhlYWRcIj5cbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHN0cm9rZT1cIiMxNDkzZjVcIiBzdHJva2Utd2lkdGg9XCIyXCI+PHBhdGggZD1cIk0xOCA4YTYgNiAwIDAgMC0xMiAwYzAgNy0zIDktMyA5aDE4cy0zLTItMy05TTEzLjcgMjFhMiAyIDAgMCAxLTMuNCAwXCIvPjwvc3ZnPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByLXRpdGxlXCI+UGF5bWVudCBSZW1pbmRlcnM8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci1zdWJcIj5UaGVzZSByZWNpcGllbnRzIHJlY2VpdmUgcGF5bWVudC1yZW1pbmRlciBlbWFpbHMgZm9yIGFsbCBiaWxsaW5nIGdyb3VwcyBpbiB0aGlzIGJyYW5kLjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gUmVjaXBpZW50cyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwicHItZmllbGQgbXQtM1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJwci1sYWJlbFwiPlJlbWluZGVyIFJlY2lwaWVudHM8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHItY2hpcHNcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHItY2hpcFwiICpuZ0Zvcj1cImxldCBlIG9mIHJlbWluZGVyRW1haWxzXCI+XG4gICAgICAgICAgICAgICAge3sgZSB9fTxzcGFuIGNsYXNzPVwicHItY2hpcC14XCIgKGNsaWNrKT1cInJlbW92ZVJlbWluZGVyRW1haWwoZSlcIj7Dlzwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInByLWNoaXAtaW5wdXRcIiBbKG5nTW9kZWwpXT1cInJlbWluZGVyRW1haWxJbnB1dFwiIHBsYWNlaG9sZGVyPVwiQWRkIGVtYWlsICsgRW50ZXJcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBhZGRSZW1pbmRlckVtYWlsKClcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cImFkZFJlbWluZGVyRW1haWwoKVwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByLWhpbnRcIj5BcHBsaWVkIHRvIGV2ZXJ5IGJpbGxpbmcgZ3JvdXAgZm9yIHRoaXMgYnJhbmQuPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFNjaGVkdWxlIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtdC00XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJwci1zY2hlZHVsZS1sYWJlbFwiPlJlbWluZGVyIFNjaGVkdWxlPC9sYWJlbD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHItY291bnRcIj57eyByZW1pbmRlckVuYWJsZWRDb3VudCB9fSBvZiA1IGVuYWJsZWQ8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHItaGludCBtYi0zXCI+UHJlZGVmaW5lZCByZW1pbmRlciBmbG93cy4gRW5hYmxlIHRoZSB0ZW1wbGF0ZXMgeW91IHdhbnQg4oCUIHRpbWluZ3MgYXJlIGZpeGVkIGV4Y2VwdCB3aGVyZSBub3RlZC48L2Rpdj5cblxuICAgICAgICA8IS0tIER1ZSBEYXRlIFJlbWluZGVyIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHItdG1wbFwiIFtjbGFzcy5vbl09XCJyZW1pbmRlclRlbXBsYXRlcy5wcmVEdWUuZW5hYmxlZCB8fCByZW1pbmRlclRlbXBsYXRlcy5vbkR1ZS5lbmFibGVkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItdG1wbC1oZWFkXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwci1kb3QgYW1iZXJcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci10bXBsLW5hbWVcIj5EdWUgRGF0ZSBSZW1pbmRlcjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItaGludFwiPlJlbWluZCB0aGUgY3VzdG9tZXIgYXJvdW5kIHRoZSBpbnZvaWNlIGR1ZSBkYXRlLiBFbmFibGUgZWFjaCBzdGFnZSBpbmRlcGVuZGVudGx5LjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHItdGFnIGFtYmVyXCI+QXJvdW5kIGR1ZTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByLXRtcGwtYm9keVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByLXJvdy10ZXh0XCI+PGI+QmVmb3JlIGR1ZTwvYj4g4oCUIHNlbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgbWluPVwiMVwiIG1heD1cIjM2NVwiIGNsYXNzPVwicHItZGF5LWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJyZW1pbmRlclRlbXBsYXRlcy5wcmVEdWUuZGF5c0JlZm9yZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25QcmVEdWVEYXlzQ2hhbmdlKCRldmVudClcIj4gZGF5KHMpIGJlZm9yZSB0aGUgZHVlIGRhdGVcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci10b2dnbGVcIiBbY2xhc3Mub25dPVwicmVtaW5kZXJUZW1wbGF0ZXMucHJlRHVlLmVuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVJlbWluZGVyVGVtcGxhdGUoJ3ByZUR1ZScpXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItcm93LXRleHRcIj48Yj5PbiBkdWUgZGF0ZTwvYj4g4oCUIHNlbnQgb24gdGhlIGludm9pY2UgZHVlIGRhdGU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByLXRvZ2dsZVwiIFtjbGFzcy5vbl09XCJyZW1pbmRlclRlbXBsYXRlcy5vbkR1ZS5lbmFibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSZW1pbmRlclRlbXBsYXRlKCdvbkR1ZScpXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBQYXltZW50IE92ZXJkdWUgUmVtaW5kZXIgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwci10bXBsIG10LTNcIlxuICAgICAgICAgICAgW2NsYXNzLm9uXT1cInJlbWluZGVyVGVtcGxhdGVzLm9uSG9sZC5lbmFibGVkIHx8IHJlbWluZGVyVGVtcGxhdGVzLnN1c3BlbmQuZW5hYmxlZCB8fCByZW1pbmRlclRlbXBsYXRlcy5kZWFjdGl2YXRlZC5lbmFibGVkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItdG1wbC1oZWFkXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwci1kb3QgcmVkXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItdG1wbC1uYW1lXCI+UGF5bWVudCBPdmVyZHVlIFJlbWluZGVyPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci1oaW50XCI+U2VudCBhZnRlciB0aGUgaW52b2ljZSBjcm9zc2VzIHRoZSBkdWUgZGF0ZS4gRW5hYmxlIGVhY2ggc3RhZ2UgaW5kZXBlbmRlbnRseS48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByLXRhZyByZWRcIj5BZnRlciBkdWU8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci10bXBsLWJvZHlcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci1yb3ctdGV4dFwiPjxiPk9uIEhvbGQ8L2I+IOKAlCBhY2NvdW50IG9uIGhvbGQgaW1tZWRpYXRlbHkgYWZ0ZXIgZHVlIGRhdGU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByLXRvZ2dsZVwiIFtjbGFzcy5vbl09XCJyZW1pbmRlclRlbXBsYXRlcy5vbkhvbGQuZW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUmVtaW5kZXJUZW1wbGF0ZSgnb25Ib2xkJylcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci1yb3ctdGV4dFwiPjxiPlN1c3BlbmRlZDwvYj4g4oCUIGFjY291bnQgc3VzcGVuZGVkIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgPGI+MzAgZGF5czwvYj4gdW5wYWlkPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci10b2dnbGVcIiBbY2xhc3Mub25dPVwicmVtaW5kZXJUZW1wbGF0ZXMuc3VzcGVuZC5lbmFibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSZW1pbmRlclRlbXBsYXRlKCdzdXNwZW5kJylcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwci1yb3ctdGV4dFwiPjxiPkRlYWN0aXZhdGVkPC9iPiDigJQgYWNjb3VudCBkZWFjdGl2YXRlZCBhdXRvbWF0aWNhbGx5IGFmdGVyIDxiPjYwIGRheXM8L2I+IHVucGFpZDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItdG9nZ2xlXCIgW2NsYXNzLm9uXT1cInJlbWluZGVyVGVtcGxhdGVzLmRlYWN0aXZhdGVkLmVuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVJlbWluZGVyVGVtcGxhdGUoJ2RlYWN0aXZhdGVkJylcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC00XCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgW2Rpc2FibGVkXT1cInJlbWluZGVyU2F2aW5nXCIgKGNsaWNrKT1cInNhdmVQYXltZW50UmVtaW5kZXIoKVwiPlxuICAgICAgICAgICAge3sgcmVtaW5kZXJTYXZpbmcgPyAnU2F2aW5n4oCmJyA6ICdTYXZlJyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|