@rudderstack/integrations-lib 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/network/clients/axios_client.test.js +53 -6
- package/build/structured-logger.d.ts +2 -0
- package/build/structured-logger.d.ts.map +1 -1
- package/build/structured-logger.js +11 -8
- package/build/structured-logger.test.d.ts +2 -0
- package/build/structured-logger.test.d.ts.map +1 -0
- package/build/structured-logger.test.js +118 -0
- package/build/utils/json.d.ts.map +1 -1
- package/build/utils/json.js +13 -3
- package/build/utils/json.test.js +703 -1
- package/build/utils/sem.test.js +81 -1
- package/package.json +1 -1
package/build/utils/sem.test.js
CHANGED
|
@@ -233,5 +233,85 @@ describe('SemanticUtil', () => {
|
|
|
233
233
|
expect(result).toBeNull();
|
|
234
234
|
});
|
|
235
235
|
});
|
|
236
|
+
describe('getDestinationExternalIDInfoForRetl', () => {
|
|
237
|
+
test('should parse everything successfully', () => {
|
|
238
|
+
const msg = {
|
|
239
|
+
context: {
|
|
240
|
+
externalId: [
|
|
241
|
+
{
|
|
242
|
+
type: 'destination-user',
|
|
243
|
+
id: 1245,
|
|
244
|
+
identifierType: 'some',
|
|
245
|
+
},
|
|
246
|
+
],
|
|
247
|
+
},
|
|
248
|
+
};
|
|
249
|
+
const actual = sem_1.SemanticUtil.getDestinationExternalIDInfoForRetl(msg, 'destination');
|
|
250
|
+
expect(actual.destinationExternalId).toEqual(1245);
|
|
251
|
+
expect(actual.objectType).toEqual('user');
|
|
252
|
+
expect(actual.identifierType).toEqual('some');
|
|
253
|
+
});
|
|
254
|
+
test('should parse everything but return all as null', () => {
|
|
255
|
+
const msg = {
|
|
256
|
+
context: {
|
|
257
|
+
externalId: [
|
|
258
|
+
{
|
|
259
|
+
type: 'destination-',
|
|
260
|
+
},
|
|
261
|
+
],
|
|
262
|
+
},
|
|
263
|
+
};
|
|
264
|
+
const actual = sem_1.SemanticUtil.getDestinationExternalIDInfoForRetl(msg, 'destination');
|
|
265
|
+
expect(actual.destinationExternalId).toEqual(null);
|
|
266
|
+
expect(actual.objectType).toEqual('');
|
|
267
|
+
expect(actual.identifierType).toEqual(null);
|
|
268
|
+
});
|
|
269
|
+
});
|
|
270
|
+
describe('getDestinationExternalIDObjectForRetl', () => {
|
|
271
|
+
test('should parse everything successfully', () => {
|
|
272
|
+
const msg = {
|
|
273
|
+
context: {
|
|
274
|
+
externalId: [
|
|
275
|
+
{
|
|
276
|
+
type: 'destination-user',
|
|
277
|
+
id: 1245,
|
|
278
|
+
identifierType: 'some',
|
|
279
|
+
},
|
|
280
|
+
],
|
|
281
|
+
},
|
|
282
|
+
};
|
|
283
|
+
const actual = sem_1.SemanticUtil.getDestinationExternalIDObjectForRetl(msg, 'destination');
|
|
284
|
+
expect(actual?.id).toEqual(1245);
|
|
285
|
+
// TODO: Is this expected ? Confirm with team
|
|
286
|
+
expect(actual?.type).toEqual('destination-user');
|
|
287
|
+
expect(actual?.identifierType).toEqual('some');
|
|
288
|
+
});
|
|
289
|
+
test('should be undefined when externalId does not have type', () => {
|
|
290
|
+
const msg = {
|
|
291
|
+
context: {
|
|
292
|
+
externalId: [
|
|
293
|
+
{
|
|
294
|
+
id: 1245,
|
|
295
|
+
identifierType: 'some',
|
|
296
|
+
},
|
|
297
|
+
],
|
|
298
|
+
},
|
|
299
|
+
};
|
|
300
|
+
const actual = sem_1.SemanticUtil.getDestinationExternalIDObjectForRetl(msg, 'destination');
|
|
301
|
+
expect(actual).toEqual(undefined);
|
|
302
|
+
});
|
|
303
|
+
test('should be undefined when externalId is not present', () => {
|
|
304
|
+
const msg = {
|
|
305
|
+
context: {},
|
|
306
|
+
};
|
|
307
|
+
const actual = sem_1.SemanticUtil.getDestinationExternalIDObjectForRetl(msg, 'destination');
|
|
308
|
+
expect(actual).toEqual(undefined);
|
|
309
|
+
});
|
|
310
|
+
test('should be undefined when context is not present', () => {
|
|
311
|
+
const msg = {};
|
|
312
|
+
const actual = sem_1.SemanticUtil.getDestinationExternalIDObjectForRetl(msg, 'destination');
|
|
313
|
+
expect(actual).toEqual(undefined);
|
|
314
|
+
});
|
|
315
|
+
});
|
|
236
316
|
});
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VtLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc2VtLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUF3Qjs7QUFFeEIsK0JBQXFDO0FBRXJDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO0lBQzVCLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUU7UUFDbEMsK0ZBQStGO1FBQy9GLEVBQUUsQ0FBQyxvRUFBb0UsRUFBRSxHQUFHLEVBQUU7WUFDNUUsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsWUFBWSxFQUFFO29CQUNaLFFBQVEsRUFBRTt3QkFDUixHQUFHLEVBQUUsT0FBTztxQkFDYjtpQkFDRjthQUNGLENBQUM7WUFDRixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUM7WUFDNUIsTUFBTSxNQUFNLEdBQUcsa0JBQVksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDekUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUgsNkVBQTZFO1FBQzdFLEVBQUUsQ0FBQyxrREFBa0QsRUFBRSxHQUFHLEVBQUU7WUFDMUQsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsWUFBWSxFQUFFO29CQUNaLFFBQVEsRUFBRTt3QkFDUixHQUFHLEVBQUUsT0FBTztxQkFDYjtpQkFDRjthQUNGLENBQUM7WUFDRixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDcEIsTUFBTSxNQUFNLEdBQUcsa0JBQVksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDekUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBRUgsK0VBQStFO1FBQy9FLEVBQUUsQ0FBQyxv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QUErRjtRQUMvRixFQUFFLENBQUMsbUdBQW1HLEVBQUUsR0FBRyxFQUFFO1lBQzNHLE1BQU0sT0FBTyxHQUFHO2dCQUNkLE9BQU8sRUFBRTtvQkFDUCxVQUFVLEVBQUU7d0JBQ1Y7NEJBQ0UsRUFBRSxFQUFFLFVBQVU7eUJBQ2Y7cUJBQ0Y7aUJBQ0Y7YUFDRixDQUFDO1lBQ0YsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDO1lBQzFCLE1BQU0sTUFBTSxHQUFHLGtCQUFZLENBQUMsd0JBQXdCLENBQUMsT0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzNFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZWQgYnkgQ29kaXVtQUlcblxuaW1wb3J0IHsgU2VtYW50aWNVdGlsIH0gZnJvbSAnLi9zZW0nO1xuXG5kZXNjcmliZSgnU2VtYW50aWNVdGlsJywgKCkgPT4ge1xuICBkZXNjcmliZSgnZ2V0SW50ZWdyYXRpb25zT2JqJywgKCkgPT4ge1xuICAgIC8vIFRlc3RzIHRoYXQgJ2dldEludGVncmF0aW9uc09iaicgcmV0dXJucyB0aGUgaW50ZWdyYXRpb25zIG9iamVjdCBmb3IgYSB2YWxpZCBpbnRlZ3JhdGlvbiBuYW1lXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIGludGVncmF0aW9ucyBvYmplY3QgZm9yIGEgdmFsaWQgaW50ZWdyYXRpb24gbmFtZScsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGludGVncmF0aW9uczoge1xuICAgICAgICAgIGZiX3BpeGVsOiB7XG4gICAgICAgICAgICBrZXk6ICd2YWx1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCBpbnRnTmFtZSA9ICdmYl9waXhlbCc7XG4gICAgICBjb25zdCByZXN1bHQgPSBTZW1hbnRpY1V0aWwuZ2V0SW50ZWdyYXRpb25zT2JqKG1lc3NhZ2UgYXMgYW55LCBpbnRnTmFtZSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHsga2V5OiAndmFsdWUnIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gVGVzdHMgdGhhdCAnZ2V0SW50ZWdyYXRpb25zT2JqJyByZXR1cm5zIG51bGwgZm9yIGFuIGVtcHR5IGludGVncmF0aW9uIG5hbWVcbiAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIGZvciBhbiBlbXB0eSBpbnRlZ3JhdGlvbiBuYW1lJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgICAgaW50ZWdyYXRpb25zOiB7XG4gICAgICAgICAgZmJfcGl4ZWw6IHtcbiAgICAgICAgICAgIGtleTogJ3ZhbHVlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGludGdOYW1lID0gJyc7XG4gICAgICBjb25zdCByZXN1bHQgPSBTZW1hbnRpY1V0aWwuZ2V0SW50ZWdyYXRpb25zT2JqKG1lc3NhZ2UgYXMgYW55LCBpbnRnTmFtZSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlTnVsbCgpO1xuICAgIH0pO1xuXG4gICAgLy8gVGVzdHMgdGhhdCAnZ2V0SW50ZWdyYXRpb25zT2JqJyByZXR1cm5zIG51bGwgZm9yIGFuIGludmFsaWQgaW50ZWdyYXRpb24gbmFtZVxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgZm9yIGFuIGludmFsaWQgaW50ZWdyYXRpb24gbmFtZScsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGludGVncmF0aW9uczoge1xuICAgICAgICAgIGZiX3BpeGVsOiB7XG4gICAgICAgICAgICBrZXk6ICd2YWx1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCBpbnRnTmFtZSA9ICdpbnZhbGlkX2ludGVncmF0aW9uJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFNlbWFudGljVXRpbC5nZXRJbnRlZ3JhdGlvbnNPYmoobWVzc2FnZSBhcyBhbnksIGludGdOYW1lKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG5cbiAgICAvLyBUZXN0cyB0aGF0ICdnZXRJbnRlZ3JhdGlvbnNPYmonIHJldHVybnMgbnVsbCB3aGVuIHRoZSBpbnRlZ3JhdGlvbiBuYW1lIGhhcyBtdWx0aXBsZSBjYW5vbmljYWwgbmFtZXMgYnV0IG5vbmUgb2YgdGhlbSBleGlzdCBpbiB0aGUgbWVzc2FnZS5pbnRlZ3JhdGlvbnMgb2JqZWN0XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gbnVsbCB3aGVuIHRoZSBpbnRlZ3JhdGlvbiBuYW1lIGhhcyBtdWx0aXBsZSBjYW5vbmljYWwgbmFtZXMgYnV0IG5vbmUgb2YgdGhlbSBleGlzdCBpbiB0aGUgbWVzc2FnZS5pbnRlZ3JhdGlvbnMgb2JqZWN0JywgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgICAgaW50ZWdyYXRpb25zOiB7XG4gICAgICAgICAgZmJfcGl4ZWw6IHtcbiAgICAgICAgICAgIGtleTogJ3ZhbHVlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGludGdOYW1lID0gJ2ludmFsaWRfaW50ZWdyYXRpb24nO1xuICAgICAgY29uc3QgcmVzdWx0ID0gU2VtYW50aWNVdGlsLmdldEludGVncmF0aW9uc09iaihtZXNzYWdlIGFzIGFueSwgaW50Z05hbWUpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZU51bGwoKTtcbiAgICB9KTtcblxuICAgIC8vIFRlc3RzIHRoYXQgJ2dldEludGVncmF0aW9uc09iaicgcmV0dXJucyBudWxsIHdoZW4gdGhlIG1lc3NhZ2Ugb2JqZWN0IGhhcyBubyBpbnRlZ3JhdGlvbnMgb2JqZWN0XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gbnVsbCB3aGVuIHRoZSBtZXNzYWdlIG9iamVjdCBoYXMgbm8gaW50ZWdyYXRpb25zIG9iamVjdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7fTtcbiAgICAgIGNvbnN0IGludGdOYW1lID0gJ2ZiX3BpeGVsJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFNlbWFudGljVXRpbC5nZXRJbnRlZ3JhdGlvbnNPYmoobWVzc2FnZSBhcyBhbnksIGludGdOYW1lKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG5cbiAgICAvLyBUZXN0cyB0aGF0ICdnZXRJbnRlZ3JhdGlvbnNPYmonIHJldHVybnMgbnVsbCB3aGVuIG5vbmUgb2YgdGhlIGNhbm9uaWNhbCBuYW1lcyBmb3IgdGhlIGludGVncmF0aW9uIG5hbWUgZXhpc3QgaW4gdGhlIGludGVncmF0aW9ucyBvYmplY3RcbiAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIHdoZW4gbm9uZSBvZiB0aGUgY2Fub25pY2FsIG5hbWVzIGZvciB0aGUgaW50ZWdyYXRpb24gbmFtZSBleGlzdCBpbiB0aGUgaW50ZWdyYXRpb25zIG9iamVjdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGludGVncmF0aW9uczoge1xuICAgICAgICAgIHNvbWVfaW50ZWdyYXRpb246IHtcbiAgICAgICAgICAgIGtleTogJ3ZhbHVlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGludGdOYW1lID0gJ2ZiX3BpeGVsJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFNlbWFudGljVXRpbC5nZXRJbnRlZ3JhdGlvbnNPYmoobWVzc2FnZSBhcyBhbnksIGludGdOYW1lKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG5cbiAgICAvLyBUZXN0cyB0aGF0ICdnZXRJbnRlZ3JhdGlvbnNPYmonIHJldHVybnMgbnVsbCB3aGVuIHRoZSBjYW5vbmljYWwgbmFtZSBmb3IgdGhlIGludGVncmF0aW9uIG5hbWUgZXhpc3RzIGluIHRoZSBpbnRlZ3JhdGlvbnMgb2JqZWN0IGJ1dCBpdHMgdmFsdWUgaXMgbnVsbFxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgd2hlbiB0aGUgY2Fub25pY2FsIG5hbWUgZm9yIHRoZSBpbnRlZ3JhdGlvbiBuYW1lIGV4aXN0cyBpbiB0aGUgaW50ZWdyYXRpb25zIG9iamVjdCBidXQgaXRzIHZhbHVlIGlzIG51bGwnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBpbnRlZ3JhdGlvbnM6IHtcbiAgICAgICAgICBmYl9waXhlbDogbnVsbCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCBpbnRnTmFtZSA9ICdmYl9waXhlbCc7XG4gICAgICBjb25zdCByZXN1bHQgPSBTZW1hbnRpY1V0aWwuZ2V0SW50ZWdyYXRpb25zT2JqKG1lc3NhZ2UgYXMgYW55LCBpbnRnTmFtZSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlTnVsbCgpO1xuICAgIH0pO1xuXG4gICAgLy8gVGVzdHMgdGhhdCAnZ2V0SW50ZWdyYXRpb25zT2JqJyByZXR1cm5zIHRoZSBpbnRlZ3JhdGlvbnMgb2JqZWN0IGZvciBhIHZhbGlkIGludGVncmF0aW9uIG5hbWUgd2hlbiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgaW50ZWdyYXRpb25zIG9iamVjdCBmb3IgYSB2YWxpZCBpbnRlZ3JhdGlvbiBuYW1lIHdoZW4gdGhlIHZhbHVlIGlzIGEgbnVtYmVyJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgICAgaW50ZWdyYXRpb25zOiB7XG4gICAgICAgICAgZmJfcGl4ZWw6IDEyMyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCBpbnRnTmFtZSA9ICdmYl9waXhlbCc7XG4gICAgICBjb25zdCByZXN1bHQgPSBTZW1hbnRpY1V0aWwuZ2V0SW50ZWdyYXRpb25zT2JqKG1lc3NhZ2UgYXMgYW55LCBpbnRnTmFtZSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKDEyMyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXREZXN0aW5hdGlvbkV4dGVybmFsSUQnLCAoKSA9PiB7XG4gICAgLy8gUmV0dXJucyB0aGUgZGVzdGluYXRpb24tc3BlY2lmaWMgZXh0ZXJuYWwgSUQgd2hlbiBpdCBleGlzdHMgaW4gdGhlIG1lc3NhZ2UgY29udGV4dC5cbiAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgZGVzdGluYXRpb24tc3BlY2lmaWMgZXh0ZXJuYWwgSUQgd2hlbiBpdCBleGlzdHMgaW4gdGhlIG1lc3NhZ2UgY29udGV4dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBleHRlcm5hbElkOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdrdXN0b21lcklkJyxcbiAgICAgICAgICAgICAgaWQ6ICcxMjM0NTY3OCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgdHlwZSA9ICdrdXN0b21lcklkJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFNlbWFudGljVXRpbC5nZXREZXN0aW5hdGlvbkV4dGVybmFsSUQobWVzc2FnZSBhcyBhbnksIHR5cGUpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgnMTIzNDU2NzgnKTtcbiAgICB9KTtcblxuICAgIC8vIFJldHVybnMgbnVsbCB3aGVuIHRoZSBkZXN0aW5hdGlvbi1zcGVjaWZpYyBleHRlcm5hbCBJRCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWVzc2FnZSBjb250ZXh0LlxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgd2hlbiB0aGUgZGVzdGluYXRpb24tc3BlY2lmaWMgZXh0ZXJuYWwgSUQgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG1lc3NhZ2UgY29udGV4dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBleHRlcm5hbElkOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdrdXN0b21lcklkJyxcbiAgICAgICAgICAgICAgaWQ6ICcxMjM0NTY3OCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgdHlwZSA9ICdvdGhlcklkJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFNlbWFudGljVXRpbC5nZXREZXN0aW5hdGlvbkV4dGVybmFsSUQobWVzc2FnZSBhcyBhbnksIHR5cGUpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZU51bGwoKTtcbiAgICB9KTtcblxuICAgIC8vIFJldHVybnMgbnVsbCB3aGVuIHRoZSBtZXNzYWdlIGNvbnRleHQgaXMgdW5kZWZpbmVkLlxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgd2hlbiB0aGUgbWVzc2FnZSBjb250ZXh0IGlzIHVuZGVmaW5lZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7fTtcbiAgICAgIGNvbnN0IHR5cGUgPSAna3VzdG9tZXJJZCc7XG4gICAgICBjb25zdCByZXN1bHQgPSBTZW1hbnRpY1V0aWwuZ2V0RGVzdGluYXRpb25FeHRlcm5hbElEKG1lc3NhZ2UgYXMgYW55LCB0eXBlKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG5cbiAgICAvLyBSZXR1cm5zIG51bGwgd2hlbiB0aGUgZXh0ZXJuYWxJZCBhcnJheSBpcyBub3QgYW4gYXJyYXkuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gbnVsbCB3aGVuIHRoZSBleHRlcm5hbElkIGFycmF5IGlzIG5vdCBhbiBhcnJheScsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBleHRlcm5hbElkOiAnMTIzNDU2NzgnLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHR5cGUgPSAna3VzdG9tZXJJZCc7XG4gICAgICBjb25zdCByZXN1bHQgPSBTZW1hbnRpY1V0aWwuZ2V0RGVzdGluYXRpb25FeHRlcm5hbElEKG1lc3NhZ2UgYXMgYW55LCB0eXBlKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG5cbiAgICAvLyBSZXR1cm5zIG51bGwgd2hlbiB0aGUgZXh0ZXJuYWxJZCBhcnJheSBpcyBhbiBlbXB0eSBhcnJheS5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIHdoZW4gdGhlIGV4dGVybmFsSWQgYXJyYXkgaXMgYW4gZW1wdHkgYXJyYXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgZXh0ZXJuYWxJZDogW10sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgdHlwZSA9ICdrdXN0b21lcklkJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFNlbWFudGljVXRpbC5nZXREZXN0aW5hdGlvbkV4dGVybmFsSUQobWVzc2FnZSBhcyBhbnksIHR5cGUpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZU51bGwoKTtcbiAgICB9KTtcblxuICAgIC8vIFJldHVybnMgbnVsbCB3aGVuIHRoZSBleHRlcm5hbElkIGFycmF5IGRvZXMgbm90IGNvbnRhaW4gYW4gb2JqZWN0IHdpdGggdGhlIHNwZWNpZmllZCB0eXBlLlxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgd2hlbiB0aGUgZXh0ZXJuYWxJZCBhcnJheSBkb2VzIG5vdCBjb250YWluIGFuIG9iamVjdCB3aXRoIHRoZSBzcGVjaWZpZWQgdHlwZScsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBleHRlcm5hbElkOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdrdXN0b21lcklkJyxcbiAgICAgICAgICAgICAgaWQ6ICcxMjM0NTY3OCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgdHlwZSA9ICdub25FeGlzdGVudFR5cGUnO1xuICAgICAgY29uc3QgcmVzdWx0ID0gU2VtYW50aWNVdGlsLmdldERlc3RpbmF0aW9uRXh0ZXJuYWxJRChtZXNzYWdlIGFzIGFueSwgdHlwZSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlTnVsbCgpO1xuICAgIH0pO1xuXG4gICAgLy8gUmV0dXJucyB0aGUgZmlyc3QgZGVzdGluYXRpb24tc3BlY2lmaWMgZXh0ZXJuYWwgSUQgb2JqZWN0IHdpdGggdGhlIHNwZWNpZmllZCB0eXBlIHdoZW4gbXVsdGlwbGUgb2JqZWN0cyB3aXRoIHRoZSBzYW1lIHR5cGUgZXhpc3QgaW4gdGhlIGV4dGVybmFsSWQgYXJyYXkuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIGRlc3RpbmF0aW9uLXNwZWNpZmljIGV4dGVybmFsIElEIHdoZW4gbXVsdGlwbGUgb2JqZWN0cyB3aXRoIHRoZSBzYW1lIHR5cGUgZXhpc3QgaW4gdGhlIGV4dGVybmFsSWQgYXJyYXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgZXh0ZXJuYWxJZDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAna3VzdG9tZXJJZCcsXG4gICAgICAgICAgICAgIGlkOiAnMTIzNDU2NzgnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ2t1c3RvbWVySWQnLFxuICAgICAgICAgICAgICBpZDogJzg3NjU0MzIxJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCB0eXBlID0gJ2t1c3RvbWVySWQnO1xuICAgICAgY29uc3QgcmVzdWx0ID0gU2VtYW50aWNVdGlsLmdldERlc3RpbmF0aW9uRXh0ZXJuYWxJRChtZXNzYWdlIGFzIGFueSwgdHlwZSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCcxMjM0NTY3OCcpO1xuICAgIH0pO1xuXG4gICAgLy8gUmV0dXJucyBudWxsIHdoZW4gdGhlIGRlc3RpbmF0aW9uLXNwZWNpZmljIGV4dGVybmFsIElEIG9iamVjdCBkb2VzIG5vdCBoYXZlIGFuIGlkIHByb3BlcnR5LlxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgd2hlbiB0aGUgZGVzdGluYXRpb24tc3BlY2lmaWMgZXh0ZXJuYWwgSUQgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gaWQgcHJvcGVydHknLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgZXh0ZXJuYWxJZDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAna3VzdG9tZXJJZCcsXG4gICAgICAgICAgICAgIGlkOiAnMTIzNDU2NzgnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ290aGVySWQnLFxuICAgICAgICAgICAgICAvLyBpZCBwcm9wZXJ0eSBpcyBtaXNzaW5nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgdHlwZSA9ICdvdGhlcklkJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFNlbWFudGljVXRpbC5nZXREZXN0aW5hdGlvbkV4dGVybmFsSUQobWVzc2FnZSBhcyBhbnksIHR5cGUpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgLy8gUmV0dXJucyBudWxsIHdoZW4gdGhlIGRlc3RpbmF0aW9uLXNwZWNpZmljIGV4dGVybmFsIElEIG9iamVjdCBkb2VzIG5vdCBoYXZlIGEgdHlwZSBwcm9wZXJ0eS5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIHdoZW4gdGhlIGRlc3RpbmF0aW9uLXNwZWNpZmljIGV4dGVybmFsIElEIG9iamVjdCBkb2VzIG5vdCBoYXZlIGEgdHlwZSBwcm9wZXJ0eScsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBleHRlcm5hbElkOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAnMTIzNDU2NzgnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHR5cGUgPSAna3VzdG9tZXJJZCc7XG4gICAgICBjb25zdCByZXN1bHQgPSBTZW1hbnRpY1V0aWwuZ2V0RGVzdGluYXRpb25FeHRlcm5hbElEKG1lc3NhZ2UgYXMgYW55LCB0eXBlKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VtLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc2VtLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUF3Qjs7QUFFeEIsK0JBQXFDO0FBRXJDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO0lBQzVCLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUU7UUFDbEMsK0ZBQStGO1FBQy9GLEVBQUUsQ0FBQyxvRUFBb0UsRUFBRSxHQUFHLEVBQUU7WUFDNUUsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsWUFBWSxFQUFFO29CQUNaLFFBQVEsRUFBRTt3QkFDUixHQUFHLEVBQUUsT0FBTztxQkFDYjtpQkFDRjthQUNGLENBQUM7WUFDRixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUM7WUFDNUIsTUFBTSxNQUFNLEdBQUcsa0JBQVksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDekUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUgsNkVBQTZFO1FBQzdFLEVBQUUsQ0FBQyxrREFBa0QsRUFBRSxHQUFHLEVBQUU7WUFDMUQsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsWUFBWSxFQUFFO29CQUNaLFFBQVEsRUFBRTt3QkFDUixHQUFHLEVBQUUsT0FBTztxQkFDYjtpQkFDRjthQUNGLENBQUM7WUFDRixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDcEIsTUFBTSxNQUFNLEdBQUcsa0JBQVksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDekUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBRUgsK0VBQStFO1FBQy9FLEVBQUUsQ0FBQyxv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YW50aWNVdGlsIH0gZnJvbSAnLi9zZW0nO1xuXG5kZXNjcmliZSgnU2VtYW50aWNVdGlsJywgKCkgPT4ge1xuICBkZXNjcmliZSgnZ2V0SW50ZWdyYXRpb25zT2JqJywgKCkgPT4ge1xuICAgIC8vIFRlc3RzIHRoYXQgJ2dldEludGVncmF0aW9uc09iaicgcmV0dXJucyB0aGUgaW50ZWdyYXRpb25zIG9iamVjdCBmb3IgYSB2YWxpZCBpbnRlZ3JhdGlvbiBuYW1lXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIGludGVncmF0aW9ucyBvYmplY3QgZm9yIGEgdmFsaWQgaW50ZWdyYXRpb24gbmFtZScsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGludGVncmF0aW9uczoge1xuICAgICAgICAgIGZiX3BpeGVsOiB7XG4gICAgICAgICAgICBrZXk6ICd2YWx1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCBpbnRnTmFtZSA9ICdmYl9waXhlbCc7XG4gICAgICBjb25zdCByZXN1bHQgPSBTZW1hbnRpY1V0aWwuZ2V0SW50ZWdyYXRpb25zT2JqKG1lc3NhZ2UgYXMgYW55LCBpbnRnTmFtZSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHsga2V5OiAndmFsdWUnIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gVGVzdHMgdGhhdCAnZ2V0SW50ZWdyYXRpb25zT2JqJyByZXR1cm5zIG51bGwgZm9yIGFuIGVtcHR5IGludGVncmF0aW9uIG5hbWVcbiAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIGZvciBhbiBlbXB0eSBpbnRlZ3JhdGlvbiBuYW1lJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgICAgaW50ZWdyYXRpb25zOiB7XG4gICAgICAgICAgZmJfcGl4ZWw6IHtcbiAgICAgICAgICAgIGtleTogJ3ZhbHVlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGludGdOYW1lID0gJyc7XG4gICAgICBjb25zdCByZXN1bHQgPSBTZW1hbnRpY1V0aWwuZ2V0SW50ZWdyYXRpb25zT2JqKG1lc3NhZ2UgYXMgYW55LCBpbnRnTmFtZSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlTnVsbCgpO1xuICAgIH0pO1xuXG4gICAgLy8gVGVzdHMgdGhhdCAnZ2V0SW50ZWdyYXRpb25zT2JqJyByZXR1cm5zIG51bGwgZm9yIGFuIGludmFsaWQgaW50ZWdyYXRpb24gbmFtZVxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgZm9yIGFuIGludmFsaWQgaW50ZWdyYXRpb24gbmFtZScsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGludGVncmF0aW9uczoge1xuICAgICAgICAgIGZiX3BpeGVsOiB7XG4gICAgICAgICAgICBrZXk6ICd2YWx1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCBpbnRnTmFtZSA9ICdpbnZhbGlkX2ludGVncmF0aW9uJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFNlbWFudGljVXRpbC5nZXRJbnRlZ3JhdGlvbnNPYmoobWVzc2FnZSBhcyBhbnksIGludGdOYW1lKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG5cbiAgICAvLyBUZXN0cyB0aGF0ICdnZXRJbnRlZ3JhdGlvbnNPYmonIHJldHVybnMgbnVsbCB3aGVuIHRoZSBpbnRlZ3JhdGlvbiBuYW1lIGhhcyBtdWx0aXBsZSBjYW5vbmljYWwgbmFtZXMgYnV0IG5vbmUgb2YgdGhlbSBleGlzdCBpbiB0aGUgbWVzc2FnZS5pbnRlZ3JhdGlvbnMgb2JqZWN0XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gbnVsbCB3aGVuIHRoZSBpbnRlZ3JhdGlvbiBuYW1lIGhhcyBtdWx0aXBsZSBjYW5vbmljYWwgbmFtZXMgYnV0IG5vbmUgb2YgdGhlbSBleGlzdCBpbiB0aGUgbWVzc2FnZS5pbnRlZ3JhdGlvbnMgb2JqZWN0JywgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgICAgaW50ZWdyYXRpb25zOiB7XG4gICAgICAgICAgZmJfcGl4ZWw6IHtcbiAgICAgICAgICAgIGtleTogJ3ZhbHVlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGludGdOYW1lID0gJ2ludmFsaWRfaW50ZWdyYXRpb24nO1xuICAgICAgY29uc3QgcmVzdWx0ID0gU2VtYW50aWNVdGlsLmdldEludGVncmF0aW9uc09iaihtZXNzYWdlIGFzIGFueSwgaW50Z05hbWUpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZU51bGwoKTtcbiAgICB9KTtcblxuICAgIC8vIFRlc3RzIHRoYXQgJ2dldEludGVncmF0aW9uc09iaicgcmV0dXJucyBudWxsIHdoZW4gdGhlIG1lc3NhZ2Ugb2JqZWN0IGhhcyBubyBpbnRlZ3JhdGlvbnMgb2JqZWN0XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gbnVsbCB3aGVuIHRoZSBtZXNzYWdlIG9iamVjdCBoYXMgbm8gaW50ZWdyYXRpb25zIG9iamVjdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7fTtcbiAgICAgIGNvbnN0IGludGdOYW1lID0gJ2ZiX3BpeGVsJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFNlbWFudGljVXRpbC5nZXRJbnRlZ3JhdGlvbnNPYmoobWVzc2FnZSBhcyBhbnksIGludGdOYW1lKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG5cbiAgICAvLyBUZXN0cyB0aGF0ICdnZXRJbnRlZ3JhdGlvbnNPYmonIHJldHVybnMgbnVsbCB3aGVuIG5vbmUgb2YgdGhlIGNhbm9uaWNhbCBuYW1lcyBmb3IgdGhlIGludGVncmF0aW9uIG5hbWUgZXhpc3QgaW4gdGhlIGludGVncmF0aW9ucyBvYmplY3RcbiAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIHdoZW4gbm9uZSBvZiB0aGUgY2Fub25pY2FsIG5hbWVzIGZvciB0aGUgaW50ZWdyYXRpb24gbmFtZSBleGlzdCBpbiB0aGUgaW50ZWdyYXRpb25zIG9iamVjdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGludGVncmF0aW9uczoge1xuICAgICAgICAgIHNvbWVfaW50ZWdyYXRpb246IHtcbiAgICAgICAgICAgIGtleTogJ3ZhbHVlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGludGdOYW1lID0gJ2ZiX3BpeGVsJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFNlbWFudGljVXRpbC5nZXRJbnRlZ3JhdGlvbnNPYmoobWVzc2FnZSBhcyBhbnksIGludGdOYW1lKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG5cbiAgICAvLyBUZXN0cyB0aGF0ICdnZXRJbnRlZ3JhdGlvbnNPYmonIHJldHVybnMgbnVsbCB3aGVuIHRoZSBjYW5vbmljYWwgbmFtZSBmb3IgdGhlIGludGVncmF0aW9uIG5hbWUgZXhpc3RzIGluIHRoZSBpbnRlZ3JhdGlvbnMgb2JqZWN0IGJ1dCBpdHMgdmFsdWUgaXMgbnVsbFxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgd2hlbiB0aGUgY2Fub25pY2FsIG5hbWUgZm9yIHRoZSBpbnRlZ3JhdGlvbiBuYW1lIGV4aXN0cyBpbiB0aGUgaW50ZWdyYXRpb25zIG9iamVjdCBidXQgaXRzIHZhbHVlIGlzIG51bGwnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBpbnRlZ3JhdGlvbnM6IHtcbiAgICAgICAgICBmYl9waXhlbDogbnVsbCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCBpbnRnTmFtZSA9ICdmYl9waXhlbCc7XG4gICAgICBjb25zdCByZXN1bHQgPSBTZW1hbnRpY1V0aWwuZ2V0SW50ZWdyYXRpb25zT2JqKG1lc3NhZ2UgYXMgYW55LCBpbnRnTmFtZSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlTnVsbCgpO1xuICAgIH0pO1xuXG4gICAgLy8gVGVzdHMgdGhhdCAnZ2V0SW50ZWdyYXRpb25zT2JqJyByZXR1cm5zIHRoZSBpbnRlZ3JhdGlvbnMgb2JqZWN0IGZvciBhIHZhbGlkIGludGVncmF0aW9uIG5hbWUgd2hlbiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgaW50ZWdyYXRpb25zIG9iamVjdCBmb3IgYSB2YWxpZCBpbnRlZ3JhdGlvbiBuYW1lIHdoZW4gdGhlIHZhbHVlIGlzIGEgbnVtYmVyJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgICAgaW50ZWdyYXRpb25zOiB7XG4gICAgICAgICAgZmJfcGl4ZWw6IDEyMyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCBpbnRnTmFtZSA9ICdmYl9waXhlbCc7XG4gICAgICBjb25zdCByZXN1bHQgPSBTZW1hbnRpY1V0aWwuZ2V0SW50ZWdyYXRpb25zT2JqKG1lc3NhZ2UgYXMgYW55LCBpbnRnTmFtZSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKDEyMyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXREZXN0aW5hdGlvbkV4dGVybmFsSUQnLCAoKSA9PiB7XG4gICAgLy8gUmV0dXJucyB0aGUgZGVzdGluYXRpb24tc3BlY2lmaWMgZXh0ZXJuYWwgSUQgd2hlbiBpdCBleGlzdHMgaW4gdGhlIG1lc3NhZ2UgY29udGV4dC5cbiAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgZGVzdGluYXRpb24tc3BlY2lmaWMgZXh0ZXJuYWwgSUQgd2hlbiBpdCBleGlzdHMgaW4gdGhlIG1lc3NhZ2UgY29udGV4dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBleHRlcm5hbElkOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdrdXN0b21lcklkJyxcbiAgICAgICAgICAgICAgaWQ6ICcxMjM0NTY3OCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgdHlwZSA9ICdrdXN0b21lcklkJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFNlbWFudGljVXRpbC5nZXREZXN0aW5hdGlvbkV4dGVybmFsSUQobWVzc2FnZSBhcyBhbnksIHR5cGUpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZSgnMTIzNDU2NzgnKTtcbiAgICB9KTtcblxuICAgIC8vIFJldHVybnMgbnVsbCB3aGVuIHRoZSBkZXN0aW5hdGlvbi1zcGVjaWZpYyBleHRlcm5hbCBJRCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWVzc2FnZSBjb250ZXh0LlxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgd2hlbiB0aGUgZGVzdGluYXRpb24tc3BlY2lmaWMgZXh0ZXJuYWwgSUQgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG1lc3NhZ2UgY29udGV4dCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBleHRlcm5hbElkOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdrdXN0b21lcklkJyxcbiAgICAgICAgICAgICAgaWQ6ICcxMjM0NTY3OCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgdHlwZSA9ICdvdGhlcklkJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFNlbWFudGljVXRpbC5nZXREZXN0aW5hdGlvbkV4dGVybmFsSUQobWVzc2FnZSBhcyBhbnksIHR5cGUpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZU51bGwoKTtcbiAgICB9KTtcblxuICAgIC8vIFJldHVybnMgbnVsbCB3aGVuIHRoZSBtZXNzYWdlIGNvbnRleHQgaXMgdW5kZWZpbmVkLlxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgd2hlbiB0aGUgbWVzc2FnZSBjb250ZXh0IGlzIHVuZGVmaW5lZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7fTtcbiAgICAgIGNvbnN0IHR5cGUgPSAna3VzdG9tZXJJZCc7XG4gICAgICBjb25zdCByZXN1bHQgPSBTZW1hbnRpY1V0aWwuZ2V0RGVzdGluYXRpb25FeHRlcm5hbElEKG1lc3NhZ2UgYXMgYW55LCB0eXBlKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG5cbiAgICAvLyBSZXR1cm5zIG51bGwgd2hlbiB0aGUgZXh0ZXJuYWxJZCBhcnJheSBpcyBub3QgYW4gYXJyYXkuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gbnVsbCB3aGVuIHRoZSBleHRlcm5hbElkIGFycmF5IGlzIG5vdCBhbiBhcnJheScsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBleHRlcm5hbElkOiAnMTIzNDU2NzgnLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHR5cGUgPSAna3VzdG9tZXJJZCc7XG4gICAgICBjb25zdCByZXN1bHQgPSBTZW1hbnRpY1V0aWwuZ2V0RGVzdGluYXRpb25FeHRlcm5hbElEKG1lc3NhZ2UgYXMgYW55LCB0eXBlKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG5cbiAgICAvLyBSZXR1cm5zIG51bGwgd2hlbiB0aGUgZXh0ZXJuYWxJZCBhcnJheSBpcyBhbiBlbXB0eSBhcnJheS5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIHdoZW4gdGhlIGV4dGVybmFsSWQgYXJyYXkgaXMgYW4gZW1wdHkgYXJyYXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgZXh0ZXJuYWxJZDogW10sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgdHlwZSA9ICdrdXN0b21lcklkJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFNlbWFudGljVXRpbC5nZXREZXN0aW5hdGlvbkV4dGVybmFsSUQobWVzc2FnZSBhcyBhbnksIHR5cGUpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZU51bGwoKTtcbiAgICB9KTtcblxuICAgIC8vIFJldHVybnMgbnVsbCB3aGVuIHRoZSBleHRlcm5hbElkIGFycmF5IGRvZXMgbm90IGNvbnRhaW4gYW4gb2JqZWN0IHdpdGggdGhlIHNwZWNpZmllZCB0eXBlLlxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgd2hlbiB0aGUgZXh0ZXJuYWxJZCBhcnJheSBkb2VzIG5vdCBjb250YWluIGFuIG9iamVjdCB3aXRoIHRoZSBzcGVjaWZpZWQgdHlwZScsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBleHRlcm5hbElkOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdrdXN0b21lcklkJyxcbiAgICAgICAgICAgICAgaWQ6ICcxMjM0NTY3OCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgdHlwZSA9ICdub25FeGlzdGVudFR5cGUnO1xuICAgICAgY29uc3QgcmVzdWx0ID0gU2VtYW50aWNVdGlsLmdldERlc3RpbmF0aW9uRXh0ZXJuYWxJRChtZXNzYWdlIGFzIGFueSwgdHlwZSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlTnVsbCgpO1xuICAgIH0pO1xuXG4gICAgLy8gUmV0dXJucyB0aGUgZmlyc3QgZGVzdGluYXRpb24tc3BlY2lmaWMgZXh0ZXJuYWwgSUQgb2JqZWN0IHdpdGggdGhlIHNwZWNpZmllZCB0eXBlIHdoZW4gbXVsdGlwbGUgb2JqZWN0cyB3aXRoIHRoZSBzYW1lIHR5cGUgZXhpc3QgaW4gdGhlIGV4dGVybmFsSWQgYXJyYXkuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIGRlc3RpbmF0aW9uLXNwZWNpZmljIGV4dGVybmFsIElEIHdoZW4gbXVsdGlwbGUgb2JqZWN0cyB3aXRoIHRoZSBzYW1lIHR5cGUgZXhpc3QgaW4gdGhlIGV4dGVybmFsSWQgYXJyYXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgZXh0ZXJuYWxJZDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAna3VzdG9tZXJJZCcsXG4gICAgICAgICAgICAgIGlkOiAnMTIzNDU2NzgnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ2t1c3RvbWVySWQnLFxuICAgICAgICAgICAgICBpZDogJzg3NjU0MzIxJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCB0eXBlID0gJ2t1c3RvbWVySWQnO1xuICAgICAgY29uc3QgcmVzdWx0ID0gU2VtYW50aWNVdGlsLmdldERlc3RpbmF0aW9uRXh0ZXJuYWxJRChtZXNzYWdlIGFzIGFueSwgdHlwZSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKCcxMjM0NTY3OCcpO1xuICAgIH0pO1xuXG4gICAgLy8gUmV0dXJucyBudWxsIHdoZW4gdGhlIGRlc3RpbmF0aW9uLXNwZWNpZmljIGV4dGVybmFsIElEIG9iamVjdCBkb2VzIG5vdCBoYXZlIGFuIGlkIHByb3BlcnR5LlxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgd2hlbiB0aGUgZGVzdGluYXRpb24tc3BlY2lmaWMgZXh0ZXJuYWwgSUQgb2JqZWN0IGRvZXMgbm90IGhhdmUgYW4gaWQgcHJvcGVydHknLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgZXh0ZXJuYWxJZDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAna3VzdG9tZXJJZCcsXG4gICAgICAgICAgICAgIGlkOiAnMTIzNDU2NzgnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ290aGVySWQnLFxuICAgICAgICAgICAgICAvLyBpZCBwcm9wZXJ0eSBpcyBtaXNzaW5nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgdHlwZSA9ICdvdGhlcklkJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFNlbWFudGljVXRpbC5nZXREZXN0aW5hdGlvbkV4dGVybmFsSUQobWVzc2FnZSBhcyBhbnksIHR5cGUpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgLy8gUmV0dXJucyBudWxsIHdoZW4gdGhlIGRlc3RpbmF0aW9uLXNwZWNpZmljIGV4dGVybmFsIElEIG9iamVjdCBkb2VzIG5vdCBoYXZlIGEgdHlwZSBwcm9wZXJ0eS5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIHdoZW4gdGhlIGRlc3RpbmF0aW9uLXNwZWNpZmljIGV4dGVybmFsIElEIG9iamVjdCBkb2VzIG5vdCBoYXZlIGEgdHlwZSBwcm9wZXJ0eScsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBleHRlcm5hbElkOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAnMTIzNDU2NzgnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHR5cGUgPSAna3VzdG9tZXJJZCc7XG4gICAgICBjb25zdCByZXN1bHQgPSBTZW1hbnRpY1V0aWwuZ2V0RGVzdGluYXRpb25FeHRlcm5hbElEKG1lc3NhZ2UgYXMgYW55LCB0eXBlKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXREZXN0aW5hdGlvbkV4dGVybmFsSURJbmZvRm9yUmV0bCcsICgpID0+IHtcbiAgICB0ZXN0KCdzaG91bGQgcGFyc2UgZXZlcnl0aGluZyBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gICAgICBjb25zdCBtc2cgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBleHRlcm5hbElkOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdkZXN0aW5hdGlvbi11c2VyJyxcbiAgICAgICAgICAgICAgaWQ6IDEyNDUsXG4gICAgICAgICAgICAgIGlkZW50aWZpZXJUeXBlOiAnc29tZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgYWN0dWFsID0gU2VtYW50aWNVdGlsLmdldERlc3RpbmF0aW9uRXh0ZXJuYWxJREluZm9Gb3JSZXRsKG1zZyBhcyBhbnksICdkZXN0aW5hdGlvbicpO1xuICAgICAgZXhwZWN0KGFjdHVhbC5kZXN0aW5hdGlvbkV4dGVybmFsSWQpLnRvRXF1YWwoMTI0NSk7XG4gICAgICBleHBlY3QoYWN0dWFsLm9iamVjdFR5cGUpLnRvRXF1YWwoJ3VzZXInKTtcbiAgICAgIGV4cGVjdChhY3R1YWwuaWRlbnRpZmllclR5cGUpLnRvRXF1YWwoJ3NvbWUnKTtcbiAgICB9KTtcbiAgICB0ZXN0KCdzaG91bGQgcGFyc2UgZXZlcnl0aGluZyBidXQgcmV0dXJuIGFsbCBhcyBudWxsJywgKCkgPT4ge1xuICAgICAgY29uc3QgbXNnID0ge1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgZXh0ZXJuYWxJZDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnZGVzdGluYXRpb24tJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCBhY3R1YWwgPSBTZW1hbnRpY1V0aWwuZ2V0RGVzdGluYXRpb25FeHRlcm5hbElESW5mb0ZvclJldGwobXNnIGFzIGFueSwgJ2Rlc3RpbmF0aW9uJyk7XG4gICAgICBleHBlY3QoYWN0dWFsLmRlc3RpbmF0aW9uRXh0ZXJuYWxJZCkudG9FcXVhbChudWxsKTtcbiAgICAgIGV4cGVjdChhY3R1YWwub2JqZWN0VHlwZSkudG9FcXVhbCgnJyk7XG4gICAgICBleHBlY3QoYWN0dWFsLmlkZW50aWZpZXJUeXBlKS50b0VxdWFsKG51bGwpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0RGVzdGluYXRpb25FeHRlcm5hbElET2JqZWN0Rm9yUmV0bCcsICgpID0+IHtcbiAgICB0ZXN0KCdzaG91bGQgcGFyc2UgZXZlcnl0aGluZyBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gICAgICBjb25zdCBtc2cgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBleHRlcm5hbElkOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdkZXN0aW5hdGlvbi11c2VyJyxcbiAgICAgICAgICAgICAgaWQ6IDEyNDUsXG4gICAgICAgICAgICAgIGlkZW50aWZpZXJUeXBlOiAnc29tZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgY29uc3QgYWN0dWFsID0gU2VtYW50aWNVdGlsLmdldERlc3RpbmF0aW9uRXh0ZXJuYWxJRE9iamVjdEZvclJldGwobXNnIGFzIGFueSwgJ2Rlc3RpbmF0aW9uJyk7XG4gICAgICBleHBlY3QoYWN0dWFsPy5pZCkudG9FcXVhbCgxMjQ1KTtcbiAgICAgIC8vIFRPRE86IElzIHRoaXMgZXhwZWN0ZWQgPyBDb25maXJtIHdpdGggdGVhbVxuICAgICAgZXhwZWN0KGFjdHVhbD8udHlwZSkudG9FcXVhbCgnZGVzdGluYXRpb24tdXNlcicpO1xuICAgICAgZXhwZWN0KGFjdHVhbD8uaWRlbnRpZmllclR5cGUpLnRvRXF1YWwoJ3NvbWUnKTtcbiAgICB9KTtcbiAgICB0ZXN0KCdzaG91bGQgYmUgdW5kZWZpbmVkIHdoZW4gZXh0ZXJuYWxJZCBkb2VzIG5vdCBoYXZlIHR5cGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtc2cgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBleHRlcm5hbElkOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAxMjQ1LFxuICAgICAgICAgICAgICBpZGVudGlmaWVyVHlwZTogJ3NvbWUnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGFjdHVhbCA9IFNlbWFudGljVXRpbC5nZXREZXN0aW5hdGlvbkV4dGVybmFsSURPYmplY3RGb3JSZXRsKG1zZyBhcyBhbnksICdkZXN0aW5hdGlvbicpO1xuICAgICAgZXhwZWN0KGFjdHVhbCkudG9FcXVhbCh1bmRlZmluZWQpO1xuICAgIH0pO1xuICAgIHRlc3QoJ3Nob3VsZCBiZSB1bmRlZmluZWQgd2hlbiBleHRlcm5hbElkIGlzIG5vdCBwcmVzZW50JywgKCkgPT4ge1xuICAgICAgY29uc3QgbXNnID0ge1xuICAgICAgICBjb250ZXh0OiB7fSxcbiAgICAgIH07XG4gICAgICBjb25zdCBhY3R1YWwgPSBTZW1hbnRpY1V0aWwuZ2V0RGVzdGluYXRpb25FeHRlcm5hbElET2JqZWN0Rm9yUmV0bChtc2cgYXMgYW55LCAnZGVzdGluYXRpb24nKTtcbiAgICAgIGV4cGVjdChhY3R1YWwpLnRvRXF1YWwodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgICB0ZXN0KCdzaG91bGQgYmUgdW5kZWZpbmVkIHdoZW4gY29udGV4dCBpcyBub3QgcHJlc2VudCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1zZyA9IHt9O1xuICAgICAgY29uc3QgYWN0dWFsID0gU2VtYW50aWNVdGlsLmdldERlc3RpbmF0aW9uRXh0ZXJuYWxJRE9iamVjdEZvclJldGwobXNnIGFzIGFueSwgJ2Rlc3RpbmF0aW9uJyk7XG4gICAgICBleHBlY3QoYWN0dWFsKS50b0VxdWFsKHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|