gamma-app-controller 1.2.28 → 1.3.1
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/esm2020/lib/application-controller/application-content.service.mjs +3 -3
- package/esm2020/lib/application-controller/application-controller.module.mjs +9 -5
- package/esm2020/lib/application-controller/application-dataset-component/create-dataset/create-dataset.component.mjs +2 -2
- package/esm2020/lib/application-controller/application-dataset-component/create-dataset-sql/create-dataset-sql.component.mjs +3 -3
- package/esm2020/lib/application-controller/application-menu-controller/application-create-menu/application-create-menu.component.mjs +15 -39
- package/esm2020/lib/application-controller/application-menu-controller/application-menus/application-menus.component.mjs +5 -5
- package/esm2020/lib/application-controller/application-view-components/create-comp-view/create-comp-view.component.mjs +4 -1
- package/esm2020/lib/application-controller/common.mjs +1 -1
- package/esm2020/lib/application-controller/page-controller/page-controller/page-controller.component.mjs +12 -6
- package/esm2020/lib/application-controller/support-components/dash-chart/dash-chart.component.mjs +19 -4
- package/esm2020/lib/application-controller/support-components/dash-table/dash-table.component.mjs +8 -4
- package/esm2020/lib/application-controller/support-components/dash-today-previous/dash-today-previous.component.mjs +3 -3
- package/esm2020/lib/application-controller/support-components/table-with-bar/table-with-bar.component.mjs +9 -5
- package/esm2020/lib/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.mjs +3 -3
- package/esm2020/lib/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.mjs +1 -4
- package/esm2020/lib/shared/gamma-bread-crumbs/bread-crumbs.component.mjs +1 -3
- package/esm2020/lib/shared/permission-helper.mjs +54 -0
- package/esm2020/lib/shared/security_principal.mjs +3 -0
- package/esm2020/lib/shared/shared.module.mjs +119 -0
- package/esm2020/lib/shared/template-dataset-call-service.mjs +376 -0
- package/esm2020/lib/shared/user-access/user-access.component.mjs +51 -0
- package/esm2020/lib/template-module/KpiCreationModule/create-kpi-tree.component.mjs +38 -4
- package/esm2020/lib/template-module/KpiCreationModule/kpiCreation.module.mjs +7 -3
- package/esm2020/lib/template-module/bookmarked-template/bookmarked-dataset-call.service.mjs +12 -344
- package/esm2020/lib/template-module/defaulLandingComponent/landing-component.component.mjs +2 -2
- package/esm2020/lib/template-module/defaulLandingComponent/landing-dataset-call.service.mjs +12 -344
- package/esm2020/lib/template-module/defaulLandingMultiLayoutComponent/defaulLandingMultiLayout.component.mjs +1 -3
- package/esm2020/lib/template-module/defaulLandingMultiLayoutComponent/multi-landing-dataset-call.service.mjs +12 -344
- package/esm2020/lib/template-module/kpiWithMultiLayout/multi-layout-dataset-call.service.mjs +13 -345
- package/esm2020/lib/template-module/kpiWithSingleLayout/kpi-with-dataset.component.mjs +55 -26
- package/esm2020/lib/template-module/kpiWithSingleLayout/single-layout-dataset-call.service.mjs +12 -347
- package/esm2020/public-api.mjs +6 -1
- package/fesm2015/gamma-app-controller.mjs +2925 -3940
- package/fesm2015/gamma-app-controller.mjs.map +1 -1
- package/fesm2020/gamma-app-controller.mjs +1237 -2257
- package/fesm2020/gamma-app-controller.mjs.map +1 -1
- package/lib/application-controller/application-content.service.d.ts +1 -1
- package/lib/application-controller/application-controller.module.d.ts +2 -1
- package/lib/application-controller/application-menu-controller/application-create-menu/application-create-menu.component.d.ts +2 -4
- package/lib/application-controller/page-controller/page-controller/page-controller.component.d.ts +3 -1
- package/lib/application-controller/support-components/dash-chart/dash-chart.component.d.ts +2 -0
- package/lib/application-controller/support-components/dash-table/dash-table.component.d.ts +1 -0
- package/lib/application-controller/support-components/table-with-bar/table-with-bar.component.d.ts +1 -0
- package/lib/shared/permission-helper.d.ts +8 -0
- package/lib/shared/security_principal.d.ts +2 -0
- package/lib/shared/shared.module.d.ts +10 -0
- package/lib/shared/template-dataset-call-service.d.ts +23 -0
- package/lib/shared/user-access/user-access.component.d.ts +20 -0
- package/lib/template-module/KpiCreationModule/create-kpi-tree.component.d.ts +2 -0
- package/lib/template-module/KpiCreationModule/kpiCreation.module.d.ts +2 -1
- package/lib/template-module/bookmarked-template/bookmarked-dataset-call.service.d.ts +6 -13
- package/lib/template-module/defaulLandingComponent/landing-dataset-call.service.d.ts +5 -12
- package/lib/template-module/defaulLandingMultiLayoutComponent/multi-landing-dataset-call.service.d.ts +5 -12
- package/lib/template-module/kpiWithMultiLayout/multi-layout-dataset-call.service.d.ts +6 -13
- package/lib/template-module/kpiWithSingleLayout/kpi-with-dataset.component.d.ts +4 -2
- package/lib/template-module/kpiWithSingleLayout/single-layout-dataset-call.service.d.ts +5 -14
- package/package.json +1 -1
- package/public-api.d.ts +5 -0
package/esm2020/lib/template-module/kpiWithSingleLayout/single-layout-dataset-call.service.mjs
CHANGED
|
@@ -1,367 +1,32 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import moment from '../../application-controller/moment-helper';
|
|
1
|
+
import { Injectable, Inject } from '@angular/core';
|
|
3
2
|
import { APP_ENVIRONMENT } from '../../application-controller/environment';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
import * as i1 from "./kpi-single-layout.service";
|
|
6
|
-
import * as i2 from "../../
|
|
7
|
-
import * as i3 from "
|
|
8
|
-
import * as i4 from "
|
|
5
|
+
import * as i2 from "../../shared/template-dataset-call-service";
|
|
6
|
+
import * as i3 from "../../application-controller/kpi-service";
|
|
7
|
+
import * as i4 from "ngx-toastr";
|
|
9
8
|
export class SingleLayoutApplicationDatssetsCall {
|
|
10
|
-
constructor(
|
|
11
|
-
this.
|
|
9
|
+
constructor(backend, common, kpiService, toastr, environment) {
|
|
10
|
+
this.backend = backend;
|
|
11
|
+
this.common = common;
|
|
12
12
|
this.kpiService = kpiService;
|
|
13
13
|
this.toastr = toastr;
|
|
14
|
-
this.router = router;
|
|
15
14
|
this.environment = environment;
|
|
16
|
-
this.uniqueDataSetObject = {};
|
|
17
15
|
}
|
|
18
16
|
getDataFromDataSet(dataset, datasetId, filters) {
|
|
19
|
-
|
|
20
|
-
return this.getDataSetForMongo(dataset, datasetId);
|
|
21
|
-
}
|
|
22
|
-
else if (dataset.datasetType == "querybuilder") {
|
|
23
|
-
return this.getDatasetForImpala(dataset, datasetId, filters);
|
|
24
|
-
}
|
|
25
|
-
else if (dataset.datasetType == "simpleApi") {
|
|
26
|
-
return this.getDatasetForSimpleApiImpala(dataset, datasetId, filters);
|
|
27
|
-
}
|
|
28
|
-
else if (dataset.datasetType == "plainjson") {
|
|
29
|
-
return this.getDatasetForPlainJson(dataset, datasetId, filters);
|
|
30
|
-
}
|
|
31
|
-
else if (dataset.datasetType == "sqlQuery") {
|
|
32
|
-
return this.getDatasetForSqlTemplate(dataset, datasetId, filters);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
return Promise.resolve();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
getDataSetForMongo(dataset, datasetId) {
|
|
39
|
-
return new Promise((resolve, reject) => {
|
|
40
|
-
let apiJsonObject = {
|
|
41
|
-
requestId: dataset.config.serviceId,
|
|
42
|
-
};
|
|
43
|
-
if (dataset.config.fixOperationLevles && dataset.config.fixOperationLevles.length != 0) {
|
|
44
|
-
for (const item of dataset.config.fixOperationLevles) {
|
|
45
|
-
Object.assign(apiJsonObject, item);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
const mon_config = this.kpiService.getAllSeviceApiJson(apiJsonObject);
|
|
49
|
-
this.service.getData(mon_config, dataset.config.api).subscribe({
|
|
50
|
-
next: (data) => {
|
|
51
|
-
const payload = data["Payload"] || data;
|
|
52
|
-
this.uniqueDataSetObject[datasetId] = payload;
|
|
53
|
-
resolve();
|
|
54
|
-
},
|
|
55
|
-
error: (err) => {
|
|
56
|
-
console.error('Error:', err);
|
|
57
|
-
reject(err);
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
getDatasetForImpala(dataset, datasetId, filters) {
|
|
63
|
-
return new Promise((resolve, reject) => {
|
|
64
|
-
let request = dataset.config.queryConfig;
|
|
65
|
-
let transformedObject = {};
|
|
66
|
-
for (let item of request.reqFields) {
|
|
67
|
-
const key = Object.keys(item)[0];
|
|
68
|
-
const value = Object.values(item)[0];
|
|
69
|
-
if (key === 'startDate') {
|
|
70
|
-
transformedObject.recordDate = value;
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
transformedObject[key] = value;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
const operator = (filters && filters.length !== 0) ? Object.keys(filters.operationFilter).map(key => ({ [key]: filters.operationFilter[key] })) : [];
|
|
77
|
-
transformedObject['filters'] = this.transformDataForMFilter(operator, request.mapedFilters);
|
|
78
|
-
transformedObject['sorters'] = request.sorters;
|
|
79
|
-
transformedObject["paginationRequired"] = false;
|
|
80
|
-
if (dataset.config.api == "/kpi/genericAggregatePaginatedKpiServiceResponse") {
|
|
81
|
-
transformedObject['measures'] = request.measures;
|
|
82
|
-
transformedObject['dimensions'] = request.dimensions;
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
transformedObject['columns'] = this.getFormatObjectForColumn(request.columns);
|
|
86
|
-
}
|
|
87
|
-
if (request.havings && request.havings.length !== 0) {
|
|
88
|
-
transformedObject['havings'] = request.havings;
|
|
89
|
-
}
|
|
90
|
-
this.service.getData(transformedObject, dataset.config.api).subscribe({
|
|
91
|
-
next: (data) => {
|
|
92
|
-
const payload = data['dataset'];
|
|
93
|
-
this.uniqueDataSetObject[datasetId] = payload;
|
|
94
|
-
resolve();
|
|
95
|
-
},
|
|
96
|
-
error: (err) => {
|
|
97
|
-
console.error('Error:', err);
|
|
98
|
-
this.toastr.error(err.message);
|
|
99
|
-
reject(err);
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
getFormatObjectForColumn(columns) {
|
|
105
|
-
let columnData = [];
|
|
106
|
-
columns.forEach(element => {
|
|
107
|
-
const { advancedColumn, columnName, enrichFunction, dataField } = element;
|
|
108
|
-
columnData.push({
|
|
109
|
-
"advancedColumn": advancedColumn,
|
|
110
|
-
"columnName": columnName,
|
|
111
|
-
"enrichFunction": enrichFunction,
|
|
112
|
-
"aliasName": dataField
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
return columnData;
|
|
116
|
-
}
|
|
117
|
-
transformDataForMFilter(filterdata, mapData) {
|
|
118
|
-
let result = [];
|
|
119
|
-
mapData.forEach(mapping => {
|
|
120
|
-
let resultObj = {
|
|
121
|
-
columnName: mapping.serverColumn,
|
|
122
|
-
dataType: mapping.dataType,
|
|
123
|
-
operator: mapping.operatorName,
|
|
124
|
-
value: mapping.defaultValue
|
|
125
|
-
};
|
|
126
|
-
if (mapping.serverColumn.includes('date') && typeof resultObj.value === 'string') {
|
|
127
|
-
if (mapping.formatter && mapping.formatter !== "") {
|
|
128
|
-
resultObj.value = moment(resultObj.value, "YYYY-MM-DD").format(mapping.formatter);
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
resultObj.value = moment(resultObj.value, "YYYY-MM-DD").format(this.environment.dataFormat);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
const filter = filterdata.find(f => f.hasOwnProperty(mapping.localColumn));
|
|
135
|
-
if (filter) {
|
|
136
|
-
if (mapping.defaultValue === "") {
|
|
137
|
-
const value = filter[mapping.localColumn];
|
|
138
|
-
if (Array.isArray(value)) {
|
|
139
|
-
resultObj.operator = "in";
|
|
140
|
-
resultObj.value = value.join(",");
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
resultObj.value = value;
|
|
144
|
-
}
|
|
145
|
-
if (mapping.serverColumn.includes('date') && typeof resultObj.value === 'string') {
|
|
146
|
-
if (mapping.formatter && mapping.formatter !== "") {
|
|
147
|
-
resultObj.value = moment(resultObj.value, "YYYY-MM-DD").format(mapping.formatter);
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
resultObj.value = moment(resultObj.value, "YYYY-MM-DD").format(this.environment.dataFormat);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
else if (mapping.defaultValue === "") {
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
result.push(resultObj);
|
|
159
|
-
});
|
|
160
|
-
filterdata = filterdata.filter(obj => {
|
|
161
|
-
const key = Object.keys(obj)[0];
|
|
162
|
-
return key !== 'startDate' && key !== 'endDate';
|
|
163
|
-
});
|
|
164
|
-
filterdata.forEach(filter => {
|
|
165
|
-
const filterKey = Object.keys(filter)[0];
|
|
166
|
-
const existingMapping = mapData.find(mapping => mapping.localColumn === filterKey);
|
|
167
|
-
if (!existingMapping) {
|
|
168
|
-
let resultObj = {
|
|
169
|
-
columnName: filterKey,
|
|
170
|
-
dataType: "string",
|
|
171
|
-
operator: "eq",
|
|
172
|
-
value: filter[filterKey]
|
|
173
|
-
};
|
|
174
|
-
if (Array.isArray(filter[filterKey])) {
|
|
175
|
-
resultObj.operator = "in";
|
|
176
|
-
resultObj.value = filter[filterKey].join(",");
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
resultObj.value = filter[filterKey];
|
|
180
|
-
}
|
|
181
|
-
if (filterKey == 'operator_key') {
|
|
182
|
-
resultObj.operator = "eq";
|
|
183
|
-
}
|
|
184
|
-
result.push(resultObj);
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
|
-
result = result.filter(obj => obj.value !== null && obj.value !== "");
|
|
188
|
-
return result;
|
|
189
|
-
}
|
|
190
|
-
getDatasetForSimpleApiImpala(dataset, datasetId, filters) {
|
|
191
|
-
return new Promise((resolve, reject) => {
|
|
192
|
-
dataset.config.queryConfig.mapedFilters.forEach(filter => {
|
|
193
|
-
if (filters.operationFilter.hasOwnProperty(filter.localColumn)) {
|
|
194
|
-
filter.defaultValue = filters.operationFilter[filter.localColumn];
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
if (dataset.config.apiType === "post") {
|
|
198
|
-
let serviceJson = {};
|
|
199
|
-
dataset.config.queryConfig.mapedFilters.forEach((filter) => {
|
|
200
|
-
let datecolumn = filter.serverColumn.toLowerCase();
|
|
201
|
-
if (datecolumn.includes('date') && typeof filter.dataType === 'string') {
|
|
202
|
-
serviceJson[filter.serverColumn] = moment(filter.defaultValue, "YYYY-MM-DD").format(this.environment.dataFormat);
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
serviceJson[filter.serverColumn] = filter.defaultValue;
|
|
206
|
-
}
|
|
207
|
-
});
|
|
208
|
-
this.service.getSimpleApiPostRequest(dataset.config.api, serviceJson).subscribe({
|
|
209
|
-
next: (data) => {
|
|
210
|
-
const payload = data["Payload"] || data;
|
|
211
|
-
this.uniqueDataSetObject[datasetId] = payload;
|
|
212
|
-
resolve();
|
|
213
|
-
},
|
|
214
|
-
error: (err) => {
|
|
215
|
-
console.error('Error:', err);
|
|
216
|
-
this.toastr.error(err.message);
|
|
217
|
-
reject(err);
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
}
|
|
221
|
-
else if (dataset.config.apiType === "get") {
|
|
222
|
-
let requestUrl = dataset.config.api + "?";
|
|
223
|
-
dataset.config.queryConfig.mapedFilters.forEach((filter, index) => {
|
|
224
|
-
requestUrl += `${filter.serverColumn}=${filter.defaultValue}`;
|
|
225
|
-
if (index < dataset.config.queryConfig.mapedFilters.length - 1) {
|
|
226
|
-
requestUrl += "&";
|
|
227
|
-
}
|
|
228
|
-
});
|
|
229
|
-
this.service.getSimpleApiGetRequest(requestUrl).subscribe({
|
|
230
|
-
next: (data) => {
|
|
231
|
-
const payload = data["Payload"] || data;
|
|
232
|
-
this.uniqueDataSetObject[datasetId] = payload;
|
|
233
|
-
resolve();
|
|
234
|
-
},
|
|
235
|
-
error: (err) => {
|
|
236
|
-
console.error('Error:', err);
|
|
237
|
-
this.toastr.error(err.message);
|
|
238
|
-
reject(err);
|
|
239
|
-
}
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
getDatasetForPlainJson(dataset, datasetId, filter) {
|
|
245
|
-
return new Promise((resolve, reject) => {
|
|
246
|
-
let requestapi = dataset.config.api + '?datasetId=' + dataset.datasetId;
|
|
247
|
-
this.service.getJsonDatasetPayload(requestapi).subscribe({
|
|
248
|
-
next: (data) => {
|
|
249
|
-
const payload = data["Payload"] || data;
|
|
250
|
-
this.uniqueDataSetObject[datasetId] = payload;
|
|
251
|
-
resolve();
|
|
252
|
-
},
|
|
253
|
-
error: (err) => {
|
|
254
|
-
console.error('Error:', err);
|
|
255
|
-
reject(err);
|
|
256
|
-
}
|
|
257
|
-
});
|
|
258
|
-
});
|
|
259
|
-
}
|
|
260
|
-
getDatasetForSqlTemplate(dataset, datasetId, filters) {
|
|
261
|
-
return new Promise((resolve, reject) => {
|
|
262
|
-
const operator = (filters && filters.length !== 0) ? Object.keys(filters.operationFilter).map(key => ({ [key]: filters.operationFilter[key] })) : [];
|
|
263
|
-
let requestAp = dataset.config.api;
|
|
264
|
-
let request_params = {
|
|
265
|
-
'dbConfig': dataset.config.queryConfig.dbConfig,
|
|
266
|
-
'databaseName': dataset.config.queryConfig.databaseName,
|
|
267
|
-
'filters': this.transformDataForMFilterForSQl(operator, dataset.config.queryConfig.mapedFilters),
|
|
268
|
-
'templateQuery': dataset.config.queryConfig.templateQuery,
|
|
269
|
-
'enrichments': dataset.config.queryConfig.enrichments,
|
|
270
|
-
};
|
|
271
|
-
this.service.genericSqlQueryResponse(requestAp, request_params).subscribe({
|
|
272
|
-
next: (data) => {
|
|
273
|
-
const payload = data["Payload"] || data;
|
|
274
|
-
this.uniqueDataSetObject[datasetId] = payload;
|
|
275
|
-
resolve();
|
|
276
|
-
},
|
|
277
|
-
error: (err) => {
|
|
278
|
-
console.error('Error:', err);
|
|
279
|
-
this.toastr.error(err.error.message);
|
|
280
|
-
resolve();
|
|
281
|
-
reject(err);
|
|
282
|
-
}
|
|
283
|
-
});
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
transformDataForMFilterForSQl(filterdata, mapData) {
|
|
287
|
-
let result = [];
|
|
288
|
-
mapData.forEach(mapping => {
|
|
289
|
-
let resultObj = {
|
|
290
|
-
columnName: mapping.serverColumn,
|
|
291
|
-
dataType: mapping.dataType,
|
|
292
|
-
operator: mapping.operatorName,
|
|
293
|
-
value: mapping.defaultValue,
|
|
294
|
-
aliasColumnName: mapping.localColumn,
|
|
295
|
-
};
|
|
296
|
-
if (mapping.serverColumn.includes('date') && typeof resultObj.value === 'string') {
|
|
297
|
-
if (mapping.formatter && mapping.formatter !== "") {
|
|
298
|
-
resultObj.value = moment(resultObj.value, "YYYY-MM-DD").format(mapping.formatter);
|
|
299
|
-
}
|
|
300
|
-
else {
|
|
301
|
-
resultObj.value = moment(resultObj.value, "YYYY-MM-DD").format(this.environment.dataFormat);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
const filter = filterdata.find(f => f.hasOwnProperty(mapping.localColumn));
|
|
305
|
-
if (filter) {
|
|
306
|
-
if (mapping.defaultValue === "") {
|
|
307
|
-
const value = filter[mapping.localColumn];
|
|
308
|
-
if (Array.isArray(value)) {
|
|
309
|
-
resultObj.operator = "in";
|
|
310
|
-
resultObj.value = value.join(",");
|
|
311
|
-
}
|
|
312
|
-
else {
|
|
313
|
-
resultObj.value = value;
|
|
314
|
-
}
|
|
315
|
-
if (mapping.serverColumn.includes('date') && typeof resultObj.value === 'string') {
|
|
316
|
-
resultObj.value = moment(resultObj.value, "YYYY-MM-DD").format(this.environment.dataFormat);
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
else if (mapping.defaultValue === "") {
|
|
321
|
-
return;
|
|
322
|
-
}
|
|
323
|
-
result.push(resultObj);
|
|
324
|
-
});
|
|
325
|
-
filterdata = filterdata.filter(obj => {
|
|
326
|
-
const key = Object.keys(obj)[0];
|
|
327
|
-
return key !== 'startDate' && key !== 'endDate';
|
|
328
|
-
});
|
|
329
|
-
filterdata.forEach(filter => {
|
|
330
|
-
const filterKey = Object.keys(filter)[0];
|
|
331
|
-
const existingMapping = mapData.find(mapping => mapping.localColumn === filterKey);
|
|
332
|
-
if (!existingMapping) {
|
|
333
|
-
let resultObj = {
|
|
334
|
-
columnName: filterKey,
|
|
335
|
-
dataType: "string",
|
|
336
|
-
operator: "eq",
|
|
337
|
-
value: filter[filterKey]
|
|
338
|
-
};
|
|
339
|
-
if (Array.isArray(filter[filterKey])) {
|
|
340
|
-
resultObj.operator = "in";
|
|
341
|
-
resultObj.value = filter[filterKey].join(",");
|
|
342
|
-
}
|
|
343
|
-
else {
|
|
344
|
-
resultObj.value = filter[filterKey];
|
|
345
|
-
}
|
|
346
|
-
if (filterKey == 'operator_key') {
|
|
347
|
-
resultObj.operator = "eq";
|
|
348
|
-
}
|
|
349
|
-
result.push(resultObj);
|
|
350
|
-
}
|
|
351
|
-
});
|
|
352
|
-
return result;
|
|
17
|
+
return this.common.getDataFromDataSet(this.backend, dataset, datasetId, filters);
|
|
353
18
|
}
|
|
354
19
|
getUniqueDataSetObject() {
|
|
355
|
-
return this.
|
|
20
|
+
return this.common.getUniqueDataSetObject();
|
|
356
21
|
}
|
|
357
22
|
}
|
|
358
|
-
SingleLayoutApplicationDatssetsCall.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SingleLayoutApplicationDatssetsCall, deps: [{ token: i1.KpiWithSingleLayoutService }, { token: i2.
|
|
23
|
+
SingleLayoutApplicationDatssetsCall.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SingleLayoutApplicationDatssetsCall, deps: [{ token: i1.KpiWithSingleLayoutService }, { token: i2.TemplateDatasetCallService }, { token: i3.kpicommonService }, { token: i4.ToastrService }, { token: APP_ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
359
24
|
SingleLayoutApplicationDatssetsCall.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SingleLayoutApplicationDatssetsCall, providedIn: "root" });
|
|
360
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SingleLayoutApplicationDatssetsCall, decorators: [{
|
|
361
26
|
type: Injectable,
|
|
362
27
|
args: [{ providedIn: "root" }]
|
|
363
|
-
}], ctorParameters: function () { return [{ type: i1.KpiWithSingleLayoutService }, { type: i2.
|
|
28
|
+
}], ctorParameters: function () { return [{ type: i1.KpiWithSingleLayoutService }, { type: i2.TemplateDatasetCallService }, { type: i3.kpicommonService }, { type: i4.ToastrService }, { type: undefined, decorators: [{
|
|
364
29
|
type: Inject,
|
|
365
30
|
args: [APP_ENVIRONMENT]
|
|
366
31
|
}] }]; } });
|
|
367
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLWxheW91dC1kYXRhc2V0LWNhbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvdGVtcGxhdGUtbW9kdWxlL2twaVdpdGhTaW5nbGVMYXlvdXQvc2luZ2xlLWxheW91dC1kYXRhc2V0LWNhbGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLE1BQU0sTUFBTSw0Q0FBNEMsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7OztBQU0zRSxNQUFNLE9BQU8sbUNBQW1DO0lBSTVDLFlBQW9CLE9BQW1DLEVBQzNDLFVBQTRCLEVBQzVCLE1BQXFCLEVBQ3JCLE1BQWMsRUFDVyxXQUFnQjtRQUpqQyxZQUFPLEdBQVAsT0FBTyxDQUE0QjtRQUMzQyxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDVyxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQU5yRCx3QkFBbUIsR0FBRyxFQUFFLENBQUM7SUFTekIsQ0FBQztJQUVELGtCQUFrQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTztRQUMxQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxFQUFFO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUN0RDthQUFNLElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxjQUFjLEVBQUU7WUFDOUMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNoRTthQUFNLElB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QUksU0FBUyxJQUFJLGNBQWMsRUFBRTtvQkFDN0IsU0FBUyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7aUJBQzdCO2dCQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDMUI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUlILE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFHRCxzQkFBc0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQzs7Z0lBL1lRLG1DQUFtQywrSUFRaEMsZUFBZTtvSUFSbEIsbUNBQW1DLGNBRHRCLE1BQU07MkZBQ25CLG1DQUFtQztrQkFEL0MsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQVN6QixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IG1vbWVudCBmcm9tICcuLi8uLi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL21vbWVudC1oZWxwZXInO1xuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHsgQVBQX0VOVklST05NRU5UIH0gZnJvbSAnLi4vLi4vYXBwbGljYXRpb24tY29udHJvbGxlci9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBrcGljb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBwbGljYXRpb24tY29udHJvbGxlci9rcGktc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgS3BpV2l0aFNpbmdsZUxheW91dFNlcnZpY2UgfSBmcm9tICcuL2twaS1zaW5nbGUtbGF5b3V0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46IFwicm9vdFwiIH0pXG5leHBvcnQgY2xhc3MgU2luZ2xlTGF5b3V0QXBwbGljYXRpb25EYXRzc2V0c0NhbGwge1xuXG4gICAgdW5pcXVlRGF0YVNldE9iamVjdCA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBLcGlXaXRoU2luZ2xlTGF5b3V0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBrcGlTZXJ2aWNlOiBrcGljb21tb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQEluamVjdChBUFBfRU5WSVJPTk1FTlQpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueVxuICAgICkge1xuXG4gICAgfVxuXG4gICAgZ2V0RGF0YUZyb21EYXRhU2V0KGRhdGFzZXQsIGRhdGFzZXRJZCwgZmlsdGVycykge1xuICAgICAgICBpZiAoZGF0YXNldC5kYXRhc2V0VHlwZSA9PSBcIm1vbmdvXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGFTZXRGb3JNb25nbyhkYXRhc2V0LCBkYXRhc2V0SWQpO1xuICAgICAgICB9IGVsc2UgaWYgKGRhdGFzZXQuZGF0YXNldFR5cGUgPT0gXCJxdWVyeWJ1aWxkZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0YXNldEZvckltcGFsYShkYXRhc2V0LCBkYXRhc2V0SWQsIGZpbHRlcnMpO1xuICAgICAgICB9IGVsc2UgaWYgKGRhdGFzZXQuZGF0YXNldFR5cGUgPT0gXCJzaW1wbGVBcGlcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0YXNldEZvclNpbXBsZUFwaUltcGFsYShkYXRhc2V0LCBkYXRhc2V0SWQsIGZpbHRlcnMpO1xuICAgICAgICB9IGVsc2UgaWYgKGRhdGFzZXQuZGF0YXNldFR5cGUgPT0gXCJwbGFpbmpzb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0YXNldEZvclBsYWluSnNvbihkYXRhc2V0LCBkYXRhc2V0SWQsIGZpbHRlcnMpO1xuICAgICAgICB9IGVsc2UgaWYgKGRhdGFzZXQuZGF0YXNldFR5cGUgPT0gXCJzcWxRdWVyeVwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRhc2V0Rm9yU3FsVGVtcGxhdGUoZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgZ2V0RGF0YVNldEZvck1vbmdvKGRhdGFzZXQsIGRhdGFzZXRJZCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgbGV0IGFwaUpzb25PYmplY3QgPSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdElkOiBkYXRhc2V0LmNvbmZpZy5zZXJ2aWNlSWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKGRhdGFzZXQuY29uZmlnLmZpeE9wZXJhdGlvbkxldmxlcyAmJiBkYXRhc2V0LmNvbmZpZy5maXhPcGVyYXRpb25MZXZsZXMubGVuZ3RoICE9IDApIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZGF0YXNldC5jb25maWcuZml4T3BlcmF0aW9uTGV2bGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oYXBpSnNvbk9iamVjdCwgaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbW9uX2NvbmZpZyA9IHRoaXMua3BpU2VydmljZS5nZXRBbGxTZXZpY2VBcGlKc29uKGFwaUpzb25PYmplY3QpO1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmdldERhdGEobW9uX2NvbmZpZywgZGF0YXNldC5jb25maWcuYXBpKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGRhdGFbXCJQYXlsb2FkXCJdIHx8IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMudW5pcXVlRGF0YVNldE9iamVjdFtkYXRhc2V0SWRdID0gcGF5bG9hZC5zbGljZSgwLCAyMCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudW5pcXVlRGF0YVNldE9iamVjdFtkYXRhc2V0SWRdID0gcGF5bG9hZDtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0RGF0YXNldEZvckltcGFsYShkYXRhc2V0LCBkYXRhc2V0SWQsIGZpbHRlcnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcblxuICAgICAgICAgICAgbGV0IHJlcXVlc3QgPSBkYXRhc2V0LmNvbmZpZy5xdWVyeUNvbmZpZztcbiAgICAgICAgICAgIGxldCB0cmFuc2Zvcm1lZE9iamVjdDogYW55ID0ge307XG4gICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHJlcXVlc3QucmVxRmllbGRzKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMoaXRlbSlbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBPYmplY3QudmFsdWVzKGl0ZW0pWzBdO1xuICAgICAgICAgICAgICAgIGlmIChrZXkgPT09ICdzdGFydERhdGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVkT2JqZWN0LnJlY29yZERhdGUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lZE9iamVjdFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgb3BlcmF0b3IgPSAoZmlsdGVycyAmJiBmaWx0ZXJzLmxlbmd0aCAhPT0gMCkgPyBPYmplY3Qua2V5cyhmaWx0ZXJzLm9wZXJhdGlvbkZpbHRlcikubWFwKGtleSA9PiAoeyBba2V5XTogZmlsdGVycy5vcGVyYXRpb25GaWx0ZXJba2V5XSB9KSkgOiBbXTtcblxuXG4gICAgICAgICAgICB0cmFuc2Zvcm1lZE9iamVjdFsnZmlsdGVycyddID0gdGhpcy50cmFuc2Zvcm1EYXRhRm9yTUZpbHRlcihvcGVyYXRvciwgcmVxdWVzdC5tYXBlZEZpbHRlcnMpO1xuICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3RbJ3NvcnRlcnMnXSA9IHJlcXVlc3Quc29ydGVycztcbiAgICAgICAgICAgIHRyYW5zZm9ybWVkT2JqZWN0W1wicGFnaW5hdGlvblJlcXVpcmVkXCJdID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChkYXRhc2V0LmNvbmZpZy5hcGkgPT0gXCIva3BpL2dlbmVyaWNBZ2dyZWdhdGVQYWdpbmF0ZWRLcGlTZXJ2aWNlUmVzcG9uc2VcIikge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVkT2JqZWN0WydtZWFzdXJlcyddID0gcmVxdWVzdC5tZWFzdXJlcztcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lZE9iamVjdFsnZGltZW5zaW9ucyddID0gcmVxdWVzdC5kaW1lbnNpb25zO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lZE9iamVjdFsnY29sdW1ucyddID0gdGhpcy5nZXRGb3JtYXRPYmplY3RGb3JDb2x1bW4ocmVxdWVzdC5jb2x1bW5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXF1ZXN0LmhhdmluZ3MgJiYgcmVxdWVzdC5oYXZpbmdzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVkT2JqZWN0WydoYXZpbmdzJ10gPSByZXF1ZXN0LmhhdmluZ3M7XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgLy8gbGV0IG5hdmlnYXRpb246IE5hdmlnYXRpb25FeHRyYXMgPSB7XG4gICAgICAgICAgICAvLyAgICAgcXVlcnlQYXJhbXM6IGFwcGxpZWRGaWx0ZXJzWydvcGVyYXRpb25GaWx0ZXInXSxcbiAgICAgICAgICAgIC8vICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiBcIm1lcmdlXCJcbiAgICAgICAgICAgIC8vIH07XG4gICAgICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwgbmF2aWdhdGlvbik7XG5cblxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmdldERhdGEodHJhbnNmb3JtZWRPYmplY3QsIGRhdGFzZXQuY29uZmlnLmFwaSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBkYXRhWydkYXRhc2V0J107XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMudW5pcXVlRGF0YVNldE9iamVjdFtkYXRhc2V0SWRdID0gcGF5bG9hZC5zbGljZSgwLCAzMCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudW5pcXVlRGF0YVNldE9iamVjdFtkYXRhc2V0SWRdID0gcGF5bG9hZDtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSlcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgZ2V0Rm9ybWF0T2JqZWN0Rm9yQ29sdW1uKGNvbHVtbnMpIHtcbiAgICAgICAgbGV0IGNvbHVtbkRhdGEgPSBbXTtcbiAgICAgICAgY29sdW1ucy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBhZHZhbmNlZENvbHVtbiwgY29sdW1uTmFtZSwgZW5yaWNoRnVuY3Rpb24sIGRhdGFGaWVsZCB9ID0gZWxlbWVudDtcbiAgICAgICAgICAgIGNvbHVtbkRhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgXCJhZHZhbmNlZENvbHVtblwiOiBhZHZhbmNlZENvbHVtbixcbiAgICAgICAgICAgICAgICBcImNvbHVtbk5hbWVcIjogY29sdW1uTmFtZSxcbiAgICAgICAgICAgICAgICBcImVucmljaEZ1bmN0aW9uXCI6IGVucmljaEZ1bmN0aW9uLFxuICAgICAgICAgICAgICAgIFwiYWxpYXNOYW1lXCI6IGRhdGFGaWVsZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjb2x1bW5EYXRhO1xuICAgIH1cblxuICAgIHRyYW5zZm9ybURhdGFGb3JNRmlsdGVyKGZpbHRlcmRhdGEsIG1hcERhdGEpIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICBtYXBEYXRhLmZvckVhY2gobWFwcGluZyA9PiB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0T2JqID0ge1xuICAgICAgICAgICAgICAgIGNvbHVtbk5hbWU6IG1hcHBpbmcuc2VydmVyQ29sdW1uLFxuICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBtYXBwaW5nLmRhdGFUeXBlLFxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBtYXBwaW5nLm9wZXJhdG9yTmFtZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogbWFwcGluZy5kZWZhdWx0VmFsdWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAobWFwcGluZy5zZXJ2ZXJDb2x1bW4uaW5jbHVkZXMoJ2RhdGUnKSAmJiB0eXBlb2YgcmVzdWx0T2JqLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmIChtYXBwaW5nLmZvcm1hdHRlciAmJiBtYXBwaW5nLmZvcm1hdHRlciAhPT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBtb21lbnQocmVzdWx0T2JqLnZhbHVlLCBcIllZWVktTU0tRERcIikuZm9ybWF0KG1hcHBpbmcuZm9ybWF0dGVyKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBtb21lbnQocmVzdWx0T2JqLnZhbHVlLCBcIllZWVktTU0tRERcIikuZm9ybWF0KHRoaXMuZW52aXJvbm1lbnQuZGF0YUZvcm1hdCk7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBmaWx0ZXJkYXRhLmZpbmQoZiA9PiBmLmhhc093blByb3BlcnR5KG1hcHBpbmcubG9jYWxDb2x1bW4pKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAobWFwcGluZy5kZWZhdWx0VmFsdWUgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBmaWx0ZXJbbWFwcGluZy5sb2NhbENvbHVtbl07XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoub3BlcmF0b3IgPSBcImluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSB2YWx1ZS5qb2luKFwiLFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXBwaW5nLnNlcnZlckNvbHVtbi5pbmNsdWRlcygnZGF0ZScpICYmIHR5cGVvZiByZXN1bHRPYmoudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFwcGluZy5mb3JtYXR0ZXIgJiYgbWFwcGluZy5mb3JtYXR0ZXIgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBtb21lbnQocmVzdWx0T2JqLnZhbHVlLCBcIllZWVktTU0tRERcIikuZm9ybWF0KG1hcHBpbmcuZm9ybWF0dGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gbW9tZW50KHJlc3VsdE9iai52YWx1ZSwgXCJZWVlZLU1NLUREXCIpLmZvcm1hdCh0aGlzLmVudmlyb25tZW50LmRhdGFGb3JtYXQpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1hcHBpbmcuZGVmYXVsdFZhbHVlID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVzdWx0T2JqKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZpbHRlcmRhdGEgPSBmaWx0ZXJkYXRhLmZpbHRlcihvYmogPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMob2JqKVswXTtcbiAgICAgICAgICAgIHJldHVybiBrZXkgIT09ICdzdGFydERhdGUnICYmIGtleSAhPT0gJ2VuZERhdGUnO1xuICAgICAgICB9KTtcbiAgICAgICAgZmlsdGVyZGF0YS5mb3JFYWNoKGZpbHRlciA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJLZXkgPSBPYmplY3Qua2V5cyhmaWx0ZXIpWzBdO1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdNYXBwaW5nID0gbWFwRGF0YS5maW5kKG1hcHBpbmcgPT4gbWFwcGluZy5sb2NhbENvbHVtbiA9PT0gZmlsdGVyS2V5KTtcblxuICAgICAgICAgICAgaWYgKCFleGlzdGluZ01hcHBpbmcpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0T2JqID0ge1xuICAgICAgICAgICAgICAgICAgICBjb2x1bW5OYW1lOiBmaWx0ZXJLZXksXG4gICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjogXCJlcVwiLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyW2ZpbHRlcktleV1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyW2ZpbHRlcktleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai5vcGVyYXRvciA9IFwiaW5cIjtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gZmlsdGVyW2ZpbHRlcktleV0uam9pbihcIixcIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gZmlsdGVyW2ZpbHRlcktleV07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gZm9yIG1jaXQgb25seVxuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJLZXkgPT0gJ29wZXJhdG9yX2tleScpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLm9wZXJhdG9yID0gXCJlcVwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChyZXN1bHRPYmopO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuXG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5maWx0ZXIob2JqID0+IG9iai52YWx1ZSAhPT0gbnVsbCAmJiBvYmoudmFsdWUgIT09IFwiXCIpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuXG5cblxuICAgIGdldERhdGFzZXRGb3JTaW1wbGVBcGlJbXBhbGEoZGF0YXNldDogYW55LCBkYXRhc2V0SWQ6IHN0cmluZywgZmlsdGVycykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXG4gICAgICAgICAgICBkYXRhc2V0LmNvbmZpZy5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMuZm9yRWFjaChmaWx0ZXIgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJzLm9wZXJhdGlvbkZpbHRlci5oYXNPd25Qcm9wZXJ0eShmaWx0ZXIubG9jYWxDb2x1bW4pKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlci5kZWZhdWx0VmFsdWUgPSBmaWx0ZXJzLm9wZXJhdGlvbkZpbHRlcltmaWx0ZXIubG9jYWxDb2x1bW5dO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGRhdGFzZXQuY29uZmlnLmFwaVR5cGUgPT09IFwicG9zdFwiKSB7XG5cbiAgICAgICAgICAgICAgICBsZXQgc2VydmljZUpzb246IGFueSA9IHt9O1xuICAgICAgICAgICAgICAgIGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycy5mb3JFYWNoKChmaWx0ZXI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0ZWNvbHVtbiA9IGZpbHRlci5zZXJ2ZXJDb2x1bW4udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGVjb2x1bW4uaW5jbHVkZXMoJ2RhdGUnKSAmJiB0eXBlb2YgZmlsdGVyLmRhdGFUeXBlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZUpzb25bZmlsdGVyLnNlcnZlckNvbHVtbl0gPSBtb21lbnQoZmlsdGVyLmRlZmF1bHRWYWx1ZSwgXCJZWVlZLU1NLUREXCIpLmZvcm1hdCh0aGlzLmVudmlyb25tZW50LmRhdGFGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZUpzb25bZmlsdGVyLnNlcnZlckNvbHVtbl0gPSBmaWx0ZXIuZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmdldFNpbXBsZUFwaVBvc3RSZXF1ZXN0KGRhdGFzZXQuY29uZmlnLmFwaSwgc2VydmljZUpzb24pLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBkYXRhW1wiUGF5bG9hZFwiXSB8fCBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51bmlxdWVEYXRhU2V0T2JqZWN0W2RhdGFzZXRJZF0gPSBwYXlsb2FkO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGFzZXQuY29uZmlnLmFwaVR5cGUgPT09IFwiZ2V0XCIpIHtcblxuICAgICAgICAgICAgICAgIGxldCByZXF1ZXN0VXJsID0gZGF0YXNldC5jb25maWcuYXBpICsgXCI/XCI7XG4gICAgICAgICAgICAgICAgZGF0YXNldC5jb25maWcucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzLmZvckVhY2goKGZpbHRlcjogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RVcmwgKz0gYCR7ZmlsdGVyLnNlcnZlckNvbHVtbn09JHtmaWx0ZXIuZGVmYXVsdFZhbHVlfWA7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA8IGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0VXJsICs9IFwiJlwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0U2ltcGxlQXBpR2V0UmVxdWVzdChyZXF1ZXN0VXJsKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gZGF0YVtcIlBheWxvYWRcIl0gfHwgZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudW5pcXVlRGF0YVNldE9iamVjdFtkYXRhc2V0SWRdID0gcGF5bG9hZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIGdldERhdGFzZXRGb3JQbGFpbkpzb24oZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcblxuICAgICAgICAgICAgbGV0IHJlcXVlc3RhcGkgPSBkYXRhc2V0LmNvbmZpZy5hcGkgKyAnP2RhdGFzZXRJZD0nICsgZGF0YXNldC5kYXRhc2V0SWQ7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0SnNvbkRhdGFzZXRQYXlsb2FkKHJlcXVlc3RhcGkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gZGF0YVtcIlBheWxvYWRcIl0gfHwgZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51bmlxdWVEYXRhU2V0T2JqZWN0W2RhdGFzZXRJZF0gPSBwYXlsb2FkO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG5cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgZ2V0RGF0YXNldEZvclNxbFRlbXBsYXRlKGRhdGFzZXQsIGRhdGFzZXRJZCwgZmlsdGVycykge1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cblxuICAgICAgICAgICAgY29uc3Qgb3BlcmF0b3IgPSAoZmlsdGVycyAmJiBmaWx0ZXJzLmxlbmd0aCAhPT0gMCkgPyBPYmplY3Qua2V5cyhmaWx0ZXJzLm9wZXJhdGlvbkZpbHRlcikubWFwKGtleSA9PiAoeyBba2V5XTogZmlsdGVycy5vcGVyYXRpb25GaWx0ZXJba2V5XSB9KSkgOiBbXTtcblxuICAgICAgICAgICAgbGV0IHJlcXVlc3RBcCA9IGRhdGFzZXQuY29uZmlnLmFwaTtcbiAgICAgICAgICAgIGxldCByZXF1ZXN0X3BhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICAnZGJDb25maWcnOiBkYXRhc2V0LmNvbmZpZy5xdWVyeUNvbmZpZy5kYkNvbmZpZyxcbiAgICAgICAgICAgICAgICAnZGF0YWJhc2VOYW1lJzogZGF0YXNldC5jb25maWcucXVlcnlDb25maWcuZGF0YWJhc2VOYW1lLFxuICAgICAgICAgICAgICAgICdmaWx0ZXJzJzogdGhpcy50cmFuc2Zvcm1EYXRhRm9yTUZpbHRlckZvclNRbChvcGVyYXRvciwgZGF0YXNldC5jb25maWcucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzKSxcbiAgICAgICAgICAgICAgICAndGVtcGxhdGVRdWVyeSc6IGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLnRlbXBsYXRlUXVlcnksXG4gICAgICAgICAgICAgICAgJ2VucmljaG1lbnRzJzogZGF0YXNldC5jb25maWcucXVlcnlDb25maWcuZW5yaWNobWVudHMsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2VuZXJpY1NxbFF1ZXJ5UmVzcG9uc2UocmVxdWVzdEFwLCByZXF1ZXN0X3BhcmFtcykuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBkYXRhW1wiUGF5bG9hZFwiXSB8fCBkYXRhO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQ7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLmVycm9yLm1lc3NhZ2UpXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdHJhbnNmb3JtRGF0YUZvck1GaWx0ZXJGb3JTUWwoZmlsdGVyZGF0YSwgbWFwRGF0YSkge1xuXG4gICAgICAgIGxldCByZXN1bHQgPSBbXTtcbiAgICAgICAgbWFwRGF0YS5mb3JFYWNoKG1hcHBpbmcgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3VsdE9iaiA9IHtcbiAgICAgICAgICAgICAgICBjb2x1bW5OYW1lOiBtYXBwaW5nLnNlcnZlckNvbHVtbixcbiAgICAgICAgICAgICAgICBkYXRhVHlwZTogbWFwcGluZy5kYXRhVHlwZSxcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogbWFwcGluZy5vcGVyYXRvck5hbWUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IG1hcHBpbmcuZGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgICAgIGFsaWFzQ29sdW1uTmFtZTogbWFwcGluZy5sb2NhbENvbHVtbixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAobWFwcGluZy5zZXJ2ZXJDb2x1bW4uaW5jbHVkZXMoJ2RhdGUnKSAmJiB0eXBlb2YgcmVzdWx0T2JqLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmIChtYXBwaW5nLmZvcm1hdHRlciAmJiBtYXBwaW5nLmZvcm1hdHRlciAhPT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBtb21lbnQocmVzdWx0T2JqLnZhbHVlLCBcIllZWVktTU0tRERcIikuZm9ybWF0KG1hcHBpbmcuZm9ybWF0dGVyKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBtb21lbnQocmVzdWx0T2JqLnZhbHVlLCBcIllZWVktTU0tRERcIikuZm9ybWF0KHRoaXMuZW52aXJvbm1lbnQuZGF0YUZvcm1hdCk7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBmaWx0ZXJkYXRhLmZpbmQoZiA9PiBmLmhhc093blByb3BlcnR5KG1hcHBpbmcubG9jYWxDb2x1bW4pKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAobWFwcGluZy5kZWZhdWx0VmFsdWUgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBmaWx0ZXJbbWFwcGluZy5sb2NhbENvbHVtbl07XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoub3BlcmF0b3IgPSBcImluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSB2YWx1ZS5qb2luKFwiLFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXBwaW5nLnNlcnZlckNvbHVtbi5pbmNsdWRlcygnZGF0ZScpICYmIHR5cGVvZiByZXN1bHRPYmoudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBtb21lbnQocmVzdWx0T2JqLnZhbHVlLCBcIllZWVktTU0tRERcIikuZm9ybWF0KHRoaXMuZW52aXJvbm1lbnQuZGF0YUZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1hcHBpbmcuZGVmYXVsdFZhbHVlID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVzdWx0T2JqKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZpbHRlcmRhdGEgPSBmaWx0ZXJkYXRhLmZpbHRlcihvYmogPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMob2JqKVswXTtcbiAgICAgICAgICAgIHJldHVybiBrZXkgIT09ICdzdGFydERhdGUnICYmIGtleSAhPT0gJ2VuZERhdGUnO1xuICAgICAgICB9KTsgZmlsdGVyZGF0YS5mb3JFYWNoKGZpbHRlciA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJLZXkgPSBPYmplY3Qua2V5cyhmaWx0ZXIpWzBdO1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdNYXBwaW5nID0gbWFwRGF0YS5maW5kKG1hcHBpbmcgPT4gbWFwcGluZy5sb2NhbENvbHVtbiA9PT0gZmlsdGVyS2V5KTtcblxuICAgICAgICAgICAgaWYgKCFleGlzdGluZ01hcHBpbmcpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0T2JqID0ge1xuICAgICAgICAgICAgICAgICAgICBjb2x1bW5OYW1lOiBmaWx0ZXJLZXksXG4gICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjogXCJlcVwiLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyW2ZpbHRlcktleV1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyW2ZpbHRlcktleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai5vcGVyYXRvciA9IFwiaW5cIjtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gZmlsdGVyW2ZpbHRlcktleV0uam9pbihcIixcIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gZmlsdGVyW2ZpbHRlcktleV07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gZm9yIG1jaXQgb25seVxuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJLZXkgPT0gJ29wZXJhdG9yX2tleScpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLm9wZXJhdG9yID0gXCJlcVwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChyZXN1bHRPYmopO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuXG4gICAgICAgIC8vIHJlc3VsdCA9IHJlc3VsdC5maWx0ZXIob2JqID0+IG9iai52YWx1ZSAhPT0gbnVsbCAmJiBvYmoudmFsdWUgIT09IFwiXCIpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuXG4gICAgZ2V0VW5pcXVlRGF0YVNldE9iamVjdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5pcXVlRGF0YVNldE9iamVjdDtcbiAgICB9XG5cblxuXG5cblxufVxuIl19
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLWxheW91dC1kYXRhc2V0LWNhbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvdGVtcGxhdGUtbW9kdWxlL2twaVdpdGhTaW5nbGVMYXlvdXQvc2luZ2xlLWxheW91dC1kYXRhc2V0LWNhbGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpYUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7QUFJM0UsTUFBTSxPQUFPLG1DQUFtQztJQUM5QyxZQUNVLE9BQW1DLEVBQ25DLE1BQWtDLEVBQ2xDLFVBQTRCLEVBQzVCLE1BQXFCLEVBQ0ksV0FBZ0I7UUFKekMsWUFBTyxHQUFQLE9BQU8sQ0FBNEI7UUFDbkMsV0FBTSxHQUFOLE1BQU0sQ0FBNEI7UUFDbEMsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNJLGdCQUFXLEdBQVgsV0FBVyxDQUFLO0lBQ2hELENBQUM7SUFFSixrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU87UUFDNUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQzlDLENBQUM7O2dJQWZVLG1DQUFtQyxtS0FNcEMsZUFBZTtvSUFOZCxtQ0FBbUMsY0FEdEIsTUFBTTsyRkFDbkIsbUNBQW1DO2tCQUQvQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBTzdCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyAvLyBpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG4vLyBpbXBvcnQgbW9tZW50IGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvbW9tZW50LWhlbHBlcic7XG4vLyBpbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG4vLyBpbXBvcnQgeyBBUFBfRU5WSVJPTk1FTlQgfSBmcm9tICcuLi8uLi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2Vudmlyb25tZW50Jztcbi8vIGltcG9ydCB7IGtwaWNvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2twaS1zZXJ2aWNlJztcbi8vIGltcG9ydCB7IE5hdmlnYXRpb25FeHRyYXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG4vLyBpbXBvcnQgeyBLcGlXaXRoU2luZ2xlTGF5b3V0U2VydmljZSB9IGZyb20gJy4va3BpLXNpbmdsZS1sYXlvdXQuc2VydmljZSc7XG5cbi8vIEBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcbi8vIGV4cG9ydCBjbGFzcyBTaW5nbGVMYXlvdXRBcHBsaWNhdGlvbkRhdHNzZXRzQ2FsbCB7XG5cbi8vICAgICB1bmlxdWVEYXRhU2V0T2JqZWN0ID0ge307XG5cbi8vICAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IEtwaVdpdGhTaW5nbGVMYXlvdXRTZXJ2aWNlLFxuLy8gICAgICAgICBwcml2YXRlIGtwaVNlcnZpY2U6IGtwaWNvbW1vblNlcnZpY2UsXG4vLyAgICAgICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuLy8gICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuLy8gICAgICAgICBASW5qZWN0KEFQUF9FTlZJUk9OTUVOVCkgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55XG4vLyAgICAgKSB7XG5cbi8vICAgICB9XG5cbi8vICAgICBnZXREYXRhRnJvbURhdGFTZXQoZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKSB7XG4vLyAgICAgICAgIGlmIChkYXRhc2V0LmRhdGFzZXRUeXBlID09IFwibW9uZ29cIikge1xuLy8gICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0YVNldEZvck1vbmdvKGRhdGFzZXQsIGRhdGFzZXRJZCk7XG4vLyAgICAgICAgIH0gZWxzZSBpZiAoZGF0YXNldC5kYXRhc2V0VHlwZSA9PSBcInF1ZXJ5YnVpbGRlclwiKSB7XG4vLyAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRhc2V0Rm9ySW1wYWxhKGRhdGFzZXQsIGRhdGFzZXRJZCwgZmlsdGVycyk7XG4vLyAgICAgICAgIH0gZWxzZSBpZiAoZGF0YXNldC5kYXRhc2V0VHlwZSA9PSBcInNpbXBsZUFwaVwiKSB7XG4vLyAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRhc2V0Rm9yU2ltcGxlQXBpSW1wYWxhKGRhdGFzZXQsIGRhdGFzZXRJZCwgZmlsdGVycyk7XG4vLyAgICAgICAgIH0gZWxzZSBpZiAoZGF0YXNldC5kYXRhc2V0VHlwZSA9PSBcInBsYWluanNvblwiKSB7XG4vLyAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRhc2V0Rm9yUGxhaW5Kc29uKGRhdGFzZXQsIGRhdGFzZXRJZCwgZmlsdGVycyk7XG4vLyAgICAgICAgIH0gZWxzZSBpZiAoZGF0YXNldC5kYXRhc2V0VHlwZSA9PSBcInNxbFF1ZXJ5XCIpIHtcbi8vICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGFzZXRGb3JTcWxUZW1wbGF0ZShkYXRhc2V0LCBkYXRhc2V0SWQsIGZpbHRlcnMpO1xuLy8gICAgICAgICB9IGVsc2Uge1xuLy8gICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuLy8gICAgICAgICB9XG4vLyAgICAgfVxuXG5cbi8vICAgICBnZXREYXRhU2V0Rm9yTW9uZ28oZGF0YXNldCwgZGF0YXNldElkKSB7XG4vLyAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4vLyAgICAgICAgICAgICBsZXQgYXBpSnNvbk9iamVjdCA9IHtcbi8vICAgICAgICAgICAgICAgICByZXF1ZXN0SWQ6IGRhdGFzZXQuY29uZmlnLnNlcnZpY2VJZCxcbi8vICAgICAgICAgICAgIH07XG4vLyAgICAgICAgICAgICBpZiAoZGF0YXNldC5jb25maWcuZml4T3BlcmF0aW9uTGV2bGVzICYmIGRhdGFzZXQuY29uZmlnLmZpeE9wZXJhdGlvbkxldmxlcy5sZW5ndGggIT0gMCkge1xuLy8gICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBkYXRhc2V0LmNvbmZpZy5maXhPcGVyYXRpb25MZXZsZXMpIHtcbi8vICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihhcGlKc29uT2JqZWN0LCBpdGVtKTtcbi8vICAgICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICBjb25zdCBtb25fY29uZmlnID0gdGhpcy5rcGlTZXJ2aWNlLmdldEFsbFNldmljZUFwaUpzb24oYXBpSnNvbk9iamVjdCk7XG4vLyAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0RGF0YShtb25fY29uZmlnLCBkYXRhc2V0LmNvbmZpZy5hcGkpLnN1YnNjcmliZSh7XG4vLyAgICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuLy8gICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gZGF0YVtcIlBheWxvYWRcIl0gfHwgZGF0YTtcbi8vICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy51bmlxdWVEYXRhU2V0T2JqZWN0W2RhdGFzZXRJZF0gPSBwYXlsb2FkLnNsaWNlKDAsIDIwKTtcbi8vICAgICAgICAgICAgICAgICAgICAgdGhpcy51bmlxdWVEYXRhU2V0T2JqZWN0W2RhdGFzZXRJZF0gPSBwYXlsb2FkO1xuLy8gICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4vLyAgICAgICAgICAgICAgICAgfSxcbi8vICAgICAgICAgICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4vLyAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycik7XG4vLyAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuLy8gICAgICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgIH0pO1xuLy8gICAgICAgICB9KTtcbi8vICAgICB9XG5cbi8vICAgICBnZXREYXRhc2V0Rm9ySW1wYWxhKGRhdGFzZXQsIGRhdGFzZXRJZCwgZmlsdGVycykge1xuLy8gICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXG4vLyAgICAgICAgICAgICBsZXQgcmVxdWVzdCA9IGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnO1xuLy8gICAgICAgICAgICAgbGV0IHRyYW5zZm9ybWVkT2JqZWN0OiBhbnkgPSB7fTtcbi8vICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgcmVxdWVzdC5yZXFGaWVsZHMpIHtcbi8vICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhpdGVtKVswXTtcbi8vICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IE9iamVjdC52YWx1ZXMoaXRlbSlbMF07XG4vLyAgICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gJ3N0YXJ0RGF0ZScpIHtcbi8vICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3QucmVjb3JkRGF0ZSA9IHZhbHVlO1xuLy8gICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4vLyAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVkT2JqZWN0W2tleV0gPSB2YWx1ZTtcbi8vICAgICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICBjb25zdCBvcGVyYXRvciA9IChmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoICE9PSAwKSA/IE9iamVjdC5rZXlzKGZpbHRlcnMub3BlcmF0aW9uRmlsdGVyKS5tYXAoa2V5ID0+ICh7IFtrZXldOiBmaWx0ZXJzLm9wZXJhdGlvbkZpbHRlcltrZXldIH0pKSA6IFtdO1xuXG5cbi8vICAgICAgICAgICAgIHRyYW5zZm9ybWVkT2JqZWN0WydmaWx0ZXJzJ10gPSB0aGlzLnRyYW5zZm9ybURhdGFGb3JNRmlsdGVyKG9wZXJhdG9yLCByZXF1ZXN0Lm1hcGVkRmlsdGVycyk7XG4vLyAgICAgICAgICAgICB0cmFuc2Zvcm1lZE9iamVjdFsnc29ydGVycyddID0gcmVxdWVzdC5zb3J0ZXJzO1xuLy8gICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3RbXCJwYWdpbmF0aW9uUmVxdWlyZWRcIl0gPSBmYWxzZTtcblxuLy8gICAgICAgICAgICAgaWYgKGRhdGFzZXQuY29uZmlnLmFwaSA9PSBcIi9rcGkvZ2VuZXJpY0FnZ3JlZ2F0ZVBhZ2luYXRlZEtwaVNlcnZpY2VSZXNwb25zZVwiKSB7XG4vLyAgICAgICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3RbJ21lYXN1cmVzJ10gPSByZXF1ZXN0Lm1lYXN1cmVzO1xuLy8gICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVkT2JqZWN0WydkaW1lbnNpb25zJ10gPSByZXF1ZXN0LmRpbWVuc2lvbnM7XG4vLyAgICAgICAgICAgICB9IGVsc2Uge1xuLy8gICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVkT2JqZWN0Wydjb2x1bW5zJ10gPSB0aGlzLmdldEZvcm1hdE9iamVjdEZvckNvbHVtbihyZXF1ZXN0LmNvbHVtbnMpO1xuLy8gICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgaWYgKHJlcXVlc3QuaGF2aW5ncyAmJiByZXF1ZXN0LmhhdmluZ3MubGVuZ3RoICE9PSAwKSB7XG4vLyAgICAgICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3RbJ2hhdmluZ3MnXSA9IHJlcXVlc3QuaGF2aW5ncztcbi8vICAgICAgICAgICAgIH1cblxuXG4vLyAgICAgICAgICAgICAvLyBsZXQgbmF2aWdhdGlvbjogTmF2aWdhdGlvbkV4dHJhcyA9IHtcbi8vICAgICAgICAgICAgIC8vICAgICBxdWVyeVBhcmFtczogYXBwbGllZEZpbHRlcnNbJ29wZXJhdGlvbkZpbHRlciddLFxuLy8gICAgICAgICAgICAgLy8gICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6IFwibWVyZ2VcIlxuLy8gICAgICAgICAgICAgLy8gfTtcbi8vICAgICAgICAgICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCBuYXZpZ2F0aW9uKTtcblxuXG4vLyAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0RGF0YSh0cmFuc2Zvcm1lZE9iamVjdCwgZGF0YXNldC5jb25maWcuYXBpKS5zdWJzY3JpYmUoe1xuLy8gICAgICAgICAgICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbi8vICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGRhdGFbJ2RhdGFzZXQnXTtcbi8vICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy51bmlxdWVEYXRhU2V0T2JqZWN0W2RhdGFzZXRJZF0gPSBwYXlsb2FkLnNsaWNlKDAsIDMwKTtcbi8vICAgICAgICAgICAgICAgICAgICAgdGhpcy51bmlxdWVEYXRhU2V0T2JqZWN0W2RhdGFzZXRJZF0gPSBwYXlsb2FkO1xuLy8gICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4vLyAgICAgICAgICAgICAgICAgfSxcbi8vICAgICAgICAgICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4vLyAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycik7XG4vLyAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKVxuLy8gICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbi8vICAgICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICB9KTtcbi8vICAgICAgICAgfSk7XG4vLyAgICAgfVxuXG5cbi8vICAgICBnZXRGb3JtYXRPYmplY3RGb3JDb2x1bW4oY29sdW1ucykge1xuLy8gICAgICAgICBsZXQgY29sdW1uRGF0YSA9IFtdO1xuLy8gICAgICAgICBjb2x1bW5zLmZvckVhY2goZWxlbWVudCA9PiB7XG4vLyAgICAgICAgICAgICBjb25zdCB7IGFkdmFuY2VkQ29sdW1uLCBjb2x1bW5OYW1lLCBlbnJpY2hGdW5jdGlvbiwgZGF0YUZpZWxkIH0gPSBlbGVtZW50O1xuLy8gICAgICAgICAgICAgY29sdW1uRGF0YS5wdXNoKHtcbi8vICAgICAgICAgICAgICAgICBcImFkdmFuY2VkQ29sdW1uXCI6IGFkdmFuY2VkQ29sdW1uLFxuLy8gICAgICAgICAgICAgICAgIFwiY29sdW1uTmFtZVwiOiBjb2x1bW5OYW1lLFxuLy8gICAgICAgICAgICAgICAgIFwiZW5yaWNoRnVuY3Rpb25cIjogZW5yaWNoRnVuY3Rpb24sXG4vLyAgICAgICAgICAgICAgICAgXCJhbGlhc05hbWVcIjogZGF0YUZpZWxkXG4vLyAgICAgICAgICAgICB9KVxuLy8gICAgICAgICB9KTtcbi8vICAgICAgICAgcmV0dXJuIGNvbHVtbkRhdGE7XG4vLyAgICAgfVxuXG4vLyAgICAgdHJhbnNmb3JtRGF0YUZvck1GaWx0ZXIoZmlsdGVyZGF0YSwgbWFwRGF0YSkge1xuLy8gICAgICAgICBsZXQgcmVzdWx0ID0gW107XG4vLyAgICAgICAgIG1hcERhdGEuZm9yRWFjaChtYXBwaW5nID0+IHtcbi8vICAgICAgICAgICAgIGxldCByZXN1bHRPYmogPSB7XG4vLyAgICAgICAgICAgICAgICAgY29sdW1uTmFtZTogbWFwcGluZy5zZXJ2ZXJDb2x1bW4sXG4vLyAgICAgICAgICAgICAgICAgZGF0YVR5cGU6IG1hcHBpbmcuZGF0YVR5cGUsXG4vLyAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IG1hcHBpbmcub3BlcmF0b3JOYW1lLFxuLy8gICAgICAgICAgICAgICAgIHZhbHVlOiBtYXBwaW5nLmRlZmF1bHRWYWx1ZVxuLy8gICAgICAgICAgICAgfTtcbi8vICAgICAgICAgICAgIGlmIChtYXBwaW5nLnNlcnZlckNvbHVtbi5pbmNsdWRlcygnZGF0ZScpICYmIHR5cGVvZiByZXN1bHRPYmoudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4vLyAgICAgICAgICAgICAgICAgaWYgKG1hcHBpbmcuZm9ybWF0dGVyICYmIG1hcHBpbmcuZm9ybWF0dGVyICE9PSBcIlwiKSB7XG4vLyAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IG1vbWVudChyZXN1bHRPYmoudmFsdWUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQobWFwcGluZy5mb3JtYXR0ZXIpO1xuLy8gICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4vLyAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IG1vbWVudChyZXN1bHRPYmoudmFsdWUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQodGhpcy5lbnZpcm9ubWVudC5kYXRhRm9ybWF0KTtcblxuLy8gICAgICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IGZpbHRlcmRhdGEuZmluZChmID0+IGYuaGFzT3duUHJvcGVydHkobWFwcGluZy5sb2NhbENvbHVtbikpO1xuLy8gICAgICAgICAgICAgaWYgKGZpbHRlcikge1xuLy8gICAgICAgICAgICAgICAgIGlmIChtYXBwaW5nLmRlZmF1bHRWYWx1ZSA9PT0gXCJcIikge1xuLy8gICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGZpbHRlclttYXBwaW5nLmxvY2FsQ29sdW1uXTtcblxuLy8gICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai5vcGVyYXRvciA9IFwiaW5cIjtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IHZhbHVlLmpvaW4oXCIsXCIpO1xuLy8gICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gdmFsdWU7XG4vLyAgICAgICAgICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgICAgICAgICAgaWYgKG1hcHBpbmcuc2VydmVyQ29sdW1uLmluY2x1ZGVzKCdkYXRlJykgJiYgdHlwZW9mIHJlc3VsdE9iai52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXBwaW5nLmZvcm1hdHRlciAmJiBtYXBwaW5nLmZvcm1hdHRlciAhPT0gXCJcIikge1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IG1vbWVudChyZXN1bHRPYmoudmFsdWUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQobWFwcGluZy5mb3JtYXR0ZXIpO1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBtb21lbnQocmVzdWx0T2JqLnZhbHVlLCBcIllZWVktTU0tRERcIikuZm9ybWF0KHRoaXMuZW52aXJvbm1lbnQuZGF0YUZvcm1hdCk7XG5cbi8vICAgICAgICAgICAgICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgIH0gZWxzZSBpZiAobWFwcGluZy5kZWZhdWx0VmFsdWUgPT09IFwiXCIpIHtcbi8vICAgICAgICAgICAgICAgICByZXR1cm47XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICByZXN1bHQucHVzaChyZXN1bHRPYmopO1xuLy8gICAgICAgICB9KTtcbi8vICAgICAgICAgZmlsdGVyZGF0YSA9IGZpbHRlcmRhdGEuZmlsdGVyKG9iaiA9PiB7XG4vLyAgICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhvYmopWzBdO1xuLy8gICAgICAgICAgICAgcmV0dXJuIGtleSAhPT0gJ3N0YXJ0RGF0ZScgJiYga2V5ICE9PSAnZW5kRGF0ZSc7XG4vLyAgICAgICAgIH0pO1xuLy8gICAgICAgICBmaWx0ZXJkYXRhLmZvckVhY2goZmlsdGVyID0+IHtcbi8vICAgICAgICAgICAgIGNvbnN0IGZpbHRlcktleSA9IE9iamVjdC5rZXlzKGZpbHRlcilbMF07XG4vLyAgICAgICAgICAgICBjb25zdCBleGlzdGluZ01hcHBpbmcgPSBtYXBEYXRhLmZpbmQobWFwcGluZyA9PiBtYXBwaW5nLmxvY2FsQ29sdW1uID09PSBmaWx0ZXJLZXkpO1xuXG4vLyAgICAgICAgICAgICBpZiAoIWV4aXN0aW5nTWFwcGluZykge1xuLy8gICAgICAgICAgICAgICAgIGxldCByZXN1bHRPYmogPSB7XG4vLyAgICAgICAgICAgICAgICAgICAgIGNvbHVtbk5hbWU6IGZpbHRlcktleSxcbi8vICAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwic3RyaW5nXCIsXG4vLyAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBcImVxXCIsXG4vLyAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmaWx0ZXJbZmlsdGVyS2V5XVxuLy8gICAgICAgICAgICAgICAgIH07XG5cbi8vICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWx0ZXJbZmlsdGVyS2V5XSkpIHtcbi8vICAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLm9wZXJhdG9yID0gXCJpblwiO1xuLy8gICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBmaWx0ZXJbZmlsdGVyS2V5XS5qb2luKFwiLFwiKTtcbi8vICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuLy8gICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBmaWx0ZXJbZmlsdGVyS2V5XTtcbi8vICAgICAgICAgICAgICAgICB9XG5cbi8vICAgICAgICAgICAgICAgICAvLyBmb3IgbWNpdCBvbmx5XG4vLyAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcktleSA9PSAnb3BlcmF0b3Jfa2V5Jykge1xuLy8gICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoub3BlcmF0b3IgPSBcImVxXCI7XG4vLyAgICAgICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHJlc3VsdE9iaik7XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgIH0pO1xuXG5cbi8vICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmZpbHRlcihvYmogPT4gb2JqLnZhbHVlICE9PSBudWxsICYmIG9iai52YWx1ZSAhPT0gXCJcIik7XG4vLyAgICAgICAgIHJldHVybiByZXN1bHQ7XG4vLyAgICAgfVxuXG5cblxuXG4vLyAgICAgZ2V0RGF0YXNldEZvclNpbXBsZUFwaUltcGFsYShkYXRhc2V0OiBhbnksIGRhdGFzZXRJZDogc3RyaW5nLCBmaWx0ZXJzKSB7XG4vLyAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cbi8vICAgICAgICAgICAgIGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycy5mb3JFYWNoKGZpbHRlciA9PiB7XG4vLyAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcnMub3BlcmF0aW9uRmlsdGVyLmhhc093blByb3BlcnR5KGZpbHRlci5sb2NhbENvbHVtbikpIHtcbi8vICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLmRlZmF1bHRWYWx1ZSA9IGZpbHRlcnMub3BlcmF0aW9uRmlsdGVyW2ZpbHRlci5sb2NhbENvbHVtbl07XG4vLyAgICAgICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgfSk7XG4vLyAgICAgICAgICAgICBpZiAoZGF0YXNldC5jb25maWcuYXBpVHlwZSA9PT0gXCJwb3N0XCIpIHtcblxuLy8gICAgICAgICAgICAgICAgIGxldCBzZXJ2aWNlSnNvbjogYW55ID0ge307XG4vLyAgICAgICAgICAgICAgICAgZGF0YXNldC5jb25maWcucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzLmZvckVhY2goKGZpbHRlcjogYW55KSA9PiB7XG4vLyAgICAgICAgICAgICAgICAgICAgIGxldCBkYXRlY29sdW1uID0gZmlsdGVyLnNlcnZlckNvbHVtbi50b0xvd2VyQ2FzZSgpO1xuLy8gICAgICAgICAgICAgICAgICAgICBpZiAoZGF0ZWNvbHVtbi5pbmNsdWRlcygnZGF0ZScpICYmIHR5cGVvZiBmaWx0ZXIuZGF0YVR5cGUgPT09ICdzdHJpbmcnKSB7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlSnNvbltmaWx0ZXIuc2VydmVyQ29sdW1uXSA9IG1vbWVudChmaWx0ZXIuZGVmYXVsdFZhbHVlLCBcIllZWVktTU0tRERcIikuZm9ybWF0KHRoaXMuZW52aXJvbm1lbnQuZGF0YUZvcm1hdCk7XG4vLyAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlSnNvbltmaWx0ZXIuc2VydmVyQ29sdW1uXSA9IGZpbHRlci5kZWZhdWx0VmFsdWU7XG4vLyAgICAgICAgICAgICAgICAgICAgIH1cblxuXG4vLyAgICAgICAgICAgICAgICAgfSk7XG5cbi8vICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0U2ltcGxlQXBpUG9zdFJlcXVlc3QoZGF0YXNldC5jb25maWcuYXBpLCBzZXJ2aWNlSnNvbikuc3Vic2NyaWJlKHtcbi8vICAgICAgICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGRhdGFbXCJQYXlsb2FkXCJdIHx8IGRhdGE7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQ7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4vLyAgICAgICAgICAgICAgICAgICAgIH0sXG4vLyAgICAgICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycik7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSlcblxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4vLyAgICAgICAgICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgICAgICB9KTtcbi8vICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YXNldC5jb25maWcuYXBpVHlwZSA9PT0gXCJnZXRcIikge1xuXG4vLyAgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3RVcmwgPSBkYXRhc2V0LmNvbmZpZy5hcGkgKyBcIj9cIjtcbi8vICAgICAgICAgICAgICAgICBkYXRhc2V0LmNvbmZpZy5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMuZm9yRWFjaCgoZmlsdGVyOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbi8vICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFVybCArPSBgJHtmaWx0ZXIuc2VydmVyQ29sdW1ufT0ke2ZpbHRlci5kZWZhdWx0VmFsdWV9YDtcbi8vICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4IDwgZGF0YXNldC5jb25maWcucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzLmxlbmd0aCAtIDEpIHtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RVcmwgKz0gXCImXCI7XG4vLyAgICAgICAgICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgICAgICB9KTtcblxuLy8gICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5nZXRTaW1wbGVBcGlHZXRSZXF1ZXN0KHJlcXVlc3RVcmwpLnN1YnNjcmliZSh7XG4vLyAgICAgICAgICAgICAgICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBkYXRhW1wiUGF5bG9hZFwiXSB8fCBkYXRhO1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51bmlxdWVEYXRhU2V0T2JqZWN0W2RhdGFzZXRJZF0gPSBwYXlsb2FkO1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuLy8gICAgICAgICAgICAgICAgICAgICB9LFxuLy8gICAgICAgICAgICAgICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnIpO1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpXG5cbi8vICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuLy8gICAgICAgICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICAgICAgfSk7XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgIH0pO1xuLy8gICAgIH1cblxuXG4vLyAgICAgZ2V0RGF0YXNldEZvclBsYWluSnNvbihkYXRhc2V0LCBkYXRhc2V0SWQsIGZpbHRlcikge1xuLy8gICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXG4vLyAgICAgICAgICAgICBsZXQgcmVxdWVzdGFwaSA9IGRhdGFzZXQuY29uZmlnLmFwaSArICc/ZGF0YXNldElkPScgKyBkYXRhc2V0LmRhdGFzZXRJZDtcbi8vICAgICAgICAgICAgIHRoaXMuc2VydmljZS5nZXRKc29uRGF0YXNldFBheWxvYWQocmVxdWVzdGFwaSkuc3Vic2NyaWJlKHtcbi8vICAgICAgICAgICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4vLyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBkYXRhW1wiUGF5bG9hZFwiXSB8fCBkYXRhO1xuLy8gICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQ7XG4vLyAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcblxuLy8gICAgICAgICAgICAgICAgIH0sXG4vLyAgICAgICAgICAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuLy8gICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnIpO1xuLy8gICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbi8vICAgICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICB9KTtcbi8vICAgICAgICAgfSk7XG4vLyAgICAgfVxuXG5cbi8vICAgICBnZXREYXRhc2V0Rm9yU3FsVGVtcGxhdGUoZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKSB7XG5cbi8vICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcblxuXG4vLyAgICAgICAgICAgICBjb25zdCBvcGVyYXRvciA9IChmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoICE9PSAwKSA/IE9iamVjdC5rZXlzKGZpbHRlcnMub3BlcmF0aW9uRmlsdGVyKS5tYXAoa2V5ID0+ICh7IFtrZXldOiBmaWx0ZXJzLm9wZXJhdGlvbkZpbHRlcltrZXldIH0pKSA6IFtdO1xuXG4vLyAgICAgICAgICAgICBsZXQgcmVxdWVzdEFwID0gZGF0YXNldC5jb25maWcuYXBpO1xuLy8gICAgICAgICAgICAgbGV0IHJlcXVlc3RfcGFyYW1zID0ge1xuLy8gICAgICAgICAgICAgICAgICdkYkNvbmZpZyc6IGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLmRiQ29uZmlnLFxuLy8gICAgICAgICAgICAgICAgICdkYXRhYmFzZU5hbWUnOiBkYXRhc2V0LmNvbmZpZy5xdWVyeUNvbmZpZy5kYXRhYmFzZU5hbWUsXG4vLyAgICAgICAgICAgICAgICAgJ2ZpbHRlcnMnOiB0aGlzLnRyYW5zZm9ybURhdGFGb3JNRmlsdGVyRm9yU1FsKG9wZXJhdG9yLCBkYXRhc2V0LmNvbmZpZy5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMpLFxuLy8gICAgICAgICAgICAgICAgICd0ZW1wbGF0ZVF1ZXJ5JzogZGF0YXNldC5jb25maWcucXVlcnlDb25maWcudGVtcGxhdGVRdWVyeSxcbi8vICAgICAgICAgICAgICAgICAnZW5yaWNobWVudHMnOiBkYXRhc2V0LmNvbmZpZy5xdWVyeUNvbmZpZy5lbnJpY2htZW50cyxcbi8vICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgIHRoaXMuc2VydmljZS5nZW5lcmljU3FsUXVlcnlSZXNwb25zZShyZXF1ZXN0QXAsIHJlcXVlc3RfcGFyYW1zKS5zdWJzY3JpYmUoe1xuLy8gICAgICAgICAgICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbi8vICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGRhdGFbXCJQYXlsb2FkXCJdIHx8IGRhdGE7XG4vLyAgICAgICAgICAgICAgICAgICAgIHRoaXMudW5pcXVlRGF0YVNldE9iamVjdFtkYXRhc2V0SWRdID0gcGF5bG9hZDtcbi8vICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuLy8gICAgICAgICAgICAgICAgIH0sXG4vLyAgICAgICAgICAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuLy8gICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnIpO1xuLy8gICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIuZXJyb3IubWVzc2FnZSlcbi8vICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuLy8gICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbi8vICAgICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICB9KTtcblxuLy8gICAgICAgICB9KTtcbi8vICAgICB9XG5cbi8vICAgICB0cmFuc2Zvcm1EYXRhRm9yTUZpbHRlckZvclNRbChmaWx0ZXJkYXRhLCBtYXBEYXRhKSB7XG5cbi8vICAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuLy8gICAgICAgICBtYXBEYXRhLmZvckVhY2gobWFwcGluZyA9PiB7XG4vLyAgICAgICAgICAgICBsZXQgcmVzdWx0T2JqID0ge1xuLy8gICAgICAgICAgICAgICAgIGNvbHVtbk5hbWU6IG1hcHBpbmcuc2VydmVyQ29sdW1uLFxuLy8gICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBtYXBwaW5nLmRhdGFUeXBlLFxuLy8gICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBtYXBwaW5nLm9wZXJhdG9yTmFtZSxcbi8vICAgICAgICAgICAgICAgICB2YWx1ZTogbWFwcGluZy5kZWZhdWx0VmFsdWUsXG4vLyAgICAgICAgICAgICAgICAgYWxpYXNDb2x1bW5OYW1lOiBtYXBwaW5nLmxvY2FsQ29sdW1uLFxuLy8gICAgICAgICAgICAgfTtcbi8vICAgICAgICAgICAgIGlmIChtYXBwaW5nLnNlcnZlckNvbHVtbi5pbmNsdWRlcygnZGF0ZScpICYmIHR5cGVvZiByZXN1bHRPYmoudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4vLyAgICAgICAgICAgICAgICAgaWYgKG1hcHBpbmcuZm9ybWF0dGVyICYmIG1hcHBpbmcuZm9ybWF0dGVyICE9PSBcIlwiKSB7XG4vLyAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IG1vbWVudChyZXN1bHRPYmoudmFsdWUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQobWFwcGluZy5mb3JtYXR0ZXIpO1xuLy8gICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4vLyAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IG1vbWVudChyZXN1bHRPYmoudmFsdWUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQodGhpcy5lbnZpcm9ubWVudC5kYXRhRm9ybWF0KTtcblxuLy8gICAgICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IGZpbHRlcmRhdGEuZmluZChmID0+IGYuaGFzT3duUHJvcGVydHkobWFwcGluZy5sb2NhbENvbHVtbikpO1xuLy8gICAgICAgICAgICAgaWYgKGZpbHRlcikge1xuLy8gICAgICAgICAgICAgICAgIGlmIChtYXBwaW5nLmRlZmF1bHRWYWx1ZSA9PT0gXCJcIikge1xuLy8gICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGZpbHRlclttYXBwaW5nLmxvY2FsQ29sdW1uXTtcblxuLy8gICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai5vcGVyYXRvciA9IFwiaW5cIjtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IHZhbHVlLmpvaW4oXCIsXCIpO1xuLy8gICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gdmFsdWU7XG4vLyAgICAgICAgICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgICAgICAgICAgaWYgKG1hcHBpbmcuc2VydmVyQ29sdW1uLmluY2x1ZGVzKCdkYXRlJykgJiYgdHlwZW9mIHJlc3VsdE9iai52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IG1vbWVudChyZXN1bHRPYmoudmFsdWUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQodGhpcy5lbnZpcm9ubWVudC5kYXRhRm9ybWF0KTtcbi8vICAgICAgICAgICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgIH0gZWxzZSBpZiAobWFwcGluZy5kZWZhdWx0VmFsdWUgPT09IFwiXCIpIHtcbi8vICAgICAgICAgICAgICAgICByZXR1cm47XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICByZXN1bHQucHVzaChyZXN1bHRPYmopO1xuLy8gICAgICAgICB9KTtcbi8vICAgICAgICAgZmlsdGVyZGF0YSA9IGZpbHRlcmRhdGEuZmlsdGVyKG9iaiA9PiB7XG4vLyAgICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhvYmopWzBdO1xuLy8gICAgICAgICAgICAgcmV0dXJuIGtleSAhPT0gJ3N0YXJ0RGF0ZScgJiYga2V5ICE9PSAnZW5kRGF0ZSc7XG4vLyAgICAgICAgIH0pOyBmaWx0ZXJkYXRhLmZvckVhY2goZmlsdGVyID0+IHtcbi8vICAgICAgICAgICAgIGNvbnN0IGZpbHRlcktleSA9IE9iamVjdC5rZXlzKGZpbHRlcilbMF07XG4vLyAgICAgICAgICAgICBjb25zdCBleGlzdGluZ01hcHBpbmcgPSBtYXBEYXRhLmZpbmQobWFwcGluZyA9PiBtYXBwaW5nLmxvY2FsQ29sdW1uID09PSBmaWx0ZXJLZXkpO1xuXG4vLyAgICAgICAgICAgICBpZiAoIWV4aXN0aW5nTWFwcGluZykge1xuLy8gICAgICAgICAgICAgICAgIGxldCByZXN1bHRPYmogPSB7XG4vLyAgICAgICAgICAgICAgICAgICAgIGNvbHVtbk5hbWU6IGZpbHRlcktleSxcbi8vICAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwic3RyaW5nXCIsXG4vLyAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBcImVxXCIsXG4vLyAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmaWx0ZXJbZmlsdGVyS2V5XVxuLy8gICAgICAgICAgICAgICAgIH07XG5cbi8vICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWx0ZXJbZmlsdGVyS2V5XSkpIHtcbi8vICAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLm9wZXJhdG9yID0gXCJpblwiO1xuLy8gICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBmaWx0ZXJbZmlsdGVyS2V5XS5qb2luKFwiLFwiKTtcbi8vICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuLy8gICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBmaWx0ZXJbZmlsdGVyS2V5XTtcbi8vICAgICAgICAgICAgICAgICB9XG5cbi8vICAgICAgICAgICAgICAgICAvLyBmb3IgbWNpdCBvbmx5XG4vLyAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcktleSA9PSAnb3BlcmF0b3Jfa2V5Jykge1xuLy8gICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoub3BlcmF0b3IgPSBcImVxXCI7XG4vLyAgICAgICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHJlc3VsdE9iaik7XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgIH0pO1xuXG5cbi8vICAgICAgICAgLy8gcmVzdWx0ID0gcmVzdWx0LmZpbHRlcihvYmogPT4gb2JqLnZhbHVlICE9PSBudWxsICYmIG9iai52YWx1ZSAhPT0gXCJcIik7XG4vLyAgICAgICAgIHJldHVybiByZXN1bHQ7XG4vLyAgICAgfVxuXG5cbi8vICAgICBnZXRVbmlxdWVEYXRhU2V0T2JqZWN0KCkge1xuLy8gICAgICAgICByZXR1cm4gdGhpcy51bmlxdWVEYXRhU2V0T2JqZWN0O1xuLy8gICAgIH1cblxuXG5cblxuXG4vLyB9XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IGtwaWNvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2twaS1zZXJ2aWNlJztcbmltcG9ydCB7IEFQUF9FTlZJUk9OTUVOVCB9IGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgVGVtcGxhdGVEYXRhc2V0Q2FsbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvdGVtcGxhdGUtZGF0YXNldC1jYWxsLXNlcnZpY2UnO1xuaW1wb3J0IHsgS3BpV2l0aFNpbmdsZUxheW91dFNlcnZpY2UgfSBmcm9tICcuL2twaS1zaW5nbGUtbGF5b3V0LnNlcnZpY2UnO1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxuZXhwb3J0IGNsYXNzIFNpbmdsZUxheW91dEFwcGxpY2F0aW9uRGF0c3NldHNDYWxsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBiYWNrZW5kOiBLcGlXaXRoU2luZ2xlTGF5b3V0U2VydmljZSxcbiAgICBwcml2YXRlIGNvbW1vbjogVGVtcGxhdGVEYXRhc2V0Q2FsbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrcGlTZXJ2aWNlOiBrcGljb21tb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuICAgIEBJbmplY3QoQVBQX0VOVklST05NRU5UKSBwcml2YXRlIGVudmlyb25tZW50OiBhbnlcbiAgKSB7fVxuXG4gIGdldERhdGFGcm9tRGF0YVNldChkYXRhc2V0LCBkYXRhc2V0SWQsIGZpbHRlcnMpIHtcbiAgICByZXR1cm4gdGhpcy5jb21tb24uZ2V0RGF0YUZyb21EYXRhU2V0KHRoaXMuYmFja2VuZCwgZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKTtcbiAgfVxuXG4gIGdldFVuaXF1ZURhdGFTZXRPYmplY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tbW9uLmdldFVuaXF1ZURhdGFTZXRPYmplY3QoKTtcbiAgfVxufSJdfQ==
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -33,6 +33,8 @@ export * from './lib/application-controller/support-components/geo-map/geo-map.c
|
|
|
33
33
|
export * from './lib/shared/advanced-component/gamma-heatmap/gamma-heatmap.component';
|
|
34
34
|
export * from './lib/shared/advanced-component/google-geo-map/google-geo-map.component';
|
|
35
35
|
export * from './lib/shared/advanced-component/gamma-geo-chart/gamma-geo-chart.component';
|
|
36
|
+
export * from './lib/shared/user-access/user-access.component';
|
|
37
|
+
export * from './lib/shared/shared.module';
|
|
36
38
|
export * from './lib/application-controller/page-controller/page-config/page-config.component';
|
|
37
39
|
export * from './lib/application-controller/page-controller/page-config-multi-layout/page-config-multi-layout.component';
|
|
38
40
|
export * from './lib/application-controller/page-controller/page-controller/page-controller.component';
|
|
@@ -98,4 +100,7 @@ export * from './lib/template-module/bookmarked-template/bookmarked-template.com
|
|
|
98
100
|
export * from './lib/template-module/bookmarked-template/bookmarkedTemplate.module';
|
|
99
101
|
export * from './lib/template-module/bookmarked-template/bookmarked-layout.service';
|
|
100
102
|
export * from './lib/template-module/bookmarked-template/bookmarked-dataset-call.service';
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw0REFBNEQsQ0FBQztBQU8zRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHdEQUF3RCxDQUFDO0FBR3ZFLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyw4R0FBOEcsQ0FBQztBQUM3SCxjQUFjLDRHQUE0RyxDQUFDO0FBQzNILGNBQWMsb0dBQW9HLENBQUM7QUFDbkgsY0FBYyx3R0FBd0csQ0FBQztBQUN2SCxjQUFjLHNHQUFzRyxDQUFDO0FBQ3JILGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxxR0FBcUcsQ0FBQztBQUNwSCxjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsMkZBQTJGLENBQUM7QUFDMUcsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLHFHQUFxRyxDQUFDO0FBQ3BILGNBQWMsbUdBQW1HLENBQUM7QUFDbEgsY0FBYyxxRkFBcUYsQ0FBQztBQUNwRyxjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsbUdBQW1HLENBQUM7QUFDbEgsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMseUZBQXlGLENBQUM7QUFDeEcsY0FBYywyRUFBMkUsQ0FBQztBQUMxRixjQUFjLHVFQUF1RSxDQUFBO0FBQ3JGLGNBQWMseUVBQXlFLENBQUM7QUFDeEYsY0FBYywyRUFBMkUsQ0FBQztBQUUxRixjQUFjLGdGQUFnRixDQUFDO0FBQy9GLGNBQWMsMEdBQTBHLENBQUM7QUFDekgsY0FBYyx3RkFBd0YsQ0FBQztBQUd2RyxjQUFjLGdHQUFnRyxDQUFDO0FBQy9HLGNBQWMsZ0dBQWdHLENBQUM7QUFDL0csY0FBYyxnR0FBZ0csQ0FBQztBQUMvRyxjQUFjLHdHQUF3RyxDQUFDO0FBS3ZILGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywwREFBMEQsQ0FBQTtBQUN4RSxjQUFjLGtEQUFrRCxDQUFBO0FBR2hFLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw0RkFBNEYsQ0FBQztBQUMzRyxjQUFjLDZFQUE2RSxDQUFDO0FBRzVGLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsMENBQTBDLENBQUM7QUFHekQsY0FBYyxpRkFBaUYsQ0FBQztBQUNoRyxjQUFjLGlGQUFpRixDQUFDO0FBQ2hHLGNBQWMsbUdBQW1HLENBQUM7QUFDbEgsY0FBYyw2RUFBNkUsQ0FBQztBQUk1RixjQUFjLDRDQUE0QyxDQUFBO0FBSTFELGNBQWMsMkVBQTJFLENBQUM7QUFDMUYsY0FBYyxvRUFBb0UsQ0FBQztBQUVuRixjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsd0RBQXdELENBQUM7QUFFdkUsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLG1GQUFtRixDQUFDO0FBQ2xHLGNBQWMsK0ZBQStGLENBQUM7QUFDOUcsY0FBYyx1RkFBdUYsQ0FBQztBQUN0RyxjQUFjLG1GQUFtRixDQUFDO0FBQ2xHLGNBQWMscUZBQXFGLENBQUM7QUFLcEcsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLDZFQUE2RSxDQUFDO0FBQzVGLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyxzRUFBc0UsQ0FBQztBQUVyRixjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMseUVBQXlFLENBQUM7QUFDeEYsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMsNEVBQTRFLENBQUM7QUFDM0YsY0FBYyxvRUFBb0UsQ0FBQztBQUVuRixjQUFjLDBFQUEwRSxDQUFDO0FBQ3pGLGNBQWMsNkVBQTZFLENBQUM7QUFDNUYsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLDJFQUEyRSxDQUFDO0FBQzFGLGNBQWMsMEVBQTBFLENBQUM7QUFFekYsY0FBYyw0RkFBNEYsQ0FBQztBQUMzRyxjQUFjLHlGQUF5RixDQUFDO0FBQ3hHLGNBQWMsMEZBQTBGLENBQUM7QUFDekcsY0FBYyw0RkFBNEYsQ0FBQztBQUMzRyxjQUFjLDJGQUEyRixDQUFDO0FBRzFHLGNBQWMseUVBQXlFLENBQUM7QUFDeEYsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMsMkVBQTJFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGdhbW1hLWFwcC1jb250cm9sbGVyXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2FtbWEtYXBwLWNvbnRyb2xsZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nYW1tYS1hcHAtY29udHJvbGxlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2FtbWEtYXBwLWNvbnRyb2xsZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ljb25zLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIubW9kdWxlJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tY29udGVudC5zZXJ2aWNlJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tZGF0YXNldC1jYWxsLnNlcnZpY2UnO1xuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9lbnZpcm9ubWVudCc7XG5cblxuLy8gRXhwb3J0IE1vZHVsZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dhbW1hLWFwcC1jb250cm9sbGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvbG9hZGluZy9sb2FkaW5nTW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XG5cbi8vIEV4cG9ydCBDb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWZpbHRlci9hcHBsaWNhdGlvbi1maWx0ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvY3JlYXRlLWRhdGFzZXQtanNvbi9jcmVhdGUtZGF0YXNldC1qc29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0LXNxbC9jcmVhdGUtZGF0YXNldC1zcWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvY3JlYXRlLWRhdGFzZXQvY3JlYXRlLWRhdGFzZXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tdmlldy1jb21wb25lbnRzL2FwcGxpY2F0aW9uLXZpZXdzL2FwcGxpY2F0aW9uLXZpZXdzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLXZpZXctY29tcG9uZW50cy9jcmVhdGUtY29tcC12aWV3L2NyZWF0ZS1jb21wLXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvY29tbW9uLWhlYWRlci9jb21tb24taGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2FkdmFuY2Utd2lkZ2V0LWhlYWRlci1maWx0ZXIvYWR2YW5jZS13aWRnZXQtaGVhZGVyLWZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9hcHAtYWR2YW5jZS1oZWFkZXIvYXBwLWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tLXNpbmdsZS1udW1iZXItY2FyZC9nYW1tLXNpbmdsZS1udW1iZXItY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS1hZHZhbmNlLWNoYXJ0L2dhbW1hLWFkdmFuY2UtY2hhcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtYWR2YW5jZS1vcGVyYXRvci10YWJsZS9nYW1tYS1hZHZhbmNlLW9wZXJhdG9yLXRhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLXRhYmxlLXdpdGgtcGVyY2VudGFnZS9nYW1tYS10YWJsZS13aXRoLXBlcmNlbnRhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtdG9kYXktcHJldmlvdXMvZ2FtbWEtdG9kYXktcHJldmlvdXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ29vZ2xlLWdlby1tYXAvZ29vZ2xlLWdlby1tYXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtdGFibGUtY2x1bW4tYmFyLWNoYXJ0L2dhbW1hLXRhYmxlLWNsdW1uLWJhci1jaGFydC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FwcC10aXRsZS9hcHAtdGl0bGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9nYW1hbS13aWRnZXQvZ2FtYW0td2lkZ2V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZ2FtbWEtYWR2YW5jZS1maWx0ZXIvZ2FtbWEtYWR2YW5jZS1maWx0ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9nYW1tYS1icmVhZC1jcnVtYnMvYnJlYWQtY3J1bWJzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9zdXBwb3J0LWNvbXBvbmVudHMvdGFibGUtd2l0aC1iYXIvdGFibGUtd2l0aC1iYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvc3VwcG9ydC1jb21wb25lbnRzL2dlby1tYXAvZ2VvLW1hcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS1oZWF0bWFwL2dhbW1hLWhlYXRtYXAuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nb29nbGUtZ2VvLW1hcC9nb29nbGUtZ2VvLW1hcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS1nZW8tY2hhcnQvZ2FtbWEtZ2VvLWNoYXJ0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvcGFnZS1jb250cm9sbGVyL3BhZ2UtY29uZmlnL3BhZ2UtY29uZmlnLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3BhZ2UtY29udHJvbGxlci9wYWdlLWNvbmZpZy1tdWx0aS1sYXlvdXQvcGFnZS1jb25maWctbXVsdGktbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3BhZ2UtY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIvcGFnZS1jb250cm9sbGVyLmNvbXBvbmVudCc7XG5cbi8vbWV0cmljIGNvbXBvbmVudFxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1tZXRyaWMtY29uZmlnL2NyZWF0ZS1tZXRyaWNzL2NyZWF0ZS1tZXRyaWNzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLW1ldHJpYy1jb25maWcvb2ZsaW5lLW1ldHJpY3Mvb2ZsaW5lLW1ldHJpY3MuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tbWV0cmljLWNvbmZpZy9vbmxpbmUtbWV0cmljcy9vbmxpbmUtbWV0cmljcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1tZXRyaWMtY29uZmlnL2FsbC1tZXRyaWNzLWNvbmZpZy9hbGwtbWV0cmljcy1jb25maWcuY29tcG9uZW50JztcblxuXG5cbi8vIEV4cG9ydCBTZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNhbGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2twaS1zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwLmh0dHAuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nYW1tYS1hcHAtY29udHJvbGxlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tY29udGVudC5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci90b2tlblN0b3JhZ2Uuc2VydmNlJ1xuXG4vLyBFeHBvcnQgUGlwZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9zYWZlSHRtbFBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC1zcWwvc3FsRm9ybWF0dGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtdGFibGUtd2l0aC1wZXJjZW50YWdlL2NvbnRlbnRTYWZlSHRtbCc7XG5cbi8vIEV4cG9ydCBNaXNjZWxsYW5lb3VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9nYW1tYS1hcHAtY29udHJvbGxlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaWNvbnMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvY29tbW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvZW52aXJvbm1lbnQnO1xuXG4vLyBzdXBwb3J0IGNvbXBvbmVudFxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9zdXBwb3J0LWNvbXBvbmVudHMvZGFzaC1jaGFydC9kYXNoLWNoYXJ0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3N1cHBvcnQtY29tcG9uZW50cy9kYXNoLXRhYmxlL2Rhc2gtdGFibGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvc3VwcG9ydC1jb21wb25lbnRzL2Rhc2gtdG9kYXktcHJldmlvdXMvZGFzaC10b2RheS1wcmV2aW91cy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9zdXBwb3J0LWNvbXBvbmVudHMvaGVhdC1tYXAvaGVhdC1tYXAuY29tcG9uZW50JztcblxuXG4vL21vbWVudFxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9tb21lbnQtaGVscGVyJ1xuXG5cbi8vIG1vZHVscyBmb3Igb3B1c2lkZSB1c2VcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9leGNlcHRpb25Db25maWdNb2R1bGUvZXhjZXB0aW9uLW9wZXJhdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2V4Y2VwdGlvbkNvbmZpZ01vZHVsZS9leGNlcHRpb25Db25maWcubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2NkckNvbmZpZ01vZHVsZS9jZHItY29uZmlnLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvY2RyQ29uZmlnTW9kdWxlL2NkckNvbmZpZy5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvS3BpQ3JlYXRpb25Nb2R1bGUvY3JlYXRlLWtwaS10cmVlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvS3BpQ3JlYXRpb25Nb2R1bGUva3BpQ3JlYXRpb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS90cmVldmlldy90cmVldmlldy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL0twaUNyZWF0aW9uTW9kdWxlL3RyZWV2aWV3L2NvbXBvbmVudHMvYXNpZGUvYXNpZGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS90cmVldmlldy9jb21wb25lbnRzL2Jhc2ljL2Jhc2ljLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvS3BpQ3JlYXRpb25Nb2R1bGUvdHJlZXZpZXcvY29tcG9uZW50cy9jb2xsYXBzYWJsZS9jb2xsYXBzYWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL0twaUNyZWF0aW9uTW9kdWxlL3RyZWV2aWV3L2NvbXBvbmVudHMvZGl2aWRlci9kaXZpZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvS3BpQ3JlYXRpb25Nb2R1bGUvdHJlZXZpZXcvY29tcG9uZW50cy9ncm91cC9ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL0twaUNyZWF0aW9uTW9kdWxlL3RyZWV2aWV3L2NvbXBvbmVudHMvc3BhY2VyL3NwYWNlci5jb21wb25lbnQnO1xuXG5cblxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aFNpbmdsZUxheW91dC9rcGlXaXRoU2luZ2xlTGF5b3V0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aFNpbmdsZUxheW91dC9rcGktd2l0aC1kYXRhc2V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aFNpbmdsZUxheW91dC9keW5hbWluLW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aFNpbmdsZUxheW91dC9rcGktc2luZ2xlLWxheW91dC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoU2luZ2xlTGF5b3V0L2FwcGxpY2F0aW9uLWNoYXQtYXBpLWNhbGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aFNpbmdsZUxheW91dC9zaW5nbGUtbGF5b3V0LWRhdGFzZXQtY2FsbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoU2luZ2xlTGF5b3V0L3NpbmdsZS50b2tlblN0b3JhZ2Uuc2VydmNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2twaVdpdGhNdWx0aUxheW91dC9keW5hbWluLW1vZGFsLW11bHRpLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aE11bHRpTGF5b3V0L2twaS13aXRoLW11bHRpbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aE11bHRpTGF5b3V0L2twaVdpdGhNdWx0aWF5b3V0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aE11bHRpTGF5b3V0L2twaS1tdWx0aS1sYXlvdXQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aE11bHRpTGF5b3V0L211bHRpLWxheW91dC1kYXRhc2V0LWNhbGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aE11bHRpTGF5b3V0L211aWxpLnRva2VuU3RvcmFnZS5zZXJ2Y2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvZGVmYXVsTGFuZGluZ0NvbXBvbmVudC9sYW5kaW5nLWNvbXBvbmVudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2RlZmF1bExhbmRpbmdDb21wb25lbnQvZGVmYXVsdExhbmRpbmdDb21wb25lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9kZWZhdWxMYW5kaW5nQ29tcG9uZW50L2xhbmRpbmctY29tcG9uZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2RlZmF1bExhbmRpbmdDb21wb25lbnQvbGFuZGluZy1kYXRhc2V0LWNhbGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvZGVmYXVsTGFuZGluZ0NvbXBvbmVudC9sYW5kaW5nLnRva2VuU3RvcmFnZS5zZXJ2Y2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvZGVmYXVsTGFuZGluZ011bHRpTGF5b3V0Q29tcG9uZW50L2RlZmF1bExhbmRpbmdNdWx0aUxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2RlZmF1bExhbmRpbmdNdWx0aUxheW91dENvbXBvbmVudC9kZWZhdWxMYW5kaW5nTXVsdGlMYXlvdXQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9kZWZhdWxMYW5kaW5nTXVsdGlMYXlvdXRDb21wb25lbnQvZGVmYXVsTGFuZGluZ011bHRpTGF5b3V0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2RlZmF1bExhbmRpbmdNdWx0aUxheW91dENvbXBvbmVudC9tdWx0aS1sYW5kaW5nLWRhdGFzZXQtY2FsbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9kZWZhdWxMYW5kaW5nTXVsdGlMYXlvdXRDb21wb25lbnQvbXVsdGktbGFuZGluZy50b2tlblN0b3JhZ2Uuc2VydmNlJzsgXG5cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2Jvb2ttYXJrZWQtdGVtcGxhdGUvYm9va21hcmtlZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2Jvb2ttYXJrZWQtdGVtcGxhdGUvYm9va21hcmtlZFRlbXBsYXRlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvYm9va21hcmtlZC10ZW1wbGF0ZS9ib29rbWFya2VkLWxheW91dC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9ib29rbWFya2VkLXRlbXBsYXRlL2Jvb2ttYXJrZWQtZGF0YXNldC1jYWxsLnNlcnZpY2UnO1xuXG5cblxuXG5cblxuXG5cblxuIl19
|
|
103
|
+
export * from './lib/shared/template-dataset-call-service';
|
|
104
|
+
export * from './lib/shared/security_principal';
|
|
105
|
+
export * from './lib/shared/permission-helper';
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw0REFBNEQsQ0FBQztBQU8zRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHdEQUF3RCxDQUFDO0FBR3ZFLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyw4R0FBOEcsQ0FBQztBQUM3SCxjQUFjLDRHQUE0RyxDQUFDO0FBQzNILGNBQWMsb0dBQW9HLENBQUM7QUFDbkgsY0FBYyx3R0FBd0csQ0FBQztBQUN2SCxjQUFjLHNHQUFzRyxDQUFDO0FBQ3JILGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxxR0FBcUcsQ0FBQztBQUNwSCxjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsMkZBQTJGLENBQUM7QUFDMUcsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLHFHQUFxRyxDQUFDO0FBQ3BILGNBQWMsbUdBQW1HLENBQUM7QUFDbEgsY0FBYyxxRkFBcUYsQ0FBQztBQUNwRyxjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsbUdBQW1HLENBQUM7QUFDbEgsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMseUZBQXlGLENBQUM7QUFDeEcsY0FBYywyRUFBMkUsQ0FBQztBQUMxRixjQUFjLHVFQUF1RSxDQUFBO0FBQ3JGLGNBQWMseUVBQXlFLENBQUM7QUFDeEYsY0FBYywyRUFBMkUsQ0FBQztBQUUxRixjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxnRkFBZ0YsQ0FBQztBQUMvRixjQUFjLDBHQUEwRyxDQUFDO0FBQ3pILGNBQWMsd0ZBQXdGLENBQUM7QUFHdkcsY0FBYyxnR0FBZ0csQ0FBQztBQUMvRyxjQUFjLGdHQUFnRyxDQUFDO0FBQy9HLGNBQWMsZ0dBQWdHLENBQUM7QUFDL0csY0FBYyx3R0FBd0csQ0FBQztBQUt2SCxjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsMERBQTBELENBQUE7QUFDeEUsY0FBYyxrREFBa0QsQ0FBQTtBQUdoRSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNEZBQTRGLENBQUM7QUFDM0csY0FBYyw2RUFBNkUsQ0FBQztBQUc1RixjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDBDQUEwQyxDQUFDO0FBR3pELGNBQWMsaUZBQWlGLENBQUM7QUFDaEcsY0FBYyxpRkFBaUYsQ0FBQztBQUNoRyxjQUFjLG1HQUFtRyxDQUFDO0FBQ2xILGNBQWMsNkVBQTZFLENBQUM7QUFJNUYsY0FBYyw0Q0FBNEMsQ0FBQTtBQUkxRCxjQUFjLDJFQUEyRSxDQUFDO0FBQzFGLGNBQWMsb0VBQW9FLENBQUM7QUFFbkYsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLHdEQUF3RCxDQUFDO0FBRXZFLGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMsbUZBQW1GLENBQUM7QUFDbEcsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLCtGQUErRixDQUFDO0FBQzlHLGNBQWMsdUZBQXVGLENBQUM7QUFDdEcsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLHFGQUFxRixDQUFDO0FBS3BHLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyw2RUFBNkUsQ0FBQztBQUM1RixjQUFjLDhFQUE4RSxDQUFDO0FBQzdGLGNBQWMsc0VBQXNFLENBQUM7QUFFckYsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLDRFQUE0RSxDQUFDO0FBQzNGLGNBQWMsb0VBQW9FLENBQUM7QUFFbkYsY0FBYywwRUFBMEUsQ0FBQztBQUN6RixjQUFjLDZFQUE2RSxDQUFDO0FBQzVGLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYywyRUFBMkUsQ0FBQztBQUMxRixjQUFjLDBFQUEwRSxDQUFDO0FBRXpGLGNBQWMsNEZBQTRGLENBQUM7QUFDM0csY0FBYyx5RkFBeUYsQ0FBQztBQUN4RyxjQUFjLDBGQUEwRixDQUFDO0FBQ3pHLGNBQWMsNEZBQTRGLENBQUM7QUFDM0csY0FBYywyRkFBMkYsQ0FBQztBQUcxRyxjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLDJFQUEyRSxDQUFDO0FBSTFGLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBnYW1tYS1hcHAtY29udHJvbGxlclxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2dhbW1hLWFwcC1jb250cm9sbGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2FtbWEtYXBwLWNvbnRyb2xsZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dhbW1hLWFwcC1jb250cm9sbGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pY29ucy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1jb250cm9sbGVyLm1vZHVsZSc7XG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWNvbnRlbnQuc2VydmljZSc7XG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWRhdGFzZXQtY2FsbC5zZXJ2aWNlJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvZW52aXJvbm1lbnQnO1xuXG5cbi8vIEV4cG9ydCBNb2R1bGVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9nYW1tYS1hcHAtY29udHJvbGxlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1jb250cm9sbGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2xvYWRpbmcvbG9hZGluZ01vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuXG4vLyBFeHBvcnQgQ29tcG9uZW50c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1maWx0ZXIvYXBwbGljYXRpb24tZmlsdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0LWpzb24vY3JlYXRlLWRhdGFzZXQtanNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC1zcWwvY3JlYXRlLWRhdGFzZXQtc3FsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0L2NyZWF0ZS1kYXRhc2V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLXZpZXctY29tcG9uZW50cy9hcHBsaWNhdGlvbi12aWV3cy9hcHBsaWNhdGlvbi12aWV3cy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi12aWV3LWNvbXBvbmVudHMvY3JlYXRlLWNvbXAtdmlldy9jcmVhdGUtY29tcC12aWV3LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2NvbW1vbi1oZWFkZXIvY29tbW9uLWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9hZHZhbmNlLXdpZGdldC1oZWFkZXItZmlsdGVyL2FkdmFuY2Utd2lkZ2V0LWhlYWRlci1maWx0ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvYXBwLWFkdmFuY2UtaGVhZGVyL2FwcC1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQvZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtYWR2YW5jZS1jaGFydC9nYW1tYS1hZHZhbmNlLWNoYXJ0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLWFkdmFuY2Utb3BlcmF0b3ItdGFibGUvZ2FtbWEtYWR2YW5jZS1vcGVyYXRvci10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS10YWJsZS13aXRoLXBlcmNlbnRhZ2UvZ2FtbWEtdGFibGUtd2l0aC1wZXJjZW50YWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLXRvZGF5LXByZXZpb3VzL2dhbW1hLXRvZGF5LXByZXZpb3VzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dvb2dsZS1nZW8tbWFwL2dvb2dsZS1nZW8tbWFwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLXRhYmxlLWNsdW1uLWJhci1jaGFydC9nYW1tYS10YWJsZS1jbHVtbi1iYXItY2hhcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hcHAtdGl0bGUvYXBwLXRpdGxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZ2FtYW0td2lkZ2V0L2dhbWFtLXdpZGdldC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2dhbW1hLWFkdmFuY2UtZmlsdGVyL2dhbW1hLWFkdmFuY2UtZmlsdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZ2FtbWEtYnJlYWQtY3J1bWJzL2JyZWFkLWNydW1icy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvc3VwcG9ydC1jb21wb25lbnRzL3RhYmxlLXdpdGgtYmFyL3RhYmxlLXdpdGgtYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3N1cHBvcnQtY29tcG9uZW50cy9nZW8tbWFwL2dlby1tYXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtaGVhdG1hcC9nYW1tYS1oZWF0bWFwLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ29vZ2xlLWdlby1tYXAvZ29vZ2xlLWdlby1tYXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtZ2VvLWNoYXJ0L2dhbW1hLWdlby1jaGFydC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvdXNlci1hY2Nlc3MvdXNlci1hY2Nlc3MuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIvcGFnZS1jb25maWcvcGFnZS1jb25maWcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvcGFnZS1jb250cm9sbGVyL3BhZ2UtY29uZmlnLW11bHRpLWxheW91dC9wYWdlLWNvbmZpZy1tdWx0aS1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvcGFnZS1jb250cm9sbGVyL3BhZ2UtY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIuY29tcG9uZW50JztcblxuLy9tZXRyaWMgY29tcG9uZW50XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLW1ldHJpYy1jb25maWcvY3JlYXRlLW1ldHJpY3MvY3JlYXRlLW1ldHJpY3MuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tbWV0cmljLWNvbmZpZy9vZmxpbmUtbWV0cmljcy9vZmxpbmUtbWV0cmljcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1tZXRyaWMtY29uZmlnL29ubGluZS1tZXRyaWNzL29ubGluZS1tZXRyaWNzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLW1ldHJpYy1jb25maWcvYWxsLW1ldHJpY3MtY29uZmlnL2FsbC1tZXRyaWNzLWNvbmZpZy5jb21wb25lbnQnO1xuXG5cblxuLy8gRXhwb3J0IFNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWRhdGFzZXQtY2FsbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIva3BpLXNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHAuaHR0cC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dhbW1hLWFwcC1jb250cm9sbGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1jb250ZW50LnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3Rva2VuU3RvcmFnZS5zZXJ2Y2UnXG5cbi8vIEV4cG9ydCBQaXBlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3NhZmVIdG1sUGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0LXNxbC9zcWxGb3JtYXR0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS10YWJsZS13aXRoLXBlcmNlbnRhZ2UvY29udGVudFNhZmVIdG1sJztcblxuLy8gRXhwb3J0IE1pc2NlbGxhbmVvdXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dhbW1hLWFwcC1jb250cm9sbGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pY29ucy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9jb21tb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9lbnZpcm9ubWVudCc7XG5cbi8vIHN1cHBvcnQgY29tcG9uZW50XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3N1cHBvcnQtY29tcG9uZW50cy9kYXNoLWNoYXJ0L2Rhc2gtY2hhcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvc3VwcG9ydC1jb21wb25lbnRzL2Rhc2gtdGFibGUvZGFzaC10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9zdXBwb3J0LWNvbXBvbmVudHMvZGFzaC10b2RheS1wcmV2aW91cy9kYXNoLXRvZGF5LXByZXZpb3VzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3N1cHBvcnQtY29tcG9uZW50cy9oZWF0LW1hcC9oZWF0LW1hcC5jb21wb25lbnQnO1xuXG5cbi8vbW9tZW50XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL21vbWVudC1oZWxwZXInXG5cblxuLy8gbW9kdWxzIGZvciBvcHVzaWRlIHVzZVxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2V4Y2VwdGlvbkNvbmZpZ01vZHVsZS9leGNlcHRpb24tb3BlcmF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvZXhjZXB0aW9uQ29uZmlnTW9kdWxlL2V4Y2VwdGlvbkNvbmZpZy5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvY2RyQ29uZmlnTW9kdWxlL2Nkci1jb25maWcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9jZHJDb25maWdNb2R1bGUvY2RyQ29uZmlnLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS9jcmVhdGUta3BpLXRyZWUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS9rcGlDcmVhdGlvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL0twaUNyZWF0aW9uTW9kdWxlL3RyZWV2aWV3L3RyZWV2aWV3LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvS3BpQ3JlYXRpb25Nb2R1bGUvdHJlZXZpZXcvY29tcG9uZW50cy9hc2lkZS9hc2lkZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL0twaUNyZWF0aW9uTW9kdWxlL3RyZWV2aWV3L2NvbXBvbmVudHMvYmFzaWMvYmFzaWMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS90cmVldmlldy9jb21wb25lbnRzL2NvbGxhcHNhYmxlL2NvbGxhcHNhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvS3BpQ3JlYXRpb25Nb2R1bGUvdHJlZXZpZXcvY29tcG9uZW50cy9kaXZpZGVyL2RpdmlkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9LcGlDcmVhdGlvbk1vZHVsZS90cmVldmlldy9jb21wb25lbnRzL2dyb3VwL2dyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvS3BpQ3JlYXRpb25Nb2R1bGUvdHJlZXZpZXcvY29tcG9uZW50cy9zcGFjZXIvc3BhY2VyLmNvbXBvbmVudCc7XG5cblxuXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoU2luZ2xlTGF5b3V0L2twaVdpdGhTaW5nbGVMYXlvdXQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoU2luZ2xlTGF5b3V0L2twaS13aXRoLWRhdGFzZXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoU2luZ2xlTGF5b3V0L2R5bmFtaW4tbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoU2luZ2xlTGF5b3V0L2twaS1zaW5nbGUtbGF5b3V0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2twaVdpdGhTaW5nbGVMYXlvdXQvYXBwbGljYXRpb24tY2hhdC1hcGktY2FsbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoU2luZ2xlTGF5b3V0L3NpbmdsZS1sYXlvdXQtZGF0YXNldC1jYWxsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2twaVdpdGhTaW5nbGVMYXlvdXQvc2luZ2xlLnRva2VuU3RvcmFnZS5zZXJ2Y2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUva3BpV2l0aE11bHRpTGF5b3V0L2R5bmFtaW4tbW9kYWwtbXVsdGkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoTXVsdGlMYXlvdXQva3BpLXdpdGgtbXVsdGlsYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoTXVsdGlMYXlvdXQva3BpV2l0aE11bHRpYXlvdXQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoTXVsdGlMYXlvdXQva3BpLW11bHRpLWxheW91dC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoTXVsdGlMYXlvdXQvbXVsdGktbGF5b3V0LWRhdGFzZXQtY2FsbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9rcGlXaXRoTXVsdGlMYXlvdXQvbXVpbGkudG9rZW5TdG9yYWdlLnNlcnZjZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9kZWZhdWxMYW5kaW5nQ29tcG9uZW50L2xhbmRpbmctY29tcG9uZW50LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvZGVmYXVsTGFuZGluZ0NvbXBvbmVudC9kZWZhdWx0TGFuZGluZ0NvbXBvbmVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2RlZmF1bExhbmRpbmdDb21wb25lbnQvbGFuZGluZy1jb21wb25lbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvZGVmYXVsTGFuZGluZ0NvbXBvbmVudC9sYW5kaW5nLWRhdGFzZXQtY2FsbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9kZWZhdWxMYW5kaW5nQ29tcG9uZW50L2xhbmRpbmcudG9rZW5TdG9yYWdlLnNlcnZjZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9kZWZhdWxMYW5kaW5nTXVsdGlMYXlvdXRDb21wb25lbnQvZGVmYXVsTGFuZGluZ011bHRpTGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvZGVmYXVsTGFuZGluZ011bHRpTGF5b3V0Q29tcG9uZW50L2RlZmF1bExhbmRpbmdNdWx0aUxheW91dC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2RlZmF1bExhbmRpbmdNdWx0aUxheW91dENvbXBvbmVudC9kZWZhdWxMYW5kaW5nTXVsdGlMYXlvdXQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvZGVmYXVsTGFuZGluZ011bHRpTGF5b3V0Q29tcG9uZW50L211bHRpLWxhbmRpbmctZGF0YXNldC1jYWxsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2RlZmF1bExhbmRpbmdNdWx0aUxheW91dENvbXBvbmVudC9tdWx0aS1sYW5kaW5nLnRva2VuU3RvcmFnZS5zZXJ2Y2UnOyBcblxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvYm9va21hcmtlZC10ZW1wbGF0ZS9ib29rbWFya2VkLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZS1tb2R1bGUvYm9va21hcmtlZC10ZW1wbGF0ZS9ib29rbWFya2VkVGVtcGxhdGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlLW1vZHVsZS9ib29rbWFya2VkLXRlbXBsYXRlL2Jvb2ttYXJrZWQtbGF5b3V0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGUtbW9kdWxlL2Jvb2ttYXJrZWQtdGVtcGxhdGUvYm9va21hcmtlZC1kYXRhc2V0LWNhbGwuc2VydmljZSc7XG5cblxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvdGVtcGxhdGUtZGF0YXNldC1jYWxsLXNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3NlY3VyaXR5X3ByaW5jaXBhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvcGVybWlzc2lvbi1oZWxwZXInO1xuXG5cblxuXG4iXX0=
|