@colijnit/transaction 256.1.6 → 256.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/colijnit-transaction.umd.js +154 -84
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/lib/component/add-product/add-product.component.js +5 -5
- package/esm2015/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.js +9 -2
- package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-direct-sell.component.js +87 -68
- package/esm2015/lib/component/transaction/transaction.component.js +6 -2
- package/esm2015/lib/component/transaction-create-wizard/transaction-create-wizard.component.js +14 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-deposit-amount.component.js +16 -11
- package/esm2015/lib/component/transaction-internal/transaction-internal.component.js +6 -1
- package/esm2015/lib/component/transaction-line/transaction-planning-line/transaction-planning-line.component.js +4 -4
- package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-button.component.js +2 -2
- package/esm2015/lib/component/transaction-search/transaction-search.component.js +8 -1
- package/esm2015/lib/service/transaction-connector-adapter.service.js +5 -5
- package/esm2015/lib/service/transaction-connector.service.js +5 -5
- package/esm2015/lib/service/transaction.service.js +11 -11
- package/esm2015/lib/transaction-version.js +3 -3
- package/fesm2015/colijnit-transaction.js +164 -108
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.d.ts +5 -1
- package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-direct-sell.component.d.ts +8 -4
- package/lib/component/transaction/transaction.component.d.ts +5 -1
- package/lib/component/transaction-create-wizard/transaction-create-wizard.component.d.ts +4 -1
- package/lib/component/transaction-internal/transaction-internal.component.d.ts +4 -0
- package/lib/component/transaction-search/transaction-search.component.d.ts +2 -0
- package/lib/service/transaction-connector-adapter.service.d.ts +2 -2
- package/lib/service/transaction-connector.service.d.ts +2 -2
- package/lib/service/transaction.service.d.ts +5 -5
- package/package.json +1 -1
- package/colijnit-transaction-256.1.4.tgz +0 -0
- package/colijnit-transaction-256.1.5.tgz +0 -0
|
@@ -3,6 +3,7 @@ import { Component, EventEmitter, Input, Output, ViewChildren, ViewEncapsulation
|
|
|
3
3
|
import { Icon } from "../../../../enum/icon.enum";
|
|
4
4
|
import { IconCacheService } from "../../../../service/icon-cache.service";
|
|
5
5
|
import { TransactionRelationService } from "../../../../service/transaction-relation.service";
|
|
6
|
+
import { SupplierArticleStockForecast } from "@colijnit/transactionapi/build/model/supplier-article-stock-forecast";
|
|
6
7
|
import { TransactionService } from "../../../../service/transaction.service";
|
|
7
8
|
export class DialogDirectSellComponent {
|
|
8
9
|
constructor(iconCacheService, transactionService, _relationService) {
|
|
@@ -12,40 +13,9 @@ export class DialogDirectSellComponent {
|
|
|
12
13
|
this.showDirectSellModal = new EventEmitter();
|
|
13
14
|
this.icons = Icon;
|
|
14
15
|
this.directSellSuppliers = [];
|
|
15
|
-
this.
|
|
16
|
-
this.
|
|
17
|
-
|
|
18
|
-
availableStock: 10,
|
|
19
|
-
supplierStockForecasts: [
|
|
20
|
-
{
|
|
21
|
-
purchaseOrderNumber: 1,
|
|
22
|
-
amount: 11,
|
|
23
|
-
amountReserved: 7,
|
|
24
|
-
amountAvailable: 4,
|
|
25
|
-
deliveryDate: new Date(),
|
|
26
|
-
confirmedDeliveryDate: new Date(),
|
|
27
|
-
arrivalDate: new Date()
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
purchaseOrderNumber: 2,
|
|
31
|
-
amount: 14,
|
|
32
|
-
amountReserved: 7,
|
|
33
|
-
amountAvailable: 7,
|
|
34
|
-
deliveryDate: new Date(),
|
|
35
|
-
confirmedDeliveryDate: new Date(),
|
|
36
|
-
arrivalDate: new Date()
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
purchaseOrderNumber: 3,
|
|
40
|
-
amount: 5,
|
|
41
|
-
amountReserved: 1,
|
|
42
|
-
amountAvailable: 4,
|
|
43
|
-
deliveryDate: new Date(),
|
|
44
|
-
confirmedDeliveryDate: new Date(),
|
|
45
|
-
arrivalDate: new Date()
|
|
46
|
-
}
|
|
47
|
-
]
|
|
48
|
-
};
|
|
16
|
+
this.availableStockCollection = new SupplierArticleStockForecast();
|
|
17
|
+
this.formValid = false;
|
|
18
|
+
this.fromStock = false;
|
|
49
19
|
}
|
|
50
20
|
ngOnInit() {
|
|
51
21
|
this._getDirectSellSuppliers();
|
|
@@ -53,39 +23,82 @@ export class DialogDirectSellComponent {
|
|
|
53
23
|
hideModal() {
|
|
54
24
|
this.showDirectSellModal.emit(false);
|
|
55
25
|
}
|
|
56
|
-
handleSupplierChanged(
|
|
26
|
+
handleSupplierChanged() {
|
|
57
27
|
this._getAvailableStock();
|
|
58
28
|
}
|
|
59
|
-
|
|
29
|
+
onStockChecked(event) {
|
|
30
|
+
var _a;
|
|
60
31
|
event.preventDefault();
|
|
61
32
|
event.stopPropagation();
|
|
62
|
-
|
|
63
|
-
|
|
33
|
+
if (this.selectedSupplier && ((_a = this.availableStockCollection.supplierStockForecasts) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
34
|
+
this.checkboxes.forEach(po => po.model = false);
|
|
35
|
+
}
|
|
36
|
+
this.fromStock = !this.fromStock;
|
|
37
|
+
if (this.fromStock) {
|
|
38
|
+
this.selectedForecast = null;
|
|
39
|
+
}
|
|
40
|
+
this.formValid = this.fromStock;
|
|
41
|
+
}
|
|
42
|
+
toggleStockChecked(event) {
|
|
43
|
+
var _a;
|
|
44
|
+
if (this.selectedSupplier && ((_a = this.availableStockCollection.supplierStockForecasts) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
45
|
+
this.checkboxes.forEach(po => po.model = false);
|
|
46
|
+
}
|
|
47
|
+
this.formValid = event;
|
|
48
|
+
}
|
|
49
|
+
handleChecked(index, selectedForecast, event) {
|
|
50
|
+
var _a;
|
|
51
|
+
event.preventDefault();
|
|
52
|
+
event.stopPropagation();
|
|
53
|
+
if (this.selectedSupplier && ((_a = this.availableStockCollection.supplierStockForecasts) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
54
|
+
this.checkboxes.forEach(po => po.model = false);
|
|
55
|
+
}
|
|
56
|
+
const selectedCheckbox = this.checkboxes.toArray()[index];
|
|
57
|
+
selectedCheckbox.model = !selectedCheckbox.model;
|
|
58
|
+
if (selectedCheckbox.model) {
|
|
59
|
+
this.selectedForecast = selectedForecast;
|
|
60
|
+
}
|
|
61
|
+
this.fromStock = false;
|
|
62
|
+
this.formValid = selectedCheckbox.model;
|
|
63
|
+
}
|
|
64
|
+
toggleForecastChecked(event) {
|
|
65
|
+
var _a;
|
|
66
|
+
if (this.selectedSupplier && ((_a = this.availableStockCollection.supplierStockForecasts) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
67
|
+
this.checkboxes.forEach(po => po.model = false);
|
|
68
|
+
}
|
|
69
|
+
this.fromStock = false;
|
|
70
|
+
this.formValid = event;
|
|
64
71
|
}
|
|
65
72
|
onOkClick() {
|
|
66
73
|
const changeLineDirectSellRequest = {
|
|
67
74
|
transactionUuid: this.transactionUuid,
|
|
68
75
|
lineUuid: this.lineUuid,
|
|
69
|
-
newDirectSell:
|
|
76
|
+
newDirectSell: !this.fromStock,
|
|
77
|
+
newSupplierId: this.selectedSupplier.relationId,
|
|
78
|
+
newPurchaseOrderNumber: this.fromStock ? null : this.selectedForecast.purchaseOrderNumber.toString(),
|
|
79
|
+
newStockForecastDeliveryDate: this.fromStock ? null : this.selectedForecast.deliveryDate
|
|
70
80
|
};
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
81
|
+
this.transactionService.changeLineDirectSell(changeLineDirectSellRequest).then((response) => {
|
|
82
|
+
console.log(response);
|
|
83
|
+
});
|
|
74
84
|
this.hideModal();
|
|
75
85
|
}
|
|
76
86
|
_getAvailableStock() {
|
|
77
87
|
return __awaiter(this, void 0, void 0, function* () {
|
|
78
88
|
// TODO this method doesn't retrieve any data for now, until we fix ESB instance as this is a call to a third party
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
89
|
+
yield this.transactionService.getAvailableStockForSupplier(this.goodId, this.selectedSupplier.relationId).then((availableStock) => {
|
|
90
|
+
if (availableStock) {
|
|
91
|
+
this.availableStockCollection = availableStock;
|
|
92
|
+
}
|
|
93
|
+
});
|
|
84
94
|
});
|
|
85
95
|
}
|
|
86
96
|
_getDirectSellSuppliers() {
|
|
87
97
|
this._relationService.getDirectSellSuppliers().then((suppliers) => {
|
|
88
98
|
this.directSellSuppliers = suppliers;
|
|
99
|
+
if (this.directSellSuppliers.length === 1) {
|
|
100
|
+
this.selectedSupplier = this.directSellSuppliers[0];
|
|
101
|
+
}
|
|
89
102
|
});
|
|
90
103
|
}
|
|
91
104
|
}
|
|
@@ -103,30 +116,37 @@ DialogDirectSellComponent.decorators = [
|
|
|
103
116
|
<div class="supplier-list-wrapper flex">
|
|
104
117
|
<co-list-of-values
|
|
105
118
|
class="supplier-list"
|
|
106
|
-
label="
|
|
119
|
+
[label]="'FROM_SUPPLIER' | localize"
|
|
107
120
|
[required]="true"
|
|
108
121
|
[noClickFocus]="true"
|
|
109
122
|
[searchPlaceholder]="'SEARCH' | localize"
|
|
110
123
|
[collection]="directSellSuppliers"
|
|
111
124
|
[displayField]="'supplierName'"
|
|
112
125
|
[(model)]="selectedSupplier"
|
|
113
|
-
(modelChange)="handleSupplierChanged(
|
|
126
|
+
(modelChange)="handleSupplierChanged()">
|
|
114
127
|
</co-list-of-values>
|
|
115
128
|
</div>
|
|
116
129
|
|
|
117
130
|
<div class="available-stock checkbox-list-wrapper" *ngIf="selectedSupplier">
|
|
118
|
-
<div
|
|
131
|
+
<div
|
|
132
|
+
class="checkbox-list-item"
|
|
133
|
+
[class.checked]="fromStock"
|
|
134
|
+
(click)="onStockChecked($event)">
|
|
119
135
|
<div class="cell">
|
|
120
136
|
<div class="checkbox-wrapper">
|
|
121
|
-
<co-input-checkbox
|
|
137
|
+
<co-input-checkbox
|
|
138
|
+
[(model)]="fromStock"
|
|
139
|
+
(modelChange)="toggleStockChecked($event)">
|
|
140
|
+
</co-input-checkbox>
|
|
122
141
|
</div>
|
|
123
142
|
</div>
|
|
124
143
|
<div class="cell">Uit vooraad</div>
|
|
125
|
-
<div class="cell"><strong>{{availableStockCollection.availableStock}}</strong></div>
|
|
144
|
+
<div class="cell"><strong>{{ availableStockCollection.availableStock }}</strong></div>
|
|
126
145
|
</div>
|
|
127
146
|
</div>
|
|
128
147
|
|
|
129
|
-
<div class="forecast-table"
|
|
148
|
+
<div class="forecast-table"
|
|
149
|
+
*ngIf="selectedSupplier && availableStockCollection.supplierStockForecasts?.length > 0">
|
|
130
150
|
<div class="forecast-table-header">
|
|
131
151
|
<div class="cell"></div>
|
|
132
152
|
<div class="cell">Order</div>
|
|
@@ -142,30 +162,34 @@ DialogDirectSellComponent.decorators = [
|
|
|
142
162
|
#scrollingItem
|
|
143
163
|
class="checkbox-list-item"
|
|
144
164
|
[class.checked]="checkbox.model"
|
|
145
|
-
(click)="handleChecked(
|
|
165
|
+
(click)="handleChecked(i, row, $event)">
|
|
146
166
|
<div class="cell">
|
|
147
167
|
<div class="checkbox-wrapper">
|
|
148
|
-
<co-input-checkbox
|
|
168
|
+
<co-input-checkbox
|
|
169
|
+
#checkbox
|
|
170
|
+
[(model)]="checkbox.model"
|
|
171
|
+
(modelChange)="toggleForecastChecked($event)">
|
|
172
|
+
</co-input-checkbox>
|
|
149
173
|
</div>
|
|
150
174
|
</div>
|
|
151
|
-
<div class="cell">{{row.purchaseOrderNumber}}</div>
|
|
152
|
-
<div class="cell">{{row.amount}}</div>
|
|
153
|
-
<div class="cell">{{row.deliveryDate | date}}</div>
|
|
154
|
-
<div class="cell">{{row.confirmedDeliveryDate | date}}</div>
|
|
155
|
-
<div class="cell">{{row.arrivalDate | date}}</div>
|
|
175
|
+
<div class="cell">{{ row.purchaseOrderNumber }}</div>
|
|
176
|
+
<div class="cell">{{ row.amount }}</div>
|
|
177
|
+
<div class="cell">{{ row.deliveryDate | date }}</div>
|
|
178
|
+
<div class="cell">{{ row.confirmedDeliveryDate | date }}</div>
|
|
179
|
+
<div class="cell">{{ row.arrivalDate | date }}</div>
|
|
156
180
|
</div>
|
|
157
181
|
</div>
|
|
158
182
|
</div>
|
|
159
183
|
</co-dialog>
|
|
160
184
|
<ng-template #headerTemplate>
|
|
161
185
|
<co-icon [iconData]="iconCacheService.getIcon(icons.IndustryRegular)"></co-icon>
|
|
162
|
-
<div class="co-dialog-header-title" [textContent]="'
|
|
186
|
+
<div class="co-dialog-header-title" [textContent]="'DIRECT_SELL' | localize"></div>
|
|
163
187
|
</ng-template>
|
|
164
188
|
<ng-template #footerTemplate>
|
|
165
189
|
<div class="co-dialog-footer-button-wrapper">
|
|
166
190
|
<co-button
|
|
167
191
|
class="save-button"
|
|
168
|
-
[disabled]="
|
|
192
|
+
[disabled]="!formValid"
|
|
169
193
|
[iconData]="iconCacheService.getIcon(icons.CheckDuotone)"
|
|
170
194
|
(click)="onOkClick()">
|
|
171
195
|
</co-button>
|
|
@@ -174,11 +198,6 @@ DialogDirectSellComponent.decorators = [
|
|
|
174
198
|
[iconData]="iconCacheService.getIcon(icons.Crossskinny)"
|
|
175
199
|
(click)="hideModal()">
|
|
176
200
|
</co-button>
|
|
177
|
-
<co-button
|
|
178
|
-
class="close-button"
|
|
179
|
-
[iconData]="iconCacheService.getIcon(icons.TrashCanLight)"
|
|
180
|
-
(click)="hideModal()">
|
|
181
|
-
</co-button>
|
|
182
201
|
</div>
|
|
183
202
|
</ng-template>
|
|
184
203
|
`,
|
|
@@ -197,4 +216,4 @@ DialogDirectSellComponent.propDecorators = {
|
|
|
197
216
|
showDirectSellModal: [{ type: Output }],
|
|
198
217
|
checkboxes: [{ type: ViewChildren, args: ['checkbox',] }]
|
|
199
218
|
};
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWRpcmVjdC1zZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2RpYWxvZy90cmFuc2FjdGlvbi1saW5lL2RpYWxvZy10cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1jYy9kaWFsb2ctZGlyZWN0LXNlbGwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBSXhFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBSTVGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBc0czRSxNQUFNLE9BQU8seUJBQXlCO0lBd0RwQyxZQUNTLGdCQUFrQyxFQUMvQixrQkFBc0MsRUFDeEMsZ0JBQTRDO1FBRjdDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDL0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTRCO1FBL0MvQyx3QkFBbUIsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUloRSxVQUFLLEdBQWdCLElBQUksQ0FBQztRQUNuQyx3QkFBbUIsR0FBeUIsRUFBRSxDQUFDO1FBRy9DLDZCQUF3QixHQUFZLEtBQUssQ0FBQztRQUUxQyxlQUFVLEdBQWlDO1lBQ2hELGFBQWEsRUFBRSxtQkFBbUI7WUFDbEMsY0FBYyxFQUFFLEVBQUU7WUFDbEIsc0JBQXNCLEVB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QUs7dUJBR0wsS0FBSztxQkFHTCxLQUFLO2tDQUdMLE1BQU07eUJBR04sWUFBWSxTQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSZWxhdGlvbkxpc3RPYmplY3R9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tbGlzdC1vYmplY3QuYm9cIjtcclxuaW1wb3J0IHtSZWxhdGlvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tcmVxdWVzdFwiO1xyXG5pbXBvcnQge1JlbGF0aW9uS2luZH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9lbnVtL3JlbGF0aW9uLWtpbmQuZW51bVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1yZWxhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U3VwcGxpZXJBcnRpY2xlU3RvY2tGb3JlY2FzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9zdXBwbGllci1hcnRpY2xlLXN0b2NrLWZvcmVjYXN0XCI7XHJcbmltcG9ydCB7U3VwcGxpZXJTdG9ja0ZvcmVjYXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3N1cHBsaWVyLXN0b2NrLWZvcmVjYXN0XCI7XHJcbmltcG9ydCB7QXZhaWxhYmxlU3RvY2t9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvYXZhaWxhYmxlLXN0b2NrLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QXBwUG9wdXBCdXR0b25UeXBlfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9lbnVtL2FwcC1wb3B1cC1idXR0b24tdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7Q2hhbmdlTGluZURpcmVjdFNlbGxSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NoYW5nZS1saW5lLWRpcmVjdC1zZWxsLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtcclxuICBJbnB1dENoZWNrYm94Q29tcG9uZW50XHJcbn0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTIvbGliL2NvbXBvbmVudHMvaW5wdXQtY2hlY2tib3gvaW5wdXQtY2hlY2tib3guY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U3VwcGxpZXJMaWdodE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9zdXBwbGllci1saWdodC1vYmplY3QuYm9cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tZGlhbG9nLXNlbGwnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tZGlhbG9nXHJcbiAgICAgIGNsYXNzPVwiZGlyZWN0LXNlbGwtbW9kYWxcIlxyXG4gICAgICBbc2hvd0Nsb3NlSWNvbl09XCJ0cnVlXCJcclxuICAgICAgW21vZGFsXT1cInRydWVcIlxyXG4gICAgICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIlxyXG4gICAgICAoY2xvc2VDbGljayk9XCJoaWRlTW9kYWwoKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3VwcGxpZXItbGlzdC13cmFwcGVyIGZsZXhcIj5cclxuICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXNcclxuICAgICAgICAgIGNsYXNzPVwic3VwcGxpZXItbGlzdFwiXHJcbiAgICAgICAgICBsYWJlbD1cIkRpcmVjdCBTZWxsIFN1cHBsaWVyXCJcclxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgIFtub0NsaWNrRm9jdXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbc2VhcmNoUGxhY2Vob2xkZXJdPVwiJ1NFQVJDSCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICBbY29sbGVjdGlvbl09XCJkaXJlY3RTZWxsU3VwcGxpZXJzXCJcclxuICAgICAgICAgIFtkaXNwbGF5RmllbGRdPVwiJ3N1cHBsaWVyTmFtZSdcIlxyXG4gICAgICAgICAgWyhtb2RlbCldPVwic2VsZWN0ZWRTdXBwbGllclwiXHJcbiAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlU3VwcGxpZXJDaGFuZ2VkKCRldmVudClcIj5cclxuICAgICAgICA8L2NvLWxpc3Qtb2YtdmFsdWVzPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhdmFpbGFibGUtc3RvY2sgY2hlY2tib3gtbGlzdC13cmFwcGVyXCIgKm5nSWY9XCJzZWxlY3RlZFN1cHBsaWVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGxcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggW21vZGVsXT1cImZhbHNlXCI+PC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+VWl0IHZvb3JhYWQ8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+PHN0cm9uZz57e2F2YWlsYWJsZVN0b2NrQ29sbGVjdGlvbi5hdmFpbGFibGVTdG9ja319PC9zdHJvbmc+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImZvcmVjYXN0LXRhYmxlXCIgKm5nSWY9XCJzZWxlY3RlZFN1cHBsaWVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcmVjYXN0LXRhYmxlLWhlYWRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGxcIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+T3JkZXI8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+QmVzY2hpa2JhYXI8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+TGV2ZXJkYXR1bTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGxcIj5MZXZlcmRhdHVtIEJldmVzdGlnZDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGxcIj5BYW5rb21zdCBEYXR1bTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3gtbGlzdC13cmFwcGVyIGNvLXNtYWxsLXNjcm9sbGJhclwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcm93IG9mIGF2YWlsYWJsZVN0b2NrQ29sbGVjdGlvbi5zdXBwbGllclN0b2NrRm9yZWNhc3RzOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgI3Njcm9sbGluZ0l0ZW1cclxuICAgICAgICAgICAgY2xhc3M9XCJjaGVja2JveC1saXN0LWl0ZW1cIlxyXG4gICAgICAgICAgICBbY2xhc3MuY2hlY2tlZF09XCJjaGVja2JveC5tb2RlbFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDaGVja2VkKCRldmVudCwgcm93LCBpKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggI2NoZWNrYm94IFttb2RlbF09XCJmYWxzZVwiPjwvY28taW5wdXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbFwiPnt7cm93LnB1cmNoYXNlT3JkZXJOdW1iZXJ9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbFwiPnt7cm93LmFtb3VudH19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+e3tyb3cuZGVsaXZlcnlEYXRlIHwgZGF0ZX19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+e3tyb3cuY29uZmlybWVkRGVsaXZlcnlEYXRlIHwgZGF0ZX19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+e3tyb3cuYXJyaXZhbERhdGUgfCBkYXRlfX08L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvY28tZGlhbG9nPlxyXG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cclxuICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5JbmR1c3RyeVJlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWhlYWRlci10aXRsZVwiIFt0ZXh0Q29udGVudF09XCInQ0FTSF9PTl9ERUxJVkVSWScgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctZm9vdGVyLWJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgPGNvLWJ1dHRvblxyXG4gICAgICAgICAgY2xhc3M9XCJzYXZlLWJ1dHRvblwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNoZWNrRHVvdG9uZSlcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uT2tDbGljaygpXCI+XHJcbiAgICAgICAgPC9jby1idXR0b24+XHJcbiAgICAgICAgPGNvLWJ1dHRvblxyXG4gICAgICAgICAgY2xhc3M9XCJjbG9zZS1idXR0b25cIlxyXG4gICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zc3NraW5ueSlcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImhpZGVNb2RhbCgpXCI+XHJcbiAgICAgICAgPC9jby1idXR0b24+XHJcbiAgICAgICAgPGNvLWJ1dHRvblxyXG4gICAgICAgICAgY2xhc3M9XCJjbG9zZS1idXR0b25cIlxyXG4gICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcmFzaENhbkxpZ2h0KVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiaGlkZU1vZGFsKClcIj5cclxuICAgICAgICA8L2NvLWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nRGlyZWN0U2VsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uVXVpZDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsaW5lVXVpZDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnb29kSWQ6IG51bWJlcjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNob3dEaXJlY3RTZWxsTW9kYWw6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbignY2hlY2tib3gnKSBjaGVja2JveGVzOiBRdWVyeUxpc3Q8SW5wdXRDaGVja2JveENvbXBvbmVudD47XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG4gIHB1YmxpYyBkaXJlY3RTZWxsU3VwcGxpZXJzOiBSZWxhdGlvbkxpc3RPYmplY3RbXSA9IFtdO1xyXG4gIHB1YmxpYyBzZWxlY3RlZFN1cHBsaWVyOiBSZWxhdGlvbkxpc3RPYmplY3Q7XHJcbiAgcHVibGljIGF2YWlsYWJsZVN0b2NrQ29sbGVjdGlvbjogU3VwcGxpZXJBcnRpY2xlU3RvY2tGb3JlY2FzdDtcclxuICBwdWJsaWMgc3VwcGxpZXJTdG9ja1Jvd1NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyB0ZW1wT2JqZWN0OiBTdXBwbGllckFydGljbGVTdG9ja0ZvcmVjYXN0ID0ge1xyXG4gICAgYXJ0aWNsZU51bWJlcjogJ2FydGljbGVOdW1iZXIgMTIzJyxcclxuICAgIGF2YWlsYWJsZVN0b2NrOiAxMCxcclxuICAgIHN1cHBsaWVyU3RvY2tGb3JlY2FzdHM6IFtcclxuICAgICAge1xyXG4gICAgICAgIHB1cmNoYXNlT3JkZXJOdW1iZXI6IDEsXHJcbiAgICAgICAgYW1vdW50OiAxMSxcclxuICAgICAgICBhbW91bnRSZXNlcnZlZDogNyxcclxuICAgICAgICBhbW91bnRBdmFpbGFibGU6IDQsXHJcbiAgICAgICAgZGVsaXZlcnlEYXRlOiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgIGNvbmZpcm1lZERlbGl2ZXJ5RGF0ZTogbmV3IERhdGUoKSxcclxuICAgICAgICBhcnJpdmFsRGF0ZTogbmV3IERhdGUoKVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcHVyY2hhc2VPcmRlck51bWJlcjogMixcclxuICAgICAgICBhbW91bnQ6IDE0LFxyXG4gICAgICAgIGFtb3VudFJlc2VydmVkOiA3LFxyXG4gICAgICAgIGFtb3VudEF2YWlsYWJsZTogNyxcclxuICAgICAgICBkZWxpdmVyeURhdGU6IG5ldyBEYXRlKCksXHJcbiAgICAgICAgY29uZmlybWVkRGVsaXZlcnlEYXRlOiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgIGFycml2YWxEYXRlOiBuZXcgRGF0ZSgpXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwdXJjaGFzZU9yZGVyTnVtYmVyOiAzLFxyXG4gICAgICAgIGFtb3VudDogNSxcclxuICAgICAgICBhbW91bnRSZXNlcnZlZDogMSxcclxuICAgICAgICBhbW91bnRBdmFpbGFibGU6IDQsXHJcbiAgICAgICAgZGVsaXZlcnlEYXRlOiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgIGNvbmZpcm1lZERlbGl2ZXJ5RGF0ZTogbmV3IERhdGUoKSxcclxuICAgICAgICBhcnJpdmFsRGF0ZTogbmV3IERhdGUoKVxyXG4gICAgICB9XHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcmVsYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblJlbGF0aW9uU2VydmljZSxcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZ2V0RGlyZWN0U2VsbFN1cHBsaWVycygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhpZGVNb2RhbCgpIHtcclxuICAgIHRoaXMuc2hvd0RpcmVjdFNlbGxNb2RhbC5lbWl0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTdXBwbGllckNoYW5nZWQoc3VwcGxpZXI6IFJlbGF0aW9uTGlzdE9iamVjdCB8IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fZ2V0QXZhaWxhYmxlU3RvY2soKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDaGVja2VkKGV2ZW50OiBNb3VzZUV2ZW50LCByb3c6IFN1cHBsaWVyU3RvY2tGb3JlY2FzdCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGNvbnN0IGNoZWNrYm94ID0gdGhpcy5jaGVja2JveGVzLnRvQXJyYXkoKVtpbmRleF07XHJcbiAgICBjaGVja2JveC5tb2RlbCA9ICFjaGVja2JveC5tb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk9rQ2xpY2soKTogdm9pZCB7XHJcbiAgICBjb25zdCBjaGFuZ2VMaW5lRGlyZWN0U2VsbFJlcXVlc3Q6IENoYW5nZUxpbmVEaXJlY3RTZWxsUmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB0aGlzLnRyYW5zYWN0aW9uVXVpZCxcclxuICAgICAgbGluZVV1aWQ6IHRoaXMubGluZVV1aWQsXHJcbiAgICAgIG5ld0RpcmVjdFNlbGw6IHRydWVcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5jaGFuZ2VMaW5lRGlyZWN0U2VsbChjaGFuZ2VMaW5lRGlyZWN0U2VsbFJlcXVlc3QpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAvLyAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgIC8vIH0pO1xyXG5cclxuICAgIHRoaXMuaGlkZU1vZGFsKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9nZXRBdmFpbGFibGVTdG9jaygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIFRPRE8gdGhpcyBtZXRob2QgZG9lc24ndCByZXRyaWV2ZSBhbnkgZGF0YSBmb3Igbm93LCB1bnRpbCB3ZSBmaXggRVNCIGluc3RhbmNlIGFzIHRoaXMgaXMgYSBjYWxsIHRvIGEgdGhpcmQgcGFydHlcclxuICAgIC8vIGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEF2YWlsYWJsZVN0b2NrRm9yU3VwcGxpZXIodGhpcy5nb29kSWQsIHRoaXMuc2VsZWN0ZWRTdXBwbGllci5yZWxhdGlvbklkKS50aGVuKChhdmFpbGFibGVTdG9jaykgPT4ge1xyXG4gICAgLy8gICB0aGlzLmF2YWlsYWJsZVN0b2NrQ29sbGVjdGlvbiA9IGF2YWlsYWJsZVN0b2NrO1xyXG4gICAgLy8gfSk7XHJcblxyXG4gICAgLy8gRm9yIG5vdywgd2Ugd2lsbCB1c2UgZHVtbXkgZGF0YVxyXG4gICAgdGhpcy5hdmFpbGFibGVTdG9ja0NvbGxlY3Rpb24gPSB0aGlzLnRlbXBPYmplY3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXREaXJlY3RTZWxsU3VwcGxpZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVsYXRpb25TZXJ2aWNlLmdldERpcmVjdFNlbGxTdXBwbGllcnMoKS50aGVuKChzdXBwbGllcnM6IFJlbGF0aW9uTGlzdE9iamVjdFtdKSA9PiB7XHJcbiAgICAgIHRoaXMuZGlyZWN0U2VsbFN1cHBsaWVycyA9IHN1cHBsaWVycztcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWRpcmVjdC1zZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2RpYWxvZy90cmFuc2FjdGlvbi1saW5lL2RpYWxvZy10cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1jYy9kaWFsb2ctZGlyZWN0LXNlbGwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRXhFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHNFQUFzRSxDQUFDO0FBRWxILE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBd0czRSxNQUFNLE9BQU8seUJBQXlCO0lBd0JwQyxZQUNTLGdCQUFrQyxFQUMvQixrQkFBc0MsRUFDeEMsZ0JBQTRDO1FBRjdDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDL0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTRCO1FBZi9DLHdCQUFtQixHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBSWhFLFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBQ25DLHdCQUFtQixHQUF5QixFQUFFLENBQUM7UUFFL0MsNkJBQXdCLEdBQWlDLElBQUksNEJBQTRCLEVBQUUsQ0FBQztRQUM1RixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFRbEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLHFCQUFxQjtRQUMxQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQWlCOztRQUNyQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsd0JBQXdCLENBQUMsc0JBQXNCLDBDQUFFLE1BQU0sSUFBRyxDQUFDLEVBQUU7WUFDN0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7U0FDOUI7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEtBQWM7O1FBQ3RDLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsd0JBQXdCLENBQUMsc0JBQXNCLDBDQUFFLE1BQU0sSUFBRyxDQUFDLEVBQUU7WUFDN0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFhLEVBQUUsZ0JBQXVDLEVBQUUsS0FBaUI7O1FBQzVGLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQSxNQUFBLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsMENBQUUsTUFBTSxJQUFHLENBQUMsRUFBRTtZQUM3RixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUM7U0FDakQ7UUFDRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUQsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1FBQ2pELElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztTQUMxQztRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBQzFDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFjOztRQUNsQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHNCQUFzQiwwQ0FBRSxNQUFNLElBQUcsQ0FBQyxFQUFFO1lBQzdGLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQztTQUNqRDtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFTSxTQUFTO1FBQ2QsTUFBTSwyQkFBMkIsR0FBZ0M7WUFDL0QsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3JDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUztZQUM5QixhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVU7WUFDL0Msc0JBQXNCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFO1lBQ3BHLDRCQUE0QixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVk7U0FDekYsQ0FBQTtRQUVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzFGLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVhLGtCQUFrQjs7WUFDOUIsbUhBQW1IO1lBQ25ILE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUNoSSxJQUFJLGNBQWMsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLHdCQUF3QixHQUFHLGNBQWMsQ0FBQztpQkFDaEQ7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVPLHVCQUF1QjtRQUM3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUErQixFQUFFLEVBQUU7WUFDdEYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztZQUVyQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3JEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUE1TkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErRlQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQTVHTyxnQkFBZ0I7WUFLaEIsa0JBQWtCO1lBSGxCLDBCQUEwQjs7OzhCQTZHL0IsS0FBSzt1QkFHTCxLQUFLO3FCQUdMLEtBQUs7a0NBR0wsTUFBTTt5QkFHTixZQUFZLFNBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1JlbGF0aW9uTGlzdE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1saXN0LW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1yZWxhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U3VwcGxpZXJBcnRpY2xlU3RvY2tGb3JlY2FzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9zdXBwbGllci1hcnRpY2xlLXN0b2NrLWZvcmVjYXN0XCI7XHJcbmltcG9ydCB7U3VwcGxpZXJTdG9ja0ZvcmVjYXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3N1cHBsaWVyLXN0b2NrLWZvcmVjYXN0XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Q2hhbmdlTGluZURpcmVjdFNlbGxSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NoYW5nZS1saW5lLWRpcmVjdC1zZWxsLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtJbnB1dENoZWNrYm94Q29tcG9uZW50fSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMi9saWIvY29tcG9uZW50cy9pbnB1dC1jaGVja2JveC9pbnB1dC1jaGVja2JveC5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tZGlhbG9nLXNlbGwnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tZGlhbG9nXHJcbiAgICAgIGNsYXNzPVwiZGlyZWN0LXNlbGwtbW9kYWxcIlxyXG4gICAgICBbc2hvd0Nsb3NlSWNvbl09XCJ0cnVlXCJcclxuICAgICAgW21vZGFsXT1cInRydWVcIlxyXG4gICAgICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIlxyXG4gICAgICAoY2xvc2VDbGljayk9XCJoaWRlTW9kYWwoKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3VwcGxpZXItbGlzdC13cmFwcGVyIGZsZXhcIj5cclxuICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXNcclxuICAgICAgICAgIGNsYXNzPVwic3VwcGxpZXItbGlzdFwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwiJ0ZST01fU1VQUExJRVInIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgW25vQ2xpY2tGb2N1c109XCJ0cnVlXCJcclxuICAgICAgICAgIFtzZWFyY2hQbGFjZWhvbGRlcl09XCInU0VBUkNIJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgIFtjb2xsZWN0aW9uXT1cImRpcmVjdFNlbGxTdXBwbGllcnNcIlxyXG4gICAgICAgICAgW2Rpc3BsYXlGaWVsZF09XCInc3VwcGxpZXJOYW1lJ1wiXHJcbiAgICAgICAgICBbKG1vZGVsKV09XCJzZWxlY3RlZFN1cHBsaWVyXCJcclxuICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVTdXBwbGllckNoYW5nZWQoKVwiPlxyXG4gICAgICAgIDwvY28tbGlzdC1vZi12YWx1ZXM+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImF2YWlsYWJsZS1zdG9jayBjaGVja2JveC1saXN0LXdyYXBwZXJcIiAqbmdJZj1cInNlbGVjdGVkU3VwcGxpZXJcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrYm94LWxpc3QtaXRlbVwiXHJcbiAgICAgICAgICBbY2xhc3MuY2hlY2tlZF09XCJmcm9tU3RvY2tcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uU3RvY2tDaGVja2VkKCRldmVudClcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJmcm9tU3RvY2tcIlxyXG4gICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cInRvZ2dsZVN0b2NrQ2hlY2tlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgPC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+VWl0IHZvb3JhYWQ8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+PHN0cm9uZz57eyBhdmFpbGFibGVTdG9ja0NvbGxlY3Rpb24uYXZhaWxhYmxlU3RvY2sgfX08L3N0cm9uZz48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9yZWNhc3QtdGFibGVcIlxyXG4gICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRTdXBwbGllciAmJiBhdmFpbGFibGVTdG9ja0NvbGxlY3Rpb24uc3VwcGxpZXJTdG9ja0ZvcmVjYXN0cz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JlY2FzdC10YWJsZS1oZWFkZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbFwiPk9yZGVyPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbFwiPkJlc2NoaWtiYWFyPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbFwiPkxldmVyZGF0dW08L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+TGV2ZXJkYXR1bSBCZXZlc3RpZ2Q8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+QWFua29tc3QgRGF0dW08L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWxpc3Qtd3JhcHBlciBjby1zbWFsbC1zY3JvbGxiYXJcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJvdyBvZiBhdmFpbGFibGVTdG9ja0NvbGxlY3Rpb24uc3VwcGxpZXJTdG9ja0ZvcmVjYXN0czsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICAgICNzY3JvbGxpbmdJdGVtXHJcbiAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tib3gtbGlzdC1pdGVtXCJcclxuICAgICAgICAgICAgW2NsYXNzLmNoZWNrZWRdPVwiY2hlY2tib3gubW9kZWxcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2hlY2tlZChpLCByb3csICRldmVudClcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGxcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3gtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICNjaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJjaGVja2JveC5tb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJ0b2dnbGVGb3JlY2FzdENoZWNrZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+e3sgcm93LnB1cmNoYXNlT3JkZXJOdW1iZXIgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGxcIj57eyByb3cuYW1vdW50IH19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsXCI+e3sgcm93LmRlbGl2ZXJ5RGF0ZSB8IGRhdGUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGxcIj57eyByb3cuY29uZmlybWVkRGVsaXZlcnlEYXRlIHwgZGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbFwiPnt7IHJvdy5hcnJpdmFsRGF0ZSB8IGRhdGUgfX08L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvY28tZGlhbG9nPlxyXG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cclxuICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5JbmR1c3RyeVJlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWhlYWRlci10aXRsZVwiIFt0ZXh0Q29udGVudF09XCInRElSRUNUX1NFTEwnIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWZvb3Rlci1idXR0b24td3JhcHBlclwiPlxyXG4gICAgICAgIDxjby1idXR0b25cclxuICAgICAgICAgIGNsYXNzPVwic2F2ZS1idXR0b25cIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFmb3JtVmFsaWRcIlxyXG4gICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja0R1b3RvbmUpXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbk9rQ2xpY2soKVwiPlxyXG4gICAgICAgIDwvY28tYnV0dG9uPlxyXG4gICAgICAgIDxjby1idXR0b25cclxuICAgICAgICAgIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3Nza2lubnkpXCJcclxuICAgICAgICAgIChjbGljayk9XCJoaWRlTW9kYWwoKVwiPlxyXG4gICAgICAgIDwvY28tYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dEaXJlY3RTZWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25VdWlkOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxpbmVVdWlkOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdvb2RJZDogbnVtYmVyO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgc2hvd0RpcmVjdFNlbGxNb2RhbDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBAVmlld0NoaWxkcmVuKCdjaGVja2JveCcpIGNoZWNrYm94ZXM6IFF1ZXJ5TGlzdDxJbnB1dENoZWNrYm94Q29tcG9uZW50PjtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIGRpcmVjdFNlbGxTdXBwbGllcnM6IFJlbGF0aW9uTGlzdE9iamVjdFtdID0gW107XHJcbiAgcHVibGljIHNlbGVjdGVkU3VwcGxpZXI6IFJlbGF0aW9uTGlzdE9iamVjdDtcclxuICBwdWJsaWMgYXZhaWxhYmxlU3RvY2tDb2xsZWN0aW9uOiBTdXBwbGllckFydGljbGVTdG9ja0ZvcmVjYXN0ID0gbmV3IFN1cHBsaWVyQXJ0aWNsZVN0b2NrRm9yZWNhc3QoKTtcclxuICBwdWJsaWMgZm9ybVZhbGlkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGZyb21TdG9jazogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzZWxlY3RlZEZvcmVjYXN0OiBTdXBwbGllclN0b2NrRm9yZWNhc3Q7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yZWxhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9nZXREaXJlY3RTZWxsU3VwcGxpZXJzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGlkZU1vZGFsKCkge1xyXG4gICAgdGhpcy5zaG93RGlyZWN0U2VsbE1vZGFsLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN1cHBsaWVyQ2hhbmdlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2dldEF2YWlsYWJsZVN0b2NrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TdG9ja0NoZWNrZWQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkU3VwcGxpZXIgJiYgdGhpcy5hdmFpbGFibGVTdG9ja0NvbGxlY3Rpb24uc3VwcGxpZXJTdG9ja0ZvcmVjYXN0cz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmNoZWNrYm94ZXMuZm9yRWFjaChwbyA9PiBwby5tb2RlbCA9IGZhbHNlKTtcclxuICAgIH1cclxuICAgIHRoaXMuZnJvbVN0b2NrID0gIXRoaXMuZnJvbVN0b2NrO1xyXG4gICAgaWYgKHRoaXMuZnJvbVN0b2NrKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGb3JlY2FzdCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1WYWxpZCA9IHRoaXMuZnJvbVN0b2NrO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZVN0b2NrQ2hlY2tlZChldmVudDogYm9vbGVhbikge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTdXBwbGllciAmJiB0aGlzLmF2YWlsYWJsZVN0b2NrQ29sbGVjdGlvbi5zdXBwbGllclN0b2NrRm9yZWNhc3RzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tib3hlcy5mb3JFYWNoKHBvID0+IHBvLm1vZGVsID0gZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtVmFsaWQgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDaGVja2VkKGluZGV4OiBudW1iZXIsIHNlbGVjdGVkRm9yZWNhc3Q6IFN1cHBsaWVyU3RvY2tGb3JlY2FzdCwgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkU3VwcGxpZXIgJiYgdGhpcy5hdmFpbGFibGVTdG9ja0NvbGxlY3Rpb24uc3VwcGxpZXJTdG9ja0ZvcmVjYXN0cz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmNoZWNrYm94ZXMuZm9yRWFjaChwbyA9PiBwby5tb2RlbCA9IGZhbHNlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHNlbGVjdGVkQ2hlY2tib3ggPSB0aGlzLmNoZWNrYm94ZXMudG9BcnJheSgpW2luZGV4XTtcclxuICAgIHNlbGVjdGVkQ2hlY2tib3gubW9kZWwgPSAhc2VsZWN0ZWRDaGVja2JveC5tb2RlbDtcclxuICAgIGlmIChzZWxlY3RlZENoZWNrYm94Lm1vZGVsKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGb3JlY2FzdCA9IHNlbGVjdGVkRm9yZWNhc3Q7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZyb21TdG9jayA9IGZhbHNlO1xyXG4gICAgdGhpcy5mb3JtVmFsaWQgPSBzZWxlY3RlZENoZWNrYm94Lm1vZGVsO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlRm9yZWNhc3RDaGVja2VkKGV2ZW50OiBib29sZWFuKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFN1cHBsaWVyICYmIHRoaXMuYXZhaWxhYmxlU3RvY2tDb2xsZWN0aW9uLnN1cHBsaWVyU3RvY2tGb3JlY2FzdHM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5jaGVja2JveGVzLmZvckVhY2gocG8gPT4gcG8ubW9kZWwgPSBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZyb21TdG9jayA9IGZhbHNlO1xyXG4gICAgdGhpcy5mb3JtVmFsaWQgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk9rQ2xpY2soKTogdm9pZCB7XHJcbiAgICBjb25zdCBjaGFuZ2VMaW5lRGlyZWN0U2VsbFJlcXVlc3Q6IENoYW5nZUxpbmVEaXJlY3RTZWxsUmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB0aGlzLnRyYW5zYWN0aW9uVXVpZCxcclxuICAgICAgbGluZVV1aWQ6IHRoaXMubGluZVV1aWQsXHJcbiAgICAgIG5ld0RpcmVjdFNlbGw6ICF0aGlzLmZyb21TdG9jayxcclxuICAgICAgbmV3U3VwcGxpZXJJZDogdGhpcy5zZWxlY3RlZFN1cHBsaWVyLnJlbGF0aW9uSWQsXHJcbiAgICAgIG5ld1B1cmNoYXNlT3JkZXJOdW1iZXI6IHRoaXMuZnJvbVN0b2NrID8gbnVsbCA6IHRoaXMuc2VsZWN0ZWRGb3JlY2FzdC5wdXJjaGFzZU9yZGVyTnVtYmVyLnRvU3RyaW5nKCksXHJcbiAgICAgIG5ld1N0b2NrRm9yZWNhc3REZWxpdmVyeURhdGU6IHRoaXMuZnJvbVN0b2NrID8gbnVsbCA6IHRoaXMuc2VsZWN0ZWRGb3JlY2FzdC5kZWxpdmVyeURhdGVcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5jaGFuZ2VMaW5lRGlyZWN0U2VsbChjaGFuZ2VMaW5lRGlyZWN0U2VsbFJlcXVlc3QpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaGlkZU1vZGFsKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9nZXRBdmFpbGFibGVTdG9jaygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIFRPRE8gdGhpcyBtZXRob2QgZG9lc24ndCByZXRyaWV2ZSBhbnkgZGF0YSBmb3Igbm93LCB1bnRpbCB3ZSBmaXggRVNCIGluc3RhbmNlIGFzIHRoaXMgaXMgYSBjYWxsIHRvIGEgdGhpcmQgcGFydHlcclxuICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEF2YWlsYWJsZVN0b2NrRm9yU3VwcGxpZXIodGhpcy5nb29kSWQsIHRoaXMuc2VsZWN0ZWRTdXBwbGllci5yZWxhdGlvbklkKS50aGVuKChhdmFpbGFibGVTdG9jaykgPT4ge1xyXG4gICAgICBpZiAoYXZhaWxhYmxlU3RvY2spIHtcclxuICAgICAgICB0aGlzLmF2YWlsYWJsZVN0b2NrQ29sbGVjdGlvbiA9IGF2YWlsYWJsZVN0b2NrO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldERpcmVjdFNlbGxTdXBwbGllcnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZWxhdGlvblNlcnZpY2UuZ2V0RGlyZWN0U2VsbFN1cHBsaWVycygpLnRoZW4oKHN1cHBsaWVyczogUmVsYXRpb25MaXN0T2JqZWN0W10pID0+IHtcclxuICAgICAgdGhpcy5kaXJlY3RTZWxsU3VwcGxpZXJzID0gc3VwcGxpZXJzO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZGlyZWN0U2VsbFN1cHBsaWVycy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkU3VwcGxpZXIgPSB0aGlzLmRpcmVjdFNlbGxTdXBwbGllcnNbMF07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
import { ChangeDetectorRef, Component, HostBinding, HostListener, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { ChangeDetectorRef, Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
3
3
|
import { CustomerFullObject } from '@colijnit/relationapi/build/model/customer-full-object.bo';
|
|
4
4
|
import { TransactionKind } from '@colijnit/transactionapi/build/enum/transaction-kind.enum';
|
|
5
5
|
import { BaseModuleScreenConfigService } from '@colijnit/corecomponents_v12';
|
|
@@ -30,6 +30,8 @@ export class TransactionComponent {
|
|
|
30
30
|
this.saveCancelMovable = false;
|
|
31
31
|
this.transactionPlanning = false;
|
|
32
32
|
this.cashRegistersDirty = false;
|
|
33
|
+
//This output exists for bundle purposes.
|
|
34
|
+
this.serviceRequested = new EventEmitter();
|
|
33
35
|
this.screenConfigLoaded = false;
|
|
34
36
|
this._fetching = false;
|
|
35
37
|
}
|
|
@@ -133,6 +135,7 @@ TransactionComponent.decorators = [
|
|
|
133
135
|
[posOrderData]="posOrderData"
|
|
134
136
|
[transactionPlanning]="transactionPlanning"
|
|
135
137
|
[cashRegistersDirty] = cashRegistersDirty
|
|
138
|
+
(serviceRequested)="this.serviceRequested.emit($event)"
|
|
136
139
|
></co-transaction-internal>
|
|
137
140
|
`,
|
|
138
141
|
providers: [
|
|
@@ -166,8 +169,9 @@ TransactionComponent.propDecorators = {
|
|
|
166
169
|
saveCancelMovable: [{ type: Input }],
|
|
167
170
|
transactionPlanning: [{ type: Input }],
|
|
168
171
|
cashRegistersDirty: [{ type: Input }],
|
|
172
|
+
serviceRequested: [{ type: Output }],
|
|
169
173
|
showClass: [{ type: HostBinding, args: ['class.co-transaction',] }],
|
|
170
174
|
checkTransaction: [{ type: HostListener, args: ['window:beforeunload',] }],
|
|
171
175
|
checkRollBack: [{ type: HostListener, args: ['window:unload',] }]
|
|
172
176
|
};
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDN0YsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzdHLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUV4RixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUV4RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUE0Qm5FLE1BQU0sT0FBTyxvQkFBb0I7SUFpRzdCLFlBQ1csT0FBMkIsRUFDMUIsNEJBQXlELEVBQ3pELDJCQUFrRSxFQUNsRSxlQUFrQyxFQUNsQyw0QkFBeUQsRUFDekQsa0JBQXFDLEVBQ3JDLGNBQTZCO1FB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S0FBSztpQ0FHTCxLQUFLO3dCQUdMLFdBQVcsU0FBQyxzQkFBc0I7K0JBS2xDLFlBQVksU0FBQyxxQkFBcUI7NEJBS2xDLFlBQVksU0FBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1JlbGF0aW9uQW55VHlwZX0gZnJvbSAnLi4vLi4vbW9kZWwvcmVsYXRpb24tYW55LXR5cGUnO1xyXG5pbXBvcnQge0N1c3RvbWVyRnVsbE9iamVjdH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2N1c3RvbWVyLWZ1bGwtb2JqZWN0LmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7QmFzZU1vZHVsZVNjcmVlbkNvbmZpZ1NlcnZpY2V9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkNmZ05hbWV9IGZyb20gJy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tY2ZnLW5hbWUuZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtQb3NPcmRlckRhdGF9IGZyb20gJy4uLy4uL21vZGVsL3Bvcy1vcmRlci1kYXRhJztcclxuaW1wb3J0IHtQdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvcHVyY2hhc2UtY29uZmlybWF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1NhZmVIdG1sfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGNvLXNhdmUtY2FuY2VsLWJ1dHRvbnMgKm5nSWY9XCJzZXJ2aWNlLm1hbnVhbFNhdmVQYXJhbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NhdmVJY29uRGF0YV09XCJzYXZlSWNvbkRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjYW5jZWxJY29uRGF0YV09XCJjYW5jZWxJY29uRGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dMYWJlbHNdPVwic2hvd1NhdmVDYW5jZWxMYWJlbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb3ZhYmxlXT1cInNhdmVDYW5jZWxNb3ZhYmxlXCJcclxuICAgICAgICA+PC9jby1zYXZlLWNhbmNlbC1idXR0b25zPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1pbnRlcm5hbCAqbmdJZj1cInNjcmVlbkNvbmZpZ0xvYWRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVsYXRpb24pXT1cInJlbGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dIZWFkZXJdPVwic2hvd0hlYWRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93UXVpY2tBY2Nlc3NdPVwic2hvd1F1aWNrQWNjZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dCdXR0b25CYXJdPVwic2hvd0J1dHRvbkJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Vmlld01vZGVCdXR0b25zXT1cInNob3dWaWV3TW9kZUJ1dHRvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlybWF0aW9uQW5hbHlzaXNJZF09XCJjb25maXJtYXRpb25BbmFseXNpc0lkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Bvc09yZGVyRGF0YV09XCJwb3NPcmRlckRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25QbGFubmluZ109XCJ0cmFuc2FjdGlvblBsYW5uaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nhc2hSZWdpc3RlcnNEaXJ0eV0gPSBjYXNoUmVnaXN0ZXJzRGlydHlcclxuICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1pbnRlcm5hbD5cclxuICAgIGAsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7cHJvdmlkZTogQmFzZU1vZHVsZVNjcmVlbkNvbmZpZ1NlcnZpY2UsIHVzZUV4aXN0aW5nOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfVxyXG4gICAgXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICAgIHB1YmxpYyByZWFkb25seSBjZmdOYW1lczogdHlwZW9mIFRyYW5zYWN0aW9uQ2ZnTmFtZSA9IFRyYW5zYWN0aW9uQ2ZnTmFtZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUgPSBuZXcgQ3VzdG9tZXJGdWxsT2JqZWN0KCk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgY29uZmlybWF0aW9uQW5hbHlzaXNJZCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZS5jb25maXJtYXRpb25BbmFseXNpc0lkID0gdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGNvbmZpcm1hdGlvbkFuYWx5c2lzSWQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBvc09yZGVyRGF0YTogUG9zT3JkZXJEYXRhO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uS2luZCh2YWx1ZTogVHJhbnNhY3Rpb25LaW5kKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uS2luZCAhPT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25LaW5kID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2dldFRyYW5zYWN0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb25LaW5kKCk6IFRyYW5zYWN0aW9uS2luZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uS2luZDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0cmFuc2FjdGlvbk5yKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb25OciAhPT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25OciA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLl9nZXRUcmFuc2FjdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uTnIoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25OcjtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1ZpZXdNb2RlQnV0dG9uczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93UXVpY2tBY2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd0J1dHRvbkJhcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzYXZlSWNvbkRhdGE6IFNhZmVIdG1sO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY2FuY2VsSWNvbkRhdGE6IFNhZmVIdG1sO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1NhdmVDYW5jZWxMYWJlbHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNhdmVDYW5jZWxNb3ZhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvblBsYW5uaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjYXNoUmVnaXN0ZXJzRGlydHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uJylcclxuICAgIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OmJlZm9yZXVubG9hZCcpXHJcbiAgICBwdWJsaWMgY2hlY2tUcmFuc2FjdGlvbigpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jaGVja1RyYW5zYWN0aW9uRGlydHkoKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6dW5sb2FkJylcclxuICAgIHB1YmxpYyBjaGVja1JvbGxCYWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnNlcnZpY2UudHJhbnNhY3Rpb25EaXJ0eSAmJiB0aGlzLnNlcnZpY2UubWFudWFsU2F2ZVBhcmFtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5yb2xsYmFja0JlYWNvbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2NyZWVuQ29uZmlnTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfY29uZmlybWF0aW9uQW5hbHlzaXNJZDogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25LaW5kOiBUcmFuc2FjdGlvbktpbmQ7XHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbk5yOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9mZXRjaGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlOiBUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZTogUHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgnY29uZmlybWF0aW9uQW5hbHlzaXNJZCcpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jaGVja1RyYW5zYWN0aW9uRGlydHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEodGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uRGlydHkgJiYgdGhpcy5zZXJ2aWNlLm1hbnVhbFNhdmVQYXJhbSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0VHJhbnNhY3Rpb24oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb25LaW5kICYmIHRoaXMudHJhbnNhY3Rpb25Ocikge1xyXG4gICAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuY29ubmVjdGlvbkluaXRpYWxpemVkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChsb2FkZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChsb2FkZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5sb2FkQ29uZmlnKFt0aGlzLnRyYW5zYWN0aW9uS2luZF0pLnRoZW4oYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0VHJhbnNhY3Rpb25CeU5yQW5kS2luZCh0aGlzLnRyYW5zYWN0aW9uTnIsIHRoaXMudHJhbnNhY3Rpb25LaW5kKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJlcGFyZUhlYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcmVlbkNvbmZpZ0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50cmFuc2FjdGlvbktpbmQgPT09IFRyYW5zYWN0aW9uS2luZC5DYXNoRGVzaykge1xyXG4gICAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuY29ubmVjdGlvbkluaXRpYWxpemVkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChsb2FkZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChsb2FkZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5sb2FkQ29uZmlnKFt0aGlzLnRyYW5zYWN0aW9uS2luZF0pLnRoZW4oYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50cmFuc2FjdGlvbk5yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0VHJhbnNhY3Rpb25CeU5yQW5kS2luZCh0aGlzLnRyYW5zYWN0aW9uTnIsIHRoaXMudHJhbnNhY3Rpb25LaW5kKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcmVwYXJlSGVhZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuQ29uZmlnTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3ByZXBhcmVIZWFkZXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5SZWxhdGlvbkluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkgJiZcclxuICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLk9yZGVySW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSAmJlxyXG4gICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUGF5bWVudEluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkgJiZcclxuICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLkRlbGl2ZXJ5SW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSkge1xyXG4gICAgICAgICAgICAvLyBub3RoaW5nIHRvIHNlZSBoZXJlXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0hlYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDMUYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDN0csT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXhGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXhGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQTZCbkUsTUFBTSxPQUFPLG9CQUFvQjtJQXNHN0IsWUFDVyxPQUEyQixFQUMxQiw0QkFBeUQsRUFDekQsMkJBQWtFLEVBQ2xFLGVBQWtDLEVBQ2xDLDRCQUF5RCxFQUN6RCxrQkFBcUMsRUFDckMsY0FBNkI7UUFOOUIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDMUIsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE2QjtRQUN6RCxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQXVDO1FBQ2xFLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNsQyxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQTZCO1FBQ3pELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUE1R3pCLGFBQVEsR0FBOEIsa0JBQWtCLENBQUM7UUFHbEUsYUFBUSxHQUFvQixJQUFJLGtCQUFrQixFQUFFLENBQUM7UUF3Q3JELGVBQVUsR0FBWSxJQUFJLENBQUM7UUFHM0Isd0JBQW1CLEdBQVksSUFBSSxDQUFDO1FBR3BDLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBR2hDLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBUzlCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUd0QyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFHbkMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBR3JDLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUUzQyx5Q0FBeUM7UUFFbEMscUJBQWdCLEdBQXdELElBQUksWUFBWSxFQUF5QyxDQUFDO1FBb0JsSSx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFLbkMsY0FBUyxHQUFZLEtBQUssQ0FBQztJQVduQyxDQUFDO0lBekdELElBQ1csc0JBQXNCLENBQUMsS0FBYTtRQUMzQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDNUYsQ0FBQztJQUVELElBQVcsc0JBQXNCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQ3hDLENBQUM7SUFLRCxJQUNXLGVBQWUsQ0FBQyxLQUFzQjtRQUM3QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxLQUFLLEVBQUU7WUFDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztZQUM5QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUNXLGFBQWEsQ0FBQyxLQUFhO1FBQ2xDLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxLQUFLLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFDNUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQXNDTSxTQUFTO1FBQ1osT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUdNLGdCQUFnQjtRQUNuQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFHTSxhQUFhO1FBQ2hCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRTtZQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQW9CRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFO1lBQzdELElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDdkM7SUFDTCxDQUFDO0lBRU8sc0JBQXNCO1FBQzFCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU8sZUFBZTtRQUNuQixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUM1QyxJQUFJLENBQUMsNEJBQTRCLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQWUsRUFBRSxFQUFFO2dCQUNoRyxJQUFJLE1BQU0sRUFBRTtvQkFDUixJQUFJLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQVMsRUFBRTt3QkFDaEYsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO3dCQUN2RixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7d0JBQ3RCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7b0JBQ25DLENBQUMsQ0FBQSxDQUFDLENBQUM7aUJBQ047WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLGVBQWUsQ0FBQyxRQUFRLEVBQUU7WUFDMUQsSUFBSSxDQUFDLDRCQUE0QixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFlLEVBQUUsRUFBRTtnQkFDaEcsSUFBSSxNQUFNLEVBQUU7b0JBQ1IsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFTLEVBQUU7d0JBQ2hGLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTs0QkFDcEIsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO3lCQUMxRjt3QkFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7d0JBQ3RCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7b0JBQ25DLENBQUMsQ0FBQSxDQUFDLENBQUM7aUJBQ047WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVPLGNBQWM7UUFDbEIsSUFBSSxJQUFJLENBQUMsMkJBQTJCLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLGlCQUFpQixFQUFFO1lBQ2hILElBQUksQ0FBQywyQkFBMkIsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLGlCQUFpQixFQUFFO1lBQzdHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUMsaUJBQWlCLEVBQUU7WUFDL0csSUFBSSxDQUFDLDJCQUEyQixDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO1lBQ2xILHNCQUFzQjtZQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNMLENBQUM7OztZQXhMSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBbUJUO2dCQUNELFNBQVMsRUFBRTtvQkFDUCxFQUFDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxXQUFXLEVBQUUscUNBQXFDLEVBQUM7aUJBQy9GO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDOzs7WUFuQ08sa0JBQWtCO1lBRWxCLDJCQUEyQjtZQUozQixxQ0FBcUM7WUFmekMsaUJBQWlCO1lBcUJiLDJCQUEyQjtZQUczQixpQkFBaUI7WUFEakIsYUFBYTs7O3VCQWlDaEIsS0FBSztxQ0FHTCxLQUFLOzJCQVVMLEtBQUs7OEJBR0wsS0FBSzs0QkFZTCxLQUFLO3lCQVlMLEtBQUs7a0NBR0wsS0FBSzs4QkFHTCxLQUFLOzRCQUdMLEtBQUs7MkJBR0wsS0FBSzs2QkFHTCxLQUFLO21DQUdMLEtBQUs7Z0NBR0wsS0FBSztrQ0FHTCxLQUFLO2lDQUdMLEtBQUs7K0JBSUwsTUFBTTt3QkFJUixXQUFXLFNBQUMsc0JBQXNCOytCQUtoQyxZQUFZLFNBQUMscUJBQXFCOzRCQUtsQyxZQUFZLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gJy4uLy4uL21vZGVsL3JlbGF0aW9uLWFueS10eXBlJztcclxuaW1wb3J0IHtDdXN0b21lckZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge3Rha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25DZmdOYW1lfSBmcm9tICcuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLWNmZy1uYW1lLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7UG9zT3JkZXJEYXRhfSBmcm9tICcuLi8uLi9tb2RlbC9wb3Mtb3JkZXItZGF0YSc7XHJcbmltcG9ydCB7UHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3B1cmNoYXNlLWNvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtTYWZlSHRtbH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbicsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxjby1zYXZlLWNhbmNlbC1idXR0b25zICpuZ0lmPVwic2VydmljZS5tYW51YWxTYXZlUGFyYW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzYXZlSWNvbkRhdGFdPVwic2F2ZUljb25EYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FuY2VsSWNvbkRhdGFdPVwiY2FuY2VsSWNvbkRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93TGFiZWxzXT1cInNob3dTYXZlQ2FuY2VsTGFiZWxzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW92YWJsZV09XCJzYXZlQ2FuY2VsTW92YWJsZVwiXHJcbiAgICAgICAgPjwvY28tc2F2ZS1jYW5jZWwtYnV0dG9ucz5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24taW50ZXJuYWwgKm5nSWY9XCJzY3JlZW5Db25maWdMb2FkZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93SGVhZGVyXT1cInNob3dIZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1F1aWNrQWNjZXNzXT1cInNob3dRdWlja0FjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93QnV0dG9uQmFyXT1cInNob3dCdXR0b25CYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1ZpZXdNb2RlQnV0dG9uc109XCJzaG93Vmlld01vZGVCdXR0b25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpcm1hdGlvbkFuYWx5c2lzSWRdPVwiY29uZmlybWF0aW9uQW5hbHlzaXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwb3NPcmRlckRhdGFdPVwicG9zT3JkZXJEYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uUGxhbm5pbmddPVwidHJhbnNhY3Rpb25QbGFubmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjYXNoUmVnaXN0ZXJzRGlydHldID0gY2FzaFJlZ2lzdGVyc0RpcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXJ2aWNlUmVxdWVzdGVkKT1cInRoaXMuc2VydmljZVJlcXVlc3RlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWludGVybmFsPlxyXG4gICAgYCxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtwcm92aWRlOiBCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZSwgdXNlRXhpc3Rpbmc6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9XHJcbiAgICBdLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGNmZ05hbWVzOiB0eXBlb2YgVHJhbnNhY3Rpb25DZmdOYW1lID0gVHJhbnNhY3Rpb25DZmdOYW1lO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSA9IG5ldyBDdXN0b21lckZ1bGxPYmplY3QoKTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBjb25maXJtYXRpb25BbmFseXNpc0lkKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9jb25maXJtYXRpb25BbmFseXNpc0lkID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5fcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm1hdGlvbkFuYWx5c2lzSWQgPSB0aGlzLl9jb25maXJtYXRpb25BbmFseXNpc0lkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgY29uZmlybWF0aW9uQW5hbHlzaXNJZCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maXJtYXRpb25BbmFseXNpc0lkO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcG9zT3JkZXJEYXRhOiBQb3NPcmRlckRhdGE7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdHJhbnNhY3Rpb25LaW5kKHZhbHVlOiBUcmFuc2FjdGlvbktpbmQpIHtcclxuICAgICAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb25LaW5kICE9PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbktpbmQgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5fZ2V0VHJhbnNhY3Rpb24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0cmFuc2FjdGlvbktpbmQoKTogVHJhbnNhY3Rpb25LaW5kIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25LaW5kO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uTnIodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbk5yICE9PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbk5yID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2dldFRyYW5zYWN0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb25OcigpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbk5yO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd0hlYWRlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93Vmlld01vZGVCdXR0b25zOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dRdWlja0FjY2VzczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93QnV0dG9uQmFyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNhdmVJY29uRGF0YTogU2FmZUh0bWw7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjYW5jZWxJY29uRGF0YTogU2FmZUh0bWw7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93U2F2ZUNhbmNlbExhYmVsczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2F2ZUNhbmNlbE1vdmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uUGxhbm5pbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGNhc2hSZWdpc3RlcnNEaXJ0eTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8vVGhpcyBvdXRwdXQgZXhpc3RzIGZvciBidW5kbGUgcHVycG9zZXMuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBzZXJ2aWNlUmVxdWVzdGVkOiBFdmVudEVtaXR0ZXI8e3RyYW5zYWN0aW9uOiBudW1iZXIsIGxpbmVOcjogbnVtYmVyfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHt0cmFuc2FjdGlvbjogbnVtYmVyLCBsaW5lTnI6IG51bWJlcn0+KCk7XHJcblxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uJylcclxuICAgIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OmJlZm9yZXVubG9hZCcpXHJcbiAgICBwdWJsaWMgY2hlY2tUcmFuc2FjdGlvbigpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jaGVja1RyYW5zYWN0aW9uRGlydHkoKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6dW5sb2FkJylcclxuICAgIHB1YmxpYyBjaGVja1JvbGxCYWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnNlcnZpY2UudHJhbnNhY3Rpb25EaXJ0eSAmJiB0aGlzLnNlcnZpY2UubWFudWFsU2F2ZVBhcmFtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5yb2xsYmFja0JlYWNvbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2NyZWVuQ29uZmlnTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfY29uZmlybWF0aW9uQW5hbHlzaXNJZDogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25LaW5kOiBUcmFuc2FjdGlvbktpbmQ7XHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbk5yOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9mZXRjaGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlOiBUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZTogUHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgnY29uZmlybWF0aW9uQW5hbHlzaXNJZCcpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jaGVja1RyYW5zYWN0aW9uRGlydHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEodGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uRGlydHkgJiYgdGhpcy5zZXJ2aWNlLm1hbnVhbFNhdmVQYXJhbSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0VHJhbnNhY3Rpb24oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb25LaW5kICYmIHRoaXMudHJhbnNhY3Rpb25Ocikge1xyXG4gICAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuY29ubmVjdGlvbkluaXRpYWxpemVkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChsb2FkZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChsb2FkZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5sb2FkQ29uZmlnKFt0aGlzLnRyYW5zYWN0aW9uS2luZF0pLnRoZW4oYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0VHJhbnNhY3Rpb25CeU5yQW5kS2luZCh0aGlzLnRyYW5zYWN0aW9uTnIsIHRoaXMudHJhbnNhY3Rpb25LaW5kKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJlcGFyZUhlYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcmVlbkNvbmZpZ0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50cmFuc2FjdGlvbktpbmQgPT09IFRyYW5zYWN0aW9uS2luZC5DYXNoRGVzaykge1xyXG4gICAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuY29ubmVjdGlvbkluaXRpYWxpemVkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChsb2FkZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChsb2FkZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5sb2FkQ29uZmlnKFt0aGlzLnRyYW5zYWN0aW9uS2luZF0pLnRoZW4oYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50cmFuc2FjdGlvbk5yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0VHJhbnNhY3Rpb25CeU5yQW5kS2luZCh0aGlzLnRyYW5zYWN0aW9uTnIsIHRoaXMudHJhbnNhY3Rpb25LaW5kKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcmVwYXJlSGVhZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuQ29uZmlnTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3ByZXBhcmVIZWFkZXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5SZWxhdGlvbkluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkgJiZcclxuICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLk9yZGVySW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSAmJlxyXG4gICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUGF5bWVudEluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkgJiZcclxuICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLkRlbGl2ZXJ5SW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSkge1xyXG4gICAgICAgICAgICAvLyBub3RoaW5nIHRvIHNlZSBoZXJlXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0hlYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
package/esm2015/lib/component/transaction-create-wizard/transaction-create-wizard.component.js
CHANGED
|
@@ -18,6 +18,8 @@ export class TransactionCreateWizardComponent {
|
|
|
18
18
|
this.transactionType = TransactionKind.ServiceOrder;
|
|
19
19
|
this.noLockOnCustomerSet = false;
|
|
20
20
|
this._externallyProvidedTransaction = null;
|
|
21
|
+
//for bundle puroses where an new, non transaction based, service should always start with the customer already set
|
|
22
|
+
this._externallyProvidedCustomer = null;
|
|
21
23
|
}
|
|
22
24
|
set externallyProvidedTransaction(transaction) {
|
|
23
25
|
this._externallyProvidedTransaction = transaction;
|
|
@@ -25,6 +27,9 @@ export class TransactionCreateWizardComponent {
|
|
|
25
27
|
set externallyProvidedLineNr(lineNr) {
|
|
26
28
|
this._externallyProvidedLineNr = lineNr;
|
|
27
29
|
}
|
|
30
|
+
set externallyProvidedCustomer(customer) {
|
|
31
|
+
this._externallyProvidedCustomer = customer;
|
|
32
|
+
}
|
|
28
33
|
showClass() {
|
|
29
34
|
return true;
|
|
30
35
|
}
|
|
@@ -33,7 +38,7 @@ export class TransactionCreateWizardComponent {
|
|
|
33
38
|
yield this.transactionScreenConfigurationService.loadConfig(['S']);
|
|
34
39
|
this.createService.transactionKind = this.transactionType;
|
|
35
40
|
this.createService.createNewRelation();
|
|
36
|
-
this.
|
|
41
|
+
this._processExternalSettings();
|
|
37
42
|
});
|
|
38
43
|
}
|
|
39
44
|
handleRelationValidation() {
|
|
@@ -142,7 +147,7 @@ export class TransactionCreateWizardComponent {
|
|
|
142
147
|
return valid;
|
|
143
148
|
});
|
|
144
149
|
}
|
|
145
|
-
|
|
150
|
+
_processExternalSettings() {
|
|
146
151
|
return __awaiter(this, void 0, void 0, function* () {
|
|
147
152
|
if (this._externallyProvidedTransaction && !isNaN(this._externallyProvidedLineNr)) {
|
|
148
153
|
//fetch relation and create needed transaction first.
|
|
@@ -161,6 +166,11 @@ export class TransactionCreateWizardComponent {
|
|
|
161
166
|
this.stepper.openToIndex(3);
|
|
162
167
|
}
|
|
163
168
|
}
|
|
169
|
+
else if (this._externallyProvidedCustomer) {
|
|
170
|
+
this.noLockOnCustomerSet = true;
|
|
171
|
+
this.createService.relation = this._externallyProvidedCustomer;
|
|
172
|
+
this.stepper.openToIndex(2);
|
|
173
|
+
}
|
|
164
174
|
});
|
|
165
175
|
}
|
|
166
176
|
}
|
|
@@ -215,7 +225,8 @@ TransactionCreateWizardComponent.propDecorators = {
|
|
|
215
225
|
serviceFieldsSection: [{ type: ViewChild, args: ["serviceFieldsSection",] }],
|
|
216
226
|
externallyProvidedTransaction: [{ type: Input }],
|
|
217
227
|
externallyProvidedLineNr: [{ type: Input }],
|
|
228
|
+
externallyProvidedCustomer: [{ type: Input }],
|
|
218
229
|
transactionFinished: [{ type: Output }],
|
|
219
230
|
showClass: [{ type: HostBinding, args: ["class.co-transaction-create-wizard",] }]
|
|
220
231
|
};
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tY3JlYXRlLXdpemFyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1jcmVhdGUtd2l6YXJkL3RyYW5zYWN0aW9uLWNyZWF0ZS13aXphcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBSzFGLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzdHLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBV2xGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBQzFHLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBSXRGLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQW1DMUMsTUFBTSxPQUFPLGdDQUFnQztJQTBEM0MsWUFBbUIsYUFBdUMsRUFDdkMsZUFBMkMsRUFDM0MscUNBQTRFO1FBRjVFLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBNEI7UUFDM0MsMENBQXFDLEdBQXJDLHFDQUFxQyxDQUF1QztRQTNEL0UsY0FBUyxHQUEyQixlQUFlLENBQUM7UUFDcEQsU0FBSSxHQUFnQixJQUFJLENBQUM7UUF5Q2xDLHdCQUFtQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTlFLDBGQUEwRjtRQUNuRixvQkFBZSxHQUFvQixlQUFlLENBQUMsWUFB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UyxTQUFDLG9CQUFvQjtnQ0FHOUIsU0FBUyxTQUFDLG1CQUFtQjs0QkFHN0IsU0FBUyxTQUFDLGVBQWU7dUNBR3pCLFNBQVMsU0FBQywwQkFBMEI7bUNBR3BDLFNBQVMsU0FBQyxzQkFBc0I7NENBRWhDLEtBQUs7dUNBTUwsS0FBSztrQ0FNTCxNQUFNO3dCQU9OLFdBQVcsU0FBQyxvQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7UmVsYXRpb25LaW5kfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvZW51bS9yZWxhdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBSZWxhdGlvbkNvbXBvbmVudFxyXG59IGZyb20gXCIuLi90cmFuc2FjdGlvbi1oZWFkZXIvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwL3RyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1yZWxhdGlvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25DcmVhdGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jcmVhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBDcmVhdGVTZXJ2aWNlQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWNyZWF0ZS1zZXJ2aWNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBTZXJ2aWNlV2l6YXJkQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlcnZpY2Utd2l6YXJkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBTZXJ2aWNlRmllbGRzQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlcnZpY2UtZmllbGRzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1N0ZXBwZXJTdGVwQ29tcG9uZW50fSBmcm9tIFwiLi4vc3RlcHBlci1zdGVwL3N0ZXBwZXItc3RlcC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXJlbGF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTaW1wbGVWZXJ0aWNhbFN0ZXBwZXJDb21wb25lbnR9IGZyb20gXCIuLi9zaW1wbGUtdmVydGljYWwtc3RlcHBlci9jby1zaW1wbGUtdmVydGljYWwtc3RlcHBlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtSZWxhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi5ib1wiO1xyXG5pbXBvcnQge0FkZHJlc3N9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvYWRkcmVzcy5ib1wiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge1FhUmVzdWx0fSBmcm9tIFwiLi4vc2VydmljZS13aXphcmQtcWEvcXVlc3Rpb24tYW5zd2VyLWl0ZW0vcXVlc3Rpb24tYW5zd2VyLWl0ZW0uY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1jcmVhdGUtd2l6YXJkXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby1jbGljay1ibG9jaz48L2NvLWNsaWNrLWJsb2NrPlxyXG4gICAgPGNvLXNpbXBsZS12ZXJ0aWNhbC1zdGVwcGVyIFtzdGVwQnV0dG9uTGFiZWxzXT1cIlsnVm9sZ2VuZGUnLCAnVm9sZ2VuZGUnLCAnVm9sZ2VuZGUnLCAnVm9sZ2VuZGUnLCAnQWZyb25kZW4nXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3N0ZXBwZXIgW3RpdGxlSWNvbl09XCJJY29uLlNlcnZpY2VDYXJ0UmVndWxhclwiIFt0aXRsZV09XCInQ1JFQVRFX1NFUlZJQ0UnIHwgbG9jYWxpemVcIiBbZG9Ob3RTaG93T0tPblN0ZXBzXT1cIlszXVwiPlxyXG4gICAgICA8Y28tc3RlcHBlci1zdGVwICAjc3RlcFJlbGF0aW9uU2VjdGlvbiBbaW5kZXhdPVwiMVwiIFtsYWJlbF09XCInUEVSU09OQUxfREFUQScgfCBsb2NhbGl6ZVwiICh2YWxpZGF0ZVN0ZXApPVwiaGFuZGxlUmVsYXRpb25WYWxpZGF0aW9uKClcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXJlbGF0aW9uICNyZWxhdGlvblNlY3Rpb24gW25vTG9ja09uQ3VzdG9tZXJTZXRdPVwibm9Mb2NrT25DdXN0b21lclNldFwiIFtmb3JjZVJlYWRvbmx5XT1cIm5vTG9ja09uQ3VzdG9tZXJTZXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdGVwUmVsYXRpb25TZWN0aW9uLnNob3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXRlZ29yeS1jb250ZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVsYXRpb24pXT1cImNyZWF0ZVNlcnZpY2UucmVsYXRpb25cIiAoY2hhbmdlQ3VzdG9tZXJSZXF1ZXN0ZWQpPVwicmVzZXRXaXphcmQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9yY2VSZWFkb25seV09XCIoY3JlYXRlU2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQgIT09IHVuZGVmaW5lZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dJbnZvaWNlQWRkcmVzc109XCJmYWxzZVwiIFtzaG93UHJpdmFjeV09XCJmYWxzZVwiIFtzaG93TWVzc2FnZUZvckNoYW5nZUN1c3RvbWVyXT1cInRydWVcIlxyXG4gICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1yZWxhdGlvbj5cclxuICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgIDxjby1zdGVwcGVyLXN0ZXAgICNzdGVwVHJhbnNhY3Rpb25TZWN0aW9uIFtpbmRleF09XCIyXCIgW2xhYmVsXT1cIidIT1dfVE9fQ1JFQVRFX1NFUlZJQ0UnIHwgbG9jYWxpemVcIiAodmFsaWRhdGVTdGVwKT1cImhhbmRsZVRyYW5zYWN0aW9uVmFsaWRhdGlvbigpXCI+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1jcmVhdGUtc2VydmljZSAjdHJhbnNhY3Rpb25TZWN0aW9uIFtyZWxhdGlvbl09XCJjcmVhdGVTZXJ2aWNlLnJlbGF0aW9uXCIgW2ZvcmNlUmVhZG9ubHldPVwiKGNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkICE9PSB1bmRlZmluZWQpXCI+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtY3JlYXRlLXNlcnZpY2U+XHJcbiAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICA8Y28tc3RlcHBlci1zdGVwICAjc3RlcFdpemFyZFNlY3Rpb24gW2luZGV4XT1cIjNcIiBbbGFiZWxdPVwiJ1NFUlZJQ0VfV0laQVJEJyB8IGxvY2FsaXplXCIgKHZhbGlkYXRlU3RlcCk9XCJoYW5kbGVXaXphcmRWYWxpZGF0aW9uKClcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlcnZpY2Utd2l6YXJkICN3aXphcmRTZWN0aW9uICh3aXphcmRGaW5pc2hlZCk9XCJ3aXphcmRGaW5pc2hlZCgpXCIgKHNraXBXaXphcmQpPVwic2tpcFdpemFyZCgpXCI+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VydmljZS13aXphcmQ+XHJcbiAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICA8Y28tc3RlcHBlci1zdGVwICNzdGVwU2VydmljZUZpZWxkc1NlY3Rpb24gW2luZGV4XT1cIjRcIiBbbGFiZWxdPVwiJ1NFUlZJQ0VfSU5GTycgfCBsb2NhbGl6ZVwiICh2YWxpZGF0ZVN0ZXApPVwiaGFuZGxlU2VydmljZUluZm9WYWxpZGF0aW9uKClcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlcnZpY2UtZmllbGRzICNzZXJ2aWNlRmllbGRzU2VjdGlvbj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZXJ2aWNlLWZpZWxkcz5cclxuICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgIDxjby1zdGVwcGVyLXN0ZXAgIFtpbmRleF09XCI1XCIgW2xhYmVsXT1cIidGSU5JU0gnIHwgbG9jYWxpemVcIj5cclxuICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICA8L2NvLXNpbXBsZS12ZXJ0aWNhbC1zdGVwcGVyPlxyXG5cclxuICBgLFxyXG4gIHByb3ZpZGVyczpbVHJhbnNhY3Rpb25DcmVhdGVTZXJ2aWNlXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkNyZWF0ZVdpemFyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zS2luZDogdHlwZW9mIFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZDtcclxuICBwdWJsaWMgcmVhZG9ubHkgSWNvbjogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcHBlclwiKVxyXG4gIHB1YmxpYyBzdGVwcGVyOiBTaW1wbGVWZXJ0aWNhbFN0ZXBwZXJDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwUmVsYXRpb25TZWN0aW9uXCIpXHJcbiAgcHVibGljIHN0ZXBSZWxhdGlvblNlY3Rpb246IFN0ZXBwZXJTdGVwQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwicmVsYXRpb25TZWN0aW9uXCIpXHJcbiAgcHVibGljIHJlbGF0aW9uU2VjdGlvbjogVHJhbnNhY3Rpb25IZWFkZXJQb3B1cFJlbGF0aW9uQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcFRyYW5zYWN0aW9uU2VjdGlvblwiKVxyXG4gIHB1YmxpYyBzdGVwVHJhbnNhY3Rpb25TZWN0aW9uOiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInRyYW5zYWN0aW9uU2VjdGlvblwiKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblNlY3Rpb246IFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBDcmVhdGVTZXJ2aWNlQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcFdpemFyZFNlY3Rpb25cIilcclxuICBwdWJsaWMgc3RlcFdpemFyZFNlY3Rpb246IFN0ZXBwZXJTdGVwQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwid2l6YXJkU2VjdGlvblwiKVxyXG4gIHB1YmxpYyB3aXphcmRTZWN0aW9uOiBUcmFuc2FjdGlvbkhlYWRlclBvcHVwU2VydmljZVdpemFyZENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBTZXJ2aWNlRmllbGRzU2VjdGlvblwiKVxyXG4gIHB1YmxpYyBzdGVwU2VydmljZUZpZWxkc1NlY3Rpb246IFN0ZXBwZXJTdGVwQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic2VydmljZUZpZWxkc1NlY3Rpb25cIilcclxuICBwdWJsaWMgc2VydmljZUZpZWxkc1NlY3Rpb246IFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBTZXJ2aWNlRmllbGRzQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBleHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpXHJcbiAge1xyXG4gICAgdGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBleHRlcm5hbGx5UHJvdmlkZWRMaW5lTnIobGluZU5yOiBudW1iZXIpXHJcbiAge1xyXG4gICAgdGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkTGluZU5yID0gbGluZU5yO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uRmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gIC8vVGhpcyBjYW4gYmUgYW4gaW5wdXQgb25jZSB0aGUgY29tcG9uZW50IGlzIGFkanVzdGVkIHRvIHdvcmsgdG8gY3JlYXRlIG1vcmUgdHJhbnNhY3Rpb25zLlxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZC5TZXJ2aWNlT3JkZXI7XHJcblxyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1jcmVhdGUtd2l6YXJkXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5vTG9ja09uQ3VzdG9tZXJTZXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9leHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UgPSBudWxsO1xyXG4gIHByaXZhdGUgX2V4dGVybmFsbHlQcm92aWRlZExpbmVOcjogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY3JlYXRlU2VydmljZTogVHJhbnNhY3Rpb25DcmVhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyByZWxhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG5cclxuICApIHtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy50cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmxvYWRDb25maWcoWydTJ10pXHJcbiAgICB0aGlzLmNyZWF0ZVNlcnZpY2UudHJhbnNhY3Rpb25LaW5kID0gdGhpcy50cmFuc2FjdGlvblR5cGU7XHJcbiAgICB0aGlzLmNyZWF0ZVNlcnZpY2UuY3JlYXRlTmV3UmVsYXRpb24oKTtcclxuICAgIHRoaXMuX3Byb2Nlc3NFeHRlcm5hbFRyYW5zYWN0aW9uTGluZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVJlbGF0aW9uVmFsaWRhdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB2YWxpZDogYm9vbGVhbiA9IHRoaXMucmVsYXRpb25TZWN0aW9uLnN1Ym1pdCgpO1xyXG4gICAgaWYgKHZhbGlkKSB7XHJcbiAgICAgIHRoaXMuc3RlcFJlbGF0aW9uU2VjdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2Uuc2F2ZVJlbGF0aW9uKHRydWUsIGZhbHNlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWxpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVUcmFuc2FjdGlvblZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmKCF0aGlzLmNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkKSB7XHJcbiAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jcmVhdGVWaWFUcmFuc0xpbmUpIHtcclxuICAgICAgICBpZih0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5leGlzdGluZ1RyYW5zYWN0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhUcmFuc2FjdGlvbkxpbmUoTnVtYmVyKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmV4aXN0aW5nVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKSwgTnVtYmVyKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmV4aXN0aW5nVHJhbnNhY3Rpb25MaW5lLmxpbmVOcikpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY2hvc2VuVHJhbnNhY3Rpb25MaW5lKSB7XHJcbiAgICAgICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhUcmFuc2FjdGlvbkxpbmUodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY2hvc2VuVHJhbnNhY3Rpb25MaW5lLnRyYW5zYWN0aW9uSWQsIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNob3NlblRyYW5zYWN0aW9uTGluZS5saW5lTnVtYmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY3JlYXRlVmlhUHJvZHVjdCkgIHtcclxuICAgICAgICB2YWxpZCA9IGF3YWl0IHRoaXMuX3ZhbGlkYXRlRm9yQXJ0aWNsZVRyYW5zYWN0aW9uKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY3JlYXRlVmlhT2xkVHJhbnMpIHtcclxuICAgICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gIGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5jcmVhdGVTZXJ2aWNlT3JkZXJXaXRoU291cmNlT3JkZXJOckFuZEFydGljbGVEZXNjcmlwdGlvbih0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5vbGRPcmRlcklkLCB0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5vbGRHb29kSWQpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YWxpZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc3RlcFRyYW5zYWN0aW9uU2VjdGlvbi5jb21wbGV0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbGlkXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlV2l6YXJkVmFsaWRhdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB2YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMud2l6YXJkU2VjdGlvbi5nZXRRdWFSZXN1bHQoKS5sZW5ndGggIT0gMCkge1xyXG4gICAgICB2YWxpZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc3RlcFdpemFyZFNlY3Rpb24uY29tcGxldGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWxpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTZXJ2aWNlSW5mb1ZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICAvL1RPRE8gYWRkIHByb3BlciB2YWxpZGF0aW9uIGhlcmUgc2hvdWxkIHRoYXQgYmUgbmVjZXNzYXJ5XHJcbiAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgaWYodmFsaWQgJiYgdGhpcy5jcmVhdGVTZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCkge1xyXG4gICAgICB0aGlzLnN0ZXBTZXJ2aWNlRmllbGRzU2VjdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2UudXBkYXRlU2VydmljZUhlYWRlclJlcG9ydE1lc3NhZ2UodGhpcy5zZXJ2aWNlRmllbGRzU2VjdGlvbi5zZXJ2aWNlTWVzc2FnZSwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2Uuc2F2ZVRyYW5zYWN0aW9uKCk7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRmluaXNoZWQubmV4dCh0aGlzLmNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbk5yKTtcclxuICAgIHJldHVybiB2YWxpZDtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgYXN5bmMgd2l6YXJkRmluaXNoZWQoKTogIFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHFhUmVzdWx0OiBRYVJlc3VsdFtdID0gdGhpcy53aXphcmRTZWN0aW9uLmdldFF1YVJlc3VsdCgpO1xyXG4gICAgaWYgKHFhUmVzdWx0ICYmIHFhUmVzdWx0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IHFhVGV4dDogc3RyaW5nID0gXCJcIjtcclxuICAgICAgbGV0IHFhQ2F1c2VDb2RlOiBzdHJpbmc7XHJcbiAgICAgIGxldCBxYVNlcnZpY2VUeXBlOiBzdHJpbmc7XHJcbiAgICAgIHFhUmVzdWx0LmZvckVhY2gocWEgPT4ge1xyXG4gICAgICAgIGlmIChxYS5jYXVzZUNvZGUgIT0gbnVsbCAmJiBxYS5jYXVzZUNvZGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBxYUNhdXNlQ29kZSA9IHFhLmNhdXNlQ29kZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHFhLnNlcnZpY2VUeXBlICE9IG51bGwgJiYgcWEuc2VydmljZVR5cGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBxYVNlcnZpY2VUeXBlID0gcWEuc2VydmljZVR5cGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHFhVGV4dCArPSAocWEucXVlc3Rpb25UZXh0ICsgXCJcXG5cIik7XHJcbiAgICAgICAgcWFUZXh0ICs9IChxYS5hbnN3ZXJUZXh0ICsgXCJcXG5cIik7XHJcbiAgICAgIH0pXHJcbiAgICAgIGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS51cGRhdGVTZXJ2aWNlSGVhZGVyV2l6YXJkRGF0YShxYUNhdXNlQ29kZSwgcWFTZXJ2aWNlVHlwZSwgcWFUZXh0LCB0cnVlKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RlcHBlci5jb250aW51ZVJlcXVlc3RlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNraXBXaXphcmQoKTogIFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5zdGVwcGVyLnNraXBTdGVwcyA9IFszXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXNldFdpemFyZCgpOiB2b2lkIHtcclxuICAgIHRoaXMubm9Mb2NrT25DdXN0b21lclNldCA9IHRydWU7XHJcbiAgICB0aGlzLmNyZWF0ZVNlcnZpY2UuY3JlYXRlTmV3UmVsYXRpb24oKTtcclxuICAgIHRoaXMuY3JlYXRlU2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UoKTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNsZWFyKCk7XHJcbiAgICB0aGlzLnN0ZXBwZXIub3BlblRvSW5kZXgoMSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF92YWxpZGF0ZUZvckFydGljbGVUcmFuc2FjdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB2YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNob3NlbkFydGljbGUpIHtcclxuICAgICAgdmFsaWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhTb3VyY2VHb29kKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNob3NlbkFydGljbGUuZ29vZElkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc3RlcFRyYW5zYWN0aW9uU2VjdGlvbi5jb21wbGV0ZWRcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlY3Rpb24uc2hvd0NhdGFsb2dQb3B1cCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsaWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9wcm9jZXNzRXh0ZXJuYWxUcmFuc2FjdGlvbkxpbmUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZih0aGlzLl9leHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbiAmJiAhaXNOYU4odGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkTGluZU5yKSkge1xyXG4gICAgICAvL2ZldGNoIHJlbGF0aW9uIGFuZCBjcmVhdGUgbmVlZGVkIHRyYW5zYWN0aW9uIGZpcnN0LlxyXG4gICAgICB0aGlzLm5vTG9ja09uQ3VzdG9tZXJTZXQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmNyZWF0ZVNlcnZpY2UucmVsYXRpb24gPSBhd2FpdCB0aGlzLnJlbGF0aW9uU2VydmljZS5nZXRDdXN0b21lckZ1bGxPYmplY3QocGFyc2VJbnQodGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnJlbGF0aW9uLnJlbGF0aW9uTnIpKTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlY3Rpb24uZXhpc3RpbmdUcmFuc2FjdGlvbiA9ICB0aGlzLl9leHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbjtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlY3Rpb24uZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmUgPSAgdGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcy5maW5kKGwgPT4gbC5saW5lTnIgPT09IHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZExpbmVOcik7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNyZWF0ZU9yZGVyV2l0aFRyYW5zYWN0aW9uTGluZUNsaWNrZWQoZmFsc2UpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5idXR0b25zVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNyZWF0ZVNlcnZpY2UucmVsYXRpb24gPSBhd2FpdCB0aGlzLnJlbGF0aW9uU2VydmljZS5nZXRDdXN0b21lckZ1bGxPYmplY3QocGFyc2VJbnQodGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnJlbGF0aW9uLnJlbGF0aW9uTnIpKTtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5jcmVhdGVTZXJ2aWNlT3JkZXJXaXRoVHJhbnNhY3Rpb25MaW5lKE51bWJlcih0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5leGlzdGluZ1RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCksIE51bWJlcih0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5leGlzdGluZ1RyYW5zYWN0aW9uTGluZS5saW5lTnIpKTtcclxuICAgICAgaWYodGhpcy5zdGVwcGVyLnNraXBTdGVwcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5zdGVwcGVyLm9wZW5Ub0luZGV4KDQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc3RlcHBlci5vcGVuVG9JbmRleCgzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tY3JlYXRlLXdpemFyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1jcmVhdGUtd2l6YXJkL3RyYW5zYWN0aW9uLWNyZWF0ZS13aXphcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBSTFGLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzdHLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBV2xGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBQzFHLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBRXRGLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQW9DMUMsTUFBTSxPQUFPLGdDQUFnQztJQW1FM0MsWUFBbUIsYUFBdUMsRUFDdkMsZUFBMkMsRUFDM0MscUNBQTRFO1FBRjVFLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBNEI7UUFDM0MsMENBQXFDLEdBQXJDLHFDQUFxQyxDQUF1QztRQXBFL0UsY0FBUyxHQUEyQixlQUFlLENBQUM7UUFDcEQsU0FBSSxHQUFnQixJQUFJLENBQUM7UUFnRGxDLHdCQUFtQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTlFLDBGQUEwRjtRQUNuRixvQkFBZSxHQUFvQixlQUFlLENBQUMsWUFB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WUF2T0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw4QkFBOEI7Z0JBQ3hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQlQ7Z0JBQ0QsU0FBUyxFQUFDLENBQUMsd0JBQXdCLENBQUM7Z0JBQ3BDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUFqRE8sd0JBQXdCO1lBWXhCLDBCQUEwQjtZQWIxQixxQ0FBcUM7OztzQkF1RDFDLFNBQVMsU0FBQyxTQUFTO2tDQUduQixTQUFTLFNBQUMscUJBQXFCOzhCQUcvQixTQUFTLFNBQUMsaUJBQWlCO3FDQUczQixTQUFTLFNBQUMsd0JBQXdCO2lDQUdsQyxTQUFTLFNBQUMsb0JBQW9CO2dDQUc5QixTQUFTLFNBQUMsbUJBQW1COzRCQUc3QixTQUFTLFNBQUMsZUFBZTt1Q0FHekIsU0FBUyxTQUFDLDBCQUEwQjttQ0FHcEMsU0FBUyxTQUFDLHNCQUFzQjs0Q0FFaEMsS0FBSzt1Q0FNTCxLQUFLO3lDQU1MLEtBQUs7a0NBT0wsTUFBTTt3QkFPTixXQUFXLFNBQUMsb0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBSZWxhdGlvbkNvbXBvbmVudFxyXG59IGZyb20gXCIuLi90cmFuc2FjdGlvbi1oZWFkZXIvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwL3RyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1yZWxhdGlvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25DcmVhdGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jcmVhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBDcmVhdGVTZXJ2aWNlQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWNyZWF0ZS1zZXJ2aWNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBTZXJ2aWNlV2l6YXJkQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlcnZpY2Utd2l6YXJkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBTZXJ2aWNlRmllbGRzQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlcnZpY2UtZmllbGRzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1N0ZXBwZXJTdGVwQ29tcG9uZW50fSBmcm9tIFwiLi4vc3RlcHBlci1zdGVwL3N0ZXBwZXItc3RlcC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXJlbGF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTaW1wbGVWZXJ0aWNhbFN0ZXBwZXJDb21wb25lbnR9IGZyb20gXCIuLi9zaW1wbGUtdmVydGljYWwtc3RlcHBlci9jby1zaW1wbGUtdmVydGljYWwtc3RlcHBlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtRYVJlc3VsdH0gZnJvbSBcIi4uL3NlcnZpY2Utd2l6YXJkLXFhL3F1ZXN0aW9uLWFuc3dlci1pdGVtL3F1ZXN0aW9uLWFuc3dlci1pdGVtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0N1c3RvbWVyRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ib1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tY3JlYXRlLXdpemFyZFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tY2xpY2stYmxvY2s+PC9jby1jbGljay1ibG9jaz5cclxuICAgIDxjby1zaW1wbGUtdmVydGljYWwtc3RlcHBlciBbc3RlcEJ1dHRvbkxhYmVsc109XCJbJ1ZvbGdlbmRlJywgJ1ZvbGdlbmRlJywgJ1ZvbGdlbmRlJywgJ1ZvbGdlbmRlJywgJ0Fmcm9uZGVuJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNzdGVwcGVyIFt0aXRsZUljb25dPVwiSWNvbi5TZXJ2aWNlQ2FydFJlZ3VsYXJcIiBbdGl0bGVdPVwiJ0NSRUFURV9TRVJWSUNFJyB8IGxvY2FsaXplXCIgW2RvTm90U2hvd09LT25TdGVwc109XCJbM11cIj5cclxuICAgICAgPGNvLXN0ZXBwZXItc3RlcCAgI3N0ZXBSZWxhdGlvblNlY3Rpb24gW2luZGV4XT1cIjFcIiBbbGFiZWxdPVwiJ1BFUlNPTkFMX0RBVEEnIHwgbG9jYWxpemVcIiAodmFsaWRhdGVTdGVwKT1cImhhbmRsZVJlbGF0aW9uVmFsaWRhdGlvbigpXCI+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1yZWxhdGlvbiAjcmVsYXRpb25TZWN0aW9uIFtub0xvY2tPbkN1c3RvbWVyU2V0XT1cIm5vTG9ja09uQ3VzdG9tZXJTZXRcIiBbZm9yY2VSZWFkb25seV09XCJub0xvY2tPbkN1c3RvbWVyU2V0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3RlcFJlbGF0aW9uU2VjdGlvbi5zaG93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2F0ZWdvcnktY29udGVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJjcmVhdGVTZXJ2aWNlLnJlbGF0aW9uXCIgKGNoYW5nZUN1c3RvbWVyUmVxdWVzdGVkKT1cInJlc2V0V2l6YXJkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZvcmNlUmVhZG9ubHldPVwiKGNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkICE9PSB1bmRlZmluZWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93SW52b2ljZUFkZHJlc3NdPVwiZmFsc2VcIiBbc2hvd1ByaXZhY3ldPVwiZmFsc2VcIiBbc2hvd01lc3NhZ2VGb3JDaGFuZ2VDdXN0b21lcl09XCJ0cnVlXCJcclxuICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtcmVsYXRpb24+XHJcbiAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICA8Y28tc3RlcHBlci1zdGVwICAjc3RlcFRyYW5zYWN0aW9uU2VjdGlvbiBbaW5kZXhdPVwiMlwiIFtsYWJlbF09XCInSE9XX1RPX0NSRUFURV9TRVJWSUNFJyB8IGxvY2FsaXplXCIgKHZhbGlkYXRlU3RlcCk9XCJoYW5kbGVUcmFuc2FjdGlvblZhbGlkYXRpb24oKVwiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtY3JlYXRlLXNlcnZpY2UgI3RyYW5zYWN0aW9uU2VjdGlvbiBbcmVsYXRpb25dPVwiY3JlYXRlU2VydmljZS5yZWxhdGlvblwiIFtmb3JjZVJlYWRvbmx5XT1cIihjcmVhdGVTZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCAhPT0gdW5kZWZpbmVkKVwiPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWNyZWF0ZS1zZXJ2aWNlPlxyXG4gICAgICA8L2NvLXN0ZXBwZXItc3RlcD5cclxuICAgICAgPGNvLXN0ZXBwZXItc3RlcCAgI3N0ZXBXaXphcmRTZWN0aW9uIFtpbmRleF09XCIzXCIgW2xhYmVsXT1cIidTRVJWSUNFX1dJWkFSRCcgfCBsb2NhbGl6ZVwiICh2YWxpZGF0ZVN0ZXApPVwiaGFuZGxlV2l6YXJkVmFsaWRhdGlvbigpXCI+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZXJ2aWNlLXdpemFyZCAjd2l6YXJkU2VjdGlvbiAod2l6YXJkRmluaXNoZWQpPVwid2l6YXJkRmluaXNoZWQoKVwiIChza2lwV2l6YXJkKT1cInNraXBXaXphcmQoKVwiPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlcnZpY2Utd2l6YXJkPlxyXG4gICAgICA8L2NvLXN0ZXBwZXItc3RlcD5cclxuICAgICAgPGNvLXN0ZXBwZXItc3RlcCAjc3RlcFNlcnZpY2VGaWVsZHNTZWN0aW9uIFtpbmRleF09XCI0XCIgW2xhYmVsXT1cIidTRVJWSUNFX0lORk8nIHwgbG9jYWxpemVcIiAodmFsaWRhdGVTdGVwKT1cImhhbmRsZVNlcnZpY2VJbmZvVmFsaWRhdGlvbigpXCI+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZXJ2aWNlLWZpZWxkcyAjc2VydmljZUZpZWxkc1NlY3Rpb24+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VydmljZS1maWVsZHM+XHJcbiAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICA8Y28tc3RlcHBlci1zdGVwICBbaW5kZXhdPVwiNVwiIFtsYWJlbF09XCInRklOSVNIJyB8IGxvY2FsaXplXCI+XHJcbiAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgPC9jby1zaW1wbGUtdmVydGljYWwtc3RlcHBlcj5cclxuXHJcbiAgYCxcclxuICBwcm92aWRlcnM6W1RyYW5zYWN0aW9uQ3JlYXRlU2VydmljZV0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25DcmVhdGVXaXphcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc0tpbmQ6IHR5cGVvZiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQ7XHJcbiAgcHVibGljIHJlYWRvbmx5IEljb246IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBwZXJcIilcclxuICBwdWJsaWMgc3RlcHBlcjogU2ltcGxlVmVydGljYWxTdGVwcGVyQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcFJlbGF0aW9uU2VjdGlvblwiKVxyXG4gIHB1YmxpYyBzdGVwUmVsYXRpb25TZWN0aW9uOiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInJlbGF0aW9uU2VjdGlvblwiKVxyXG4gIHB1YmxpYyByZWxhdGlvblNlY3Rpb246IFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBSZWxhdGlvbkNvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBUcmFuc2FjdGlvblNlY3Rpb25cIilcclxuICBwdWJsaWMgc3RlcFRyYW5zYWN0aW9uU2VjdGlvbjogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJ0cmFuc2FjdGlvblNlY3Rpb25cIilcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25TZWN0aW9uOiBUcmFuc2FjdGlvbkhlYWRlclBvcHVwQ3JlYXRlU2VydmljZUNvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBXaXphcmRTZWN0aW9uXCIpXHJcbiAgcHVibGljIHN0ZXBXaXphcmRTZWN0aW9uOiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcIndpemFyZFNlY3Rpb25cIilcclxuICBwdWJsaWMgd2l6YXJkU2VjdGlvbjogVHJhbnNhY3Rpb25IZWFkZXJQb3B1cFNlcnZpY2VXaXphcmRDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwU2VydmljZUZpZWxkc1NlY3Rpb25cIilcclxuICBwdWJsaWMgc3RlcFNlcnZpY2VGaWVsZHNTZWN0aW9uOiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInNlcnZpY2VGaWVsZHNTZWN0aW9uXCIpXHJcbiAgcHVibGljIHNlcnZpY2VGaWVsZHNTZWN0aW9uOiBUcmFuc2FjdGlvbkhlYWRlclBvcHVwU2VydmljZUZpZWxkc0NvbXBvbmVudDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKVxyXG4gIHtcclxuICAgIHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZFRyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZXh0ZXJuYWxseVByb3ZpZGVkTGluZU5yKGxpbmVOcjogbnVtYmVyKVxyXG4gIHtcclxuICAgIHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZExpbmVOciA9IGxpbmVOcjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBleHRlcm5hbGx5UHJvdmlkZWRDdXN0b21lcihjdXN0b21lcjogQ3VzdG9tZXJGdWxsT2JqZWN0KVxyXG4gIHtcclxuICAgIHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZEN1c3RvbWVyID0gY3VzdG9tZXI7XHJcbiAgfVxyXG5cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uRmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gIC8vVGhpcyBjYW4gYmUgYW4gaW5wdXQgb25jZSB0aGUgY29tcG9uZW50IGlzIGFkanVzdGVkIHRvIHdvcmsgdG8gY3JlYXRlIG1vcmUgdHJhbnNhY3Rpb25zLlxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZC5TZXJ2aWNlT3JkZXI7XHJcblxyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1jcmVhdGUtd2l6YXJkXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5vTG9ja09uQ3VzdG9tZXJTZXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9leHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UgPSBudWxsO1xyXG4gIHByaXZhdGUgX2V4dGVybmFsbHlQcm92aWRlZExpbmVOcjogbnVtYmVyO1xyXG4gIC8vZm9yIGJ1bmRsZSBwdXJvc2VzIHdoZXJlIGFuIG5ldywgbm9uIHRyYW5zYWN0aW9uIGJhc2VkLCBzZXJ2aWNlIHNob3VsZCBhbHdheXMgc3RhcnQgd2l0aCB0aGUgY3VzdG9tZXIgYWxyZWFkeSBzZXRcclxuICBwcml2YXRlIF9leHRlcm5hbGx5UHJvdmlkZWRDdXN0b21lcjogQ3VzdG9tZXJGdWxsT2JqZWN0ID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGNyZWF0ZVNlcnZpY2U6IFRyYW5zYWN0aW9uQ3JlYXRlU2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgcmVsYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblJlbGF0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5sb2FkQ29uZmlnKFsnUyddKVxyXG4gICAgdGhpcy5jcmVhdGVTZXJ2aWNlLnRyYW5zYWN0aW9uS2luZCA9IHRoaXMudHJhbnNhY3Rpb25UeXBlO1xyXG4gICAgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZU5ld1JlbGF0aW9uKCk7XHJcbiAgICB0aGlzLl9wcm9jZXNzRXh0ZXJuYWxTZXR0aW5ncygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVJlbGF0aW9uVmFsaWRhdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB2YWxpZDogYm9vbGVhbiA9IHRoaXMucmVsYXRpb25TZWN0aW9uLnN1Ym1pdCgpO1xyXG4gICAgaWYgKHZhbGlkKSB7XHJcbiAgICAgIHRoaXMuc3RlcFJlbGF0aW9uU2VjdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2Uuc2F2ZVJlbGF0aW9uKHRydWUsIGZhbHNlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWxpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVUcmFuc2FjdGlvblZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmKCF0aGlzLmNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkKSB7XHJcbiAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jcmVhdGVWaWFUcmFuc0xpbmUpIHtcclxuICAgICAgICBpZih0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5leGlzdGluZ1RyYW5zYWN0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhUcmFuc2FjdGlvbkxpbmUoTnVtYmVyKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmV4aXN0aW5nVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKSwgTnVtYmVyKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmV4aXN0aW5nVHJhbnNhY3Rpb25MaW5lLmxpbmVOcikpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY2hvc2VuVHJhbnNhY3Rpb25MaW5lKSB7XHJcbiAgICAgICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhUcmFuc2FjdGlvbkxpbmUodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY2hvc2VuVHJhbnNhY3Rpb25MaW5lLnRyYW5zYWN0aW9uSWQsIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNob3NlblRyYW5zYWN0aW9uTGluZS5saW5lTnVtYmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY3JlYXRlVmlhUHJvZHVjdCkgIHtcclxuICAgICAgICB2YWxpZCA9IGF3YWl0IHRoaXMuX3ZhbGlkYXRlRm9yQXJ0aWNsZVRyYW5zYWN0aW9uKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY3JlYXRlVmlhT2xkVHJhbnMpIHtcclxuICAgICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gIGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5jcmVhdGVTZXJ2aWNlT3JkZXJXaXRoU291cmNlT3JkZXJOckFuZEFydGljbGVEZXNjcmlwdGlvbih0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5vbGRPcmRlcklkLCB0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5vbGRHb29kSWQpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YWxpZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc3RlcFRyYW5zYWN0aW9uU2VjdGlvbi5jb21wbGV0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbGlkXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlV2l6YXJkVmFsaWRhdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB2YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMud2l6YXJkU2VjdGlvbi5nZXRRdWFSZXN1bHQoKS5sZW5ndGggIT0gMCkge1xyXG4gICAgICB2YWxpZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc3RlcFdpemFyZFNlY3Rpb24uY29tcGxldGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWxpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTZXJ2aWNlSW5mb1ZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICAvL1RPRE8gYWRkIHByb3BlciB2YWxpZGF0aW9uIGhlcmUgc2hvdWxkIHRoYXQgYmUgbmVjZXNzYXJ5XHJcbiAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgaWYodmFsaWQgJiYgdGhpcy5jcmVhdGVTZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCkge1xyXG4gICAgICB0aGlzLnN0ZXBTZXJ2aWNlRmllbGRzU2VjdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2UudXBkYXRlU2VydmljZUhlYWRlclJlcG9ydE1lc3NhZ2UodGhpcy5zZXJ2aWNlRmllbGRzU2VjdGlvbi5zZXJ2aWNlTWVzc2FnZSwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2Uuc2F2ZVRyYW5zYWN0aW9uKCk7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRmluaXNoZWQubmV4dCh0aGlzLmNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbk5yKTtcclxuICAgIHJldHVybiB2YWxpZDtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgYXN5bmMgd2l6YXJkRmluaXNoZWQoKTogIFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHFhUmVzdWx0OiBRYVJlc3VsdFtdID0gdGhpcy53aXphcmRTZWN0aW9uLmdldFF1YVJlc3VsdCgpO1xyXG4gICAgaWYgKHFhUmVzdWx0ICYmIHFhUmVzdWx0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IHFhVGV4dDogc3RyaW5nID0gXCJcIjtcclxuICAgICAgbGV0IHFhQ2F1c2VDb2RlOiBzdHJpbmc7XHJcbiAgICAgIGxldCBxYVNlcnZpY2VUeXBlOiBzdHJpbmc7XHJcbiAgICAgIHFhUmVzdWx0LmZvckVhY2gocWEgPT4ge1xyXG4gICAgICAgIGlmIChxYS5jYXVzZUNvZGUgIT0gbnVsbCAmJiBxYS5jYXVzZUNvZGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBxYUNhdXNlQ29kZSA9IHFhLmNhdXNlQ29kZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHFhLnNlcnZpY2VUeXBlICE9IG51bGwgJiYgcWEuc2VydmljZVR5cGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBxYVNlcnZpY2VUeXBlID0gcWEuc2VydmljZVR5cGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHFhVGV4dCArPSAocWEucXVlc3Rpb25UZXh0ICsgXCJcXG5cIik7XHJcbiAgICAgICAgcWFUZXh0ICs9IChxYS5hbnN3ZXJUZXh0ICsgXCJcXG5cIik7XHJcbiAgICAgIH0pXHJcbiAgICAgIGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS51cGRhdGVTZXJ2aWNlSGVhZGVyV2l6YXJkRGF0YShxYUNhdXNlQ29kZSwgcWFTZXJ2aWNlVHlwZSwgcWFUZXh0LCB0cnVlKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RlcHBlci5jb250aW51ZVJlcXVlc3RlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNraXBXaXphcmQoKTogIFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5zdGVwcGVyLnNraXBTdGVwcyA9IFszXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXNldFdpemFyZCgpOiB2b2lkIHtcclxuICAgIHRoaXMubm9Mb2NrT25DdXN0b21lclNldCA9IHRydWU7XHJcbiAgICB0aGlzLmNyZWF0ZVNlcnZpY2UuY3JlYXRlTmV3UmVsYXRpb24oKTtcclxuICAgIHRoaXMuY3JlYXRlU2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UoKTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNsZWFyKCk7XHJcbiAgICB0aGlzLnN0ZXBwZXIub3BlblRvSW5kZXgoMSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF92YWxpZGF0ZUZvckFydGljbGVUcmFuc2FjdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB2YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNob3NlbkFydGljbGUpIHtcclxuICAgICAgdmFsaWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhTb3VyY2VHb29kKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNob3NlbkFydGljbGUuZ29vZElkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc3RlcFRyYW5zYWN0aW9uU2VjdGlvbi5jb21wbGV0ZWRcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlY3Rpb24uc2hvd0NhdGFsb2dQb3B1cCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsaWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9wcm9jZXNzRXh0ZXJuYWxTZXR0aW5ncygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmKHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZFRyYW5zYWN0aW9uICYmICFpc05hTih0aGlzLl9leHRlcm5hbGx5UHJvdmlkZWRMaW5lTnIpKSB7XHJcbiAgICAgIC8vZmV0Y2ggcmVsYXRpb24gYW5kIGNyZWF0ZSBuZWVkZWQgdHJhbnNhY3Rpb24gZmlyc3QuXHJcbiAgICAgIHRoaXMubm9Mb2NrT25DdXN0b21lclNldCA9IHRydWU7XHJcbiAgICAgIHRoaXMuY3JlYXRlU2VydmljZS5yZWxhdGlvbiA9IGF3YWl0IHRoaXMucmVsYXRpb25TZXJ2aWNlLmdldEN1c3RvbWVyRnVsbE9iamVjdChwYXJzZUludCh0aGlzLl9leHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucmVsYXRpb24ucmVsYXRpb25OcikpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5leGlzdGluZ1RyYW5zYWN0aW9uID0gIHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZFRyYW5zYWN0aW9uO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5leGlzdGluZ1RyYW5zYWN0aW9uTGluZSA9ICB0aGlzLl9leHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzLmZpbmQobCA9PiBsLmxpbmVOciA9PT0gdGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkTGluZU5yKTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY3JlYXRlT3JkZXJXaXRoVHJhbnNhY3Rpb25MaW5lQ2xpY2tlZChmYWxzZSk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmJ1dHRvbnNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY3JlYXRlU2VydmljZS5yZWxhdGlvbiA9IGF3YWl0IHRoaXMucmVsYXRpb25TZXJ2aWNlLmdldEN1c3RvbWVyRnVsbE9iamVjdChwYXJzZUludCh0aGlzLl9leHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucmVsYXRpb24ucmVsYXRpb25OcikpO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhUcmFuc2FjdGlvbkxpbmUoTnVtYmVyKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmV4aXN0aW5nVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKSwgTnVtYmVyKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmV4aXN0aW5nVHJhbnNhY3Rpb25MaW5lLmxpbmVOcikpO1xyXG4gICAgICBpZih0aGlzLnN0ZXBwZXIuc2tpcFN0ZXBzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnN0ZXBwZXIub3BlblRvSW5kZXgoNCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zdGVwcGVyLm9wZW5Ub0luZGV4KDMpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZEN1c3RvbWVyKSB7XHJcbiAgICAgIHRoaXMubm9Mb2NrT25DdXN0b21lclNldCA9IHRydWU7XHJcbiAgICAgIHRoaXMuY3JlYXRlU2VydmljZS5yZWxhdGlvbiA9IHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZEN1c3RvbWVyO1xyXG4gICAgICB0aGlzLnN0ZXBwZXIub3BlblRvSW5kZXgoMik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|