@payloadcms/db-postgres 0.8.1 → 0.8.3
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/count.d.ts.map +1 -1
- package/dist/count.js +3 -6
- package/dist/create.d.ts.map +1 -1
- package/dist/create.js +9 -6
- package/dist/createGlobal.d.ts.map +1 -1
- package/dist/createGlobal.js +9 -6
- package/dist/createGlobalVersion.d.ts.map +1 -1
- package/dist/createGlobalVersion.js +11 -10
- package/dist/createVersion.d.ts.map +1 -1
- package/dist/createVersion.js +22 -21
- package/dist/deleteMany.d.ts.map +1 -1
- package/dist/deleteMany.js +8 -6
- package/dist/deleteOne.d.ts.map +1 -1
- package/dist/deleteOne.js +3 -6
- package/dist/deleteVersions.d.ts.map +1 -1
- package/dist/deleteVersions.js +8 -7
- package/dist/find/traverseFields.d.ts.map +1 -1
- package/dist/find/traverseFields.js +13 -22
- package/dist/find.d.ts.map +1 -1
- package/dist/find.js +8 -6
- package/dist/findGlobal.d.ts.map +1 -1
- package/dist/findGlobal.js +8 -6
- package/dist/findGlobalVersions.d.ts.map +1 -1
- package/dist/findGlobalVersions.js +8 -7
- package/dist/findOne.d.ts.map +1 -1
- package/dist/findOne.js +8 -6
- package/dist/findVersions.d.ts.map +1 -1
- package/dist/findVersions.js +8 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -8
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +10 -8
- package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
- package/dist/queries/getTableColumnFromPath.js +12 -41
- package/dist/queries/parseParams.js +3 -3
- package/dist/queryDrafts.d.ts.map +1 -1
- package/dist/queryDrafts.js +8 -7
- package/dist/schema/build.d.ts +4 -3
- package/dist/schema/build.d.ts.map +1 -1
- package/dist/schema/build.js +86 -45
- package/dist/schema/{getTableName.d.ts → createTableName.d.ts} +5 -7
- package/dist/schema/createTableName.d.ts.map +1 -0
- package/dist/schema/createTableName.js +43 -0
- package/dist/schema/traverseFields.d.ts.map +1 -1
- package/dist/schema/traverseFields.js +40 -18
- package/dist/schema/validateExistingBlockIsIdentical.d.ts.map +1 -1
- package/dist/schema/validateExistingBlockIsIdentical.js +1 -1
- package/dist/transform/read/hasManyText.d.ts +2 -2
- package/dist/transform/read/hasManyText.d.ts.map +1 -1
- package/dist/transform/read/hasManyText.js +2 -2
- package/dist/transform/read/index.js +3 -3
- package/dist/transform/write/array.d.ts +2 -2
- package/dist/transform/write/array.d.ts.map +1 -1
- package/dist/transform/write/array.js +4 -4
- package/dist/transform/write/blocks.js +2 -2
- package/dist/transform/write/index.js +5 -5
- package/dist/transform/write/texts.js +3 -3
- package/dist/transform/write/traverseFields.d.ts.map +1 -1
- package/dist/transform/write/traverseFields.js +6 -15
- package/dist/transform/write/types.d.ts +1 -1
- package/dist/transform/write/types.d.ts.map +1 -1
- package/dist/types.d.ts +3 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/update.d.ts.map +1 -1
- package/dist/update.js +3 -6
- package/dist/updateGlobal.d.ts.map +1 -1
- package/dist/updateGlobal.js +8 -6
- package/dist/updateGlobalVersion.d.ts.map +1 -1
- package/dist/updateGlobalVersion.js +3 -7
- package/dist/updateVersion.d.ts.map +1 -1
- package/dist/updateVersion.js +3 -7
- package/dist/upsertRow/index.js +3 -3
- package/dist/upsertRow/insertArrays.js +2 -2
- package/package.json +2 -2
- package/dist/schema/getTableName.d.ts.map +0 -1
- package/dist/schema/getTableName.js +0 -43
@@ -16,7 +16,7 @@ const _tosnakecase = /*#__PURE__*/ _interop_require_default(require("to-snake-ca
|
|
16
16
|
const _hasLocalesTable = require("../utilities/hasLocalesTable");
|
17
17
|
const _build = require("./build");
|
18
18
|
const _createIndex = require("./createIndex");
|
19
|
-
const
|
19
|
+
const _createTableName = require("./createTableName");
|
20
20
|
const _idToUUID = require("./idToUUID");
|
21
21
|
const _parentIDColumnMap = require("./parentIDColumnMap");
|
22
22
|
const _validateExistingBlockIsIdentical = require("./validateExistingBlockIsIdentical");
|
@@ -145,7 +145,7 @@ const traverseFields = ({ adapter, buildNumbers, buildRelationships, buildTexts,
|
|
145
145
|
case 'radio':
|
146
146
|
case 'select':
|
147
147
|
{
|
148
|
-
const enumName = (0,
|
148
|
+
const enumName = (0, _createTableName.createTableName)({
|
149
149
|
adapter,
|
150
150
|
config: field,
|
151
151
|
parentTableName: newTableName,
|
@@ -160,7 +160,7 @@ const traverseFields = ({ adapter, buildNumbers, buildRelationships, buildTexts,
|
|
160
160
|
return option;
|
161
161
|
}));
|
162
162
|
if (field.type === 'select' && field.hasMany) {
|
163
|
-
const selectTableName = (0,
|
163
|
+
const selectTableName = (0, _createTableName.createTableName)({
|
164
164
|
adapter,
|
165
165
|
config: field,
|
166
166
|
parentTableName: newTableName,
|
@@ -169,13 +169,20 @@ const traverseFields = ({ adapter, buildNumbers, buildRelationships, buildTexts,
|
|
169
169
|
});
|
170
170
|
const baseColumns = {
|
171
171
|
order: (0, _pgcore.integer)('order').notNull(),
|
172
|
-
parent: _parentIDColumnMap.parentIDColumnMap[parentIDColType]('parent_id').
|
173
|
-
onDelete: 'cascade'
|
174
|
-
}).notNull(),
|
172
|
+
parent: _parentIDColumnMap.parentIDColumnMap[parentIDColType]('parent_id').notNull(),
|
175
173
|
value: adapter.enums[enumName]('value')
|
176
174
|
};
|
177
175
|
const baseExtraConfig = {
|
178
176
|
orderIdx: (cols)=>(0, _pgcore.index)(`${selectTableName}_order_idx`).on(cols.order),
|
177
|
+
parentFk: (cols)=>(0, _pgcore.foreignKey)({
|
178
|
+
name: `${selectTableName}_parent_fk`,
|
179
|
+
columns: [
|
180
|
+
cols.parent
|
181
|
+
],
|
182
|
+
foreignColumns: [
|
183
|
+
adapter.tables[parentTableName].id
|
184
|
+
]
|
185
|
+
}),
|
179
186
|
parentIdx: (cols)=>(0, _pgcore.index)(`${selectTableName}_parent_idx`).on(cols.parent)
|
180
187
|
};
|
181
188
|
if (field.localized) {
|
@@ -223,21 +230,29 @@ const traverseFields = ({ adapter, buildNumbers, buildRelationships, buildTexts,
|
|
223
230
|
case 'array':
|
224
231
|
{
|
225
232
|
const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull;
|
226
|
-
const arrayTableName = (0,
|
233
|
+
const arrayTableName = (0, _createTableName.createTableName)({
|
227
234
|
adapter,
|
228
235
|
config: field,
|
229
236
|
parentTableName: newTableName,
|
230
237
|
prefix: `${newTableName}_`,
|
231
|
-
throwValidationError
|
238
|
+
throwValidationError,
|
239
|
+
versionsCustomName: versions
|
232
240
|
});
|
233
241
|
const baseColumns = {
|
234
242
|
_order: (0, _pgcore.integer)('_order').notNull(),
|
235
|
-
_parentID: _parentIDColumnMap.parentIDColumnMap[parentIDColType]('_parent_id').
|
236
|
-
onDelete: 'cascade'
|
237
|
-
}).notNull()
|
243
|
+
_parentID: _parentIDColumnMap.parentIDColumnMap[parentIDColType]('_parent_id').notNull()
|
238
244
|
};
|
239
245
|
const baseExtraConfig = {
|
240
246
|
_orderIdx: (cols)=>(0, _pgcore.index)(`${arrayTableName}_order_idx`).on(cols._order),
|
247
|
+
_parentIDFk: (cols)=>(0, _pgcore.foreignKey)({
|
248
|
+
name: `${arrayTableName}_parent_id_fk`,
|
249
|
+
columns: [
|
250
|
+
cols['_parentID']
|
251
|
+
],
|
252
|
+
foreignColumns: [
|
253
|
+
adapter.tables[parentTableName].id
|
254
|
+
]
|
255
|
+
}).onDelete('cascade'),
|
241
256
|
_parentIDIdx: (cols)=>(0, _pgcore.index)(`${arrayTableName}_parent_id_idx`).on(cols._parentID)
|
242
257
|
};
|
243
258
|
if (field.localized && adapter.payload.config.localization) {
|
@@ -291,24 +306,32 @@ const traverseFields = ({ adapter, buildNumbers, buildRelationships, buildTexts,
|
|
291
306
|
{
|
292
307
|
const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull;
|
293
308
|
field.blocks.forEach((block)=>{
|
294
|
-
const blockTableName = (0,
|
309
|
+
const blockTableName = (0, _createTableName.createTableName)({
|
295
310
|
adapter,
|
296
311
|
config: block,
|
297
312
|
parentTableName: rootTableName,
|
298
313
|
prefix: `${rootTableName}_blocks_`,
|
299
|
-
throwValidationError
|
314
|
+
throwValidationError,
|
315
|
+
versionsCustomName: versions
|
300
316
|
});
|
301
317
|
if (!adapter.tables[blockTableName]) {
|
302
318
|
const baseColumns = {
|
303
319
|
_order: (0, _pgcore.integer)('_order').notNull(),
|
304
|
-
_parentID: _parentIDColumnMap.parentIDColumnMap[rootTableIDColType]('_parent_id').
|
305
|
-
onDelete: 'cascade'
|
306
|
-
}).notNull(),
|
320
|
+
_parentID: _parentIDColumnMap.parentIDColumnMap[rootTableIDColType]('_parent_id').notNull(),
|
307
321
|
_path: (0, _pgcore.text)('_path').notNull()
|
308
322
|
};
|
309
323
|
const baseExtraConfig = {
|
310
324
|
_orderIdx: (cols)=>(0, _pgcore.index)(`${blockTableName}_order_idx`).on(cols._order),
|
311
325
|
_parentIDIdx: (cols)=>(0, _pgcore.index)(`${blockTableName}_parent_id_idx`).on(cols._parentID),
|
326
|
+
_parentIdFk: (cols)=>(0, _pgcore.foreignKey)({
|
327
|
+
name: `${blockTableName}_parent_id_fk`,
|
328
|
+
columns: [
|
329
|
+
cols._parentID
|
330
|
+
],
|
331
|
+
foreignColumns: [
|
332
|
+
adapter.tables[rootTableName].id
|
333
|
+
]
|
334
|
+
}).onDelete('cascade'),
|
312
335
|
_pathIdx: (cols)=>(0, _pgcore.index)(`${blockTableName}_path_idx`).on(cols._path)
|
313
336
|
};
|
314
337
|
if (field.localized && adapter.payload.config.localization) {
|
@@ -364,7 +387,6 @@ const traverseFields = ({ adapter, buildNumbers, buildRelationships, buildTexts,
|
|
364
387
|
tableLocales: adapter.tables[`${blockTableName}${adapter.localesSuffix}`]
|
365
388
|
});
|
366
389
|
}
|
367
|
-
adapter.blockTableNames[`${rootTableName}.${(0, _tosnakecase.default)(block.slug)}`] = blockTableName;
|
368
390
|
rootRelationsToBuild.set(`_blocks_${block.slug}`, blockTableName);
|
369
391
|
});
|
370
392
|
break;
|
@@ -541,4 +563,4 @@ const traverseFields = ({ adapter, buildNumbers, buildRelationships, buildTexts,
|
|
541
563
|
};
|
542
564
|
};
|
543
565
|
|
544
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvdHJhdmVyc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgUmVsYXRpb24gfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB0eXBlIHsgSW5kZXhCdWlsZGVyLCBQZ0NvbHVtbkJ1aWxkZXIsIFVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyIH0gZnJvbSAnZHJpenpsZS1vcm0vcGctY29yZSdcbmltcG9ydCB0eXBlIHsgRmllbGQsIFRhYkFzRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyByZWxhdGlvbnMgfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB7XG4gIFBnTnVtZXJpY0J1aWxkZXIsXG4gIFBnVVVJREJ1aWxkZXIsXG4gIFBnVmFyY2hhckJ1aWxkZXIsXG4gIGJvb2xlYW4sXG4gIGluZGV4LFxuICBpbnRlZ2VyLFxuICBqc29uYixcbiAgbnVtZXJpYyxcbiAgcGdFbnVtLFxuICB0ZXh0LFxuICB0aW1lc3RhbXAsXG4gIHZhcmNoYXIsXG59IGZyb20gJ2RyaXp6bGUtb3JtL3BnLWNvcmUnXG5pbXBvcnQgeyBJbnZhbGlkQ29uZmlndXJhdGlvbiB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSwgb3B0aW9uSXNPYmplY3QgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHRvU25ha2VDYXNlIGZyb20gJ3RvLXNuYWtlLWNhc2UnXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJpY0NvbHVtbnMsIElEVHlwZSwgUG9zdGdyZXNBZGFwdGVyIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IGhhc0xvY2FsZXNUYWJsZSB9IGZyb20gJy4uL3V0aWxpdGllcy9oYXNMb2NhbGVzVGFibGUnXG5pbXBvcnQgeyBidWlsZFRhYmxlIH0gZnJvbSAnLi9idWlsZCdcbmltcG9ydCB7IGNyZWF0ZUluZGV4IH0gZnJvbSAnLi9jcmVhdGVJbmRleCdcbmltcG9ydCB7IGdldFRhYmxlTmFtZSB9IGZyb20gJy4vZ2V0VGFibGVOYW1lJ1xuaW1wb3J0IHsgaWRUb1VVSUQgfSBmcm9tICcuL2lkVG9VVUlEJ1xuaW1wb3J0IHsgcGFyZW50SURDb2x1bW5NYXAgfSBmcm9tICcuL3BhcmVudElEQ29sdW1uTWFwJ1xuaW1wb3J0IHsgdmFsaWRhdGVFeGlzdGluZ0Jsb2NrSXNJZGVudGljYWwgfSBmcm9tICcuL3ZhbGlkYXRlRXhpc3RpbmdCbG9ja0lzSWRlbnRpY2FsJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIGFkYXB0ZXI6IFBvc3RncmVzQWRhcHRlclxuICBidWlsZE51bWJlcnM6IGJvb2xlYW5cbiAgYnVpbGRSZWxhdGlvbnNoaXBzOiBib29sZWFuXG4gIGJ1aWxkVGV4dHM6IGJvb2xlYW5cbiAgY29sdW1uUHJlZml4Pzogc3RyaW5nXG4gIGNvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj5cbiAgZGlzYWJsZU5vdE51bGw6IGJvb2xlYW5cbiAgZGlzYWJsZVVuaXF1ZT86IGJvb2xlYW5cbiAgZmllbGRQcmVmaXg/OiBzdHJpbmdcbiAgZmllbGRzOiAoRmllbGQgfCBUYWJBc0ZpZWxkKVtdXG4gIGZvcmNlTG9jYWxpemVkPzogYm9vbGVhblxuICBpbmRleGVzOiBSZWNvcmQ8c3RyaW5nLCAoY29sczogR2VuZXJpY0NvbHVtbnMpID0+IEluZGV4QnVpbGRlcj5cbiAgbG9jYWxlc0NvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj5cbiAgbG9jYWxlc0luZGV4ZXM6IFJlY29yZDxzdHJpbmcsIChjb2xzOiBHZW5lcmljQ29sdW1ucykgPT4gSW5kZXhCdWlsZGVyPlxuICBuZXdUYWJsZU5hbWU6IHN0cmluZ1xuICBwYXJlbnRUYWJsZU5hbWU6IHN0cmluZ1xuICByZWxhdGlvbnNUb0J1aWxkOiBNYXA8c3RyaW5nLCBzdHJpbmc+XG4gIHJlbGF0aW9uc2hpcHM6IFNldDxzdHJpbmc+XG4gIHJvb3RSZWxhdGlvbnNUb0J1aWxkPzogTWFwPHN0cmluZywgc3RyaW5nPlxuICByb290VGFibGVJRENvbFR5cGU6IHN0cmluZ1xuICByb290VGFibGVOYW1lOiBzdHJpbmdcbiAgdmVyc2lvbnM6IGJvb2xlYW5cbn1cblxudHlwZSBSZXN1bHQgPSB7XG4gIGhhc0xvY2FsaXplZEZpZWxkOiBib29sZWFuXG4gIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZDogYm9vbGVhblxuICBoYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkOiBib29sZWFuXG4gIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkOiBib29sZWFuXG4gIGhhc01hbnlOdW1iZXJGaWVsZDogJ2luZGV4JyB8IGJvb2xlYW5cbiAgaGFzTWFueVRleHRGaWVsZDogJ2luZGV4JyB8IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IHRyYXZlcnNlRmllbGRzID0gKHtcbiAgYWRhcHRlcixcbiAgYnVpbGROdW1iZXJzLFxuICBidWlsZFJlbGF0aW9uc2hpcHMsXG4gIGJ1aWxkVGV4dHMsXG4gIGNvbHVtblByZWZpeCxcbiAgY29sdW1ucyxcbiAgZGlzYWJsZU5vdE51bGwsXG4gIGRpc2FibGVVbmlxdWUgPSBmYWxzZSxcbiAgZmllbGRQcmVmaXgsXG4gIGZpZWxkcyxcbiAgZm9yY2VMb2NhbGl6ZWQsXG4gIGluZGV4ZXMsXG4gIGxvY2FsZXNDb2x1bW5zLFxuICBsb2NhbGVzSW5kZXhlcyxcbiAgbmV3VGFibGVOYW1lLFxuICBwYXJlbnRUYWJsZU5hbWUsXG4gIHJlbGF0aW9uc1RvQnVpbGQsXG4gIHJlbGF0aW9uc2hpcHMsXG4gIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICByb290VGFibGVJRENvbFR5cGUsXG4gIHJvb3RUYWJsZU5hbWUsXG4gIHZlcnNpb25zLFxufTogQXJncyk6IFJlc3VsdCA9PiB7XG4gIGNvbnN0IHRocm93VmFsaWRhdGlvbkVycm9yID0gdHJ1ZVxuICBsZXQgaGFzTG9jYWxpemVkRmllbGQgPSBmYWxzZVxuICBsZXQgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQgPSBmYWxzZVxuICBsZXQgaGFzTWFueVRleHRGaWVsZDogJ2luZGV4JyB8IGJvb2xlYW4gPSBmYWxzZVxuICBsZXQgaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCA9IGZhbHNlXG4gIGxldCBoYXNNYW55TnVtYmVyRmllbGQ6ICdpbmRleCcgfCBib29sZWFuID0gZmFsc2VcbiAgbGV0IGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IGZhbHNlXG5cbiAgbGV0IHBhcmVudElEQ29sVHlwZTogSURUeXBlID0gJ2ludGVnZXInXG4gIGlmIChjb2x1bW5zLmlkIGluc3RhbmNlb2YgUGdVVUlEQnVpbGRlcikgcGFyZW50SURDb2xUeXBlID0gJ3V1aWQnXG4gIGlmIChjb2x1bW5zLmlkIGluc3RhbmNlb2YgUGdOdW1lcmljQnVpbGRlcikgcGFyZW50SURDb2xUeXBlID0gJ251bWVyaWMnXG4gIGlmIChjb2x1bW5zLmlkIGluc3RhbmNlb2YgUGdWYXJjaGFyQnVpbGRlcikgcGFyZW50SURDb2xUeXBlID0gJ3ZhcmNoYXInXG5cbiAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgaWYgKCduYW1lJyBpbiBmaWVsZCAmJiBmaWVsZC5uYW1lID09PSAnaWQnKSByZXR1cm5cbiAgICBsZXQgY29sdW1uTmFtZTogc3RyaW5nXG4gICAgbGV0IGZpZWxkTmFtZTogc3RyaW5nXG5cbiAgICBsZXQgdGFyZ2V0VGFibGUgPSBjb2x1bW5zXG4gICAgbGV0IHRhcmdldEluZGV4ZXMgPSBpbmRleGVzXG5cbiAgICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICAgIGNvbHVtbk5hbWUgPSBgJHtjb2x1bW5QcmVmaXggfHwgJyd9JHtmaWVsZC5uYW1lWzBdID09PSAnXycgPyAnXycgOiAnJ30ke3RvU25ha2VDYXNlKFxuICAgICAgICBmaWVsZC5uYW1lLFxuICAgICAgKX1gXG4gICAgICBmaWVsZE5hbWUgPSBgJHtmaWVsZFByZWZpeD8ucmVwbGFjZSgnLicsICdfJykgfHwgJyd9JHtmaWVsZC5uYW1lfWBcblxuICAgICAgLy8gSWYgZmllbGQgaXMgbG9jYWxpemVkLFxuICAgICAgLy8gYWRkIHRoZSBjb2x1bW4gdG8gdGhlIGxvY2FsZSB0YWJsZSBpbnN0ZWFkIG9mIG1haW4gdGFibGVcbiAgICAgIGlmIChhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbiAmJiAoZmllbGQubG9jYWxpemVkIHx8IGZvcmNlTG9jYWxpemVkKSkge1xuICAgICAgICBoYXNMb2NhbGl6ZWRGaWVsZCA9IHRydWVcbiAgICAgICAgdGFyZ2V0VGFibGUgPSBsb2NhbGVzQ29sdW1uc1xuICAgICAgICB0YXJnZXRJbmRleGVzID0gbG9jYWxlc0luZGV4ZXNcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICAoZmllbGQudW5pcXVlIHx8IGZpZWxkLmluZGV4KSAmJlxuICAgICAgICAhWydhcnJheScsICdibG9ja3MnLCAnZ3JvdXAnLCAncG9pbnQnLCAncmVsYXRpb25zaGlwJywgJ3VwbG9hZCddLmluY2x1ZGVzKGZpZWxkLnR5cGUpICYmXG4gICAgICAgICEoJ2hhc01hbnknIGluIGZpZWxkICYmIGZpZWxkLmhhc01hbnkgPT09IHRydWUpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgdW5pcXVlID0gZGlzYWJsZVVuaXF1ZSAhPT0gdHJ1ZSAmJiBmaWVsZC51bmlxdWVcbiAgICAgICAgaWYgKHVuaXF1ZSkge1xuICAgICAgICAgIGNvbnN0IGNvbnN0cmFpbnRWYWx1ZSA9IGAke2ZpZWxkUHJlZml4IHx8ICcnfSR7ZmllbGQubmFtZX1gXG4gICAgICAgICAgaWYgKCFhZGFwdGVyLmZpZWxkQ29uc3RyYWludHM/Lltyb290VGFibGVOYW1lXSkge1xuICAgICAgICAgICAgYWRhcHRlci5maWVsZENvbnN0cmFpbnRzW3Jvb3RUYWJsZU5hbWVdID0ge31cbiAgICAgICAgICB9XG4gICAgICAgICAgYWRhcHRlci5maWVsZENvbnN0cmFpbnRzW3Jvb3RUYWJsZU5hbWVdW2Ake2NvbHVtbk5hbWV9X2lkeGBdID0gY29uc3RyYWludFZhbHVlXG4gICAgICAgIH1cbiAgICAgICAgdGFyZ2V0SW5kZXhlc1tgJHtuZXdUYWJsZU5hbWV9XyR7ZmllbGQubmFtZX1JZHhgXSA9IGNyZWF0ZUluZGV4KHtcbiAgICAgICAgICBuYW1lOiBmaWVsZE5hbWUsXG4gICAgICAgICAgY29sdW1uTmFtZSxcbiAgICAgICAgICB0YWJsZU5hbWU6IG5ld1RhYmxlTmFtZSxcbiAgICAgICAgICB1bmlxdWUsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICBjYXNlICd0ZXh0Jzoge1xuICAgICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgICAgIGhhc0xvY2FsaXplZE1hbnlUZXh0RmllbGQgPSB0cnVlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZpZWxkLmluZGV4KSB7XG4gICAgICAgICAgICBoYXNNYW55VGV4dEZpZWxkID0gJ2luZGV4J1xuICAgICAgICAgIH0gZWxzZSBpZiAoIWhhc01hbnlUZXh0RmllbGQpIHtcbiAgICAgICAgICAgIGhhc01hbnlUZXh0RmllbGQgPSB0cnVlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZpZWxkLnVuaXF1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWd1cmF0aW9uKFxuICAgICAgICAgICAgICAnVW5pcXVlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gUG9zdGdyZXMgZm9yIGhhc01hbnkgdGV4dCBmaWVsZHMuJyxcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IHZhcmNoYXIoY29sdW1uTmFtZSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAnZW1haWwnOlxuICAgICAgY2FzZSAnY29kZSc6XG4gICAgICBjYXNlICd0ZXh0YXJlYSc6IHtcbiAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IHZhcmNoYXIoY29sdW1uTmFtZSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnbnVtYmVyJzoge1xuICAgICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgICAgIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQuaW5kZXgpIHtcbiAgICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZCA9ICdpbmRleCdcbiAgICAgICAgICB9IGVsc2UgaWYgKCFoYXNNYW55TnVtYmVyRmllbGQpIHtcbiAgICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQudW5pcXVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZ3VyYXRpb24oXG4gICAgICAgICAgICAgICdVbmlxdWUgaXMgbm90IHN1cHBvcnRlZCBpbiBQb3N0Z3JlcyBmb3IgaGFzTWFueSBudW1iZXIgZmllbGRzLicsXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhcmdldFRhYmxlW2ZpZWxkTmFtZV0gPSBudW1lcmljKGNvbHVtbk5hbWUpXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncmljaFRleHQnOlxuICAgICAgY2FzZSAnanNvbic6IHtcbiAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IGpzb25iKGNvbHVtbk5hbWUpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2RhdGUnOiB7XG4gICAgICAgIHRhcmdldFRhYmxlW2ZpZWxkTmFtZV0gPSB0aW1lc3RhbXAoY29sdW1uTmFtZSwge1xuICAgICAgICAgIG1vZGU6ICdzdHJpbmcnLFxuICAgICAgICAgIHByZWNpc2lvbjogMyxcbiAgICAgICAgICB3aXRoVGltZXpvbmU6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3BvaW50Jzoge1xuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdyYWRpbyc6XG4gICAgICBjYXNlICdzZWxlY3QnOiB7XG4gICAgICAgIGNvbnN0IGVudW1OYW1lID0gZ2V0VGFibGVOYW1lKHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGNvbmZpZzogZmllbGQsXG4gICAgICAgICAgcGFyZW50VGFibGVOYW1lOiBuZXdUYWJsZU5hbWUsXG4gICAgICAgICAgcHJlZml4OiBgZW51bV8ke25ld1RhYmxlTmFtZX1fYCxcbiAgICAgICAgICB0YXJnZXQ6ICdlbnVtTmFtZScsXG4gICAgICAgICAgdGhyb3dWYWxpZGF0aW9uRXJyb3IsXG4gICAgICAgIH0pXG5cbiAgICAgICAgYWRhcHRlci5lbnVtc1tlbnVtTmFtZV0gPSBwZ0VudW0oXG4gICAgICAgICAgZW51bU5hbWUsXG4gICAgICAgICAgZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgaWYgKG9wdGlvbklzT2JqZWN0KG9wdGlvbikpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uXG4gICAgICAgICAgfSkgYXMgW3N0cmluZywgLi4uc3RyaW5nW11dLFxuICAgICAgICApXG5cbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdzZWxlY3QnICYmIGZpZWxkLmhhc01hbnkpIHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RUYWJsZU5hbWUgPSBnZXRUYWJsZU5hbWUoe1xuICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgIGNvbmZpZzogZmllbGQsXG4gICAgICAgICAgICBwYXJlbnRUYWJsZU5hbWU6IG5ld1RhYmxlTmFtZSxcbiAgICAgICAgICAgIHByZWZpeDogYCR7bmV3VGFibGVOYW1lfV9gLFxuICAgICAgICAgICAgdGhyb3dWYWxpZGF0aW9uRXJyb3IsXG4gICAgICAgICAgfSlcbiAgICAgICAgICBjb25zdCBiYXNlQ29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPiA9IHtcbiAgICAgICAgICAgIG9yZGVyOiBpbnRlZ2VyKCdvcmRlcicpLm5vdE51bGwoKSxcbiAgICAgICAgICAgIHBhcmVudDogcGFyZW50SURDb2x1bW5NYXBbcGFyZW50SURDb2xUeXBlXSgncGFyZW50X2lkJylcbiAgICAgICAgICAgICAgLnJlZmVyZW5jZXMoKCkgPT4gYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXS5pZCwgeyBvbkRlbGV0ZTogJ2Nhc2NhZGUnIH0pXG4gICAgICAgICAgICAgIC5ub3ROdWxsKCksXG4gICAgICAgICAgICB2YWx1ZTogYWRhcHRlci5lbnVtc1tlbnVtTmFtZV0oJ3ZhbHVlJyksXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgYmFzZUV4dHJhQ29uZmlnOiBSZWNvcmQ8XG4gICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICAoY29sczogR2VuZXJpY0NvbHVtbnMpID0+IEluZGV4QnVpbGRlciB8IFVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyXG4gICAgICAgICAgPiA9IHtcbiAgICAgICAgICAgIG9yZGVySWR4OiAoY29scykgPT4gaW5kZXgoYCR7c2VsZWN0VGFibGVOYW1lfV9vcmRlcl9pZHhgKS5vbihjb2xzLm9yZGVyKSxcbiAgICAgICAgICAgIHBhcmVudElkeDogKGNvbHMpID0+IGluZGV4KGAke3NlbGVjdFRhYmxlTmFtZX1fcGFyZW50X2lkeGApLm9uKGNvbHMucGFyZW50KSxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQubG9jYWxpemVkKSB7XG4gICAgICAgICAgICBiYXNlQ29sdW1ucy5sb2NhbGUgPSBhZGFwdGVyLmVudW1zLmVudW1fX2xvY2FsZXMoJ2xvY2FsZScpLm5vdE51bGwoKVxuICAgICAgICAgICAgYmFzZUV4dHJhQ29uZmlnLmxvY2FsZUlkeCA9IChjb2xzKSA9PlxuICAgICAgICAgICAgICBpbmRleChgJHtzZWxlY3RUYWJsZU5hbWV9X2xvY2FsZV9pZHhgKS5vbihjb2xzLmxvY2FsZSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQuaW5kZXgpIHtcbiAgICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZy52YWx1ZSA9IChjb2xzKSA9PiBpbmRleChgJHtzZWxlY3RUYWJsZU5hbWV9X3ZhbHVlX2lkeGApLm9uKGNvbHMudmFsdWUpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnVpbGRUYWJsZSh7XG4gICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgYmFzZUNvbHVtbnMsXG4gICAgICAgICAgICBiYXNlRXh0cmFDb25maWcsXG4gICAgICAgICAgICBkaXNhYmxlTm90TnVsbCxcbiAgICAgICAgICAgIGRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgICBmaWVsZHM6IFtdLFxuICAgICAgICAgICAgdGFibGVOYW1lOiBzZWxlY3RUYWJsZU5hbWUsXG4gICAgICAgICAgICB2ZXJzaW9ucyxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgcmVsYXRpb25zVG9CdWlsZC5zZXQoZmllbGROYW1lLCBzZWxlY3RUYWJsZU5hbWUpXG5cbiAgICAgICAgICBjb25zdCBzZWxlY3RUYWJsZVJlbGF0aW9ucyA9IHJlbGF0aW9ucyhhZGFwdGVyLnRhYmxlc1tzZWxlY3RUYWJsZU5hbWVdLCAoeyBvbmUgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBSZWxhdGlvbjxzdHJpbmc+PiA9IHtcbiAgICAgICAgICAgICAgcGFyZW50OiBvbmUoYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXSwge1xuICAgICAgICAgICAgICAgIGZpZWxkczogW2FkYXB0ZXIudGFibGVzW3NlbGVjdFRhYmxlTmFtZV0ucGFyZW50XSxcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXS5pZF0sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGFkYXB0ZXIucmVsYXRpb25zW2ByZWxhdGlvbl8ke3NlbGVjdFRhYmxlTmFtZX1gXSA9IHNlbGVjdFRhYmxlUmVsYXRpb25zXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IGFkYXB0ZXIuZW51bXNbZW51bU5hbWVdKGZpZWxkTmFtZSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdjaGVja2JveCc6IHtcbiAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IGJvb2xlYW4oY29sdW1uTmFtZSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnYXJyYXknOiB7XG4gICAgICAgIGNvbnN0IGRpc2FibGVOb3ROdWxsRnJvbUhlcmUgPSBCb29sZWFuKGZpZWxkLmFkbWluPy5jb25kaXRpb24pIHx8IGRpc2FibGVOb3ROdWxsXG5cbiAgICAgICAgY29uc3QgYXJyYXlUYWJsZU5hbWUgPSBnZXRUYWJsZU5hbWUoe1xuICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgY29uZmlnOiBmaWVsZCxcbiAgICAgICAgICBwYXJlbnRUYWJsZU5hbWU6IG5ld1RhYmxlTmFtZSxcbiAgICAgICAgICBwcmVmaXg6IGAke25ld1RhYmxlTmFtZX1fYCxcbiAgICAgICAgICB0aHJvd1ZhbGlkYXRpb25FcnJvcixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgYmFzZUNvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj4gPSB7XG4gICAgICAgICAgX29yZGVyOiBpbnRlZ2VyKCdfb3JkZXInKS5ub3ROdWxsKCksXG4gICAgICAgICAgX3BhcmVudElEOiBwYXJlbnRJRENvbHVtbk1hcFtwYXJlbnRJRENvbFR5cGVdKCdfcGFyZW50X2lkJylcbiAgICAgICAgICAgIC5yZWZlcmVuY2VzKCgpID0+IGFkYXB0ZXIudGFibGVzW3BhcmVudFRhYmxlTmFtZV0uaWQsIHsgb25EZWxldGU6ICdjYXNjYWRlJyB9KVxuICAgICAgICAgICAgLm5vdE51bGwoKSxcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJhc2VFeHRyYUNvbmZpZzogUmVjb3JkPFxuICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAoY29sczogR2VuZXJpY0NvbHVtbnMpID0+IEluZGV4QnVpbGRlciB8IFVuaXF1ZUNvbnN0cmFpbnRCdWlsZGVyXG4gICAgICAgID4gPSB7XG4gICAgICAgICAgX29yZGVySWR4OiAoY29scykgPT4gaW5kZXgoYCR7YXJyYXlUYWJsZU5hbWV9X29yZGVyX2lkeGApLm9uKGNvbHMuX29yZGVyKSxcbiAgICAgICAgICBfcGFyZW50SURJZHg6IChjb2xzKSA9PiBpbmRleChgJHthcnJheVRhYmxlTmFtZX1fcGFyZW50X2lkX2lkeGApLm9uKGNvbHMuX3BhcmVudElEKSxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgYWRhcHRlci5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgICBiYXNlQ29sdW1ucy5fbG9jYWxlID0gYWRhcHRlci5lbnVtcy5lbnVtX19sb2NhbGVzKCdfbG9jYWxlJykubm90TnVsbCgpXG4gICAgICAgICAgYmFzZUV4dHJhQ29uZmlnLl9sb2NhbGVJZHggPSAoY29scykgPT5cbiAgICAgICAgICAgIGluZGV4KGAke2FycmF5VGFibGVOYW1lfV9sb2NhbGVfaWR4YCkub24oY29scy5fbG9jYWxlKVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZDogc3ViSGFzTWFueU51bWJlckZpZWxkLFxuICAgICAgICAgIGhhc01hbnlUZXh0RmllbGQ6IHN1Ykhhc01hbnlUZXh0RmllbGQsXG4gICAgICAgICAgcmVsYXRpb25zVG9CdWlsZDogc3ViUmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgfSA9IGJ1aWxkVGFibGUoe1xuICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgYmFzZUNvbHVtbnMsXG4gICAgICAgICAgYmFzZUV4dHJhQ29uZmlnLFxuICAgICAgICAgIGRpc2FibGVOb3ROdWxsOiBkaXNhYmxlTm90TnVsbEZyb21IZXJlLFxuICAgICAgICAgIGRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgZmllbGRzOiBkaXNhYmxlVW5pcXVlID8gaWRUb1VVSUQoZmllbGQuZmllbGRzKSA6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByb290UmVsYXRpb25zaGlwczogcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICByb290VGFibGVJRENvbFR5cGUsXG4gICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICB0YWJsZU5hbWU6IGFycmF5VGFibGVOYW1lLFxuICAgICAgICAgIHZlcnNpb25zLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChzdWJIYXNNYW55VGV4dEZpZWxkKSB7XG4gICAgICAgICAgaWYgKCFoYXNNYW55VGV4dEZpZWxkIHx8IHN1Ykhhc01hbnlUZXh0RmllbGQgPT09ICdpbmRleCcpXG4gICAgICAgICAgICBoYXNNYW55VGV4dEZpZWxkID0gc3ViSGFzTWFueVRleHRGaWVsZFxuICAgICAgICB9XG4gICAgICAgIGlmIChzdWJIYXNNYW55TnVtYmVyRmllbGQpIHtcbiAgICAgICAgICBpZiAoIWhhc01hbnlOdW1iZXJGaWVsZCB8fCBzdWJIYXNNYW55TnVtYmVyRmllbGQgPT09ICdpbmRleCcpXG4gICAgICAgICAgICBoYXNNYW55TnVtYmVyRmllbGQgPSBzdWJIYXNNYW55TnVtYmVyRmllbGRcbiAgICAgICAgfVxuXG4gICAgICAgIHJlbGF0aW9uc1RvQnVpbGQuc2V0KGZpZWxkTmFtZSwgYXJyYXlUYWJsZU5hbWUpXG5cbiAgICAgICAgY29uc3QgYXJyYXlUYWJsZVJlbGF0aW9ucyA9IHJlbGF0aW9ucyhhZGFwdGVyLnRhYmxlc1thcnJheVRhYmxlTmFtZV0sICh7IG1hbnksIG9uZSB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBSZWxhdGlvbjxzdHJpbmc+PiA9IHtcbiAgICAgICAgICAgIF9wYXJlbnRJRDogb25lKGFkYXB0ZXIudGFibGVzW3BhcmVudFRhYmxlTmFtZV0sIHtcbiAgICAgICAgICAgICAgZmllbGRzOiBbYWRhcHRlci50YWJsZXNbYXJyYXlUYWJsZU5hbWVdLl9wYXJlbnRJRF0sXG4gICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFthZGFwdGVyLnRhYmxlc1twYXJlbnRUYWJsZU5hbWVdLmlkXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChoYXNMb2NhbGVzVGFibGUoZmllbGQuZmllbGRzKSkge1xuICAgICAgICAgICAgcmVzdWx0Ll9sb2NhbGVzID0gbWFueShhZGFwdGVyLnRhYmxlc1tgJHthcnJheVRhYmxlTmFtZX0ke2FkYXB0ZXIubG9jYWxlc1N1ZmZpeH1gXSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdWJSZWxhdGlvbnNUb0J1aWxkLmZvckVhY2goKHZhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IG1hbnkoYWRhcHRlci50YWJsZXNbdmFsXSlcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICB9KVxuXG4gICAgICAgIGFkYXB0ZXIucmVsYXRpb25zW2ByZWxhdGlvbnNfJHthcnJheVRhYmxlTmFtZX1gXSA9IGFycmF5VGFibGVSZWxhdGlvbnNcblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdibG9ja3MnOiB7XG4gICAgICAgIGNvbnN0IGRpc2FibGVOb3ROdWxsRnJvbUhlcmUgPSBCb29sZWFuKGZpZWxkLmFkbWluPy5jb25kaXRpb24pIHx8IGRpc2FibGVOb3ROdWxsXG5cbiAgICAgICAgZmllbGQuYmxvY2tzLmZvckVhY2goKGJsb2NrKSA9PiB7XG4gICAgICAgICAgY29uc3QgYmxvY2tUYWJsZU5hbWUgPSBnZXRUYWJsZU5hbWUoe1xuICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgIGNvbmZpZzogYmxvY2ssXG4gICAgICAgICAgICBwYXJlbnRUYWJsZU5hbWU6IHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgICBwcmVmaXg6IGAke3Jvb3RUYWJsZU5hbWV9X2Jsb2Nrc19gLFxuICAgICAgICAgICAgdGhyb3dWYWxpZGF0aW9uRXJyb3IsXG4gICAgICAgICAgfSlcbiAgICAgICAgICBpZiAoIWFkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXSkge1xuICAgICAgICAgICAgY29uc3QgYmFzZUNvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj4gPSB7XG4gICAgICAgICAgICAgIF9vcmRlcjogaW50ZWdlcignX29yZGVyJykubm90TnVsbCgpLFxuICAgICAgICAgICAgICBfcGFyZW50SUQ6IHBhcmVudElEQ29sdW1uTWFwW3Jvb3RUYWJsZUlEQ29sVHlwZV0oJ19wYXJlbnRfaWQnKVxuICAgICAgICAgICAgICAgIC5yZWZlcmVuY2VzKCgpID0+IGFkYXB0ZXIudGFibGVzW3Jvb3RUYWJsZU5hbWVdLmlkLCB7IG9uRGVsZXRlOiAnY2FzY2FkZScgfSlcbiAgICAgICAgICAgICAgICAubm90TnVsbCgpLFxuICAgICAgICAgICAgICBfcGF0aDogdGV4dCgnX3BhdGgnKS5ub3ROdWxsKCksXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGJhc2VFeHRyYUNvbmZpZzogUmVjb3JkPFxuICAgICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICAgIChjb2xzOiBHZW5lcmljQ29sdW1ucykgPT4gSW5kZXhCdWlsZGVyIHwgVW5pcXVlQ29uc3RyYWludEJ1aWxkZXJcbiAgICAgICAgICAgID4gPSB7XG4gICAgICAgICAgICAgIF9vcmRlcklkeDogKGNvbHMpID0+IGluZGV4KGAke2Jsb2NrVGFibGVOYW1lfV9vcmRlcl9pZHhgKS5vbihjb2xzLl9vcmRlciksXG4gICAgICAgICAgICAgIF9wYXJlbnRJRElkeDogKGNvbHMpID0+IGluZGV4KGAke2Jsb2NrVGFibGVOYW1lfV9wYXJlbnRfaWRfaWR4YCkub24oY29scy5fcGFyZW50SUQpLFxuICAgICAgICAgICAgICBfcGF0aElkeDogKGNvbHMpID0+IGluZGV4KGAke2Jsb2NrVGFibGVOYW1lfV9wYXRoX2lkeGApLm9uKGNvbHMuX3BhdGgpLFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgICAgICAgIGJhc2VDb2x1bW5zLl9sb2NhbGUgPSBhZGFwdGVyLmVudW1zLmVudW1fX2xvY2FsZXMoJ19sb2NhbGUnKS5ub3ROdWxsKClcbiAgICAgICAgICAgICAgYmFzZUV4dHJhQ29uZmlnLl9sb2NhbGVJZHggPSAoY29scykgPT5cbiAgICAgICAgICAgICAgICBpbmRleChgJHtibG9ja1RhYmxlTmFtZX1fbG9jYWxlX2lkeGApLm9uKGNvbHMuX2xvY2FsZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICBoYXNNYW55TnVtYmVyRmllbGQ6IHN1Ykhhc01hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgICAgICAgaGFzTWFueVRleHRGaWVsZDogc3ViSGFzTWFueVRleHRGaWVsZCxcbiAgICAgICAgICAgICAgcmVsYXRpb25zVG9CdWlsZDogc3ViUmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICAgIH0gPSBidWlsZFRhYmxlKHtcbiAgICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgICAgYmFzZUNvbHVtbnMsXG4gICAgICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZyxcbiAgICAgICAgICAgICAgZGlzYWJsZU5vdE51bGw6IGRpc2FibGVOb3ROdWxsRnJvbUhlcmUsXG4gICAgICAgICAgICAgIGRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgICAgIGZpZWxkczogZGlzYWJsZVVuaXF1ZSA/IGlkVG9VVUlEKGJsb2NrLmZpZWxkcykgOiBibG9jay5maWVsZHMsXG4gICAgICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgICAgICByb290UmVsYXRpb25zaGlwczogcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgICAgcm9vdFRhYmxlSURDb2xUeXBlLFxuICAgICAgICAgICAgICByb290VGFibGVOYW1lLFxuICAgICAgICAgICAgICB0YWJsZU5hbWU6IGJsb2NrVGFibGVOYW1lLFxuICAgICAgICAgICAgICB2ZXJzaW9ucyxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGlmIChzdWJIYXNNYW55VGV4dEZpZWxkKSB7XG4gICAgICAgICAgICAgIGlmICghaGFzTWFueVRleHRGaWVsZCB8fCBzdWJIYXNNYW55VGV4dEZpZWxkID09PSAnaW5kZXgnKVxuICAgICAgICAgICAgICAgIGhhc01hbnlUZXh0RmllbGQgPSBzdWJIYXNNYW55VGV4dEZpZWxkXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzdWJIYXNNYW55TnVtYmVyRmllbGQpIHtcbiAgICAgICAgICAgICAgaWYgKCFoYXNNYW55TnVtYmVyRmllbGQgfHwgc3ViSGFzTWFueU51bWJlckZpZWxkID09PSAnaW5kZXgnKVxuICAgICAgICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZCA9IHN1Ykhhc01hbnlOdW1iZXJGaWVsZFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBibG9ja1RhYmxlUmVsYXRpb25zID0gcmVsYXRpb25zKFxuICAgICAgICAgICAgICBhZGFwdGVyLnRhYmxlc1tibG9ja1RhYmxlTmFtZV0sXG4gICAgICAgICAgICAgICh7IG1hbnksIG9uZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBSZWxhdGlvbjxzdHJpbmc+PiA9IHtcbiAgICAgICAgICAgICAgICAgIF9wYXJlbnRJRDogb25lKGFkYXB0ZXIudGFibGVzW3Jvb3RUYWJsZU5hbWVdLCB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkczogW2FkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXS5fcGFyZW50SURdLFxuICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbYWRhcHRlci50YWJsZXNbcm9vdFRhYmxlTmFtZV0uaWRdLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGhhc0xvY2FsZXNUYWJsZShibG9jay5maWVsZHMpKSB7XG4gICAgICAgICAgICAgICAgICByZXN1bHQuX2xvY2FsZXMgPSBtYW55KFxuICAgICAgICAgICAgICAgICAgICBhZGFwdGVyLnRhYmxlc1tgJHtibG9ja1RhYmxlTmFtZX0ke2FkYXB0ZXIubG9jYWxlc1N1ZmZpeH1gXSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdWJSZWxhdGlvbnNUb0J1aWxkLmZvckVhY2goKHZhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IG1hbnkoYWRhcHRlci50YWJsZXNbdmFsXSlcbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBhZGFwdGVyLnJlbGF0aW9uc1tgcmVsYXRpb25zXyR7YmxvY2tUYWJsZU5hbWV9YF0gPSBibG9ja1RhYmxlUmVsYXRpb25zXG4gICAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF2ZXJzaW9ucykge1xuICAgICAgICAgICAgdmFsaWRhdGVFeGlzdGluZ0Jsb2NrSXNJZGVudGljYWwoe1xuICAgICAgICAgICAgICBibG9jayxcbiAgICAgICAgICAgICAgbG9jYWxpemVkOiBmaWVsZC5sb2NhbGl6ZWQsXG4gICAgICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgICAgIHRhYmxlOiBhZGFwdGVyLnRhYmxlc1tibG9ja1RhYmxlTmFtZV0sXG4gICAgICAgICAgICAgIHRhYmxlTG9jYWxlczogYWRhcHRlci50YWJsZXNbYCR7YmxvY2tUYWJsZU5hbWV9JHthZGFwdGVyLmxvY2FsZXNTdWZmaXh9YF0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICBhZGFwdGVyLmJsb2NrVGFibGVOYW1lc1tgJHtyb290VGFibGVOYW1lfS4ke3RvU25ha2VDYXNlKGJsb2NrLnNsdWcpfWBdID0gYmxvY2tUYWJsZU5hbWVcbiAgICAgICAgICByb290UmVsYXRpb25zVG9CdWlsZC5zZXQoYF9ibG9ja3NfJHtibG9jay5zbHVnfWAsIGJsb2NrVGFibGVOYW1lKVxuICAgICAgICB9KVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3RhYic6XG4gICAgICBjYXNlICdncm91cCc6IHtcbiAgICAgICAgaWYgKCEoJ25hbWUnIGluIGZpZWxkKSkge1xuICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGhhc0xvY2FsaXplZEZpZWxkOiBncm91cEhhc0xvY2FsaXplZEZpZWxkLFxuICAgICAgICAgICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkOiBncm91cEhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgICAgIGhhc0xvY2FsaXplZE1hbnlUZXh0RmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCxcbiAgICAgICAgICAgIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkOiBncm91cEhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkOiBncm91cEhhc01hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgICAgIGhhc01hbnlUZXh0RmllbGQ6IGdyb3VwSGFzTWFueVRleHRGaWVsZCxcbiAgICAgICAgICB9ID0gdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgIGJ1aWxkTnVtYmVycyxcbiAgICAgICAgICAgIGJ1aWxkUmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIGJ1aWxkVGV4dHMsXG4gICAgICAgICAgICBjb2x1bW5QcmVmaXgsXG4gICAgICAgICAgICBjb2x1bW5zLFxuICAgICAgICAgICAgZGlzYWJsZU5vdE51bGwsXG4gICAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgICAgZmllbGRQcmVmaXgsXG4gICAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICAgIGZvcmNlTG9jYWxpemVkLFxuICAgICAgICAgICAgaW5kZXhlcyxcbiAgICAgICAgICAgIGxvY2FsZXNDb2x1bW5zLFxuICAgICAgICAgICAgbG9jYWxlc0luZGV4ZXMsXG4gICAgICAgICAgICBuZXdUYWJsZU5hbWUsXG4gICAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgICByZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgICAgcm9vdFRhYmxlSURDb2xUeXBlLFxuICAgICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICAgIHZlcnNpb25zLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBpZiAoZ3JvdXBIYXNMb2NhbGl6ZWRGaWVsZCkgaGFzTG9jYWxpemVkRmllbGQgPSB0cnVlXG4gICAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQpIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkID0gdHJ1ZVxuICAgICAgICAgIGlmIChncm91cEhhc01hbnlUZXh0RmllbGQpIGhhc01hbnlUZXh0RmllbGQgPSB0cnVlXG4gICAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCkgaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCA9IHRydWVcbiAgICAgICAgICBpZiAoZ3JvdXBIYXNNYW55TnVtYmVyRmllbGQpIGhhc01hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgICBpZiAoZ3JvdXBIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQpIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGlzYWJsZU5vdE51bGxGcm9tSGVyZSA9IEJvb2xlYW4oZmllbGQuYWRtaW4/LmNvbmRpdGlvbikgfHwgZGlzYWJsZU5vdE51bGxcblxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgaGFzTG9jYWxpemVkRmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkOiBncm91cEhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkOiBncm91cEhhc0xvY2FsaXplZE1hbnlUZXh0RmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkOiBncm91cEhhc01hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgICBoYXNNYW55VGV4dEZpZWxkOiBncm91cEhhc01hbnlUZXh0RmllbGQsXG4gICAgICAgIH0gPSB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBidWlsZE51bWJlcnMsXG4gICAgICAgICAgYnVpbGRSZWxhdGlvbnNoaXBzLFxuICAgICAgICAgIGJ1aWxkVGV4dHMsXG4gICAgICAgICAgY29sdW1uUHJlZml4OiBgJHtjb2x1bW5OYW1lfV9gLFxuICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgZGlzYWJsZU5vdE51bGw6IGRpc2FibGVOb3ROdWxsRnJvbUhlcmUsXG4gICAgICAgICAgZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICBmaWVsZFByZWZpeDogYCR7ZmllbGROYW1lfS5gLFxuICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgIGZvcmNlTG9jYWxpemVkOiBmaWVsZC5sb2NhbGl6ZWQsXG4gICAgICAgICAgaW5kZXhlcyxcbiAgICAgICAgICBsb2NhbGVzQ29sdW1ucyxcbiAgICAgICAgICBsb2NhbGVzSW5kZXhlcyxcbiAgICAgICAgICBuZXdUYWJsZU5hbWU6IGAke3BhcmVudFRhYmxlTmFtZX1fJHtjb2x1bW5OYW1lfWAsXG4gICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgIHJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByb290VGFibGVJRENvbFR5cGUsXG4gICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICB2ZXJzaW9ucyxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoZ3JvdXBIYXNMb2NhbGl6ZWRGaWVsZCkgaGFzTG9jYWxpemVkRmllbGQgPSB0cnVlXG4gICAgICAgIGlmIChncm91cEhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkKSBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKGdyb3VwSGFzTWFueVRleHRGaWVsZCkgaGFzTWFueVRleHRGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCkgaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKGdyb3VwSGFzTWFueU51bWJlckZpZWxkKSBoYXNNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgIGlmIChncm91cEhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCkgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkID0gdHJ1ZVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICd0YWJzJzoge1xuICAgICAgICBjb25zdCBkaXNhYmxlTm90TnVsbEZyb21IZXJlID0gQm9vbGVhbihmaWVsZC5hZG1pbj8uY29uZGl0aW9uKSB8fCBkaXNhYmxlTm90TnVsbFxuXG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRGaWVsZDogdGFiSGFzTG9jYWxpemVkRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkOiB0YWJIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZDogdGFiSGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCxcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZDogdGFiSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkOiB0YWJIYXNNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgaGFzTWFueVRleHRGaWVsZDogdGFiSGFzTWFueVRleHRGaWVsZCxcbiAgICAgICAgfSA9IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGJ1aWxkTnVtYmVycyxcbiAgICAgICAgICBidWlsZFJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgYnVpbGRUZXh0cyxcbiAgICAgICAgICBjb2x1bW5QcmVmaXgsXG4gICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICBkaXNhYmxlTm90TnVsbDogZGlzYWJsZU5vdE51bGxGcm9tSGVyZSxcbiAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGZpZWxkUHJlZml4LFxuICAgICAgICAgIGZpZWxkczogZmllbGQudGFicy5tYXAoKHRhYikgPT4gKHsgLi4udGFiLCB0eXBlOiAndGFiJyB9KSksXG4gICAgICAgICAgZm9yY2VMb2NhbGl6ZWQsXG4gICAgICAgICAgaW5kZXhlcyxcbiAgICAgICAgICBsb2NhbGVzQ29sdW1ucyxcbiAgICAgICAgICBsb2NhbGVzSW5kZXhlcyxcbiAgICAgICAgICBuZXdUYWJsZU5hbWUsXG4gICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgIHJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByb290VGFibGVJRENvbFR5cGUsXG4gICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICB2ZXJzaW9ucyxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAodGFiSGFzTG9jYWxpemVkRmllbGQpIGhhc0xvY2FsaXplZEZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAodGFiSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQpIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAodGFiSGFzTWFueVRleHRGaWVsZCkgaGFzTWFueVRleHRGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHRhYkhhc0xvY2FsaXplZE1hbnlUZXh0RmllbGQpIGhhc0xvY2FsaXplZE1hbnlUZXh0RmllbGQgPSB0cnVlXG4gICAgICAgIGlmICh0YWJIYXNNYW55TnVtYmVyRmllbGQpIGhhc01hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHRhYkhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCkgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkID0gdHJ1ZVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdyb3cnOlxuICAgICAgY2FzZSAnY29sbGFwc2libGUnOiB7XG4gICAgICAgIGNvbnN0IGRpc2FibGVOb3ROdWxsRnJvbUhlcmUgPSBCb29sZWFuKGZpZWxkLmFkbWluPy5jb25kaXRpb24pIHx8IGRpc2FibGVOb3ROdWxsXG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRGaWVsZDogcm93SGFzTG9jYWxpemVkRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkOiByb3dIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZDogcm93SGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCxcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZDogcm93SGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkOiByb3dIYXNNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgaGFzTWFueVRleHRGaWVsZDogcm93SGFzTWFueVRleHRGaWVsZCxcbiAgICAgICAgfSA9IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGJ1aWxkTnVtYmVycyxcbiAgICAgICAgICBidWlsZFJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgYnVpbGRUZXh0cyxcbiAgICAgICAgICBjb2x1bW5QcmVmaXgsXG4gICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICBkaXNhYmxlTm90TnVsbDogZGlzYWJsZU5vdE51bGxGcm9tSGVyZSxcbiAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGZpZWxkUHJlZml4LFxuICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgIGZvcmNlTG9jYWxpemVkLFxuICAgICAgICAgIGluZGV4ZXMsXG4gICAgICAgICAgbG9jYWxlc0NvbHVtbnMsXG4gICAgICAgICAgbG9jYWxlc0luZGV4ZXMsXG4gICAgICAgICAgbmV3VGFibGVOYW1lLFxuICAgICAgICAgIHBhcmVudFRhYmxlTmFtZSxcbiAgICAgICAgICByZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgcm9vdFJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgcm9vdFRhYmxlSURDb2xUeXBlLFxuICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgdmVyc2lvbnMsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHJvd0hhc0xvY2FsaXplZEZpZWxkKSBoYXNMb2NhbGl6ZWRGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHJvd0hhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkKSBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHJvd0hhc01hbnlUZXh0RmllbGQpIGhhc01hbnlUZXh0RmllbGQgPSB0cnVlXG4gICAgICAgIGlmIChyb3dIYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkKSBoYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAocm93SGFzTWFueU51bWJlckZpZWxkKSBoYXNNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgIGlmIChyb3dIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQpIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncmVsYXRpb25zaGlwJzpcbiAgICAgIGNhc2UgJ3VwbG9hZCc6XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLnJlbGF0aW9uVG8pKSB7XG4gICAgICAgICAgZmllbGQucmVsYXRpb25Uby5mb3JFYWNoKChyZWxhdGlvbikgPT4gcmVsYXRpb25zaGlwcy5hZGQocmVsYXRpb24pKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlbGF0aW9uc2hpcHMuYWRkKGZpZWxkLnJlbGF0aW9uVG8pXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjb25zdCBjb25kaXRpb24gPSBmaWVsZC5hZG1pbiAmJiBmaWVsZC5hZG1pbi5jb25kaXRpb25cblxuICAgIGlmIChcbiAgICAgICFkaXNhYmxlTm90TnVsbCAmJlxuICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSAmJlxuICAgICAgJ3JlcXVpcmVkJyBpbiBmaWVsZCAmJlxuICAgICAgZmllbGQucmVxdWlyZWQgJiZcbiAgICAgICFjb25kaXRpb25cbiAgICApIHtcbiAgICAgIHRhcmdldFRhYmxlW2ZpZWxkTmFtZV0ubm90TnVsbCgpXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgaGFzTG9jYWxpemVkRmllbGQsXG4gICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkLFxuICAgIGhhc0xvY2FsaXplZE1hbnlUZXh0RmllbGQsXG4gICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgaGFzTWFueU51bWJlckZpZWxkLFxuICAgIGhhc01hbnlUZXh0RmllbGQsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ0cmF2ZXJzZUZpZWxkcyIsImFkYXB0ZXIiLCJidWlsZE51bWJlcnMiLCJidWlsZFJlbGF0aW9uc2hpcHMiLCJidWlsZFRleHRzIiwiY29sdW1uUHJlZml4IiwiY29sdW1ucyIsImRpc2FibGVOb3ROdWxsIiwiZGlzYWJsZVVuaXF1ZSIsImZpZWxkUHJlZml4IiwiZmllbGRzIiwiZm9yY2VMb2NhbGl6ZWQiLCJpbmRleGVzIiwibG9jYWxlc0NvbHVtbnMiLCJsb2NhbGVzSW5kZXhlcyIsIm5ld1RhYmxlTmFtZSIsInBhcmVudFRhYmxlTmFtZSIsInJlbGF0aW9uc1RvQnVpbGQiLCJyZWxhdGlvbnNoaXBzIiwicm9vdFJlbGF0aW9uc1RvQnVpbGQiLCJyb290VGFibGVJRENvbFR5cGUiLCJyb290VGFibGVOYW1lIiwidmVyc2lvbnMiLCJ0aHJvd1ZhbGlkYXRpb25FcnJvciIsImhhc0xvY2FsaXplZEZpZWxkIiwiaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQiLCJoYXNNYW55VGV4dEZpZWxkIiwiaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCIsImhhc01hbnlOdW1iZXJGaWVsZCIsImhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCIsInBhcmVudElEQ29sVHlwZSIsImlkIiwiUGdVVUlEQnVpbGRlciIsIlBnTnVtZXJpY0J1aWxkZXIiLCJQZ1ZhcmNoYXJCdWlsZGVyIiwiZm9yRWFjaCIsImZpZWxkIiwibmFtZSIsImNvbHVtbk5hbWUiLCJmaWVsZE5hbWUiLCJ0YXJnZXRUYWJsZSIsInRhcmdldEluZGV4ZXMiLCJmaWVsZEFmZmVjdHNEYXRhIiwidG9TbmFrZUNhc2UiLCJyZXBsYWNlIiwicGF5bG9hZCIsImNvbmZpZyIsImxvY2FsaXphdGlvbiIsImxvY2FsaXplZCIsInVuaXF1ZSIsImluZGV4IiwiaW5jbHVkZXMiLCJ0eXBlIiwiaGFzTWFueSIsImNvbnN0cmFpbnRWYWx1ZSIsImZpZWxkQ29uc3RyYWludHMiLCJjcmVhdGVJbmRleCIsInRhYmxlTmFtZSIsIkludmFsaWRDb25maWd1cmF0aW9uIiwidmFyY2hhciIsIm51bWVyaWMiLCJqc29uYiIsInRpbWVzdGFtcCIsIm1vZGUiLCJwcmVjaXNpb24iLCJ3aXRoVGltZXpvbmUiLCJlbnVtTmFtZSIsImdldFRhYmxlTmFtZSIsInByZWZpeCIsInRhcmdldCIsImVudW1zIiwicGdFbnVtIiwib3B0aW9ucyIsIm1hcCIsIm9wdGlvbiIsIm9wdGlvbklzT2JqZWN0IiwidmFsdWUiLCJzZWxlY3RUYWJsZU5hbWUiLCJiYXNlQ29sdW1ucyIsIm9yZGVyIiwiaW50ZWdlciIsIm5vdE51bGwiLCJwYXJlbnQiLCJwYXJlbnRJRENvbHVtbk1hcCIsInJlZmVyZW5jZXMiLCJ0YWJsZXMiLCJvbkRlbGV0ZSIsImJhc2VFeHRyYUNvbmZpZyIsIm9yZGVySWR4IiwiY29scyIsIm9uIiwicGFyZW50SWR4IiwibG9jYWxlIiwiZW51bV9fbG9jYWxlcyIsImxvY2FsZUlkeCIsImJ1aWxkVGFibGUiLCJzZXQiLCJzZWxlY3RUYWJsZVJlbGF0aW9ucyIsInJlbGF0aW9ucyIsIm9uZSIsInJlc3VsdCIsImJvb2xlYW4iLCJkaXNhYmxlTm90TnVsbEZyb21IZXJlIiwiQm9vbGVhbiIsImFkbWluIiwiY29uZGl0aW9uIiwiYXJyYXlUYWJsZU5hbWUiLCJfb3JkZXIiLCJfcGFyZW50SUQiLCJfb3JkZXJJZHgiLCJfcGFyZW50SURJZHgiLCJfbG9jYWxlIiwiX2xvY2FsZUlkeCIsInN1Ykhhc01hbnlOdW1iZXJGaWVsZCIsInN1Ykhhc01hbnlUZXh0RmllbGQiLCJzdWJSZWxhdGlvbnNUb0J1aWxkIiwiaWRUb1VVSUQiLCJyb290UmVsYXRpb25zaGlwcyIsImFycmF5VGFibGVSZWxhdGlvbnMiLCJtYW55IiwiaGFzTG9jYWxlc1RhYmxlIiwiX2xvY2FsZXMiLCJsb2NhbGVzU3VmZml4IiwidmFsIiwia2V5IiwiYmxvY2tzIiwiYmxvY2siLCJibG9ja1RhYmxlTmFtZSIsIl9wYXRoIiwidGV4dCIsIl9wYXRoSWR4IiwiYmxvY2tUYWJsZVJlbGF0aW9ucyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInZhbGlkYXRlRXhpc3RpbmdCbG9ja0lzSWRlbnRpY2FsIiwidGFibGUiLCJ0YWJsZUxvY2FsZXMiLCJibG9ja1RhYmxlTmFtZXMiLCJzbHVnIiwiZ3JvdXBIYXNMb2NhbGl6ZWRGaWVsZCIsImdyb3VwSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkIiwiZ3JvdXBIYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkIiwiZ3JvdXBIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCIsImdyb3VwSGFzTWFueU51bWJlckZpZWxkIiwiZ3JvdXBIYXNNYW55VGV4dEZpZWxkIiwidGFiSGFzTG9jYWxpemVkRmllbGQiLCJ0YWJIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQiLCJ0YWJIYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkIiwidGFiSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQiLCJ0YWJIYXNNYW55TnVtYmVyRmllbGQiLCJ0YWJIYXNNYW55VGV4dEZpZWxkIiwidGFicyIsInRhYiIsInJvd0hhc0xvY2FsaXplZEZpZWxkIiwicm93SGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkIiwicm93SGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCIsInJvd0hhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkIiwicm93SGFzTWFueU51bWJlckZpZWxkIiwicm93SGFzTWFueVRleHRGaWVsZCIsIkFycmF5IiwiaXNBcnJheSIsInJlbGF0aW9uVG8iLCJyZWxhdGlvbiIsImFkZCIsInJlcXVpcmVkIl0sIm1h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
|
566
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvdHJhdmVyc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgUmVsYXRpb24gfSBmcm9tICdkcml6emxlLW9ybSdcbmltcG9ydCB0eXBlIHsgSW5kZXhCdWlsZGVyLCBQZ0NvbHVtbkJ1aWxkZXIgfSBmcm9tICdkcml6emxlLW9ybS9wZy1jb3JlJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCwgVGFiQXNGaWVsZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHJlbGF0aW9ucyB9IGZyb20gJ2RyaXp6bGUtb3JtJ1xuaW1wb3J0IHtcbiAgUGdOdW1lcmljQnVpbGRlcixcbiAgUGdVVUlEQnVpbGRlcixcbiAgUGdWYXJjaGFyQnVpbGRlcixcbiAgYm9vbGVhbixcbiAgZm9yZWlnbktleSxcbiAgaW5kZXgsXG4gIGludGVnZXIsXG4gIGpzb25iLFxuICBudW1lcmljLFxuICBwZ0VudW0sXG4gIHRleHQsXG4gIHRpbWVzdGFtcCxcbiAgdmFyY2hhcixcbn0gZnJvbSAnZHJpenpsZS1vcm0vcGctY29yZSdcbmltcG9ydCB7IEludmFsaWRDb25maWd1cmF0aW9uIH0gZnJvbSAncGF5bG9hZC9lcnJvcnMnXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCBvcHRpb25Jc09iamVjdCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5pbXBvcnQgdG9TbmFrZUNhc2UgZnJvbSAndG8tc25ha2UtY2FzZSdcblxuaW1wb3J0IHR5cGUgeyBHZW5lcmljQ29sdW1ucywgSURUeXBlLCBQb3N0Z3Jlc0FkYXB0ZXIgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQmFzZUV4dHJhQ29uZmlnIH0gZnJvbSAnLi9idWlsZCdcblxuaW1wb3J0IHsgaGFzTG9jYWxlc1RhYmxlIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2hhc0xvY2FsZXNUYWJsZSdcbmltcG9ydCB7IGJ1aWxkVGFibGUgfSBmcm9tICcuL2J1aWxkJ1xuaW1wb3J0IHsgY3JlYXRlSW5kZXggfSBmcm9tICcuL2NyZWF0ZUluZGV4J1xuaW1wb3J0IHsgY3JlYXRlVGFibGVOYW1lIH0gZnJvbSAnLi9jcmVhdGVUYWJsZU5hbWUnXG5pbXBvcnQgeyBpZFRvVVVJRCB9IGZyb20gJy4vaWRUb1VVSUQnXG5pbXBvcnQgeyBwYXJlbnRJRENvbHVtbk1hcCB9IGZyb20gJy4vcGFyZW50SURDb2x1bW5NYXAnXG5pbXBvcnQgeyB2YWxpZGF0ZUV4aXN0aW5nQmxvY2tJc0lkZW50aWNhbCB9IGZyb20gJy4vdmFsaWRhdGVFeGlzdGluZ0Jsb2NrSXNJZGVudGljYWwnXG5cbnR5cGUgQXJncyA9IHtcbiAgYWRhcHRlcjogUG9zdGdyZXNBZGFwdGVyXG4gIGJ1aWxkTnVtYmVyczogYm9vbGVhblxuICBidWlsZFJlbGF0aW9uc2hpcHM6IGJvb2xlYW5cbiAgYnVpbGRUZXh0czogYm9vbGVhblxuICBjb2x1bW5QcmVmaXg/OiBzdHJpbmdcbiAgY29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPlxuICBkaXNhYmxlTm90TnVsbDogYm9vbGVhblxuICBkaXNhYmxlVW5pcXVlPzogYm9vbGVhblxuICBmaWVsZFByZWZpeD86IHN0cmluZ1xuICBmaWVsZHM6IChGaWVsZCB8IFRhYkFzRmllbGQpW11cbiAgZm9yY2VMb2NhbGl6ZWQ/OiBib29sZWFuXG4gIGluZGV4ZXM6IFJlY29yZDxzdHJpbmcsIChjb2xzOiBHZW5lcmljQ29sdW1ucykgPT4gSW5kZXhCdWlsZGVyPlxuICBsb2NhbGVzQ29sdW1uczogUmVjb3JkPHN0cmluZywgUGdDb2x1bW5CdWlsZGVyPlxuICBsb2NhbGVzSW5kZXhlczogUmVjb3JkPHN0cmluZywgKGNvbHM6IEdlbmVyaWNDb2x1bW5zKSA9PiBJbmRleEJ1aWxkZXI+XG4gIG5ld1RhYmxlTmFtZTogc3RyaW5nXG4gIHBhcmVudFRhYmxlTmFtZTogc3RyaW5nXG4gIHJlbGF0aW9uc1RvQnVpbGQ6IE1hcDxzdHJpbmcsIHN0cmluZz5cbiAgcmVsYXRpb25zaGlwczogU2V0PHN0cmluZz5cbiAgcm9vdFJlbGF0aW9uc1RvQnVpbGQ/OiBNYXA8c3RyaW5nLCBzdHJpbmc+XG4gIHJvb3RUYWJsZUlEQ29sVHlwZTogc3RyaW5nXG4gIHJvb3RUYWJsZU5hbWU6IHN0cmluZ1xuICB2ZXJzaW9uczogYm9vbGVhblxufVxuXG50eXBlIFJlc3VsdCA9IHtcbiAgaGFzTG9jYWxpemVkRmllbGQ6IGJvb2xlYW5cbiAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkOiBib29sZWFuXG4gIGhhc0xvY2FsaXplZE1hbnlUZXh0RmllbGQ6IGJvb2xlYW5cbiAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQ6IGJvb2xlYW5cbiAgaGFzTWFueU51bWJlckZpZWxkOiAnaW5kZXgnIHwgYm9vbGVhblxuICBoYXNNYW55VGV4dEZpZWxkOiAnaW5kZXgnIHwgYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgdHJhdmVyc2VGaWVsZHMgPSAoe1xuICBhZGFwdGVyLFxuICBidWlsZE51bWJlcnMsXG4gIGJ1aWxkUmVsYXRpb25zaGlwcyxcbiAgYnVpbGRUZXh0cyxcbiAgY29sdW1uUHJlZml4LFxuICBjb2x1bW5zLFxuICBkaXNhYmxlTm90TnVsbCxcbiAgZGlzYWJsZVVuaXF1ZSA9IGZhbHNlLFxuICBmaWVsZFByZWZpeCxcbiAgZmllbGRzLFxuICBmb3JjZUxvY2FsaXplZCxcbiAgaW5kZXhlcyxcbiAgbG9jYWxlc0NvbHVtbnMsXG4gIGxvY2FsZXNJbmRleGVzLFxuICBuZXdUYWJsZU5hbWUsXG4gIHBhcmVudFRhYmxlTmFtZSxcbiAgcmVsYXRpb25zVG9CdWlsZCxcbiAgcmVsYXRpb25zaGlwcyxcbiAgcm9vdFJlbGF0aW9uc1RvQnVpbGQsXG4gIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgcm9vdFRhYmxlTmFtZSxcbiAgdmVyc2lvbnMsXG59OiBBcmdzKTogUmVzdWx0ID0+IHtcbiAgY29uc3QgdGhyb3dWYWxpZGF0aW9uRXJyb3IgPSB0cnVlXG4gIGxldCBoYXNMb2NhbGl6ZWRGaWVsZCA9IGZhbHNlXG4gIGxldCBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCA9IGZhbHNlXG4gIGxldCBoYXNNYW55VGV4dEZpZWxkOiAnaW5kZXgnIHwgYm9vbGVhbiA9IGZhbHNlXG4gIGxldCBoYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkID0gZmFsc2VcbiAgbGV0IGhhc01hbnlOdW1iZXJGaWVsZDogJ2luZGV4JyB8IGJvb2xlYW4gPSBmYWxzZVxuICBsZXQgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkID0gZmFsc2VcblxuICBsZXQgcGFyZW50SURDb2xUeXBlOiBJRFR5cGUgPSAnaW50ZWdlcidcbiAgaWYgKGNvbHVtbnMuaWQgaW5zdGFuY2VvZiBQZ1VVSURCdWlsZGVyKSBwYXJlbnRJRENvbFR5cGUgPSAndXVpZCdcbiAgaWYgKGNvbHVtbnMuaWQgaW5zdGFuY2VvZiBQZ051bWVyaWNCdWlsZGVyKSBwYXJlbnRJRENvbFR5cGUgPSAnbnVtZXJpYydcbiAgaWYgKGNvbHVtbnMuaWQgaW5zdGFuY2VvZiBQZ1ZhcmNoYXJCdWlsZGVyKSBwYXJlbnRJRENvbFR5cGUgPSAndmFyY2hhcidcblxuICBmaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICBpZiAoJ25hbWUnIGluIGZpZWxkICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpIHJldHVyblxuICAgIGxldCBjb2x1bW5OYW1lOiBzdHJpbmdcbiAgICBsZXQgZmllbGROYW1lOiBzdHJpbmdcblxuICAgIGxldCB0YXJnZXRUYWJsZSA9IGNvbHVtbnNcbiAgICBsZXQgdGFyZ2V0SW5kZXhlcyA9IGluZGV4ZXNcblxuICAgIGlmIChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSkge1xuICAgICAgY29sdW1uTmFtZSA9IGAke2NvbHVtblByZWZpeCB8fCAnJ30ke2ZpZWxkLm5hbWVbMF0gPT09ICdfJyA/ICdfJyA6ICcnfSR7dG9TbmFrZUNhc2UoXG4gICAgICAgIGZpZWxkLm5hbWUsXG4gICAgICApfWBcbiAgICAgIGZpZWxkTmFtZSA9IGAke2ZpZWxkUHJlZml4Py5yZXBsYWNlKCcuJywgJ18nKSB8fCAnJ30ke2ZpZWxkLm5hbWV9YFxuXG4gICAgICAvLyBJZiBmaWVsZCBpcyBsb2NhbGl6ZWQsXG4gICAgICAvLyBhZGQgdGhlIGNvbHVtbiB0byB0aGUgbG9jYWxlIHRhYmxlIGluc3RlYWQgb2YgbWFpbiB0YWJsZVxuICAgICAgaWYgKGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uICYmIChmaWVsZC5sb2NhbGl6ZWQgfHwgZm9yY2VMb2NhbGl6ZWQpKSB7XG4gICAgICAgIGhhc0xvY2FsaXplZEZpZWxkID0gdHJ1ZVxuICAgICAgICB0YXJnZXRUYWJsZSA9IGxvY2FsZXNDb2x1bW5zXG4gICAgICAgIHRhcmdldEluZGV4ZXMgPSBsb2NhbGVzSW5kZXhlc1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIChmaWVsZC51bmlxdWUgfHwgZmllbGQuaW5kZXgpICYmXG4gICAgICAgICFbJ2FycmF5JywgJ2Jsb2NrcycsICdncm91cCcsICdwb2ludCcsICdyZWxhdGlvbnNoaXAnLCAndXBsb2FkJ10uaW5jbHVkZXMoZmllbGQudHlwZSkgJiZcbiAgICAgICAgISgnaGFzTWFueScgaW4gZmllbGQgJiYgZmllbGQuaGFzTWFueSA9PT0gdHJ1ZSlcbiAgICAgICkge1xuICAgICAgICBjb25zdCB1bmlxdWUgPSBkaXNhYmxlVW5pcXVlICE9PSB0cnVlICYmIGZpZWxkLnVuaXF1ZVxuICAgICAgICBpZiAodW5pcXVlKSB7XG4gICAgICAgICAgY29uc3QgY29uc3RyYWludFZhbHVlID0gYCR7ZmllbGRQcmVmaXggfHwgJyd9JHtmaWVsZC5uYW1lfWBcbiAgICAgICAgICBpZiAoIWFkYXB0ZXIuZmllbGRDb25zdHJhaW50cz8uW3Jvb3RUYWJsZU5hbWVdKSB7XG4gICAgICAgICAgICBhZGFwdGVyLmZpZWxkQ29uc3RyYWludHNbcm9vdFRhYmxlTmFtZV0gPSB7fVxuICAgICAgICAgIH1cbiAgICAgICAgICBhZGFwdGVyLmZpZWxkQ29uc3RyYWludHNbcm9vdFRhYmxlTmFtZV1bYCR7Y29sdW1uTmFtZX1faWR4YF0gPSBjb25zdHJhaW50VmFsdWVcbiAgICAgICAgfVxuICAgICAgICB0YXJnZXRJbmRleGVzW2Ake25ld1RhYmxlTmFtZX1fJHtmaWVsZC5uYW1lfUlkeGBdID0gY3JlYXRlSW5kZXgoe1xuICAgICAgICAgIG5hbWU6IGZpZWxkTmFtZSxcbiAgICAgICAgICBjb2x1bW5OYW1lLFxuICAgICAgICAgIHRhYmxlTmFtZTogbmV3VGFibGVOYW1lLFxuICAgICAgICAgIHVuaXF1ZSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RleHQnOiB7XG4gICAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICAgICAgaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCA9IHRydWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQuaW5kZXgpIHtcbiAgICAgICAgICAgIGhhc01hbnlUZXh0RmllbGQgPSAnaW5kZXgnXG4gICAgICAgICAgfSBlbHNlIGlmICghaGFzTWFueVRleHRGaWVsZCkge1xuICAgICAgICAgICAgaGFzTWFueVRleHRGaWVsZCA9IHRydWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQudW5pcXVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZ3VyYXRpb24oXG4gICAgICAgICAgICAgICdVbmlxdWUgaXMgbm90IHN1cHBvcnRlZCBpbiBQb3N0Z3JlcyBmb3IgaGFzTWFueSB0ZXh0IGZpZWxkcy4nLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YXJnZXRUYWJsZVtmaWVsZE5hbWVdID0gdmFyY2hhcihjb2x1bW5OYW1lKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdlbWFpbCc6XG4gICAgICBjYXNlICdjb2RlJzpcbiAgICAgIGNhc2UgJ3RleHRhcmVhJzoge1xuICAgICAgICB0YXJnZXRUYWJsZVtmaWVsZE5hbWVdID0gdmFyY2hhcihjb2x1bW5OYW1lKVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdudW1iZXInOiB7XG4gICAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICAgICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkID0gdHJ1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWVsZC5pbmRleCkge1xuICAgICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkID0gJ2luZGV4J1xuICAgICAgICAgIH0gZWxzZSBpZiAoIWhhc01hbnlOdW1iZXJGaWVsZCkge1xuICAgICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkID0gdHJ1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWVsZC51bmlxdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlndXJhdGlvbihcbiAgICAgICAgICAgICAgJ1VuaXF1ZSBpcyBub3Qgc3VwcG9ydGVkIGluIFBvc3RncmVzIGZvciBoYXNNYW55IG51bWJlciBmaWVsZHMuJyxcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IG51bWVyaWMoY29sdW1uTmFtZSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdyaWNoVGV4dCc6XG4gICAgICBjYXNlICdqc29uJzoge1xuICAgICAgICB0YXJnZXRUYWJsZVtmaWVsZE5hbWVdID0ganNvbmIoY29sdW1uTmFtZSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnZGF0ZSc6IHtcbiAgICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSA9IHRpbWVzdGFtcChjb2x1bW5OYW1lLCB7XG4gICAgICAgICAgbW9kZTogJ3N0cmluZycsXG4gICAgICAgICAgcHJlY2lzaW9uOiAzLFxuICAgICAgICAgIHdpdGhUaW1lem9uZTogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncG9pbnQnOiB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgIGNhc2UgJ3NlbGVjdCc6IHtcbiAgICAgICAgY29uc3QgZW51bU5hbWUgPSBjcmVhdGVUYWJsZU5hbWUoe1xuICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgY29uZmlnOiBmaWVsZCxcbiAgICAgICAgICBwYXJlbnRUYWJsZU5hbWU6IG5ld1RhYmxlTmFtZSxcbiAgICAgICAgICBwcmVmaXg6IGBlbnVtXyR7bmV3VGFibGVOYW1lfV9gLFxuICAgICAgICAgIHRhcmdldDogJ2VudW1OYW1lJyxcbiAgICAgICAgICB0aHJvd1ZhbGlkYXRpb25FcnJvcixcbiAgICAgICAgfSlcblxuICAgICAgICBhZGFwdGVyLmVudW1zW2VudW1OYW1lXSA9IHBnRW51bShcbiAgICAgICAgICBlbnVtTmFtZSxcbiAgICAgICAgICBmaWVsZC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAob3B0aW9uSXNPYmplY3Qob3B0aW9uKSkge1xuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnZhbHVlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgICAgICB9KSBhcyBbc3RyaW5nLCAuLi5zdHJpbmdbXV0sXG4gICAgICAgIClcblxuICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3NlbGVjdCcgJiYgZmllbGQuaGFzTWFueSkge1xuICAgICAgICAgIGNvbnN0IHNlbGVjdFRhYmxlTmFtZSA9IGNyZWF0ZVRhYmxlTmFtZSh7XG4gICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgY29uZmlnOiBmaWVsZCxcbiAgICAgICAgICAgIHBhcmVudFRhYmxlTmFtZTogbmV3VGFibGVOYW1lLFxuICAgICAgICAgICAgcHJlZml4OiBgJHtuZXdUYWJsZU5hbWV9X2AsXG4gICAgICAgICAgICB0aHJvd1ZhbGlkYXRpb25FcnJvcixcbiAgICAgICAgICB9KVxuICAgICAgICAgIGNvbnN0IGJhc2VDb2x1bW5zOiBSZWNvcmQ8c3RyaW5nLCBQZ0NvbHVtbkJ1aWxkZXI+ID0ge1xuICAgICAgICAgICAgb3JkZXI6IGludGVnZXIoJ29yZGVyJykubm90TnVsbCgpLFxuICAgICAgICAgICAgcGFyZW50OiBwYXJlbnRJRENvbHVtbk1hcFtwYXJlbnRJRENvbFR5cGVdKCdwYXJlbnRfaWQnKS5ub3ROdWxsKCksXG4gICAgICAgICAgICB2YWx1ZTogYWRhcHRlci5lbnVtc1tlbnVtTmFtZV0oJ3ZhbHVlJyksXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgYmFzZUV4dHJhQ29uZmlnOiBCYXNlRXh0cmFDb25maWcgPSB7XG4gICAgICAgICAgICBvcmRlcklkeDogKGNvbHMpID0+IGluZGV4KGAke3NlbGVjdFRhYmxlTmFtZX1fb3JkZXJfaWR4YCkub24oY29scy5vcmRlciksXG4gICAgICAgICAgICBwYXJlbnRGazogKGNvbHMpID0+XG4gICAgICAgICAgICAgIGZvcmVpZ25LZXkoe1xuICAgICAgICAgICAgICAgIG5hbWU6IGAke3NlbGVjdFRhYmxlTmFtZX1fcGFyZW50X2ZrYCxcbiAgICAgICAgICAgICAgICBjb2x1bW5zOiBbY29scy5wYXJlbnRdLFxuICAgICAgICAgICAgICAgIGZvcmVpZ25Db2x1bW5zOiBbYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXS5pZF0sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgcGFyZW50SWR4OiAoY29scykgPT4gaW5kZXgoYCR7c2VsZWN0VGFibGVOYW1lfV9wYXJlbnRfaWR4YCkub24oY29scy5wYXJlbnQpLFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgICAgIGJhc2VDb2x1bW5zLmxvY2FsZSA9IGFkYXB0ZXIuZW51bXMuZW51bV9fbG9jYWxlcygnbG9jYWxlJykubm90TnVsbCgpXG4gICAgICAgICAgICBiYXNlRXh0cmFDb25maWcubG9jYWxlSWR4ID0gKGNvbHMpID0+XG4gICAgICAgICAgICAgIGluZGV4KGAke3NlbGVjdFRhYmxlTmFtZX1fbG9jYWxlX2lkeGApLm9uKGNvbHMubG9jYWxlKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWVsZC5pbmRleCkge1xuICAgICAgICAgICAgYmFzZUV4dHJhQ29uZmlnLnZhbHVlID0gKGNvbHMpID0+IGluZGV4KGAke3NlbGVjdFRhYmxlTmFtZX1fdmFsdWVfaWR4YCkub24oY29scy52YWx1ZSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBidWlsZFRhYmxlKHtcbiAgICAgICAgICAgIGFkYXB0ZXIsXG4gICAgICAgICAgICBiYXNlQ29sdW1ucyxcbiAgICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZyxcbiAgICAgICAgICAgIGRpc2FibGVOb3ROdWxsLFxuICAgICAgICAgICAgZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICAgIGZpZWxkczogW10sXG4gICAgICAgICAgICB0YWJsZU5hbWU6IHNlbGVjdFRhYmxlTmFtZSxcbiAgICAgICAgICAgIHZlcnNpb25zLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICByZWxhdGlvbnNUb0J1aWxkLnNldChmaWVsZE5hbWUsIHNlbGVjdFRhYmxlTmFtZSlcblxuICAgICAgICAgIGNvbnN0IHNlbGVjdFRhYmxlUmVsYXRpb25zID0gcmVsYXRpb25zKGFkYXB0ZXIudGFibGVzW3NlbGVjdFRhYmxlTmFtZV0sICh7IG9uZSB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFJlbGF0aW9uPHN0cmluZz4+ID0ge1xuICAgICAgICAgICAgICBwYXJlbnQ6IG9uZShhZGFwdGVyLnRhYmxlc1twYXJlbnRUYWJsZU5hbWVdLCB7XG4gICAgICAgICAgICAgICAgZmllbGRzOiBbYWRhcHRlci50YWJsZXNbc2VsZWN0VGFibGVOYW1lXS5wYXJlbnRdLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFthZGFwdGVyLnRhYmxlc1twYXJlbnRUYWJsZU5hbWVdLmlkXSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgYWRhcHRlci5yZWxhdGlvbnNbYHJlbGF0aW9uXyR7c2VsZWN0VGFibGVOYW1lfWBdID0gc2VsZWN0VGFibGVSZWxhdGlvbnNcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YXJnZXRUYWJsZVtmaWVsZE5hbWVdID0gYWRhcHRlci5lbnVtc1tlbnVtTmFtZV0oZmllbGROYW1lKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2NoZWNrYm94Jzoge1xuICAgICAgICB0YXJnZXRUYWJsZVtmaWVsZE5hbWVdID0gYm9vbGVhbihjb2x1bW5OYW1lKVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgICAgY29uc3QgZGlzYWJsZU5vdE51bGxGcm9tSGVyZSA9IEJvb2xlYW4oZmllbGQuYWRtaW4/LmNvbmRpdGlvbikgfHwgZGlzYWJsZU5vdE51bGxcblxuICAgICAgICBjb25zdCBhcnJheVRhYmxlTmFtZSA9IGNyZWF0ZVRhYmxlTmFtZSh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBjb25maWc6IGZpZWxkLFxuICAgICAgICAgIHBhcmVudFRhYmxlTmFtZTogbmV3VGFibGVOYW1lLFxuICAgICAgICAgIHByZWZpeDogYCR7bmV3VGFibGVOYW1lfV9gLFxuICAgICAgICAgIHRocm93VmFsaWRhdGlvbkVycm9yLFxuICAgICAgICAgIHZlcnNpb25zQ3VzdG9tTmFtZTogdmVyc2lvbnMsXG4gICAgICAgIH0pXG5cbiAgICAgICAgY29uc3QgYmFzZUNvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj4gPSB7XG4gICAgICAgICAgX29yZGVyOiBpbnRlZ2VyKCdfb3JkZXInKS5ub3ROdWxsKCksXG4gICAgICAgICAgX3BhcmVudElEOiBwYXJlbnRJRENvbHVtbk1hcFtwYXJlbnRJRENvbFR5cGVdKCdfcGFyZW50X2lkJykubm90TnVsbCgpLFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYmFzZUV4dHJhQ29uZmlnOiBCYXNlRXh0cmFDb25maWcgPSB7XG4gICAgICAgICAgX29yZGVySWR4OiAoY29scykgPT4gaW5kZXgoYCR7YXJyYXlUYWJsZU5hbWV9X29yZGVyX2lkeGApLm9uKGNvbHMuX29yZGVyKSxcbiAgICAgICAgICBfcGFyZW50SURGazogKGNvbHMpID0+XG4gICAgICAgICAgICBmb3JlaWduS2V5KHtcbiAgICAgICAgICAgICAgbmFtZTogYCR7YXJyYXlUYWJsZU5hbWV9X3BhcmVudF9pZF9ma2AsXG4gICAgICAgICAgICAgIGNvbHVtbnM6IFtjb2xzWydfcGFyZW50SUQnXV0sXG4gICAgICAgICAgICAgIGZvcmVpZ25Db2x1bW5zOiBbYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXS5pZF0sXG4gICAgICAgICAgICB9KS5vbkRlbGV0ZSgnY2FzY2FkZScpLFxuICAgICAgICAgIF9wYXJlbnRJRElkeDogKGNvbHMpID0+IGluZGV4KGAke2FycmF5VGFibGVOYW1lfV9wYXJlbnRfaWRfaWR4YCkub24oY29scy5fcGFyZW50SUQpLFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBhZGFwdGVyLnBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICAgIGJhc2VDb2x1bW5zLl9sb2NhbGUgPSBhZGFwdGVyLmVudW1zLmVudW1fX2xvY2FsZXMoJ19sb2NhbGUnKS5ub3ROdWxsKClcbiAgICAgICAgICBiYXNlRXh0cmFDb25maWcuX2xvY2FsZUlkeCA9IChjb2xzKSA9PlxuICAgICAgICAgICAgaW5kZXgoYCR7YXJyYXlUYWJsZU5hbWV9X2xvY2FsZV9pZHhgKS5vbihjb2xzLl9sb2NhbGUpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkOiBzdWJIYXNNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgaGFzTWFueVRleHRGaWVsZDogc3ViSGFzTWFueVRleHRGaWVsZCxcbiAgICAgICAgICByZWxhdGlvbnNUb0J1aWxkOiBzdWJSZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICB9ID0gYnVpbGRUYWJsZSh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBiYXNlQ29sdW1ucyxcbiAgICAgICAgICBiYXNlRXh0cmFDb25maWcsXG4gICAgICAgICAgZGlzYWJsZU5vdE51bGw6IGRpc2FibGVOb3ROdWxsRnJvbUhlcmUsXG4gICAgICAgICAgZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICBmaWVsZHM6IGRpc2FibGVVbmlxdWUgPyBpZFRvVVVJRChmaWVsZC5maWVsZHMpIDogZmllbGQuZmllbGRzLFxuICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgIHJvb3RSZWxhdGlvbnNoaXBzOiByZWxhdGlvbnNoaXBzLFxuICAgICAgICAgIHJvb3RUYWJsZUlEQ29sVHlwZSxcbiAgICAgICAgICByb290VGFibGVOYW1lLFxuICAgICAgICAgIHRhYmxlTmFtZTogYXJyYXlUYWJsZU5hbWUsXG4gICAgICAgICAgdmVyc2lvbnMsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHN1Ykhhc01hbnlUZXh0RmllbGQpIHtcbiAgICAgICAgICBpZiAoIWhhc01hbnlUZXh0RmllbGQgfHwgc3ViSGFzTWFueVRleHRGaWVsZCA9PT0gJ2luZGV4JylcbiAgICAgICAgICAgIGhhc01hbnlUZXh0RmllbGQgPSBzdWJIYXNNYW55VGV4dEZpZWxkXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN1Ykhhc01hbnlOdW1iZXJGaWVsZCkge1xuICAgICAgICAgIGlmICghaGFzTWFueU51bWJlckZpZWxkIHx8IHN1Ykhhc01hbnlOdW1iZXJGaWVsZCA9PT0gJ2luZGV4JylcbiAgICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZCA9IHN1Ykhhc01hbnlOdW1iZXJGaWVsZFxuICAgICAgICB9XG5cbiAgICAgICAgcmVsYXRpb25zVG9CdWlsZC5zZXQoZmllbGROYW1lLCBhcnJheVRhYmxlTmFtZSlcblxuICAgICAgICBjb25zdCBhcnJheVRhYmxlUmVsYXRpb25zID0gcmVsYXRpb25zKGFkYXB0ZXIudGFibGVzW2FycmF5VGFibGVOYW1lXSwgKHsgbWFueSwgb25lIH0pID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFJlbGF0aW9uPHN0cmluZz4+ID0ge1xuICAgICAgICAgICAgX3BhcmVudElEOiBvbmUoYWRhcHRlci50YWJsZXNbcGFyZW50VGFibGVOYW1lXSwge1xuICAgICAgICAgICAgICBmaWVsZHM6IFthZGFwdGVyLnRhYmxlc1thcnJheVRhYmxlTmFtZV0uX3BhcmVudElEXSxcbiAgICAgICAgICAgICAgcmVmZXJlbmNlczogW2FkYXB0ZXIudGFibGVzW3BhcmVudFRhYmxlTmFtZV0uaWRdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGhhc0xvY2FsZXNUYWJsZShmaWVsZC5maWVsZHMpKSB7XG4gICAgICAgICAgICByZXN1bHQuX2xvY2FsZXMgPSBtYW55KGFkYXB0ZXIudGFibGVzW2Ake2FycmF5VGFibGVOYW1lfSR7YWRhcHRlci5sb2NhbGVzU3VmZml4fWBdKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHN1YlJlbGF0aW9uc1RvQnVpbGQuZm9yRWFjaCgodmFsLCBrZXkpID0+IHtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gbWFueShhZGFwdGVyLnRhYmxlc1t2YWxdKVxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgIH0pXG5cbiAgICAgICAgYWRhcHRlci5yZWxhdGlvbnNbYHJlbGF0aW9uc18ke2FycmF5VGFibGVOYW1lfWBdID0gYXJyYXlUYWJsZVJlbGF0aW9uc1xuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgICAgY29uc3QgZGlzYWJsZU5vdE51bGxGcm9tSGVyZSA9IEJvb2xlYW4oZmllbGQuYWRtaW4/LmNvbmRpdGlvbikgfHwgZGlzYWJsZU5vdE51bGxcblxuICAgICAgICBmaWVsZC5ibG9ja3MuZm9yRWFjaCgoYmxvY2spID0+IHtcbiAgICAgICAgICBjb25zdCBibG9ja1RhYmxlTmFtZSA9IGNyZWF0ZVRhYmxlTmFtZSh7XG4gICAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgICAgY29uZmlnOiBibG9jayxcbiAgICAgICAgICAgIHBhcmVudFRhYmxlTmFtZTogcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICAgIHByZWZpeDogYCR7cm9vdFRhYmxlTmFtZX1fYmxvY2tzX2AsXG4gICAgICAgICAgICB0aHJvd1ZhbGlkYXRpb25FcnJvcixcbiAgICAgICAgICAgIHZlcnNpb25zQ3VzdG9tTmFtZTogdmVyc2lvbnMsXG4gICAgICAgICAgfSlcbiAgICAgICAgICBpZiAoIWFkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXSkge1xuICAgICAgICAgICAgY29uc3QgYmFzZUNvbHVtbnM6IFJlY29yZDxzdHJpbmcsIFBnQ29sdW1uQnVpbGRlcj4gPSB7XG4gICAgICAgICAgICAgIF9vcmRlcjogaW50ZWdlcignX29yZGVyJykubm90TnVsbCgpLFxuICAgICAgICAgICAgICBfcGFyZW50SUQ6IHBhcmVudElEQ29sdW1uTWFwW3Jvb3RUYWJsZUlEQ29sVHlwZV0oJ19wYXJlbnRfaWQnKS5ub3ROdWxsKCksXG4gICAgICAgICAgICAgIF9wYXRoOiB0ZXh0KCdfcGF0aCcpLm5vdE51bGwoKSxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgYmFzZUV4dHJhQ29uZmlnOiBCYXNlRXh0cmFDb25maWcgPSB7XG4gICAgICAgICAgICAgIF9vcmRlcklkeDogKGNvbHMpID0+IGluZGV4KGAke2Jsb2NrVGFibGVOYW1lfV9vcmRlcl9pZHhgKS5vbihjb2xzLl9vcmRlciksXG4gICAgICAgICAgICAgIF9wYXJlbnRJRElkeDogKGNvbHMpID0+IGluZGV4KGAke2Jsb2NrVGFibGVOYW1lfV9wYXJlbnRfaWRfaWR4YCkub24oY29scy5fcGFyZW50SUQpLFxuICAgICAgICAgICAgICBfcGFyZW50SWRGazogKGNvbHMpID0+XG4gICAgICAgICAgICAgICAgZm9yZWlnbktleSh7XG4gICAgICAgICAgICAgICAgICBuYW1lOiBgJHtibG9ja1RhYmxlTmFtZX1fcGFyZW50X2lkX2ZrYCxcbiAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IFtjb2xzLl9wYXJlbnRJRF0sXG4gICAgICAgICAgICAgICAgICBmb3JlaWduQ29sdW1uczogW2FkYXB0ZXIudGFibGVzW3Jvb3RUYWJsZU5hbWVdLmlkXSxcbiAgICAgICAgICAgICAgICB9KS5vbkRlbGV0ZSgnY2FzY2FkZScpLFxuICAgICAgICAgICAgICBfcGF0aElkeDogKGNvbHMpID0+IGluZGV4KGAke2Jsb2NrVGFibGVOYW1lfV9wYXRoX2lkeGApLm9uKGNvbHMuX3BhdGgpLFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgICAgICAgIGJhc2VDb2x1bW5zLl9sb2NhbGUgPSBhZGFwdGVyLmVudW1zLmVudW1fX2xvY2FsZXMoJ19sb2NhbGUnKS5ub3ROdWxsKClcbiAgICAgICAgICAgICAgYmFzZUV4dHJhQ29uZmlnLl9sb2NhbGVJZHggPSAoY29scykgPT5cbiAgICAgICAgICAgICAgICBpbmRleChgJHtibG9ja1RhYmxlTmFtZX1fbG9jYWxlX2lkeGApLm9uKGNvbHMuX2xvY2FsZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICBoYXNNYW55TnVtYmVyRmllbGQ6IHN1Ykhhc01hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgICAgICAgaGFzTWFueVRleHRGaWVsZDogc3ViSGFzTWFueVRleHRGaWVsZCxcbiAgICAgICAgICAgICAgcmVsYXRpb25zVG9CdWlsZDogc3ViUmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICAgIH0gPSBidWlsZFRhYmxlKHtcbiAgICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgICAgYmFzZUNvbHVtbnMsXG4gICAgICAgICAgICAgIGJhc2VFeHRyYUNvbmZpZyxcbiAgICAgICAgICAgICAgZGlzYWJsZU5vdE51bGw6IGRpc2FibGVOb3ROdWxsRnJvbUhlcmUsXG4gICAgICAgICAgICAgIGRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgICAgIGZpZWxkczogZGlzYWJsZVVuaXF1ZSA/IGlkVG9VVUlEKGJsb2NrLmZpZWxkcykgOiBibG9jay5maWVsZHMsXG4gICAgICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgICAgICByb290UmVsYXRpb25zaGlwczogcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgICAgcm9vdFRhYmxlSURDb2xUeXBlLFxuICAgICAgICAgICAgICByb290VGFibGVOYW1lLFxuICAgICAgICAgICAgICB0YWJsZU5hbWU6IGJsb2NrVGFibGVOYW1lLFxuICAgICAgICAgICAgICB2ZXJzaW9ucyxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGlmIChzdWJIYXNNYW55VGV4dEZpZWxkKSB7XG4gICAgICAgICAgICAgIGlmICghaGFzTWFueVRleHRGaWVsZCB8fCBzdWJIYXNNYW55VGV4dEZpZWxkID09PSAnaW5kZXgnKVxuICAgICAgICAgICAgICAgIGhhc01hbnlUZXh0RmllbGQgPSBzdWJIYXNNYW55VGV4dEZpZWxkXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzdWJIYXNNYW55TnVtYmVyRmllbGQpIHtcbiAgICAgICAgICAgICAgaWYgKCFoYXNNYW55TnVtYmVyRmllbGQgfHwgc3ViSGFzTWFueU51bWJlckZpZWxkID09PSAnaW5kZXgnKVxuICAgICAgICAgICAgICAgIGhhc01hbnlOdW1iZXJGaWVsZCA9IHN1Ykhhc01hbnlOdW1iZXJGaWVsZFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBibG9ja1RhYmxlUmVsYXRpb25zID0gcmVsYXRpb25zKFxuICAgICAgICAgICAgICBhZGFwdGVyLnRhYmxlc1tibG9ja1RhYmxlTmFtZV0sXG4gICAgICAgICAgICAgICh7IG1hbnksIG9uZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBSZWxhdGlvbjxzdHJpbmc+PiA9IHtcbiAgICAgICAgICAgICAgICAgIF9wYXJlbnRJRDogb25lKGFkYXB0ZXIudGFibGVzW3Jvb3RUYWJsZU5hbWVdLCB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkczogW2FkYXB0ZXIudGFibGVzW2Jsb2NrVGFibGVOYW1lXS5fcGFyZW50SURdLFxuICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbYWRhcHRlci50YWJsZXNbcm9vdFRhYmxlTmFtZV0uaWRdLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGhhc0xvY2FsZXNUYWJsZShibG9jay5maWVsZHMpKSB7XG4gICAgICAgICAgICAgICAgICByZXN1bHQuX2xvY2FsZXMgPSBtYW55KFxuICAgICAgICAgICAgICAgICAgICBhZGFwdGVyLnRhYmxlc1tgJHtibG9ja1RhYmxlTmFtZX0ke2FkYXB0ZXIubG9jYWxlc1N1ZmZpeH1gXSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdWJSZWxhdGlvbnNUb0J1aWxkLmZvckVhY2goKHZhbCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IG1hbnkoYWRhcHRlci50YWJsZXNbdmFsXSlcbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBhZGFwdGVyLnJlbGF0aW9uc1tgcmVsYXRpb25zXyR7YmxvY2tUYWJsZU5hbWV9YF0gPSBibG9ja1RhYmxlUmVsYXRpb25zXG4gICAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF2ZXJzaW9ucykge1xuICAgICAgICAgICAgdmFsaWRhdGVFeGlzdGluZ0Jsb2NrSXNJZGVudGljYWwoe1xuICAgICAgICAgICAgICBibG9jayxcbiAgICAgICAgICAgICAgbG9jYWxpemVkOiBmaWVsZC5sb2NhbGl6ZWQsXG4gICAgICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgICAgIHRhYmxlOiBhZGFwdGVyLnRhYmxlc1tibG9ja1RhYmxlTmFtZV0sXG4gICAgICAgICAgICAgIHRhYmxlTG9jYWxlczogYWRhcHRlci50YWJsZXNbYCR7YmxvY2tUYWJsZU5hbWV9JHthZGFwdGVyLmxvY2FsZXNTdWZmaXh9YF0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICByb290UmVsYXRpb25zVG9CdWlsZC5zZXQoYF9ibG9ja3NfJHtibG9jay5zbHVnfWAsIGJsb2NrVGFibGVOYW1lKVxuICAgICAgICB9KVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3RhYic6XG4gICAgICBjYXNlICdncm91cCc6IHtcbiAgICAgICAgaWYgKCEoJ25hbWUnIGluIGZpZWxkKSkge1xuICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGhhc0xvY2FsaXplZEZpZWxkOiBncm91cEhhc0xvY2FsaXplZEZpZWxkLFxuICAgICAgICAgICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkOiBncm91cEhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgICAgIGhhc0xvY2FsaXplZE1hbnlUZXh0RmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCxcbiAgICAgICAgICAgIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkOiBncm91cEhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkOiBncm91cEhhc01hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgICAgIGhhc01hbnlUZXh0RmllbGQ6IGdyb3VwSGFzTWFueVRleHRGaWVsZCxcbiAgICAgICAgICB9ID0gdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICAgIGJ1aWxkTnVtYmVycyxcbiAgICAgICAgICAgIGJ1aWxkUmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIGJ1aWxkVGV4dHMsXG4gICAgICAgICAgICBjb2x1bW5QcmVmaXgsXG4gICAgICAgICAgICBjb2x1bW5zLFxuICAgICAgICAgICAgZGlzYWJsZU5vdE51bGwsXG4gICAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgICAgZmllbGRQcmVmaXgsXG4gICAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICAgIGZvcmNlTG9jYWxpemVkLFxuICAgICAgICAgICAgaW5kZXhlcyxcbiAgICAgICAgICAgIGxvY2FsZXNDb2x1bW5zLFxuICAgICAgICAgICAgbG9jYWxlc0luZGV4ZXMsXG4gICAgICAgICAgICBuZXdUYWJsZU5hbWUsXG4gICAgICAgICAgICBwYXJlbnRUYWJsZU5hbWUsXG4gICAgICAgICAgICByZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICAgIHJvb3RSZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgICAgcm9vdFRhYmxlSURDb2xUeXBlLFxuICAgICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICAgIHZlcnNpb25zLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBpZiAoZ3JvdXBIYXNMb2NhbGl6ZWRGaWVsZCkgaGFzTG9jYWxpemVkRmllbGQgPSB0cnVlXG4gICAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQpIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkID0gdHJ1ZVxuICAgICAgICAgIGlmIChncm91cEhhc01hbnlUZXh0RmllbGQpIGhhc01hbnlUZXh0RmllbGQgPSB0cnVlXG4gICAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCkgaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCA9IHRydWVcbiAgICAgICAgICBpZiAoZ3JvdXBIYXNNYW55TnVtYmVyRmllbGQpIGhhc01hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgICBpZiAoZ3JvdXBIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQpIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGlzYWJsZU5vdE51bGxGcm9tSGVyZSA9IEJvb2xlYW4oZmllbGQuYWRtaW4/LmNvbmRpdGlvbikgfHwgZGlzYWJsZU5vdE51bGxcblxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgaGFzTG9jYWxpemVkRmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkOiBncm91cEhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkOiBncm91cEhhc0xvY2FsaXplZE1hbnlUZXh0RmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQ6IGdyb3VwSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkOiBncm91cEhhc01hbnlOdW1iZXJGaWVsZCxcbiAgICAgICAgICBoYXNNYW55VGV4dEZpZWxkOiBncm91cEhhc01hbnlUZXh0RmllbGQsXG4gICAgICAgIH0gPSB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgYWRhcHRlcixcbiAgICAgICAgICBidWlsZE51bWJlcnMsXG4gICAgICAgICAgYnVpbGRSZWxhdGlvbnNoaXBzLFxuICAgICAgICAgIGJ1aWxkVGV4dHMsXG4gICAgICAgICAgY29sdW1uUHJlZml4OiBgJHtjb2x1bW5OYW1lfV9gLFxuICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgZGlzYWJsZU5vdE51bGw6IGRpc2FibGVOb3ROdWxsRnJvbUhlcmUsXG4gICAgICAgICAgZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICBmaWVsZFByZWZpeDogYCR7ZmllbGROYW1lfS5gLFxuICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgIGZvcmNlTG9jYWxpemVkOiBmaWVsZC5sb2NhbGl6ZWQsXG4gICAgICAgICAgaW5kZXhlcyxcbiAgICAgICAgICBsb2NhbGVzQ29sdW1ucyxcbiAgICAgICAgICBsb2NhbGVzSW5kZXhlcyxcbiAgICAgICAgICBuZXdUYWJsZU5hbWU6IGAke3BhcmVudFRhYmxlTmFtZX1fJHtjb2x1bW5OYW1lfWAsXG4gICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgIHJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByb290VGFibGVJRENvbFR5cGUsXG4gICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICB2ZXJzaW9ucyxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoZ3JvdXBIYXNMb2NhbGl6ZWRGaWVsZCkgaGFzTG9jYWxpemVkRmllbGQgPSB0cnVlXG4gICAgICAgIGlmIChncm91cEhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkKSBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKGdyb3VwSGFzTWFueVRleHRGaWVsZCkgaGFzTWFueVRleHRGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKGdyb3VwSGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCkgaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKGdyb3VwSGFzTWFueU51bWJlckZpZWxkKSBoYXNNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgIGlmIChncm91cEhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCkgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkID0gdHJ1ZVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICd0YWJzJzoge1xuICAgICAgICBjb25zdCBkaXNhYmxlTm90TnVsbEZyb21IZXJlID0gQm9vbGVhbihmaWVsZC5hZG1pbj8uY29uZGl0aW9uKSB8fCBkaXNhYmxlTm90TnVsbFxuXG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRGaWVsZDogdGFiSGFzTG9jYWxpemVkRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkOiB0YWJIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZDogdGFiSGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCxcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZDogdGFiSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkOiB0YWJIYXNNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgaGFzTWFueVRleHRGaWVsZDogdGFiSGFzTWFueVRleHRGaWVsZCxcbiAgICAgICAgfSA9IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGJ1aWxkTnVtYmVycyxcbiAgICAgICAgICBidWlsZFJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgYnVpbGRUZXh0cyxcbiAgICAgICAgICBjb2x1bW5QcmVmaXgsXG4gICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICBkaXNhYmxlTm90TnVsbDogZGlzYWJsZU5vdE51bGxGcm9tSGVyZSxcbiAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGZpZWxkUHJlZml4LFxuICAgICAgICAgIGZpZWxkczogZmllbGQudGFicy5tYXAoKHRhYikgPT4gKHsgLi4udGFiLCB0eXBlOiAndGFiJyB9KSksXG4gICAgICAgICAgZm9yY2VMb2NhbGl6ZWQsXG4gICAgICAgICAgaW5kZXhlcyxcbiAgICAgICAgICBsb2NhbGVzQ29sdW1ucyxcbiAgICAgICAgICBsb2NhbGVzSW5kZXhlcyxcbiAgICAgICAgICBuZXdUYWJsZU5hbWUsXG4gICAgICAgICAgcGFyZW50VGFibGVOYW1lLFxuICAgICAgICAgIHJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgcmVsYXRpb25zaGlwcyxcbiAgICAgICAgICByb290UmVsYXRpb25zVG9CdWlsZCxcbiAgICAgICAgICByb290VGFibGVJRENvbFR5cGUsXG4gICAgICAgICAgcm9vdFRhYmxlTmFtZSxcbiAgICAgICAgICB2ZXJzaW9ucyxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAodGFiSGFzTG9jYWxpemVkRmllbGQpIGhhc0xvY2FsaXplZEZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAodGFiSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQpIGhhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAodGFiSGFzTWFueVRleHRGaWVsZCkgaGFzTWFueVRleHRGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHRhYkhhc0xvY2FsaXplZE1hbnlUZXh0RmllbGQpIGhhc0xvY2FsaXplZE1hbnlUZXh0RmllbGQgPSB0cnVlXG4gICAgICAgIGlmICh0YWJIYXNNYW55TnVtYmVyRmllbGQpIGhhc01hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHRhYkhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCkgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkID0gdHJ1ZVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdyb3cnOlxuICAgICAgY2FzZSAnY29sbGFwc2libGUnOiB7XG4gICAgICAgIGNvbnN0IGRpc2FibGVOb3ROdWxsRnJvbUhlcmUgPSBCb29sZWFuKGZpZWxkLmFkbWluPy5jb25kaXRpb24pIHx8IGRpc2FibGVOb3ROdWxsXG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRGaWVsZDogcm93SGFzTG9jYWxpemVkRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkOiByb3dIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZDogcm93SGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCxcbiAgICAgICAgICBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZDogcm93SGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgICAgICAgaGFzTWFueU51bWJlckZpZWxkOiByb3dIYXNNYW55TnVtYmVyRmllbGQsXG4gICAgICAgICAgaGFzTWFueVRleHRGaWVsZDogcm93SGFzTWFueVRleHRGaWVsZCxcbiAgICAgICAgfSA9IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICBhZGFwdGVyLFxuICAgICAgICAgIGJ1aWxkTnVtYmVycyxcbiAgICAgICAgICBidWlsZFJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgYnVpbGRUZXh0cyxcbiAgICAgICAgICBjb2x1bW5QcmVmaXgsXG4gICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICBkaXNhYmxlTm90TnVsbDogZGlzYWJsZU5vdE51bGxGcm9tSGVyZSxcbiAgICAgICAgICBkaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGZpZWxkUHJlZml4LFxuICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgIGZvcmNlTG9jYWxpemVkLFxuICAgICAgICAgIGluZGV4ZXMsXG4gICAgICAgICAgbG9jYWxlc0NvbHVtbnMsXG4gICAgICAgICAgbG9jYWxlc0luZGV4ZXMsXG4gICAgICAgICAgbmV3VGFibGVOYW1lLFxuICAgICAgICAgIHBhcmVudFRhYmxlTmFtZSxcbiAgICAgICAgICByZWxhdGlvbnNUb0J1aWxkLFxuICAgICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgICAgcm9vdFJlbGF0aW9uc1RvQnVpbGQsXG4gICAgICAgICAgcm9vdFRhYmxlSURDb2xUeXBlLFxuICAgICAgICAgIHJvb3RUYWJsZU5hbWUsXG4gICAgICAgICAgdmVyc2lvbnMsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHJvd0hhc0xvY2FsaXplZEZpZWxkKSBoYXNMb2NhbGl6ZWRGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHJvd0hhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkKSBoYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCA9IHRydWVcbiAgICAgICAgaWYgKHJvd0hhc01hbnlUZXh0RmllbGQpIGhhc01hbnlUZXh0RmllbGQgPSB0cnVlXG4gICAgICAgIGlmIChyb3dIYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkKSBoYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkID0gdHJ1ZVxuICAgICAgICBpZiAocm93SGFzTWFueU51bWJlckZpZWxkKSBoYXNNYW55TnVtYmVyRmllbGQgPSB0cnVlXG4gICAgICAgIGlmIChyb3dIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQpIGhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCA9IHRydWVcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncmVsYXRpb25zaGlwJzpcbiAgICAgIGNhc2UgJ3VwbG9hZCc6XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLnJlbGF0aW9uVG8pKSB7XG4gICAgICAgICAgZmllbGQucmVsYXRpb25Uby5mb3JFYWNoKChyZWxhdGlvbikgPT4gcmVsYXRpb25zaGlwcy5hZGQocmVsYXRpb24pKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlbGF0aW9uc2hpcHMuYWRkKGZpZWxkLnJlbGF0aW9uVG8pXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGFkYXB0ZXIucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjb25zdCBjb25kaXRpb24gPSBmaWVsZC5hZG1pbiAmJiBmaWVsZC5hZG1pbi5jb25kaXRpb25cblxuICAgIGlmIChcbiAgICAgICFkaXNhYmxlTm90TnVsbCAmJlxuICAgICAgdGFyZ2V0VGFibGVbZmllbGROYW1lXSAmJlxuICAgICAgJ3JlcXVpcmVkJyBpbiBmaWVsZCAmJlxuICAgICAgZmllbGQucmVxdWlyZWQgJiZcbiAgICAgICFjb25kaXRpb25cbiAgICApIHtcbiAgICAgIHRhcmdldFRhYmxlW2ZpZWxkTmFtZV0ubm90TnVsbCgpXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgaGFzTG9jYWxpemVkRmllbGQsXG4gICAgaGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkLFxuICAgIGhhc0xvY2FsaXplZE1hbnlUZXh0RmllbGQsXG4gICAgaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQsXG4gICAgaGFzTWFueU51bWJlckZpZWxkLFxuICAgIGhhc01hbnlUZXh0RmllbGQsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ0cmF2ZXJzZUZpZWxkcyIsImFkYXB0ZXIiLCJidWlsZE51bWJlcnMiLCJidWlsZFJlbGF0aW9uc2hpcHMiLCJidWlsZFRleHRzIiwiY29sdW1uUHJlZml4IiwiY29sdW1ucyIsImRpc2FibGVOb3ROdWxsIiwiZGlzYWJsZVVuaXF1ZSIsImZpZWxkUHJlZml4IiwiZmllbGRzIiwiZm9yY2VMb2NhbGl6ZWQiLCJpbmRleGVzIiwibG9jYWxlc0NvbHVtbnMiLCJsb2NhbGVzSW5kZXhlcyIsIm5ld1RhYmxlTmFtZSIsInBhcmVudFRhYmxlTmFtZSIsInJlbGF0aW9uc1RvQnVpbGQiLCJyZWxhdGlvbnNoaXBzIiwicm9vdFJlbGF0aW9uc1RvQnVpbGQiLCJyb290VGFibGVJRENvbFR5cGUiLCJyb290VGFibGVOYW1lIiwidmVyc2lvbnMiLCJ0aHJvd1ZhbGlkYXRpb25FcnJvciIsImhhc0xvY2FsaXplZEZpZWxkIiwiaGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQiLCJoYXNNYW55VGV4dEZpZWxkIiwiaGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCIsImhhc01hbnlOdW1iZXJGaWVsZCIsImhhc0xvY2FsaXplZE1hbnlOdW1iZXJGaWVsZCIsInBhcmVudElEQ29sVHlwZSIsImlkIiwiUGdVVUlEQnVpbGRlciIsIlBnTnVtZXJpY0J1aWxkZXIiLCJQZ1ZhcmNoYXJCdWlsZGVyIiwiZm9yRWFjaCIsImZpZWxkIiwibmFtZSIsImNvbHVtbk5hbWUiLCJmaWVsZE5hbWUiLCJ0YXJnZXRUYWJsZSIsInRhcmdldEluZGV4ZXMiLCJmaWVsZEFmZmVjdHNEYXRhIiwidG9TbmFrZUNhc2UiLCJyZXBsYWNlIiwicGF5bG9hZCIsImNvbmZpZyIsImxvY2FsaXphdGlvbiIsImxvY2FsaXplZCIsInVuaXF1ZSIsImluZGV4IiwiaW5jbHVkZXMiLCJ0eXBlIiwiaGFzTWFueSIsImNvbnN0cmFpbnRWYWx1ZSIsImZpZWxkQ29uc3RyYWludHMiLCJjcmVhdGVJbmRleCIsInRhYmxlTmFtZSIsIkludmFsaWRDb25maWd1cmF0aW9uIiwidmFyY2hhciIsIm51bWVyaWMiLCJqc29uYiIsInRpbWVzdGFtcCIsIm1vZGUiLCJwcmVjaXNpb24iLCJ3aXRoVGltZXpvbmUiLCJlbnVtTmFtZSIsImNyZWF0ZVRhYmxlTmFtZSIsInByZWZpeCIsInRhcmdldCIsImVudW1zIiwicGdFbnVtIiwib3B0aW9ucyIsIm1hcCIsIm9wdGlvbiIsIm9wdGlvbklzT2JqZWN0IiwidmFsdWUiLCJzZWxlY3RUYWJsZU5hbWUiLCJiYXNlQ29sdW1ucyIsIm9yZGVyIiwiaW50ZWdlciIsIm5vdE51bGwiLCJwYXJlbnQiLCJwYXJlbnRJRENvbHVtbk1hcCIsImJhc2VFeHRyYUNvbmZpZyIsIm9yZGVySWR4IiwiY29scyIsIm9uIiwicGFyZW50RmsiLCJmb3JlaWduS2V5IiwiZm9yZWlnbkNvbHVtbnMiLCJ0YWJsZXMiLCJwYXJlbnRJZHgiLCJsb2NhbGUiLCJlbnVtX19sb2NhbGVzIiwibG9jYWxlSWR4IiwiYnVpbGRUYWJsZSIsInNldCIsInNlbGVjdFRhYmxlUmVsYXRpb25zIiwicmVsYXRpb25zIiwib25lIiwicmVzdWx0IiwicmVmZXJlbmNlcyIsImJvb2xlYW4iLCJkaXNhYmxlTm90TnVsbEZyb21IZXJlIiwiQm9vbGVhbiIsImFkbWluIiwiY29uZGl0aW9uIiwiYXJyYXlUYWJsZU5hbWUiLCJ2ZXJzaW9uc0N1c3RvbU5hbWUiLCJfb3JkZXIiLCJfcGFyZW50SUQiLCJfb3JkZXJJZHgiLCJfcGFyZW50SURGayIsIm9uRGVsZXRlIiwiX3BhcmVudElESWR4IiwiX2xvY2FsZSIsIl9sb2NhbGVJZHgiLCJzdWJIYXNNYW55TnVtYmVyRmllbGQiLCJzdWJIYXNNYW55VGV4dEZpZWxkIiwic3ViUmVsYXRpb25zVG9CdWlsZCIsImlkVG9VVUlEIiwicm9vdFJlbGF0aW9uc2hpcHMiLCJhcnJheVRhYmxlUmVsYXRpb25zIiwibWFueSIsImhhc0xvY2FsZXNUYWJsZSIsIl9sb2NhbGVzIiwibG9jYWxlc1N1ZmZpeCIsInZhbCIsImtleSIsImJsb2NrcyIsImJsb2NrIiwiYmxvY2tUYWJsZU5hbWUiLCJfcGF0aCIsInRleHQiLCJfcGFyZW50SWRGayIsIl9wYXRoSWR4IiwiYmxvY2tUYWJsZVJlbGF0aW9ucyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInZhbGlkYXRlRXhpc3RpbmdCbG9ja0lzSWRlbnRpY2FsIiwidGFibGUiLCJ0YWJsZUxvY2FsZXMiLCJzbHVnIiwiZ3JvdXBIYXNMb2NhbGl6ZWRGaWVsZCIsImdyb3VwSGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkIiwiZ3JvdXBIYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkIiwiZ3JvdXBIYXNMb2NhbGl6ZWRSZWxhdGlvbnNoaXBGaWVsZCIsImdyb3VwSGFzTWFueU51bWJlckZpZWxkIiwiZ3JvdXBIYXNNYW55VGV4dEZpZWxkIiwidGFiSGFzTG9jYWxpemVkRmllbGQiLCJ0YWJIYXNMb2NhbGl6ZWRNYW55TnVtYmVyRmllbGQiLCJ0YWJIYXNMb2NhbGl6ZWRNYW55VGV4dEZpZWxkIiwidGFiSGFzTG9jYWxpemVkUmVsYXRpb25zaGlwRmllbGQiLCJ0YWJIYXNNYW55TnVtYmVyRmllbGQiLCJ0YWJIYXNNYW55VGV4dEZpZWxkIiwidGFicyIsInRhYiIsInJvd0hhc0xvY2FsaXplZEZpZWxkIiwicm93SGFzTG9jYWxpemVkTWFueU51bWJlckZpZWxkIiwicm93SGFzTG9jYWxpemVkTWFueVRleHRGaWVsZCIsInJvd0hhc0xvY2FsaXplZFJlbGF0aW9uc2hpcEZpZWxkIiwicm93SGFzTWFueU51bWJlckZpZWxkIiwicm93SGFzTWFueVRleHRGaWVsZCIsIkFycmF5IiwiaXNBcnJheSIsInJlbGF0aW9uVG8iLCJyZWxhdGlvbiIsImFkZCIsInJlcXVpcmVkIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBc0V2QkE7OztlQUFBQTs7OzRCQWpFYTt3QkFlbkI7d0JBQzhCO3VCQUNZO29FQUN6QjtpQ0FLUTt1QkFDTDs2QkFDQztpQ0FDSTswQkFDUDttQ0FDUztrREFDZTs7Ozs7O0FBb0MxQyxNQUFNQSxpQkFBaUIsQ0FBQyxFQUM3QkMsT0FBTyxFQUNQQyxZQUFZLEVBQ1pDLGtCQUFrQixFQUNsQkMsVUFBVSxFQUNWQyxZQUFZLEVBQ1pDLE9BQU8sRUFDUEMsY0FBYyxFQUNkQyxnQkFBZ0IsS0FBSyxFQUNyQkMsV0FBVyxFQUNYQyxNQUFNLEVBQ05DLGNBQWMsRUFDZEMsT0FBTyxFQUNQQyxjQUFjLEVBQ2RDLGNBQWMsRUFDZEMsWUFBWSxFQUNaQyxlQUFlLEVBQ2ZDLGdCQUFnQixFQUNoQkMsYUFBYSxFQUNiQyxvQkFBb0IsRUFDcEJDLGtCQUFrQixFQUNsQkMsYUFBYSxFQUNiQyxRQUFRLEVBQ0g7SUFDTCxNQUFNQyx1QkFBdUI7SUFDN0IsSUFBSUMsb0JBQW9CO0lBQ3hCLElBQUlDLGdDQUFnQztJQUNwQyxJQUFJQyxtQkFBc0M7SUFDMUMsSUFBSUMsNEJBQTRCO0lBQ2hDLElBQUlDLHFCQUF3QztJQUM1QyxJQUFJQyw4QkFBOEI7SUFFbEMsSUFBSUMsa0JBQTBCO0lBQzlCLElBQUl4QixRQUFReUIsRUFBRSxZQUFZQyxxQkFBYSxFQUFFRixrQkFBa0I7SUFDM0Qs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
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"validateExistingBlockIsIdentical.d.ts","sourceRoot":"","sources":["../../src/schema/validateExistingBlockIsIdentical.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAS,MAAM,eAAe,CAAA;AAKjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE5C,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,YAAY,CAAA;IACnB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAkDD,eAAO,MAAM,gCAAgC,8DAM1C,IAAI,KAAG,
|
1
|
+
{"version":3,"file":"validateExistingBlockIsIdentical.d.ts","sourceRoot":"","sources":["../../src/schema/validateExistingBlockIsIdentical.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAS,MAAM,eAAe,CAAA;AAKjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE5C,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,YAAY,CAAA;IACnB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAkDD,eAAO,MAAM,gCAAgC,8DAM1C,IAAI,KAAG,IA+BT,CAAA"}
|
@@ -83,4 +83,4 @@ const validateExistingBlockIsIdentical = ({ block, localized, rootTableName, tab
|
|
83
83
|
}
|
84
84
|
};
|
85
85
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvdmFsaWRhdGVFeGlzdGluZ0Jsb2NrSXNJZGVudGljYWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCbG9jaywgRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBJbnZhbGlkQ29uZmlndXJhdGlvbiB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSwgZmllbGRIYXNTdWJGaWVsZHMsIHRhYkhhc05hbWUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyaWNUYWJsZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIGJsb2NrOiBCbG9ja1xuICBsb2NhbGl6ZWQ6IGJvb2xlYW5cbiAgcm9vdFRhYmxlTmFtZTogc3RyaW5nXG4gIHRhYmxlOiBHZW5lcmljVGFibGVcbiAgdGFibGVMb2NhbGVzPzogR2VuZXJpY1RhYmxlXG59XG5cbmNvbnN0IGdldEZsYXR0ZW5lZEZpZWxkTmFtZXMgPSAoXG4gIGZpZWxkczogRmllbGRbXSxcbiAgcHJlZml4OiBzdHJpbmcgPSAnJyxcbik6IHsgbG9jYWxpemVkPzogYm9vbGVhbjsgbmFtZTogc3RyaW5nIH1bXSA9PiB7XG4gIHJldHVybiBmaWVsZHMucmVkdWNlKChmaWVsZHNUb1VzZSwgZmllbGQpID0+IHtcbiAgICBsZXQgZmllbGRQcmVmaXggPSBwcmVmaXhcblxuICAgIGlmIChcbiAgICAgIFsnYXJyYXknLCAnYmxvY2tzJywgJ3JlbGF0aW9uc2hpcCcsICd1cGxvYWQnXS5pbmNsdWRlcyhmaWVsZC50eXBlKSB8fFxuICAgICAgKCdoYXNNYW55JyBpbiBmaWVsZCAmJiBmaWVsZC5oYXNNYW55ID09PSB0cnVlKVxuICAgICkge1xuICAgICAgcmV0dXJuIGZpZWxkc1RvVXNlXG4gICAgfVxuXG4gICAgaWYgKGZpZWxkSGFzU3ViRmllbGRzKGZpZWxkKSkge1xuICAgICAgZmllbGRQcmVmaXggPSAnbmFtZScgaW4gZmllbGQgPyBgJHtwcmVmaXh9JHtmaWVsZC5uYW1lfV9gIDogcHJlZml4XG4gICAgICByZXR1cm4gWy4uLmZpZWxkc1RvVXNlLCAuLi5nZXRGbGF0dGVuZWRGaWVsZE5hbWVzKGZpZWxkLmZpZWxkcywgZmllbGRQcmVmaXgpXVxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAndGFicycpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLmZpZWxkc1RvVXNlLFxuICAgICAgICAuLi5maWVsZC50YWJzLnJlZHVjZSgodGFiRmllbGRzLCB0YWIpID0+
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvdmFsaWRhdGVFeGlzdGluZ0Jsb2NrSXNJZGVudGljYWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCbG9jaywgRmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBJbnZhbGlkQ29uZmlndXJhdGlvbiB9IGZyb20gJ3BheWxvYWQvZXJyb3JzJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSwgZmllbGRIYXNTdWJGaWVsZHMsIHRhYkhhc05hbWUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyaWNUYWJsZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIGJsb2NrOiBCbG9ja1xuICBsb2NhbGl6ZWQ6IGJvb2xlYW5cbiAgcm9vdFRhYmxlTmFtZTogc3RyaW5nXG4gIHRhYmxlOiBHZW5lcmljVGFibGVcbiAgdGFibGVMb2NhbGVzPzogR2VuZXJpY1RhYmxlXG59XG5cbmNvbnN0IGdldEZsYXR0ZW5lZEZpZWxkTmFtZXMgPSAoXG4gIGZpZWxkczogRmllbGRbXSxcbiAgcHJlZml4OiBzdHJpbmcgPSAnJyxcbik6IHsgbG9jYWxpemVkPzogYm9vbGVhbjsgbmFtZTogc3RyaW5nIH1bXSA9PiB7XG4gIHJldHVybiBmaWVsZHMucmVkdWNlKChmaWVsZHNUb1VzZSwgZmllbGQpID0+IHtcbiAgICBsZXQgZmllbGRQcmVmaXggPSBwcmVmaXhcblxuICAgIGlmIChcbiAgICAgIFsnYXJyYXknLCAnYmxvY2tzJywgJ3JlbGF0aW9uc2hpcCcsICd1cGxvYWQnXS5pbmNsdWRlcyhmaWVsZC50eXBlKSB8fFxuICAgICAgKCdoYXNNYW55JyBpbiBmaWVsZCAmJiBmaWVsZC5oYXNNYW55ID09PSB0cnVlKVxuICAgICkge1xuICAgICAgcmV0dXJuIGZpZWxkc1RvVXNlXG4gICAgfVxuXG4gICAgaWYgKGZpZWxkSGFzU3ViRmllbGRzKGZpZWxkKSkge1xuICAgICAgZmllbGRQcmVmaXggPSAnbmFtZScgaW4gZmllbGQgPyBgJHtwcmVmaXh9JHtmaWVsZC5uYW1lfV9gIDogcHJlZml4XG4gICAgICByZXR1cm4gWy4uLmZpZWxkc1RvVXNlLCAuLi5nZXRGbGF0dGVuZWRGaWVsZE5hbWVzKGZpZWxkLmZpZWxkcywgZmllbGRQcmVmaXgpXVxuICAgIH1cblxuICAgIGlmIChmaWVsZC50eXBlID09PSAndGFicycpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLmZpZWxkc1RvVXNlLFxuICAgICAgICAuLi5maWVsZC50YWJzLnJlZHVjZSgodGFiRmllbGRzLCB0YWIpID0+IHtcbiAgICAgICAgICBmaWVsZFByZWZpeCA9ICduYW1lJyBpbiB0YWIgPyBgJHtwcmVmaXh9XyR7dGFiLm5hbWV9YCA6IHByZWZpeFxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi50YWJGaWVsZHMsXG4gICAgICAgICAgICAuLi4odGFiSGFzTmFtZSh0YWIpXG4gICAgICAgICAgICAgID8gW3sgLi4udGFiLCB0eXBlOiAndGFiJyB9XVxuICAgICAgICAgICAgICA6IGdldEZsYXR0ZW5lZEZpZWxkTmFtZXModGFiLmZpZWxkcywgZmllbGRQcmVmaXgpKSxcbiAgICAgICAgICBdXG4gICAgICAgIH0sIFtdKSxcbiAgICAgIF1cbiAgICB9XG5cbiAgICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLmZpZWxkc1RvVXNlLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogYCR7ZmllbGRQcmVmaXh9JHtmaWVsZC5uYW1lfWAsXG4gICAgICAgICAgbG9jYWxpemVkOiBmaWVsZC5sb2NhbGl6ZWQsXG4gICAgICAgIH0sXG4gICAgICBdXG4gICAgfVxuXG4gICAgcmV0dXJuIGZpZWxkc1RvVXNlXG4gIH0sIFtdKVxufVxuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVFeGlzdGluZ0Jsb2NrSXNJZGVudGljYWwgPSAoe1xuICBibG9jayxcbiAgbG9jYWxpemVkLFxuICByb290VGFibGVOYW1lLFxuICB0YWJsZSxcbiAgdGFibGVMb2NhbGVzLFxufTogQXJncyk6IHZvaWQgPT4ge1xuICBjb25zdCBmaWVsZE5hbWVzID0gZ2V0RmxhdHRlbmVkRmllbGROYW1lcyhibG9jay5maWVsZHMpXG5cbiAgY29uc3QgbWlzc2luZ0ZpZWxkID1cbiAgICAvLyBlbnN1cmUgZXZlcnkgZmllbGQgZnJvbSB0aGUgY29uZmlnIGlzIGluIHRoZSBtYXRjaGluZyB0YWJsZVxuICAgIGZpZWxkTmFtZXMuZmluZCgoeyBuYW1lLCBsb2NhbGl6ZWQgfSkgPT4ge1xuICAgICAgY29uc3QgZmllbGRUYWJsZSA9IGxvY2FsaXplZCAmJiB0YWJsZUxvY2FsZXMgPyB0YWJsZUxvY2FsZXMgOiB0YWJsZVxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGZpZWxkVGFibGUpLmluZGV4T2YobmFtZSkgPT09IC0xXG4gICAgfSkgfHxcbiAgICAvLyBlbnN1cmUgZXZlcnkgdGFibGUgY29sdW1uIGlzIG1hdGNoZWQgZm9yIGV2ZXJ5IGZpZWxkIGZyb20gdGhlIGNvbmZpZ1xuICAgIE9iamVjdC5rZXlzKHRhYmxlKS5maW5kKChmaWVsZE5hbWUpID0+IHtcbiAgICAgIGlmICghWydfbG9jYWxlJywgJ19vcmRlcicsICdfcGFyZW50SUQnLCAnX3BhdGgnLCAnX3V1aWQnXS5pbmNsdWRlcyhmaWVsZE5hbWUpKSB7XG4gICAgICAgIHJldHVybiBmaWVsZE5hbWVzLmZpbmRJbmRleCgoZmllbGQpID0+IGZpZWxkLm5hbWUpID09PSAtMVxuICAgICAgfVxuICAgIH0pXG5cbiAgaWYgKG1pc3NpbmdGaWVsZCkge1xuICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlndXJhdGlvbihcbiAgICAgIGBUaGUgdGFibGUgJHtyb290VGFibGVOYW1lfSBoYXMgbXVsdGlwbGUgYmxvY2tzIHdpdGggc2x1ZyAke1xuICAgICAgICBibG9jay5zbHVnXG4gICAgICB9LCBidXQgdGhlIHNjaGVtYXMgZG8gbm90IG1hdGNoLiBPbmUgYmxvY2sgaW5jbHVkZXMgdGhlIGZpZWxkICR7XG4gICAgICAgIHR5cGVvZiBtaXNzaW5nRmllbGQgPT09ICdzdHJpbmcnID8gbWlzc2luZ0ZpZWxkIDogbWlzc2luZ0ZpZWxkLm5hbWVcbiAgICAgIH0sIHdoaWxlIHRoZSBvdGhlciBibG9jayBkb2VzIG5vdC5gLFxuICAgIClcbiAgfVxuXG4gIGlmIChCb29sZWFuKGxvY2FsaXplZCkgIT09IEJvb2xlYW4odGFibGUuX2xvY2FsZSkpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZ3VyYXRpb24oXG4gICAgICBgVGhlIHRhYmxlICR7cm9vdFRhYmxlTmFtZX0gaGFzIG11bHRpcGxlIGJsb2NrcyB3aXRoIHNsdWcgJHtibG9jay5zbHVnfSwgYnV0IHRoZSBzY2hlbWFzIGRvIG5vdCBtYXRjaC4gT25lIGlzIGxvY2FsaXplZCwgYnV0IGFub3RoZXIgaXMgbm90LiBCbG9jayBzY2hlbWFzIG9mIHRoZSBzYW1lIG5hbWUgbXVzdCBtYXRjaCBleGFjdGx5LmAsXG4gICAgKVxuICB9XG59XG4iXSwibmFtZXMiOlsidmFsaWRhdGVFeGlzdGluZ0Jsb2NrSXNJZGVudGljYWwiLCJnZXRGbGF0dGVuZWRGaWVsZE5hbWVzIiwiZmllbGRzIiwicHJlZml4IiwicmVkdWNlIiwiZmllbGRzVG9Vc2UiLCJmaWVsZCIsImZpZWxkUHJlZml4IiwiaW5jbHVkZXMiLCJ0eXBlIiwiaGFzTWFueSIsImZpZWxkSGFzU3ViRmllbGRzIiwibmFtZSIsInRhYnMiLCJ0YWJGaWVsZHMiLCJ0YWIiLCJ0YWJIYXNOYW1lIiwiZmllbGRBZmZlY3RzRGF0YSIsImxvY2FsaXplZCIsImJsb2NrIiwicm9vdFRhYmxlTmFtZSIsInRhYmxlIiwidGFibGVMb2NhbGVzIiwiZmllbGROYW1lcyIsIm1pc3NpbmdGaWVsZCIsImZpbmQiLCJmaWVsZFRhYmxlIiwiT2JqZWN0Iiwia2V5cyIsImluZGV4T2YiLCJmaWVsZE5hbWUiLCJm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
|
@@ -2,9 +2,9 @@ import type { TextField } from 'payload/types';
|
|
2
2
|
type Args = {
|
3
3
|
field: TextField;
|
4
4
|
locale?: string;
|
5
|
-
textRows: Record<string, unknown>[];
|
6
5
|
ref: Record<string, unknown>;
|
6
|
+
textRows: Record<string, unknown>[];
|
7
7
|
};
|
8
|
-
export declare const transformHasManyText: ({ field, locale,
|
8
|
+
export declare const transformHasManyText: ({ field, locale, ref, textRows }: Args) => void;
|
9
9
|
export {};
|
10
10
|
//# sourceMappingURL=hasManyText.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"hasManyText.d.ts","sourceRoot":"","sources":["../../../src/transform/read/hasManyText.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,
|
1
|
+
{"version":3,"file":"hasManyText.d.ts","sourceRoot":"","sources":["../../../src/transform/read/hasManyText.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,oBAAoB,qCAAsC,IAAI,SAQ1E,CAAA"}
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "transformHasManyText", {
|
|
8
8
|
return transformHasManyText;
|
9
9
|
}
|
10
10
|
});
|
11
|
-
const transformHasManyText = ({ field, locale,
|
11
|
+
const transformHasManyText = ({ field, locale, ref, textRows })=>{
|
12
12
|
const result = textRows.map(({ text })=>text);
|
13
13
|
if (locale) {
|
14
14
|
ref[field.name][locale] = result;
|
@@ -17,4 +17,4 @@ const transformHasManyText = ({ field, locale, textRows, ref })=>{
|
|
17
17
|
}
|
18
18
|
};
|
19
19
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vcmVhZC9oYXNNYW55VGV4dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBUZXh0RmllbGQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIGZpZWxkOiBUZXh0RmllbGRcbiAgbG9jYWxlPzogc3RyaW5nXG4gIHJlZjogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgdGV4dFJvd3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbn1cblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybUhhc01hbnlUZXh0ID0gKHsgZmllbGQsIGxvY2FsZSwgcmVmLCB0ZXh0Um93cyB9OiBBcmdzKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IHRleHRSb3dzLm1hcCgoeyB0ZXh0IH0pID0+IHRleHQpXG5cbiAgaWYgKGxvY2FsZSkge1xuICAgIHJlZltmaWVsZC5uYW1lXVtsb2NhbGVdID0gcmVzdWx0XG4gIH0gZWxzZSB7XG4gICAgcmVmW2ZpZWxkLm5hbWVdID0gcmVzdWx0XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ0cmFuc2Zvcm1IYXNNYW55VGV4dCIsImZpZWxkIiwibG9jYWxlIiwicmVmIiwidGV4dFJvd3MiLCJyZXN1bHQiLCJtYXAiLCJ0ZXh0IiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DOzs7OytCQVV2QkE7OztlQUFBQTs7O0FBQU4sTUFBTUEsdUJBQXVCLENBQUMsRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLEdBQUcsRUFBRUMsUUFBUSxFQUFRO0lBQ3pFLE1BQU1DLFNBQVNELFNBQVNFLEdBQUcsQ0FBQyxDQUFDLEVBQUVDLElBQUksRUFBRSxHQUFLQTtJQUUxQyxJQUFJTCxRQUFRO1FBQ1ZDLEdBQUcsQ0FBQ0YsTUFBTU8sSUFBSSxDQUFDLENBQUNOLE9BQU8sR0FBR0c7SUFDNUIsT0FBTztRQUNMRixHQUFHLENBQUNGLE1BQU1PLElBQUksQ0FBQyxHQUFHSDtJQUNwQjtBQUNGIn0=
|
@@ -38,14 +38,14 @@ const transform = ({ config, data, fields })=>{
|
|
38
38
|
deletions,
|
39
39
|
fieldPrefix: '',
|
40
40
|
fields,
|
41
|
-
texts,
|
42
41
|
numbers,
|
43
42
|
path: '',
|
44
43
|
relationships,
|
45
|
-
table: data
|
44
|
+
table: data,
|
45
|
+
texts
|
46
46
|
});
|
47
47
|
deletions.forEach((deletion)=>deletion());
|
48
48
|
return result;
|
49
49
|
};
|
50
50
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vcmVhZC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgRmllbGQsIFR5cGVXaXRoSUQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBjcmVhdGVCbG9ja3NNYXAgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvY3JlYXRlQmxvY2tzTWFwJ1xuaW1wb3J0IHsgY3JlYXRlUGF0aE1hcCB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9jcmVhdGVSZWxhdGlvbnNoaXBNYXAnXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMnXG5cbnR5cGUgVHJhbnNmb3JtQXJncyA9IHtcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgZmFsbGJhY2tMb2NhbGU/OiBmYWxzZSB8IHN0cmluZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgbG9jYWxlPzogc3RyaW5nXG59XG5cbi8vIFRoaXMgaXMgdGhlIGVudHJ5IHBvaW50IHRvIHRyYW5zZm9ybSBEcml6emxlIG91dHB1dCBkYXRhXG4vLyBpbnRvIHRoZSBzaGFwZSBQYXlsb2FkIGV4cGVjdHMgYmFzZWQgb24gZmllbGQgc2NoZW1hXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtID0gPFQgZXh0ZW5kcyBUeXBlV2l0aElEPih7IGNvbmZpZywgZGF0YSwgZmllbGRzIH06IFRyYW5zZm9ybUFyZ3MpOiBUID0+IHtcbiAgbGV0IHJlbGF0aW9uc2hpcHM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+ID0ge31cbiAgbGV0IHRleHRzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdPiA9IHt9XG4gIGxldCBudW1iZXJzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdPiA9IHt9XG5cbiAgaWYgKCdfcmVscycgaW4gZGF0YSkge1xuICAgIHJlbGF0aW9uc2hpcHMgPSBjcmVhdGVQYXRoTWFwKGRhdGEuX3JlbHMpXG4gICAgZGVsZXRlIGRhdGEuX3JlbHNcbiAgfVxuXG4gIGlmICgnX3RleHRzJyBpbiBkYXRhKSB7XG4gICAgdGV4dHMgPSBjcmVhdGVQYXRoTWFwKGRhdGEuX3RleHRzKVxuICAgIGRlbGV0ZSBkYXRhLl90ZXh0c1xuICB9XG5cbiAgaWYgKCdfbnVtYmVycycgaW4gZGF0YSkge1xuICAgIG51bWJlcnMgPSBjcmVhdGVQYXRoTWFwKGRhdGEuX251bWJlcnMpXG4gICAgZGVsZXRlIGRhdGEuX251bWJlcnNcbiAgfVxuXG4gIGNvbnN0IGJsb2NrcyA9IGNyZWF0ZUJsb2Nrc01hcChkYXRhKVxuICBjb25zdCBkZWxldGlvbnMgPSBbXVxuXG4gIGNvbnN0IHJlc3VsdCA9IHRyYXZlcnNlRmllbGRzPFQ+
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vcmVhZC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgRmllbGQsIFR5cGVXaXRoSUQgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBjcmVhdGVCbG9ja3NNYXAgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvY3JlYXRlQmxvY2tzTWFwJ1xuaW1wb3J0IHsgY3JlYXRlUGF0aE1hcCB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9jcmVhdGVSZWxhdGlvbnNoaXBNYXAnXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMnXG5cbnR5cGUgVHJhbnNmb3JtQXJncyA9IHtcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgZmFsbGJhY2tMb2NhbGU/OiBmYWxzZSB8IHN0cmluZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgbG9jYWxlPzogc3RyaW5nXG59XG5cbi8vIFRoaXMgaXMgdGhlIGVudHJ5IHBvaW50IHRvIHRyYW5zZm9ybSBEcml6emxlIG91dHB1dCBkYXRhXG4vLyBpbnRvIHRoZSBzaGFwZSBQYXlsb2FkIGV4cGVjdHMgYmFzZWQgb24gZmllbGQgc2NoZW1hXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtID0gPFQgZXh0ZW5kcyBUeXBlV2l0aElEPih7IGNvbmZpZywgZGF0YSwgZmllbGRzIH06IFRyYW5zZm9ybUFyZ3MpOiBUID0+IHtcbiAgbGV0IHJlbGF0aW9uc2hpcHM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+ID0ge31cbiAgbGV0IHRleHRzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdPiA9IHt9XG4gIGxldCBudW1iZXJzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdPiA9IHt9XG5cbiAgaWYgKCdfcmVscycgaW4gZGF0YSkge1xuICAgIHJlbGF0aW9uc2hpcHMgPSBjcmVhdGVQYXRoTWFwKGRhdGEuX3JlbHMpXG4gICAgZGVsZXRlIGRhdGEuX3JlbHNcbiAgfVxuXG4gIGlmICgnX3RleHRzJyBpbiBkYXRhKSB7XG4gICAgdGV4dHMgPSBjcmVhdGVQYXRoTWFwKGRhdGEuX3RleHRzKVxuICAgIGRlbGV0ZSBkYXRhLl90ZXh0c1xuICB9XG5cbiAgaWYgKCdfbnVtYmVycycgaW4gZGF0YSkge1xuICAgIG51bWJlcnMgPSBjcmVhdGVQYXRoTWFwKGRhdGEuX251bWJlcnMpXG4gICAgZGVsZXRlIGRhdGEuX251bWJlcnNcbiAgfVxuXG4gIGNvbnN0IGJsb2NrcyA9IGNyZWF0ZUJsb2Nrc01hcChkYXRhKVxuICBjb25zdCBkZWxldGlvbnMgPSBbXVxuXG4gIGNvbnN0IHJlc3VsdCA9IHRyYXZlcnNlRmllbGRzPFQ+KHtcbiAgICBibG9ja3MsXG4gICAgY29uZmlnLFxuICAgIGRhdGFSZWY6IHtcbiAgICAgIGlkOiBkYXRhLmlkLFxuICAgIH0sXG4gICAgZGVsZXRpb25zLFxuICAgIGZpZWxkUHJlZml4OiAnJyxcbiAgICBmaWVsZHMsXG4gICAgbnVtYmVycyxcbiAgICBwYXRoOiAnJyxcbiAgICByZWxhdGlvbnNoaXBzLFxuICAgIHRhYmxlOiBkYXRhLFxuICAgIHRleHRzLFxuICB9KVxuXG4gIGRlbGV0aW9ucy5mb3JFYWNoKChkZWxldGlvbikgPT4gZGVsZXRpb24oKSlcblxuICByZXR1cm4gcmVzdWx0XG59XG4iXSwibmFtZXMiOlsidHJhbnNmb3JtIiwiY29uZmlnIiwiZGF0YSIsImZpZWxkcyIsInJlbGF0aW9uc2hpcHMiLCJ0ZXh0cyIsIm51bWJlcnMiLCJjcmVhdGVQYXRoTWFwIiwiX3JlbHMiLCJfdGV4dHMiLCJfbnVtYmVycyIsImJsb2NrcyIsImNyZWF0ZUJsb2Nrc01hcCIsImRlbGV0aW9ucyIsInJlc3VsdCIsInRyYXZlcnNlRmllbGRzIiwiZGF0YVJlZiIsImlkIiwiZmllbGRQcmVmaXgiLCJwYXRoIiwidGFibGUiLCJmb3JFYWNoIiwiZGVsZXRpb24iXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkFrQnZCQTs7O2VBQUFBOzs7aUNBZG1CO3VDQUNGO2dDQUNDO0FBWXhCLE1BQU1BLFlBQVksQ0FBdUIsRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLE1BQU0sRUFBaUI7SUFDckYsSUFBSUMsZ0JBQTJELENBQUM7SUFDaEUsSUFBSUMsUUFBbUQsQ0FBQztJQUN4RCxJQUFJQyxVQUFxRCxDQUFDO0lBRTFELElBQUksV0FBV0osTUFBTTtRQUNuQkUsZ0JBQWdCRyxJQUFBQSxvQ0FBYSxFQUFDTCxLQUFLTSxLQUFLO1FBQ3hDLE9BQU9OLEtBQUtNLEtBQUs7SUFDbkI7SUFFQSxJQUFJLFlBQVlOLE1BQU07UUFDcEJHLFFBQVFFLElBQUFBLG9DQUFhLEVBQUNMLEtBQUtPLE1BQU07UUFDakMsT0FBT1AsS0FBS08sTUFBTTtJQUNwQjtJQUVBLElBQUksY0FBY1AsTUFBTTtRQUN0QkksVUFBVUMsSUFBQUEsb0NBQWEsRUFBQ0wsS0FBS1EsUUFBUTtRQUNyQyxPQUFPUixLQUFLUSxRQUFRO0lBQ3RCO0lBRUEsTUFBTUMsU0FBU0MsSUFBQUEsZ0NBQWUsRUFBQ1Y7SUFDL0IsTUFBTVcsWUFBWSxFQUFFO0lBRXBCLE1BQU1DLFNBQVNDLElBQUFBLDhCQUFjLEVBQUk7UUFDL0JKO1FBQ0FWO1FBQ0FlLFNBQVM7WUFDUEMsSUFBSWYsS0FBS2UsRUFBRTtRQUNiO1FBQ0FKO1FBQ0FLLGFBQWE7UUFDYmY7UUFDQUc7UUFDQWEsTUFBTTtRQUNOZjtRQUNBZ0IsT0FBT2xCO1FBQ1BHO0lBQ0Y7SUFFQVEsVUFBVVEsT0FBTyxDQUFDLENBQUNDLFdBQWFBO0lBRWhDLE9BQU9SO0FBQ1QifQ==
|
@@ -12,7 +12,6 @@ type Args = {
|
|
12
12
|
data: unknown;
|
13
13
|
field: ArrayField;
|
14
14
|
locale?: string;
|
15
|
-
texts: Record<string, unknown>[];
|
16
15
|
numbers: Record<string, unknown>[];
|
17
16
|
path: string;
|
18
17
|
relationships: Record<string, unknown>[];
|
@@ -20,7 +19,8 @@ type Args = {
|
|
20
19
|
selects: {
|
21
20
|
[tableName: string]: Record<string, unknown>[];
|
22
21
|
};
|
22
|
+
texts: Record<string, unknown>[];
|
23
23
|
};
|
24
|
-
export declare const transformArray: ({ adapter, arrayTableName, baseTableName, blocks, blocksToDelete, data, field, locale,
|
24
|
+
export declare const transformArray: ({ adapter, arrayTableName, baseTableName, blocks, blocksToDelete, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects, texts, }: Args) => ArrayRowToInsert[];
|
25
25
|
export {};
|
26
26
|
//# sourceMappingURL=array.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/transform/write/array.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAKvF,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/transform/write/array.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAKvF,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;IACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,cAAc,kKAexB,IAAI,uBA6DN,CAAA"}
|
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "transformArray", {
|
|
10
10
|
});
|
11
11
|
const _isArrayOfRows = require("../../utilities/isArrayOfRows");
|
12
12
|
const _traverseFields = require("./traverseFields");
|
13
|
-
const transformArray = ({ adapter, arrayTableName, baseTableName, blocks, blocksToDelete, data, field, locale,
|
13
|
+
const transformArray = ({ adapter, arrayTableName, baseTableName, blocks, blocksToDelete, data, field, locale, numbers, path, relationships, relationshipsToDelete, selects, texts })=>{
|
14
14
|
const newRows = [];
|
15
15
|
const hasUUID = adapter.tables[arrayTableName]._uuid;
|
16
16
|
if ((0, _isArrayOfRows.isArrayOfRows)(data)) {
|
@@ -50,14 +50,14 @@ const transformArray = ({ adapter, arrayTableName, baseTableName, blocks, blocks
|
|
50
50
|
fieldPrefix: '',
|
51
51
|
fields: field.fields,
|
52
52
|
locales: newRow.locales,
|
53
|
-
texts,
|
54
53
|
numbers,
|
55
54
|
parentTableName: arrayTableName,
|
56
55
|
path: `${path || ''}${field.name}.${i}.`,
|
57
56
|
relationships,
|
58
57
|
relationshipsToDelete,
|
59
58
|
row: newRow.row,
|
60
|
-
selects
|
59
|
+
selects,
|
60
|
+
texts
|
61
61
|
});
|
62
62
|
newRows.push(newRow);
|
63
63
|
});
|
@@ -65,4 +65,4 @@ const transformArray = ({ adapter, arrayTableName, baseTableName, blocks, blocks
|
|
65
65
|
return newRows;
|
66
66
|
};
|
67
67
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vd3JpdGUvYXJyYXkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgQXJyYXlGaWVsZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgUG9zdGdyZXNBZGFwdGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEFycmF5Um93VG9JbnNlcnQsIEJsb2NrUm93VG9JbnNlcnQsIFJlbGF0aW9uc2hpcFRvRGVsZXRlIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgaXNBcnJheU9mUm93cyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9pc0FycmF5T2ZSb3dzJ1xuaW1wb3J0IHsgdHJhdmVyc2VGaWVsZHMgfSBmcm9tICcuL3RyYXZlcnNlRmllbGRzJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIGFkYXB0ZXI6IFBvc3RncmVzQWRhcHRlclxuICBhcnJheVRhYmxlTmFtZTogc3RyaW5nXG4gIGJhc2VUYWJsZU5hbWU6IHN0cmluZ1xuICBibG9ja3M6IHtcbiAgICBbYmxvY2tUeXBlOiBzdHJpbmddOiBCbG9ja1Jvd1RvSW5zZXJ0W11cbiAgfVxuICBibG9ja3NUb0RlbGV0ZTogU2V0PHN0cmluZz5cbiAgZGF0YTogdW5rbm93blxuICBmaWVsZDogQXJyYXlGaWVsZFxuICBsb2NhbGU/
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm0vd3JpdGUvYXJyYXkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgQXJyYXlGaWVsZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgUG9zdGdyZXNBZGFwdGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEFycmF5Um93VG9JbnNlcnQsIEJsb2NrUm93VG9JbnNlcnQsIFJlbGF0aW9uc2hpcFRvRGVsZXRlIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgaXNBcnJheU9mUm93cyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9pc0FycmF5T2ZSb3dzJ1xuaW1wb3J0IHsgdHJhdmVyc2VGaWVsZHMgfSBmcm9tICcuL3RyYXZlcnNlRmllbGRzJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIGFkYXB0ZXI6IFBvc3RncmVzQWRhcHRlclxuICBhcnJheVRhYmxlTmFtZTogc3RyaW5nXG4gIGJhc2VUYWJsZU5hbWU6IHN0cmluZ1xuICBibG9ja3M6IHtcbiAgICBbYmxvY2tUeXBlOiBzdHJpbmddOiBCbG9ja1Jvd1RvSW5zZXJ0W11cbiAgfVxuICBibG9ja3NUb0RlbGV0ZTogU2V0PHN0cmluZz5cbiAgZGF0YTogdW5rbm93blxuICBmaWVsZDogQXJyYXlGaWVsZFxuICBsb2NhbGU/OiBzdHJpbmdcbiAgbnVtYmVyczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICBwYXRoOiBzdHJpbmdcbiAgcmVsYXRpb25zaGlwczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICByZWxhdGlvbnNoaXBzVG9EZWxldGU6IFJlbGF0aW9uc2hpcFRvRGVsZXRlW11cbiAgc2VsZWN0czoge1xuICAgIFt0YWJsZU5hbWU6IHN0cmluZ106IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbiAgfVxuICB0ZXh0czogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxufVxuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtQXJyYXkgPSAoe1xuICBhZGFwdGVyLFxuICBhcnJheVRhYmxlTmFtZSxcbiAgYmFzZVRhYmxlTmFtZSxcbiAgYmxvY2tzLFxuICBibG9ja3NUb0RlbGV0ZSxcbiAgZGF0YSxcbiAgZmllbGQsXG4gIGxvY2FsZSxcbiAgbnVtYmVycyxcbiAgcGF0aCxcbiAgcmVsYXRpb25zaGlwcyxcbiAgcmVsYXRpb25zaGlwc1RvRGVsZXRlLFxuICBzZWxlY3RzLFxuICB0ZXh0cyxcbn06IEFyZ3MpID0+IHtcbiAgY29uc3QgbmV3Um93czogQXJyYXlSb3dUb0luc2VydFtdID0gW11cblxuICBjb25zdCBoYXNVVUlEID0gYWRhcHRlci50YWJsZXNbYXJyYXlUYWJsZU5hbWVdLl91dWlkXG5cbiAgaWYgKGlzQXJyYXlPZlJvd3MoZGF0YSkpIHtcbiAgICBkYXRhLmZvckVhY2goKGFycmF5Um93LCBpKSA9PiB7XG4gICAgICBjb25zdCBuZXdSb3c6IEFycmF5Um93VG9JbnNlcnQgPSB7XG4gICAgICAgIGFycmF5czoge30sXG4gICAgICAgIGxvY2FsZXM6IHt9LFxuICAgICAgICByb3c6IHtcbiAgICAgICAgICBfb3JkZXI6IGkgKyAxLFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgICAvLyBJZiB3ZSBoYXZlIGRlY2xhcmVkIGEgX3V1aWQgZmllbGQgb24gYXJyYXlzLFxuICAgICAgLy8gdGhhdCBtZWFucyB0aGUgSUQgaGFzIHRvIGJlIHVuaXF1ZSxcbiAgICAgIC8vIGFuZCBvdXIgaWRzIHdpdGhpbiBhcnJheXMgYXJlIG5vdCB1bmlxdWUuXG4gICAgICAvLyBTbyBtb3ZlIHRoZSBJRCB0byBhIHV1aWQgZmllbGQgZm9yIHN0b3JhZ2VcbiAgICAgIC8vIGFuZCBhbGxvdyB0aGUgZGF0YWJhc2UgdG8gZ2VuZXJhdGUgYSBzZXJpYWwgaWQgYXV0b21hdGljYWxseVxuICAgICAgaWYgKGhhc1VVSUQpIHtcbiAgICAgICAgbmV3Um93LnJvdy5fdXVpZCA9IGFycmF5Um93LmlkXG4gICAgICAgIGRlbGV0ZSBhcnJheVJvdy5pZFxuICAgICAgfVxuXG4gICAgICBpZiAobG9jYWxlKSB7XG4gICAgICAgIG5ld1Jvdy5sb2NhbGVzW2xvY2FsZV0gPSB7XG4gICAgICAgICAgX2xvY2FsZTogbG9jYWxlLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgICAgbmV3Um93LnJvdy5fbG9jYWxlID0gbG9jYWxlXG4gICAgICB9XG5cbiAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgYWRhcHRlcixcbiAgICAgICAgYXJyYXlzOiBuZXdSb3cuYXJyYXlzLFxuICAgICAgICBiYXNlVGFibGVOYW1lLFxuICAgICAgICBibG9ja3MsXG4gICAgICAgIGJsb2Nrc1RvRGVsZXRlLFxuICAgICAgICBjb2x1bW5QcmVmaXg6ICcnLFxuICAgICAgICBkYXRhOiBhcnJheVJvdyxcbiAgICAgICAgZmllbGRQcmVmaXg6ICcnLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgbG9jYWxlczogbmV3Um93LmxvY2FsZXMsXG4gICAgICAgIG51bWJlcnMsXG4gICAgICAgIHBhcmVudFRhYmxlTmFtZTogYXJyYXlUYWJsZU5hbWUsXG4gICAgICAgIHBhdGg6IGAke3BhdGggfHwgJyd9JHtmaWVsZC5uYW1lfS4ke2l9LmAsXG4gICAgICAgIHJlbGF0aW9uc2hpcHMsXG4gICAgICAgIHJlbGF0aW9uc2hpcHNUb0RlbGV0ZSxcbiAgICAgICAgcm93OiBuZXdSb3cucm93LFxuICAgICAgICBzZWxlY3RzLFxuICAgICAgICB0ZXh0cyxcbiAgICAgIH0pXG5cbiAgICAgIG5ld1Jvd3MucHVzaChuZXdSb3cpXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBuZXdSb3dzXG59XG4iXSwibmFtZXMiOlsidHJhbnNmb3JtQXJyYXkiLCJhZGFwdGVyIiwiYXJyYXlUYWJsZU5hbWUiLCJiYXNlVGFibGVOYW1lIiwiYmxvY2tzIiwiYmxvY2tzVG9EZWxldGUiLCJkYXRhIiwiZmllbGQiLCJsb2NhbGUiLCJudW1iZXJzIiwicGF0aCIsInJlbGF0aW9uc2hpcHMiLCJyZWxhdGlvbnNoaXBzVG9EZWxldGUiLCJzZWxlY3RzIiwidGV4dHMiLCJuZXdSb3dzIiwiaGFzVVVJRCIsInRhYmxlcyIsIl91dWlkIiwiaXNBcnJheU9mUm93cyIsImZvckVhY2giLCJhcnJheVJvdyIsImkiLCJuZXdSb3ciLCJhcnJheXMiLCJsb2NhbGVzIiwicm93IiwiX29yZGVyIiwiaWQiLCJfbG9jYWxlIiwibG9jYWxpemVkIiwidHJhdmVyc2VGaWVsZHMiLCJjb2x1bW5QcmVmaXgiLCJmaWVsZFByZWZpeCIsImZpZWxkcyIsInBhcmVudFRhYmxlTmFtZSIsIm5hbWUiLCJwdXNoIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBOEJ2QkE7OztlQUFBQTs7OytCQXhCaUI7Z0NBQ0M7QUF1QnhCLE1BQU1BLGlCQUFpQixDQUFDLEVBQzdCQyxPQUFPLEVBQ1BDLGNBQWMsRUFDZEMsYUFBYSxFQUNiQyxNQUFNLEVBQ05DLGNBQWMsRUFDZEMsSUFBSSxFQUNKQyxLQUFLLEVBQ0xDLE1BQU0sRUFDTkMsT0FBTyxFQUNQQyxJQUFJLEVBQ0pDLGFBQWEsRUFDYkMscUJBQXFCLEVBQ3JCQyxPQUFPLEVBQ1BDLEtBQUssRUFDQTtJQUNMLE1BQU1DLFVBQThCLEVBQUU7SUFFdEMsTUFBTUMsVUFBVWYsUUFBUWdCLE1BQU0sQ0FBQ2YsZUFBZSxDQUFDZ0IsS0FBSztJQUVwRCxJQUFJQyxJQUFBQSw0QkFBYSxFQUFDYixPQUFPO1FBQ3ZCQSxLQUFLYyxPQUFPLENBQUMsQ0FBQ0MsVUFBVUM7WUFDdEIsTUFBTUMsU0FBMkI7Z0JBQy9CQyxRQUFRLENBQUM7Z0JBQ1RDLFNBQVMsQ0FBQztnQkFDVkMsS0FBSztvQkFDSEMsUUFBUUwsSUFBSTtnQkFDZDtZQUNGO1lBRUEsK0NBQStDO1lBQy9DLHNDQUFzQztZQUN0Qyw0Q0FBNEM7WUFDNUMsNkNBQTZDO1lBQzdDLCtEQUErRDtZQUMvRCxJQUFJTixTQUFTO2dCQUNYTyxPQUFPRyxHQUFHLENBQUNSLEtBQUssR0FBR0csU0FBU08sRUFBRTtnQkFDOUIsT0FBT1AsU0FBU08sRUFBRTtZQUNwQjtZQUVBLElBQUlwQixRQUFRO2dCQUNWZSxPQUFPRSxPQUFPLENBQUNqQixPQUFPLEdBQUc7b0JBQ3ZCcUIsU0FBU3JCO2dCQUNYO1lBQ0Y7WUFFQSxJQUFJRCxNQUFNdUIsU0FBUyxFQUFFO2dCQUNuQlAsT0FBT0csR0FBRyxDQUFDRyxPQUFPLEdBQUdyQjtZQUN2QjtZQUVBdUIsSUFBQUEsOEJBQWMsRUFBQztnQkFDYjlCO2dCQUNBdUIsUUFBUUQsT0FBT0MsTUFBTTtnQkFDckJyQjtnQkFDQUM7Z0JBQ0FDO2dCQUNBMkIsY0FBYztnQkFDZDFCLE1BQU1lO2dCQUNOWSxhQUFhO2dCQUNiQyxRQUFRM0IsTUFBTTJCLE1BQU07Z0JBQ3BCVCxTQUFTRixPQUFPRSxPQUFPO2dCQUN2QmhCO2dCQUNBMEIsaUJBQWlCakM7Z0JBQ2pCUSxNQUFNLENBQUMsRUFBRUEsUUFBUSxHQUFHLEVBQUVILE1BQU02QixJQUFJLENBQUMsQ0FBQyxFQUFFZCxFQUFFLENBQUMsQ0FBQztnQkFDeENYO2dCQUNBQztnQkFDQWMsS0FBS0gsT0FBT0csR0FBRztnQkFDZmI7Z0JBQ0FDO1lBQ0Y7WUFFQUMsUUFBUXNCLElBQUksQ0FBQ2Q7UUFDZjtJQUNGO0lBRUEsT0FBT1I7QUFDVCJ9
|