@appium/base-driver 8.5.3 → 8.5.4
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/lib/basedriver/capabilities.d.ts.map +1 -1
- package/build/lib/basedriver/capabilities.js +1 -1
- package/build/lib/basedriver/commands/event.js +1 -1
- package/build/lib/basedriver/commands/find.d.ts.map +1 -1
- package/build/lib/basedriver/commands/find.js +1 -1
- package/build/lib/basedriver/commands/index.js +1 -1
- package/build/lib/basedriver/commands/log.d.ts.map +1 -1
- package/build/lib/basedriver/commands/log.js +1 -1
- package/build/lib/basedriver/commands/session.js +1 -1
- package/build/lib/basedriver/commands/settings.d.ts.map +1 -1
- package/build/lib/basedriver/commands/settings.js +1 -1
- package/build/lib/basedriver/commands/timeout.d.ts.map +1 -1
- package/build/lib/basedriver/commands/timeout.js +1 -1
- package/build/lib/basedriver/core.d.ts +120 -139
- package/build/lib/basedriver/core.d.ts.map +1 -1
- package/build/lib/basedriver/core.js +1 -49
- package/build/lib/basedriver/desired-caps.d.ts +5 -2
- package/build/lib/basedriver/desired-caps.d.ts.map +1 -1
- package/build/lib/basedriver/desired-caps.js +14 -18
- package/build/lib/basedriver/device-settings.d.ts +9 -9
- package/build/lib/basedriver/device-settings.d.ts.map +1 -1
- package/build/lib/basedriver/device-settings.js +4 -4
- package/build/lib/basedriver/driver.d.ts +43 -38
- package/build/lib/basedriver/driver.d.ts.map +1 -1
- package/build/lib/basedriver/driver.js +58 -11
- package/build/lib/basedriver/helpers.d.ts +8 -3
- package/build/lib/basedriver/helpers.d.ts.map +1 -1
- package/build/lib/basedriver/helpers.js +4 -6
- package/build/lib/basedriver/logger.d.ts +1 -1
- package/build/lib/basedriver/logger.d.ts.map +1 -1
- package/build/lib/basedriver/logger.js +1 -1
- package/build/lib/constants.js +1 -1
- package/build/lib/express/crash.d.ts.map +1 -1
- package/build/lib/express/crash.js +1 -1
- package/build/lib/express/express-logging.d.ts.map +1 -1
- package/build/lib/express/express-logging.js +1 -1
- package/build/lib/express/idempotency.js +1 -1
- package/build/lib/express/logger.d.ts +1 -1
- package/build/lib/express/logger.d.ts.map +1 -1
- package/build/lib/express/logger.js +1 -1
- package/build/lib/express/middleware.d.ts.map +1 -1
- package/build/lib/express/middleware.js +1 -1
- package/build/lib/express/server.d.ts +21 -0
- package/build/lib/express/server.d.ts.map +1 -1
- package/build/lib/express/server.js +4 -9
- package/build/lib/express/static.d.ts.map +1 -1
- package/build/lib/express/static.js +2 -2
- package/build/lib/express/websocket.d.ts +14 -11
- package/build/lib/express/websocket.d.ts.map +1 -1
- package/build/lib/express/websocket.js +2 -2
- package/build/lib/helpers/capabilities.d.ts.map +1 -1
- package/build/lib/helpers/capabilities.js +1 -1
- package/build/lib/index.d.ts +2 -1
- package/build/lib/index.js +7 -1
- package/build/lib/jsonwp-proxy/protocol-converter.d.ts.map +1 -1
- package/build/lib/jsonwp-proxy/protocol-converter.js +2 -2
- package/build/lib/jsonwp-proxy/proxy.d.ts +30 -5
- package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -1
- package/build/lib/jsonwp-proxy/proxy.js +20 -4
- package/build/lib/jsonwp-status/status.d.ts.map +1 -1
- package/build/lib/jsonwp-status/status.js +2 -2
- package/build/lib/protocol/errors.d.ts +17 -8
- package/build/lib/protocol/errors.d.ts.map +1 -1
- package/build/lib/protocol/errors.js +9 -5
- package/build/lib/protocol/helpers.js +1 -1
- package/build/lib/protocol/index.js +1 -1
- package/build/lib/protocol/protocol.d.ts.map +1 -1
- package/build/lib/protocol/protocol.js +1 -1
- package/build/lib/protocol/routes.d.ts +17 -3
- package/build/lib/protocol/routes.d.ts.map +1 -1
- package/build/lib/protocol/routes.js +1 -1
- package/build/lib/protocol/validators.js +1 -1
- package/build/test/basedriver/driver-e2e-tests.js +1 -1
- package/build/test/basedriver/driver-tests.js +1 -1
- package/build/test/basedriver/index.js +1 -1
- package/build/test/e2e/basedriver/driver.e2e.spec.js +1 -1
- package/build/test/e2e/basedriver/helpers.e2e.spec.js +1 -1
- package/build/test/e2e/basedriver/websockets.e2e.spec.js +1 -1
- package/build/test/e2e/express/server.e2e.spec.js +1 -1
- package/build/test/e2e/jsonwp-proxy/proxy.e2e.spec.js +1 -1
- package/build/test/e2e/protocol/fake-driver.js +1 -1
- package/build/test/e2e/protocol/helpers.js +1 -1
- package/build/test/e2e/protocol/protocol.e2e.spec.js +13 -13
- package/build/test/helpers.js +1 -1
- package/build/test/unit/basedriver/capabilities.spec.js +12 -12
- package/build/test/unit/basedriver/capability.spec.js +15 -15
- package/build/test/unit/basedriver/commands/event.spec.js +1 -1
- package/build/test/unit/basedriver/commands/log.spec.js +1 -1
- package/build/test/unit/basedriver/device-settings.spec.js +1 -1
- package/build/test/unit/basedriver/driver.spec.js +1 -1
- package/build/test/unit/basedriver/helpers.spec.js +33 -33
- package/build/test/unit/basedriver/timeout.spec.js +1 -1
- package/build/test/unit/express/server.spec.js +1 -1
- package/build/test/unit/express/static.spec.js +2 -2
- package/build/test/unit/jsonwp-proxy/mock-request.js +1 -1
- package/build/test/unit/jsonwp-proxy/protocol-converter.spec.js +1 -1
- package/build/test/unit/jsonwp-proxy/proxy.spec.js +2 -2
- package/build/test/unit/jsonwp-proxy/url.spec.js +1 -1
- package/build/test/unit/jsonwp-status/status.spec.js +1 -1
- package/build/test/unit/protocol/errors.spec.js +1 -1
- package/build/test/unit/protocol/routes.spec.js +1 -1
- package/build/test/unit/protocol/validator.spec.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/lib/basedriver/capabilities.js +95 -47
- package/lib/basedriver/commands/event.js +4 -4
- package/lib/basedriver/commands/find.js +12 -26
- package/lib/basedriver/commands/index.js +7 -7
- package/lib/basedriver/commands/log.js +5 -7
- package/lib/basedriver/commands/session.js +3 -3
- package/lib/basedriver/commands/settings.js +3 -5
- package/lib/basedriver/commands/timeout.js +18 -23
- package/lib/basedriver/core.js +150 -229
- package/lib/basedriver/desired-caps.js +30 -29
- package/lib/basedriver/device-settings.js +21 -20
- package/lib/basedriver/driver.js +131 -96
- package/lib/basedriver/helpers.js +124 -81
- package/lib/basedriver/logger.js +1 -1
- package/lib/constants.js +2 -6
- package/lib/express/crash.js +4 -6
- package/lib/express/express-logging.js +26 -24
- package/lib/express/idempotency.js +16 -16
- package/lib/express/logger.js +1 -1
- package/lib/express/middleware.js +49 -33
- package/lib/express/server.js +68 -44
- package/lib/express/static.js +11 -12
- package/lib/express/websocket.js +26 -16
- package/lib/helpers/capabilities.js +11 -16
- package/lib/index.js +50 -33
- package/lib/jsonwp-proxy/protocol-converter.js +85 -69
- package/lib/jsonwp-proxy/proxy.js +116 -53
- package/lib/jsonwp-status/status.js +36 -29
- package/lib/protocol/errors.js +469 -292
- package/lib/protocol/helpers.js +5 -8
- package/lib/protocol/index.js +22 -15
- package/lib/protocol/protocol.js +103 -55
- package/lib/protocol/routes.js +430 -273
- package/lib/protocol/validators.js +5 -5
- package/package.json +7 -6
- package/test/basedriver/driver-e2e-tests.js +92 -66
- package/test/basedriver/driver-tests.js +90 -33
- package/test/basedriver/index.js +1 -1
|
@@ -1,6 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
1
|
+
export type Driver = import('@appium/types').Driver;
|
|
2
|
+
export type MethodMap = import('@appium/types').MethodMap;
|
|
3
|
+
/**
|
|
4
|
+
* define the routes, mapping of HTTP methods to particular driver commands, and
|
|
5
|
+
* any parameters that are expected in a request parameters can be `required` or
|
|
6
|
+
* `optional`
|
|
7
|
+
* @type {MethodMap}
|
|
8
|
+
*/
|
|
9
|
+
export const METHOD_MAP: MethodMap;
|
|
3
10
|
export let ALL_COMMANDS: any[];
|
|
4
11
|
export const NO_SESSION_ID_COMMANDS: string[];
|
|
5
|
-
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
* @param {string} endpoint
|
|
15
|
+
* @param {import('@appium/types').HTTPMethod} method
|
|
16
|
+
* @param {string} [basePath]
|
|
17
|
+
* @returns {string|undefined}
|
|
18
|
+
*/
|
|
19
|
+
export function routeToCommandName(endpoint: string, method: import('@appium/types').HTTPMethod, basePath?: string | undefined): string | undefined;
|
|
6
20
|
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../lib/protocol/routes.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../lib/protocol/routes.js"],"names":[],"mappings":"qBAi/Ba,OAAO,eAAe,EAAE,MAAM;wBAC9B,OAAO,eAAe,EAAE,SAAS;AAl+B9C;;;;;GAKG;AACH,yBAFU,SAAS,CAi4BjB;AAGF,+BAAsB;AAoFtB,8CAA6E;AA5C7E;;;;;;GAMG;AACH,6CALW,MAAM,UACN,OAAO,eAAe,EAAE,UAAU,kCAEhC,MAAM,GAAC,SAAS,CAoC5B"}
|
|
@@ -1352,4 +1352,4 @@ function routeToCommandName(endpoint, method, basePath = _constants.DEFAULT_BASE
|
|
|
1352
1352
|
|
|
1353
1353
|
const NO_SESSION_ID_COMMANDS = ['createSession', 'getStatus', 'getSessions'];
|
|
1354
1354
|
exports.NO_SESSION_ID_COMMANDS = NO_SESSION_ID_COMMANDS;
|
|
1355
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfQUxFUlRfVEVYVF9QQVlMT0FEX1BBUkFNUyIsInZhbGlkYXRlIiwianNvbk9iaiIsInV0aWwiLCJoYXNWYWx1ZSIsInZhbHVlIiwidGV4dCIsIm9wdGlvbmFsIiwibWFrZUFyZ3MiLCJNRVRIT0RfTUFQIiwiR0VUIiwiY29tbWFuZCIsIlBPU1QiLCJwYXlsb2FkUGFyYW1zIiwiY2FwYWJpbGl0aWVzIiwiZGVzaXJlZENhcGFiaWxpdGllcyIsIkRFTEVURSIsInByb3RvY29sTmFtZSIsIlBST1RPQ09MUyIsIlczQyIsInNjcmlwdCIsInBhZ2VMb2FkIiwiaW1wbGljaXQiLCJ0eXBlIiwibXMiLCJyZXF1aXJlZCIsImhhbmRsZSIsIm5hbWUiLCJ1bndyYXAiLCJ3cmFwIiwic2lnbmFsU3RyZW5ndGgiLCJzaWduYWxTdHJlbmdoIiwiQUxMX0NPTU1BTkRTIiwidiIsIl8iLCJ2YWx1ZXMiLCJtIiwicHVzaCIsIlJFX0VTQ0FQRSIsIlJFX1BBUkFNIiwiUm91dGUiLCJjb25zdHJ1Y3RvciIsInJvdXRlIiwicGFyYW1OYW1lcyIsInJlU3RyIiwicmVwbGFjZSIsIm1vZGUiLCJyb3V0ZVJlZ2V4cCIsIlJlZ0V4cCIsInBhcnNlIiwidXJsIiwibWF0Y2hlcyIsIm1hdGNoIiwiaSIsInBhcmFtcyIsImxlbmd0aCIsInBhcmFtTmFtZSIsInJvdXRlVG9Db21tYW5kTmFtZSIsImVuZHBvaW50IiwibWV0aG9kIiwiYmFzZVBhdGgiLCJERUZBVUxUX0JBU0VfUEFUSCIsImRzdFJvdXRlIiwiaW5jbHVkZXMiLCJzbGljZSIsImluZGV4T2YiLCJhY3R1YWxFbmRwb2ludCIsInN0YXJ0c1dpdGgiLCJjdXJyZW50Um91dGUiLCJrZXlzIiwibWV0aG9kcyIsImdldCIsInRvVXBwZXIiLCJoYXMiLCJkc3RNZXRob2QiLCJOT19TRVNTSU9OX0lEX0NPTU1BTkRTIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3Byb3RvY29sL3JvdXRlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgUFJPVE9DT0xTLCBERUZBVUxUX0JBU0VfUEFUSCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cblxuY29uc3QgU0VUX0FMRVJUX1RFWFRfUEFZTE9BRF9QQVJBTVMgPSB7XG4gIHZhbGlkYXRlOiAoanNvbk9iaikgPT4gKCF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudmFsdWUpICYmICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudGV4dCkpICYmXG4gICAgICAnZWl0aGVyIFwidGV4dFwiIG9yIFwidmFsdWVcIiBtdXN0IGJlIHNldCcsXG4gIG9wdGlvbmFsOiBbJ3ZhbHVlJywgJ3RleHQnXSxcbiAgLy8gUHJlZmVyICd2YWx1ZScgc2luY2UgaXQncyBtb3JlIGJhY2t3YXJkLWNvbXBhdGlibGUuXG4gIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW2pzb25PYmoudmFsdWUgfHwganNvbk9iai50ZXh0XSxcbn07XG5cbi8vIGRlZmluZSB0aGUgcm91dGVzLCBtYXBwaW5nIG9mIEhUVFAgbWV0aG9kcyB0byBwYXJ0aWN1bGFyIGRyaXZlciBjb21tYW5kcyxcbi8vIGFuZCBhbnkgcGFyYW1ldGVycyB0aGF0IGFyZSBleHBlY3RlZCBpbiBhIHJlcXVlc3Rcbi8vIHBhcmFtZXRlcnMgY2FuIGJlIGByZXF1aXJlZGAgb3IgYG9wdGlvbmFsYFxuLyoqIEB0eXBlIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5NZXRob2RNYXB9ICovXG5jb25zdCBNRVRIT0RfTUFQID0ge1xuICAnL3N0YXR1cyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U3RhdHVzJ31cbiAgfSxcbiAgJy9zZXNzaW9uJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnY3JlYXRlU2Vzc2lvbicsIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT4gKCFqc29uT2JqLmNhcGFiaWxpdGllcyAmJiAhanNvbk9iai5kZXNpcmVkQ2FwYWJpbGl0aWVzKSAmJiAnd2UgcmVxdWlyZSBvbmUgb2YgXCJkZXNpcmVkQ2FwYWJpbGl0aWVzXCIgb3IgXCJjYXBhYmlsaXRpZXNcIiBvYmplY3QnLFxuICAgICAgb3B0aW9uYWw6IFsnZGVzaXJlZENhcGFiaWxpdGllcycsICdyZXF1aXJlZENhcGFiaWxpdGllcycsICdjYXBhYmlsaXRpZXMnXX19XG4gIH0sXG4gICcvc2Vzc2lvbnMnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFNlc3Npb25zJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFNlc3Npb24nfSxcbiAgICBERUxFVEU6IHtjb21tYW5kOiAnZGVsZXRlU2Vzc2lvbid9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RpbWVvdXRzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRUaW1lb3V0cyd9LCAvLyBXM0Mgcm91dGVcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RpbWVvdXRzJywgcGF5bG9hZFBhcmFtczoge1xuICAgICAgdmFsaWRhdGU6IChqc29uT2JqLCBwcm90b2NvbE5hbWUpID0+IHtcbiAgICAgICAgaWYgKHByb3RvY29sTmFtZSA9PT0gUFJPVE9DT0xTLlczQykge1xuICAgICAgICAgIGlmICghdXRpbC5oYXNWYWx1ZShqc29uT2JqLnNjcmlwdCkgJiYgIXV0aWwuaGFzVmFsdWUoanNvbk9iai5wYWdlTG9hZCkgJiYgIXV0aWwuaGFzVmFsdWUoanNvbk9iai5pbXBsaWNpdCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnVzNDIHByb3RvY29sIGV4cGVjdHMgYW55IG9mIHNjcmlwdCwgcGFnZUxvYWQgb3IgaW1wbGljaXQgdG8gYmUgc2V0JztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gTUpTT05XUFxuICAgICAgICAgIGlmICghdXRpbC5oYXNWYWx1ZShqc29uT2JqLnR5cGUpIHx8ICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoubXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ01KU09OV1AgcHJvdG9jb2wgcmVxdWlyZXMgdHlwZSBhbmQgbXMnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG9wdGlvbmFsOiBbJ3R5cGUnLCAnbXMnLCAnc2NyaXB0JywgJ3BhZ2VMb2FkJywgJ2ltcGxpY2l0J10sXG4gICAgfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdGltZW91dHMvYXN5bmNfc2NyaXB0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYXN5bmNTY3JpcHRUaW1lb3V0JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ21zJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90aW1lb3V0cy9pbXBsaWNpdF93YWl0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnaW1wbGljaXRXYWl0JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ21zJ119fVxuICB9LFxuICAvLyBKU09OV1BcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93X2hhbmRsZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93SGFuZGxlJ31cbiAgfSxcbiAgLy8gVzNDXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dpbmRvdy9oYW5kbGUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFdpbmRvd0hhbmRsZSd9XG4gIH0sXG4gIC8vIEpTT05XUFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3dfaGFuZGxlcyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93SGFuZGxlcyd9XG4gIH0sXG4gIC8vIFczQ1xuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvaGFuZGxlcyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93SGFuZGxlcyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3VybCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0VXJsJ30sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRVcmwnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndXJsJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9mb3J3YXJkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZm9yd2FyZCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2JhY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdiYWNrJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvcmVmcmVzaCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3JlZnJlc2gnfVxuICB9LFxuICAvLyBNSlNPTldQXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2V4ZWN1dGUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdleGVjdXRlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NjcmlwdCcsICdhcmdzJ119fVxuICB9LFxuICAvLyBNSlNPTldQXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2V4ZWN1dGVfYXN5bmMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdleGVjdXRlQXN5bmMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc2NyaXB0JywgJ2FyZ3MnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NjcmVlbnNob3QnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFNjcmVlbnNob3QnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9pbWUvYXZhaWxhYmxlX2VuZ2luZXMnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2F2YWlsYWJsZUlNRUVuZ2luZXMnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9pbWUvYWN0aXZlX2VuZ2luZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0QWN0aXZlSU1FRW5naW5lJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvaW1lL2FjdGl2YXRlZCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnaXNJTUVBY3RpdmF0ZWQnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9pbWUvZGVhY3RpdmF0ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2RlYWN0aXZhdGVJTUVFbmdpbmUnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9pbWUvYWN0aXZhdGUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdhY3RpdmF0ZUlNRUVuZ2luZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydlbmdpbmUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2ZyYW1lJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0RnJhbWUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnaWQnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2ZyYW1lL3BhcmVudCc6IHtcbiAgICBQT1NUOiB7fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFdpbmRvd0hhbmRsZSd9LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0V2luZG93JywgcGF5bG9hZFBhcmFtczoge1xuICAgICAgb3B0aW9uYWw6IFsnbmFtZScsICdoYW5kbGUnXSxcbiAgICAgIC8vIFJldHVybiBib3RoIHZhbHVlcyB0byBtYXRjaCBXM0MgYW5kIEpTT05XUCBwcm90b2NvbHNcbiAgICAgIG1ha2VBcmdzOiAoanNvbk9iaikgPT4ge1xuICAgICAgICBpZiAodXRpbC5oYXNWYWx1ZShqc29uT2JqLmhhbmRsZSkgJiYgIXV0aWwuaGFzVmFsdWUoanNvbk9iai5uYW1lKSkge1xuICAgICAgICAgIHJldHVybiBbanNvbk9iai5oYW5kbGUsIGpzb25PYmouaGFuZGxlXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXRpbC5oYXNWYWx1ZShqc29uT2JqLm5hbWUpICYmICF1dGlsLmhhc1ZhbHVlKGpzb25PYmouaGFuZGxlKSkge1xuICAgICAgICAgIHJldHVybiBbanNvbk9iai5uYW1lLCBqc29uT2JqLm5hbWVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbanNvbk9iai5uYW1lLCBqc29uT2JqLmhhbmRsZV07XG4gICAgICB9LFxuICAgICAgdmFsaWRhdGU6IChqc29uT2JqKSA9PiAoIXV0aWwuaGFzVmFsdWUoanNvbk9iai5uYW1lKSAmJiAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLmhhbmRsZSkpXG4gICAgICAgICYmICd3ZSByZXF1aXJlIG9uZSBvZiBcIm5hbWVcIiBvciBcImhhbmRsZVwiIHRvIGJlIHNldCcsXG4gICAgfX0sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ2Nsb3NlV2luZG93J31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93Lzp3aW5kb3doYW5kbGUvc2l6ZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93U2l6ZSd9LFxuICAgIFBPU1Q6IHt9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dpbmRvdy86d2luZG93aGFuZGxlL3Bvc2l0aW9uJzoge1xuICAgIFBPU1Q6IHt9LFxuICAgIEdFVDoge31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93Lzp3aW5kb3doYW5kbGUvbWF4aW1pemUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdtYXhpbWl6ZVdpbmRvdyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2Nvb2tpZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0Q29va2llcyd9LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0Q29va2llJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2Nvb2tpZSddfX0sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ2RlbGV0ZUNvb2tpZXMnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9jb29raWUvOm5hbWUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldENvb2tpZSd9LFxuICAgIERFTEVURToge2NvbW1hbmQ6ICdkZWxldGVDb29raWUnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9zb3VyY2UnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFBhZ2VTb3VyY2UnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90aXRsZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAndGl0bGUnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZmluZEVsZW1lbnQnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndXNpbmcnLCAndmFsdWUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnRzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZmluZEVsZW1lbnRzJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VzaW5nJywgJ3ZhbHVlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50L2FjdGl2ZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnYWN0aXZlJ30sIC8vIFczQzogaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci93ZWJkcml2ZXItc3BlYy5odG1sI2Rmbi1nZXQtYWN0aXZlLWVsZW1lbnRcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2FjdGl2ZSd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZCc6IHtcbiAgICBHRVQ6IHt9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9lbGVtZW50Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZmluZEVsZW1lbnRGcm9tRWxlbWVudCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd1c2luZycsICd2YWx1ZSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2VsZW1lbnRzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZmluZEVsZW1lbnRzRnJvbUVsZW1lbnQnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndXNpbmcnLCAndmFsdWUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9jbGljayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2NsaWNrJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL3N1Ym1pdCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3N1Ym1pdCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC90ZXh0Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRUZXh0J31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL3ZhbHVlJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXRWYWx1ZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT4gKCF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudmFsdWUpICYmICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudGV4dCkpICYmXG4gICAgICAgICAgICAnd2UgcmVxdWlyZSBvbmUgb2YgXCJ0ZXh0XCIgb3IgXCJ2YWx1ZVwiIHBhcmFtcycsXG4gICAgICAgIG9wdGlvbmFsOiBbJ3ZhbHVlJywgJ3RleHQnXSxcbiAgICAgICAgLy8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYXJndW1lbnQgY29uc3RydWN0b3IgYmVjYXVzZSBvZiB0aGUgc3BlY2lhbFxuICAgICAgICAvLyBsb2dpYyBoZXJlLiBCYXNpY2FsbHkgd2Ugd2FudCB0byBhY2NlcHQgZWl0aGVyIGEgdmFsdWUgKG9sZCBKU09OV1ApXG4gICAgICAgIC8vIG9yIGEgdGV4dCAobmV3IFczQykgcGFyYW1ldGVyLCBidXQgb25seSBzZW5kIG9uZSBvZiB0aGVtIHRvIHRoZVxuICAgICAgICAvLyBjb21tYW5kIChub3QgYm90aCkuIFByZWZlciAndmFsdWUnIHNpbmNlIGl0J3MgbW9yZVxuICAgICAgICAvLyBiYWNrd2FyZC1jb21wYXRpYmxlLlxuICAgICAgICBtYWtlQXJnczogKGpzb25PYmopID0+IFtqc29uT2JqLnZhbHVlIHx8IGpzb25PYmoudGV4dF0sXG4gICAgICB9XG4gICAgfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9rZXlzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAna2V5cycsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd2YWx1ZSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL25hbWUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldE5hbWUnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvY2xlYXInOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdjbGVhcid9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9zZWxlY3RlZCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZWxlbWVudFNlbGVjdGVkJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2VuYWJsZWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2VsZW1lbnRFbmFibGVkJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2F0dHJpYnV0ZS86bmFtZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0QXR0cmlidXRlJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2VxdWFscy86b3RoZXJJZCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZXF1YWxzRWxlbWVudCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9kaXNwbGF5ZWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2VsZW1lbnREaXNwbGF5ZWQnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvbG9jYXRpb24nOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldExvY2F0aW9uJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2xvY2F0aW9uX2luX3ZpZXcnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldExvY2F0aW9uSW5WaWV3J31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL3NpemUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFNpemUnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2hhZG93Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdlbGVtZW50U2hhZG93Um9vdCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NoYWRvdy86c2hhZG93SWQvZWxlbWVudCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2ZpbmRFbGVtZW50RnJvbVNoYWRvd1Jvb3QnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndXNpbmcnLCAndmFsdWUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NoYWRvdy86c2hhZG93SWQvZWxlbWVudHMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdmaW5kRWxlbWVudHNGcm9tU2hhZG93Um9vdCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd1c2luZycsICd2YWx1ZSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2Nzcy86cHJvcGVydHlOYW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDc3NQcm9wZXJ0eSd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL29yaWVudGF0aW9uJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRPcmllbnRhdGlvbid9LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0T3JpZW50YXRpb24nLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnb3JpZW50YXRpb24nXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3JvdGF0aW9uJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRSb3RhdGlvbid9LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0Um90YXRpb24nLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsneCcsICd5JywgJ3onXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL21vdmV0byc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ21vdmVUbycsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydlbGVtZW50JywgJ3hvZmZzZXQnLCAneW9mZnNldCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvY2xpY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdjbGlja0N1cnJlbnQnLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnYnV0dG9uJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9idXR0b25kb3duJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYnV0dG9uRG93bicsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydidXR0b24nXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2J1dHRvbnVwJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYnV0dG9uVXAnLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnYnV0dG9uJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9kb3VibGVjbGljayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2RvdWJsZUNsaWNrJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvY2xpY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdjbGljaycsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydlbGVtZW50J119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90b3VjaC9kb3duJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG91Y2hEb3duJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3gnLCAneSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvdXAnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICd0b3VjaFVwJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3gnLCAneSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvbW92ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvdWNoTW92ZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd4JywgJ3knXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RvdWNoL3Njcm9sbCc6IHtcbiAgICBQT1NUOiB7fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90b3VjaC9kb3VibGVjbGljayc6IHtcbiAgICBQT1NUOiB7fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hY3Rpb25zJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncGVyZm9ybUFjdGlvbnMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnYWN0aW9ucyddfX0sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ3JlbGVhc2VBY3Rpb25zJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvbG9uZ2NsaWNrJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG91Y2hMb25nQ2xpY2snLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnZWxlbWVudHMnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RvdWNoL2ZsaWNrJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZmxpY2snLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnZWxlbWVudCcsICd4c3BlZWQnLCAneXNwZWVkJywgJ3hvZmZzZXQnLCAneW9mZnNldCcsICdzcGVlZCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9jYXRpb24nOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEdlb0xvY2F0aW9uJ30sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRHZW9Mb2NhdGlvbicsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydsb2NhdGlvbiddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9jYWxfc3RvcmFnZSc6IHtcbiAgICBHRVQ6IHt9LFxuICAgIFBPU1Q6IHt9LFxuICAgIERFTEVURToge31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9jYWxfc3RvcmFnZS9rZXkvOmtleSc6IHtcbiAgICBHRVQ6IHt9LFxuICAgIERFTEVURToge31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9jYWxfc3RvcmFnZS9zaXplJzoge1xuICAgIEdFVDoge31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2Vzc2lvbl9zdG9yYWdlJzoge1xuICAgIEdFVDoge30sXG4gICAgUE9TVDoge30sXG4gICAgREVMRVRFOiB7fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9zZXNzaW9uX3N0b3JhZ2Uva2V5LzprZXknOiB7XG4gICAgR0VUOiB7fSxcbiAgICBERUxFVEU6IHt9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3Nlc3Npb25fc3RvcmFnZS9zaXplJzoge1xuICAgIEdFVDoge31cbiAgfSxcbiAgLy8gU2VsZW5pdW0gNCBjbGllbnRzXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NlL2xvZyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2dldExvZycsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd0eXBlJ119fVxuICB9LFxuICAvLyBTZWxlbml1bSA0IGNsaWVudHNcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2UvbG9nL3R5cGVzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2dUeXBlcyd9XG4gIH0sXG4gIC8vIG1qc29ud2lyZSwgYXBwaXVtIGNsaWVudHNcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9nJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0TG9nJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3R5cGUnXX19XG4gIH0sXG4gIC8vIG1qc29ud2lyZSwgYXBwaXVtIGNsaWVudHNcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9nL3R5cGVzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2dUeXBlcyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGxpY2F0aW9uX2NhY2hlL3N0YXR1cyc6IHtcbiAgICBHRVQ6IHt9XG4gIH0sXG5cbiAgLy9cbiAgLy8gbWpzb253aXJlXG4gIC8vXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2NvbnRleHQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEN1cnJlbnRDb250ZXh0J30sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRDb250ZXh0JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ25hbWUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2NvbnRleHRzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDb250ZXh0cyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9wYWdlSW5kZXgnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFBhZ2VJbmRleCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL25ldHdvcmtfY29ubmVjdGlvbic6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0TmV0d29ya0Nvbm5lY3Rpb24nfSxcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NldE5ldHdvcmtDb25uZWN0aW9uJywgcGF5bG9hZFBhcmFtczoge3Vud3JhcDogJ3BhcmFtZXRlcnMnLCByZXF1aXJlZDogWyd0eXBlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90b3VjaC9wZXJmb3JtJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncGVyZm9ybVRvdWNoJywgcGF5bG9hZFBhcmFtczoge3dyYXA6ICdhY3Rpb25zJywgcmVxdWlyZWQ6IFsnYWN0aW9ucyddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvbXVsdGkvcGVyZm9ybSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3BlcmZvcm1NdWx0aUFjdGlvbicsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydhY3Rpb25zJ10sIG9wdGlvbmFsOiBbJ2VsZW1lbnRJZCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvcmVjZWl2ZV9hc3luY19yZXNwb25zZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3JlY2VpdmVBc3luY1Jlc3BvbnNlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3N0YXR1cycsICd2YWx1ZSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9zaGFrZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ21vYmlsZVNoYWtlJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9zeXN0ZW1fdGltZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0RGV2aWNlVGltZScsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydmb3JtYXQnXX19LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0RGV2aWNlVGltZScsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydmb3JtYXQnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvbG9jayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2xvY2snLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnc2Vjb25kcyddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS91bmxvY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICd1bmxvY2snfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2lzX2xvY2tlZCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2lzTG9ja2VkJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3N0YXJ0X3JlY29yZGluZ19zY3JlZW4nOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzdGFydFJlY29yZGluZ1NjcmVlbicsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydvcHRpb25zJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vc3RvcF9yZWNvcmRpbmdfc2NyZWVuJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnc3RvcFJlY29yZGluZ1NjcmVlbicsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydvcHRpb25zJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vcGVyZm9ybWFuY2VEYXRhL3R5cGVzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0UGVyZm9ybWFuY2VEYXRhVHlwZXMnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZ2V0UGVyZm9ybWFuY2VEYXRhJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0UGVyZm9ybWFuY2VEYXRhJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3BhY2thZ2VOYW1lJywgJ2RhdGFUeXBlJ10sIG9wdGlvbmFsOiBbJ2RhdGFSZWFkVGltZW91dCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9wcmVzc19rZXljb2RlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncHJlc3NLZXlDb2RlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2tleWNvZGUnXSwgb3B0aW9uYWw6IFsnbWV0YXN0YXRlJywgJ2ZsYWdzJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2xvbmdfcHJlc3Nfa2V5Y29kZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2xvbmdQcmVzc0tleUNvZGUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsna2V5Y29kZSddLCBvcHRpb25hbDogWydtZXRhc3RhdGUnLCAnZmxhZ3MnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvZmluZ2VyX3ByaW50Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZmluZ2VycHJpbnQnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnZmluZ2VycHJpbnRJZCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9zZW5kX3Ntcyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NlbmRTTVMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsncGhvbmVOdW1iZXInLCAnbWVzc2FnZSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9nc21fY2FsbCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2dzbUNhbGwnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsncGhvbmVOdW1iZXInLCAnYWN0aW9uJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2dzbV9zaWduYWwnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2dzbVNpZ25hbCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT4gKCF1dGlsLmhhc1ZhbHVlKGpzb25PYmouc2lnbmFsU3RyZW5ndGgpICYmICF1dGlsLmhhc1ZhbHVlKGpzb25PYmouc2lnbmFsU3RyZW5naCkpICYmXG4gICAgICAgICAgICAnd2UgcmVxdWlyZSBvbmUgb2YgXCJzaWduYWxTdHJlbmd0aFwiIG9yIFwic2lnbmFsU3RyZW5naFwiIHBhcmFtcycsXG4gICAgICAgIG9wdGlvbmFsOiBbJ3NpZ25hbFN0cmVuZ3RoJywgJ3NpZ25hbFN0cmVuZ2gnXSxcbiAgICAgICAgLy8gYmFja3dhcmQtY29tcGF0aWJsZS4gc29uT2JqLnNpZ25hbFN0cmVuZ3RoIGNhbiBiZSAwXG4gICAgICAgIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW3V0aWwuaGFzVmFsdWUoanNvbk9iai5zaWduYWxTdHJlbmd0aCkgPyBqc29uT2JqLnNpZ25hbFN0cmVuZ3RoIDoganNvbk9iai5zaWduYWxTdHJlbmdoXVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9nc21fdm9pY2UnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdnc21Wb2ljZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydzdGF0ZSddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9wb3dlcl9jYXBhY2l0eSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3Bvd2VyQ2FwYWNpdHknLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsncGVyY2VudCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9wb3dlcl9hYyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3Bvd2VyQUMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc3RhdGUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvbmV0d29ya19zcGVlZCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ25ldHdvcmtTcGVlZCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyduZXRzcGVlZCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9rZXlldmVudCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2tleWV2ZW50JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2tleWNvZGUnXSwgb3B0aW9uYWw6IFsnbWV0YXN0YXRlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3JvdGF0ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ21vYmlsZVJvdGF0aW9uJywgcGF5bG9hZFBhcmFtczoge1xuICAgICAgcmVxdWlyZWQ6IFsneCcsICd5JywgJ3JhZGl1cycsICdyb3RhdGlvbicsICd0b3VjaENvdW50JywgJ2R1cmF0aW9uJ10sXG4gICAgICBvcHRpb25hbDogWydlbGVtZW50J10gfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9jdXJyZW50X2FjdGl2aXR5Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDdXJyZW50QWN0aXZpdHknfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2N1cnJlbnRfcGFja2FnZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0Q3VycmVudFBhY2thZ2UnfVxuICB9LFxuICAvL3JlZ2lvbiBBcHBsaWNhdGlvbnMgTWFuYWdlbWVudFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2luc3RhbGxfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdpbnN0YWxsQXBwJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFsnYXBwUGF0aCddLFxuICAgICAgICBvcHRpb25hbDogWydvcHRpb25zJ11cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvYWN0aXZhdGVfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdhY3RpdmF0ZUFwcCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbWydhcHBJZCddLCBbJ2J1bmRsZUlkJ11dLFxuICAgICAgICBvcHRpb25hbDogWydvcHRpb25zJ11cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvcmVtb3ZlX2FwcCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncmVtb3ZlQXBwJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFtbJ2FwcElkJ10sIFsnYnVuZGxlSWQnXV0sXG4gICAgICAgIG9wdGlvbmFsOiBbJ29wdGlvbnMnXVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90ZXJtaW5hdGVfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICd0ZXJtaW5hdGVBcHAnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogW1snYXBwSWQnXSwgWydidW5kbGVJZCddXSxcbiAgICAgICAgb3B0aW9uYWw6IFsnb3B0aW9ucyddXG4gICAgICB9XG4gICAgfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2FwcF9pbnN0YWxsZWQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2lzQXBwSW5zdGFsbGVkJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFtbJ2FwcElkJ10sIFsnYnVuZGxlSWQnXV1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvYXBwX3N0YXRlJzoge1xuICAgIEdFVDoge1xuICAgICAgY29tbWFuZDogJ3F1ZXJ5QXBwU3RhdGUnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogW1snYXBwSWQnXSwgWydidW5kbGVJZCddXVxuICAgICAgfVxuICAgIH0sXG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3F1ZXJ5QXBwU3RhdGUnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogW1snYXBwSWQnXSwgWydidW5kbGVJZCddXVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgLy9lbmRyZWdpb25cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9oaWRlX2tleWJvYXJkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnaGlkZUtleWJvYXJkJywgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ3N0cmF0ZWd5JywgJ2tleScsICdrZXlDb2RlJywgJ2tleU5hbWUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvaXNfa2V5Ym9hcmRfc2hvd24nOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2lzS2V5Ym9hcmRTaG93bid9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvcHVzaF9maWxlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncHVzaEZpbGUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsncGF0aCcsICdkYXRhJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3B1bGxfZmlsZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3B1bGxGaWxlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3BhdGgnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvcHVsbF9mb2xkZXInOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwdWxsRm9sZGVyJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3BhdGgnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvdG9nZ2xlX2FpcnBsYW5lX21vZGUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICd0b2dnbGVGbGlnaHRNb2RlJ31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90b2dnbGVfZGF0YSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvZ2dsZURhdGEnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3RvZ2dsZV93aWZpJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG9nZ2xlV2lGaSd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvdG9nZ2xlX2xvY2F0aW9uX3NlcnZpY2VzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG9nZ2xlTG9jYXRpb25TZXJ2aWNlcyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvb3Blbl9ub3RpZmljYXRpb25zJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnb3Blbk5vdGlmaWNhdGlvbnMnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3N0YXJ0X2FjdGl2aXR5Jzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzdGFydEFjdGl2aXR5JyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFsnYXBwUGFja2FnZScsICdhcHBBY3Rpdml0eSddLFxuICAgICAgICBvcHRpb25hbDogWydhcHBXYWl0UGFja2FnZScsICdhcHBXYWl0QWN0aXZpdHknLCAnaW50ZW50QWN0aW9uJyxcbiAgICAgICAgICAnaW50ZW50Q2F0ZWdvcnknLCAnaW50ZW50RmxhZ3MnLCAnb3B0aW9uYWxJbnRlbnRBcmd1bWVudHMnLCAnZG9udFN0b3BBcHBPblJlc2V0J11cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvc3lzdGVtX2JhcnMnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFN5c3RlbUJhcnMnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2Rpc3BsYXlfZGVuc2l0eSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0RGlzcGxheURlbnNpdHknfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vc2ltdWxhdG9yL3RvdWNoX2lkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG91Y2hJZCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydtYXRjaCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3NpbXVsYXRvci90b2dnbGVfdG91Y2hfaWRfZW5yb2xsbWVudCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvZ2dsZUVucm9sbFRvdWNoSWQnLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnZW5hYmxlZCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2FwcC9sYXVuY2gnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdsYXVuY2hBcHAnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vYXBwL2Nsb3NlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnY2xvc2VBcHAnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vYXBwL3Jlc2V0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncmVzZXQnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vYXBwL2JhY2tncm91bmQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdiYWNrZ3JvdW5kJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NlY29uZHMnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9hcHAvZW5kX3Rlc3RfY292ZXJhZ2UnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdlbmRDb3ZlcmFnZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydpbnRlbnQnLCAncGF0aCddfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2FwcC9zdHJpbmdzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0U3RyaW5ncycsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydsYW5ndWFnZScsICdzdHJpbmdGaWxlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZWxlbWVudC86ZWxlbWVudElkL3ZhbHVlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0VmFsdWVJbW1lZGlhdGUnLCBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICB2YWxpZGF0ZTogKGpzb25PYmopID0+ICghdXRpbC5oYXNWYWx1ZShqc29uT2JqLnZhbHVlKSAmJiAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnRleHQpKSAmJlxuICAgICAgICAgICd3ZSByZXF1aXJlIG9uZSBvZiBcInRleHRcIiBvciBcInZhbHVlXCIgcGFyYW1zJyxcbiAgICAgIG9wdGlvbmFsOiBbJ3ZhbHVlJywgJ3RleHQnXSxcbiAgICAgIC8vIFdlIHdhbnQgdG8gZWl0aGVyIGEgdmFsdWUgKG9sZCBKU09OV1ApIG9yIGEgdGV4dCAobmV3IFczQykgcGFyYW1ldGVyLFxuICAgICAgLy8gYnV0IG9ubHkgc2VuZCBvbmUgb2YgdGhlbSB0byB0aGUgY29tbWFuZCAobm90IGJvdGgpLlxuICAgICAgLy8gUHJlZmVyICd2YWx1ZScgc2luY2UgaXQncyBtb3JlIGJhY2t3YXJkLWNvbXBhdGlibGUuXG4gICAgICBtYWtlQXJnczogKGpzb25PYmopID0+IFtqc29uT2JqLnZhbHVlIHx8IGpzb25PYmoudGV4dF0sXG4gICAgfX1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2VsZW1lbnQvOmVsZW1lbnRJZC9yZXBsYWNlX3ZhbHVlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncmVwbGFjZVZhbHVlJywgcGF5bG9hZFBhcmFtczoge1xuICAgICAgdmFsaWRhdGU6IChqc29uT2JqKSA9PiAoIXV0aWwuaGFzVmFsdWUoanNvbk9iai52YWx1ZSkgJiYgIXV0aWwuaGFzVmFsdWUoanNvbk9iai50ZXh0KSkgJiZcbiAgICAgICAgICAnd2UgcmVxdWlyZSBvbmUgb2YgXCJ0ZXh0XCIgb3IgXCJ2YWx1ZVwiIHBhcmFtcycsXG4gICAgICBvcHRpb25hbDogWyd2YWx1ZScsICd0ZXh0J10sXG4gICAgICAvLyBXZSB3YW50IHRvIGVpdGhlciBhIHZhbHVlIChvbGQgSlNPTldQKSBvciBhIHRleHQgKG5ldyBXM0MpIHBhcmFtZXRlcixcbiAgICAgIC8vIGJ1dCBvbmx5IHNlbmQgb25lIG9mIHRoZW0gdG8gdGhlIGNvbW1hbmQgKG5vdCBib3RoKS5cbiAgICAgIC8vIFByZWZlciAndmFsdWUnIHNpbmNlIGl0J3MgbW9yZSBiYWNrd2FyZC1jb21wYXRpYmxlLlxuICAgICAgbWFrZUFyZ3M6IChqc29uT2JqKSA9PiBbanNvbk9iai52YWx1ZSA/PyBqc29uT2JqLnRleHQgPz8gJyddLFxuICAgIH19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9zZXR0aW5ncyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3VwZGF0ZVNldHRpbmdzJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NldHRpbmdzJ119fSxcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U2V0dGluZ3MnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vcmVjZWl2ZV9hc3luY19yZXNwb25zZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3JlY2VpdmVBc3luY1Jlc3BvbnNlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3Jlc3BvbnNlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZXZlbnRzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZ2V0TG9nRXZlbnRzJywgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ3R5cGUnXX19XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9sb2dfZXZlbnQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdsb2dDdXN0b21FdmVudCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd2ZW5kb3InLCAnZXZlbnQnXX19XG4gIH0sXG5cbiAgLypcbiAgICogVGhlIFczQyBzcGVjIGhhcyBzb21lIGNoYW5nZXMgdG8gdGhlIHdpcmUgcHJvdG9jb2wuXG4gICAqIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVyLXNwZWMuaHRtbFxuICAgKiBCZWdpbiB0byBhZGQgdGhvc2UgY2hhbmdlcyBoZXJlLCBrZWVwaW5nIHRoZSBvbGQgdmVyc2lvblxuICAgKiBzaW5jZSBjbGllbnRzIHN0aWxsIGltcGxlbWVudCB0aGVtLlxuICAgKi9cbiAgLy8gTUpTT05XUFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hbGVydF90ZXh0Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRBbGVydFRleHQnfSxcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0QWxlcnRUZXh0JyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IFNFVF9BTEVSVF9URVhUX1BBWUxPQURfUEFSQU1TLFxuICAgIH1cbiAgfSxcbiAgLy8gTUpTT05XUFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hY2NlcHRfYWxlcnQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwb3N0QWNjZXB0QWxlcnQnfVxuICB9LFxuICAvLyBNSlNPTldQXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2Rpc21pc3NfYWxlcnQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwb3N0RGlzbWlzc0FsZXJ0J31cbiAgfSxcbiAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci93ZWJkcml2ZXItc3BlYy5odG1sI3VzZXItcHJvbXB0c1xuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hbGVydC90ZXh0Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRBbGVydFRleHQnfSxcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0QWxlcnRUZXh0JyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IFNFVF9BTEVSVF9URVhUX1BBWUxPQURfUEFSQU1TLFxuICAgIH1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYWxlcnQvYWNjZXB0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncG9zdEFjY2VwdEFsZXJ0J31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYWxlcnQvZGlzbWlzcyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3Bvc3REaXNtaXNzQWxlcnQnfVxuICB9LFxuICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyL3dlYmRyaXZlci1zcGVjLmh0bWwjZ2V0LWVsZW1lbnQtcmVjdFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvcmVjdCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0RWxlbWVudFJlY3QnfVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9leGVjdXRlL3N5bmMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdleGVjdXRlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NjcmlwdCcsICdhcmdzJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9leGVjdXRlL2FzeW5jJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZXhlY3V0ZUFzeW5jJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NjcmlwdCcsICdhcmdzJ119fVxuICB9LFxuICAvLyBQcmUtVzNDIGVuZHBvaW50IGZvciBlbGVtZW50IHNjcmVlbnNob3RcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2NyZWVuc2hvdC86ZWxlbWVudElkJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRFbGVtZW50U2NyZWVuc2hvdCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9zY3JlZW5zaG90Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRFbGVtZW50U2NyZWVuc2hvdCd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dpbmRvdy9yZWN0Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRXaW5kb3dSZWN0J30sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRXaW5kb3dSZWN0JywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3gnLCAneScsICd3aWR0aCcsICdoZWlnaHQnXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvbWF4aW1pemUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdtYXhpbWl6ZVdpbmRvdyd9XG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dpbmRvdy9taW5pbWl6ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ21pbmltaXplV2luZG93J31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93L2Z1bGxzY3JlZW4nOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdmdWxsU2NyZWVuV2luZG93J31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93L25ldyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2NyZWF0ZU5ld1dpbmRvdycsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWyd0eXBlJ119fVxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvcHJvcGVydHkvOm5hbWUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFByb3BlcnR5J31cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9zZXRfY2xpcGJvYXJkJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXRDbGlwYm9hcmQnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogWydjb250ZW50J10sXG4gICAgICAgIG9wdGlvbmFsOiBbXG4gICAgICAgICAgJ2NvbnRlbnRUeXBlJyxcbiAgICAgICAgICAnbGFiZWwnLFxuICAgICAgICBdXG4gICAgICB9LFxuICAgIH1cbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9nZXRfY2xpcGJvYXJkJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdnZXRDbGlwYm9hcmQnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICBvcHRpb25hbDogW1xuICAgICAgICAgICdjb250ZW50VHlwZScsXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxuXG4gIC8vIGNocm9taXVtIGRldnRvb2xzXG4gIC8vIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9tYXN0ZXIvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL3NlcnZlci9odHRwX2hhbmRsZXIuY2NcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvOnZlbmRvci9jZHAvZXhlY3V0ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2V4ZWN1dGVDZHAnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnY21kJywgJ3BhcmFtcyddfX1cbiAgfSxcblxuICAvL3JlZ2lvbiBXZWJhdXRoblxuICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jc2N0bi1hdXRvbWF0aW9uLWFkZC12aXJ0dWFsLWF1dGhlbnRpY2F0b3JcblxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93ZWJhdXRobi9hdXRoZW50aWNhdG9yJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdhZGRWaXJ0dWFsQXV0aGVudGljYXRvcicsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ3Byb3RvY29sJywgJ3RyYW5zcG9ydCddLFxuICAgICAgICBvcHRpb25hbDogWydoYXNSZXNpZGVudEtleScsICdoYXNVc2VyVmVyaWZpY2F0aW9uJywgJ2lzVXNlckNvbnNlbnRpbmcnLCAnaXNVc2VyVmVyaWZpZWQnXSxcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2ViYXV0aG4vYXV0aGVudGljYXRvci86YXV0aGVudGljYXRvcklkJzoge1xuICAgIERFTEVURToge1xuICAgICAgY29tbWFuZDogJ3JlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yJ1xuICAgIH1cbiAgfSxcblxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93ZWJhdXRobi9hdXRoZW50aWNhdG9yLzphdXRoZW50aWNhdG9ySWQvY3JlZGVudGlhbCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnYWRkQXV0aENyZWRlbnRpYWwnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogWydjcmVkZW50aWFsSWQnLCAnaXNSZXNpZGVudENyZWRlbnRpYWwnLCAncnBJZCcsICdwcml2YXRlS2V5J10sXG4gICAgICAgIG9wdGlvbmFsOiBbJ3VzZXJIYW5kbGUnLCAnc2lnbkNvdW50J10sXG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3IvOmF1dGhlbnRpY2F0b3JJZC9jcmVkZW50aWFscyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0QXV0aENyZWRlbnRpYWwnfSxcbiAgICBERUxFVEU6IHtjb21tYW5kOiAncmVtb3ZlQWxsQXV0aENyZWRlbnRpYWxzJ30sXG4gIH0sXG5cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2ViYXV0aG4vYXV0aGVudGljYXRvci86YXV0aGVudGljYXRvcklkL2NyZWRlbnRpYWxzLzpjcmVkZW50aWFsSWQnOiB7XG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ3JlbW92ZUF1dGhDcmVkZW50aWFsJ31cbiAgfSxcblxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93ZWJhdXRobi9hdXRoZW50aWNhdG9yLzphdXRoZW50aWNhdG9ySWQvdXYnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3NldFVzZXJBdXRoVmVyaWZpZWQnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogWydpc1VzZXJWZXJpZmllZCddXG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8vZW5kcmVnaW9uXG5cbn07XG5cbi8vIGRyaXZlciBjb21tYW5kIG5hbWVzXG5sZXQgQUxMX0NPTU1BTkRTID0gW107XG5mb3IgKGxldCB2IG9mIF8udmFsdWVzKE1FVEhPRF9NQVApKSB7XG4gIGZvciAobGV0IG0gb2YgXy52YWx1ZXModikpIHtcbiAgICBpZiAobS5jb21tYW5kKSB7XG4gICAgICBBTExfQ09NTUFORFMucHVzaChtLmNvbW1hbmQpO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBSRV9FU0NBUEUgPSAvWy1bXFxde30oKSs/LixcXFxcXiR8I1xcc10vZztcbmNvbnN0IFJFX1BBUkFNID0gLyhbOipdKShcXHcrKS9nO1xuXG5jbGFzcyBSb3V0ZSB7XG4gIGNvbnN0cnVjdG9yIChyb3V0ZSkge1xuICAgIHRoaXMucGFyYW1OYW1lcyA9IFtdO1xuXG4gICAgbGV0IHJlU3RyID0gcm91dGUucmVwbGFjZShSRV9FU0NBUEUsICdcXFxcJCYnKTtcbiAgICByZVN0ciA9IHJlU3RyLnJlcGxhY2UoUkVfUEFSQU0sIChfLCBtb2RlLCBuYW1lKSA9PiB7XG4gICAgICB0aGlzLnBhcmFtTmFtZXMucHVzaChuYW1lKTtcbiAgICAgIHJldHVybiBtb2RlID09PSAnOicgPyAnKFteL10qKScgOiAnKC4qKSc7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZVJlZ2V4cCA9IG5ldyBSZWdFeHAoYF4ke3JlU3RyfSRgKTtcbiAgfVxuXG4gIHBhcnNlICh1cmwpIHtcbiAgICAvL2lmICh1cmwuaW5kZXhPZigndGltZW91dHMnKSAhPT0gLTEgJiYgdGhpcy5yb3V0ZVJlZ2V4cC50b1N0cmluZygpLmluZGV4T2YoJ3RpbWVvdXRzJykgIT09IC0xKSB7XG4gICAgLy9kZWJ1Z2dlcjtcbiAgICAvL31cbiAgICBsZXQgbWF0Y2hlcyA9IHVybC5tYXRjaCh0aGlzLnJvdXRlUmVnZXhwKTtcbiAgICBpZiAoIW1hdGNoZXMpIHJldHVybjsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBjdXJseVxuICAgIGxldCBpID0gMDtcbiAgICBsZXQgcGFyYW1zID0ge307XG4gICAgd2hpbGUgKGkgPCB0aGlzLnBhcmFtTmFtZXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBwYXJhbU5hbWUgPSB0aGlzLnBhcmFtTmFtZXNbaSsrXTtcbiAgICAgIHBhcmFtc1twYXJhbU5hbWVdID0gbWF0Y2hlc1tpXTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxufVxuXG5mdW5jdGlvbiByb3V0ZVRvQ29tbWFuZE5hbWUgKGVuZHBvaW50LCBtZXRob2QsIGJhc2VQYXRoID0gREVGQVVMVF9CQVNFX1BBVEgpIHtcbiAgbGV0IGRzdFJvdXRlID0gbnVsbDtcblxuICAvLyByZW1vdmUgYW55IHF1ZXJ5IHN0cmluZ1xuICBpZiAoZW5kcG9pbnQuaW5jbHVkZXMoJz8nKSkge1xuICAgIGVuZHBvaW50ID0gZW5kcG9pbnQuc2xpY2UoMCwgZW5kcG9pbnQuaW5kZXhPZignPycpKTtcbiAgfVxuXG4gIGNvbnN0IGFjdHVhbEVuZHBvaW50ID0gZW5kcG9pbnQgPT09ICcvJyA/ICcnIDpcbiAgICAoXy5zdGFydHNXaXRoKGVuZHBvaW50LCAnLycpID8gZW5kcG9pbnQgOiBgLyR7ZW5kcG9pbnR9YCk7XG5cbiAgZm9yIChsZXQgY3VycmVudFJvdXRlIG9mIF8ua2V5cyhNRVRIT0RfTUFQKSkge1xuICAgIGNvbnN0IHJvdXRlID0gbmV3IFJvdXRlKGAke2Jhc2VQYXRofSR7Y3VycmVudFJvdXRlfWApO1xuICAgIC8vIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIGFjdHVhbCBzZXNzaW9uIGlkIGZvciBtYXRjaGluZ1xuICAgIGlmIChyb3V0ZS5wYXJzZShgJHtiYXNlUGF0aH0vc2Vzc2lvbi9pZ25vcmVkLXNlc3Npb24taWQke2FjdHVhbEVuZHBvaW50fWApIHx8XG4gICAgICAgIHJvdXRlLnBhcnNlKGAke2Jhc2VQYXRofSR7YWN0dWFsRW5kcG9pbnR9YCkgfHwgcm91dGUucGFyc2UoYWN0dWFsRW5kcG9pbnQpKSB7XG4gICAgICBkc3RSb3V0ZSA9IGN1cnJlbnRSb3V0ZTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBpZiAoIWRzdFJvdXRlKSByZXR1cm47IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY3VybHlcblxuICBjb25zdCBtZXRob2RzID0gXy5nZXQoTUVUSE9EX01BUCwgZHN0Um91dGUpO1xuICBtZXRob2QgPSBfLnRvVXBwZXIobWV0aG9kKTtcbiAgaWYgKF8uaGFzKG1ldGhvZHMsIG1ldGhvZCkpIHtcbiAgICBjb25zdCBkc3RNZXRob2QgPSBfLmdldChtZXRob2RzLCBtZXRob2QpO1xuICAgIGlmIChkc3RNZXRob2QuY29tbWFuZCkge1xuICAgICAgcmV0dXJuIGRzdE1ldGhvZC5jb21tYW5kO1xuICAgIH1cbiAgfVxufVxuXG4vLyBkcml2ZXIgY29tbWFuZHMgdGhhdCBkbyBub3QgcmVxdWlyZSBhIHNlc3Npb24gdG8gYWxyZWFkeSBleGlzdFxuY29uc3QgTk9fU0VTU0lPTl9JRF9DT01NQU5EUyA9IFsnY3JlYXRlU2Vzc2lvbicsICdnZXRTdGF0dXMnLCAnZ2V0U2Vzc2lvbnMnXTtcblxuZXhwb3J0IHsgTUVUSE9EX01BUCwgQUxMX0NPTU1BTkRTLCBOT19TRVNTSU9OX0lEX0NPTU1BTkRTLCByb3V0ZVRvQ29tbWFuZE5hbWUgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsNkJBQTZCLEdBQUc7RUFDcENDLFFBQVEsRUFBR0MsT0FBRCxJQUFjLENBQUNDLGNBQUtDLFFBQUwsQ0FBY0YsT0FBTyxDQUFDRyxLQUF0QixDQUFELElBQWlDLENBQUNGLGNBQUtDLFFBQUwsQ0FBY0YsT0FBTyxDQUFDSSxJQUF0QixDQUFuQyxJQUNuQixzQ0FGZ0M7RUFHcENDLFFBQVEsRUFBRSxDQUFDLE9BQUQsRUFBVSxNQUFWLENBSDBCO0VBS3BDQyxRQUFRLEVBQUdOLE9BQUQsSUFBYSxDQUFDQSxPQUFPLENBQUNHLEtBQVIsSUFBaUJILE9BQU8sQ0FBQ0ksSUFBMUI7QUFMYSxDQUF0QztBQVlBLE1BQU1HLFVBQVUsR0FBRztFQUNqQixXQUFXO0lBQ1RDLEdBQUcsRUFBRTtNQUFDQyxPQUFPLEVBQUU7SUFBVjtFQURJLENBRE07RUFJakIsWUFBWTtJQUNWQyxJQUFJLEVBQUU7TUFBQ0QsT0FBTyxFQUFFLGVBQVY7TUFBMkJFLGFBQWEsRUFBRTtRQUM5Q1osUUFBUSxFQUFHQyxPQUFELElBQWMsQ0FBQ0EsT0FBTyxDQUFDWSxZQUFULElBQXlCLENBQUNaLE9BQU8sQ0FBQ2EsbUJBQW5DLElBQTJELGtFQURwQztRQUU5Q1IsUUFBUSxFQUFFLENBQUMscUJBQUQsRUFBd0Isc0JBQXhCLEVBQWdELGNBQWhEO01BRm9DO0lBQTFDO0VBREksQ0FKSztFQVNqQixhQUFhO0lBQ1hHLEdBQUcsRUFBRTtNQUFDQyxPQUFPLEVBQUU7SUFBVjtFQURNLENBVEk7RUFZakIsdUJBQXVCO0lBQ3JCRCxHQUFHLEVBQUU7TUFBQ0MsT0FBTyxFQUFFO0lBQVYs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
|
|
1355
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfQUxFUlRfVEVYVF9QQVlMT0FEX1BBUkFNUyIsInZhbGlkYXRlIiwianNvbk9iaiIsInV0aWwiLCJoYXNWYWx1ZSIsInZhbHVlIiwidGV4dCIsIm9wdGlvbmFsIiwibWFrZUFyZ3MiLCJNRVRIT0RfTUFQIiwiR0VUIiwiY29tbWFuZCIsIlBPU1QiLCJwYXlsb2FkUGFyYW1zIiwiY2FwYWJpbGl0aWVzIiwiZGVzaXJlZENhcGFiaWxpdGllcyIsIkRFTEVURSIsInByb3RvY29sTmFtZSIsIlBST1RPQ09MUyIsIlczQyIsInNjcmlwdCIsInBhZ2VMb2FkIiwiaW1wbGljaXQiLCJ0eXBlIiwibXMiLCJyZXF1aXJlZCIsImhhbmRsZSIsIm5hbWUiLCJ1bndyYXAiLCJ3cmFwIiwic2lnbmFsU3RyZW5ndGgiLCJzaWduYWxTdHJlbmdoIiwiQUxMX0NPTU1BTkRTIiwidiIsIl8iLCJ2YWx1ZXMiLCJtIiwicHVzaCIsIlJFX0VTQ0FQRSIsIlJFX1BBUkFNIiwiUm91dGUiLCJjb25zdHJ1Y3RvciIsInJvdXRlIiwicGFyYW1OYW1lcyIsInJlU3RyIiwicmVwbGFjZSIsIm1vZGUiLCJyb3V0ZVJlZ2V4cCIsIlJlZ0V4cCIsInBhcnNlIiwidXJsIiwibWF0Y2hlcyIsIm1hdGNoIiwiaSIsInBhcmFtcyIsImxlbmd0aCIsInBhcmFtTmFtZSIsInJvdXRlVG9Db21tYW5kTmFtZSIsImVuZHBvaW50IiwibWV0aG9kIiwiYmFzZVBhdGgiLCJERUZBVUxUX0JBU0VfUEFUSCIsImRzdFJvdXRlIiwiaW5jbHVkZXMiLCJzbGljZSIsImluZGV4T2YiLCJhY3R1YWxFbmRwb2ludCIsInN0YXJ0c1dpdGgiLCJjdXJyZW50Um91dGUiLCJrZXlzIiwibWV0aG9kcyIsImdldCIsInRvVXBwZXIiLCJoYXMiLCJkc3RNZXRob2QiLCJOT19TRVNTSU9OX0lEX0NPTU1BTkRTIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3Byb3RvY29sL3JvdXRlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7dXRpbH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7UFJPVE9DT0xTLCBERUZBVUxUX0JBU0VfUEFUSH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuY29uc3QgU0VUX0FMRVJUX1RFWFRfUEFZTE9BRF9QQVJBTVMgPSB7XG4gIHZhbGlkYXRlOiAoanNvbk9iaikgPT5cbiAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnZhbHVlKSAmJlxuICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudGV4dCkgJiZcbiAgICAnZWl0aGVyIFwidGV4dFwiIG9yIFwidmFsdWVcIiBtdXN0IGJlIHNldCcsXG4gIG9wdGlvbmFsOiBbJ3ZhbHVlJywgJ3RleHQnXSxcbiAgLy8gUHJlZmVyICd2YWx1ZScgc2luY2UgaXQncyBtb3JlIGJhY2t3YXJkLWNvbXBhdGlibGUuXG4gIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW2pzb25PYmoudmFsdWUgfHwganNvbk9iai50ZXh0XSxcbn07XG5cbi8qKlxuICogZGVmaW5lIHRoZSByb3V0ZXMsIG1hcHBpbmcgb2YgSFRUUCBtZXRob2RzIHRvIHBhcnRpY3VsYXIgZHJpdmVyIGNvbW1hbmRzLCBhbmRcbiAqIGFueSBwYXJhbWV0ZXJzIHRoYXQgYXJlIGV4cGVjdGVkIGluIGEgcmVxdWVzdCBwYXJhbWV0ZXJzIGNhbiBiZSBgcmVxdWlyZWRgIG9yXG4gKiBgb3B0aW9uYWxgXG4gKiBAdHlwZSB7TWV0aG9kTWFwfVxuICovXG5jb25zdCBNRVRIT0RfTUFQID0ge1xuICAnL3N0YXR1cyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U3RhdHVzJ30sXG4gIH0sXG4gICcvc2Vzc2lvbic6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnY3JlYXRlU2Vzc2lvbicsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT5cbiAgICAgICAgICAhanNvbk9iai5jYXBhYmlsaXRpZXMgJiZcbiAgICAgICAgICAhanNvbk9iai5kZXNpcmVkQ2FwYWJpbGl0aWVzICYmXG4gICAgICAgICAgJ3dlIHJlcXVpcmUgb25lIG9mIFwiZGVzaXJlZENhcGFiaWxpdGllc1wiIG9yIFwiY2FwYWJpbGl0aWVzXCIgb2JqZWN0JyxcbiAgICAgICAgb3B0aW9uYWw6IFsnZGVzaXJlZENhcGFiaWxpdGllcycsICdyZXF1aXJlZENhcGFiaWxpdGllcycsICdjYXBhYmlsaXRpZXMnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9ucyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U2Vzc2lvbnMnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFNlc3Npb24nfSxcbiAgICBERUxFVEU6IHtjb21tYW5kOiAnZGVsZXRlU2Vzc2lvbid9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90aW1lb3V0cyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0VGltZW91dHMnfSwgLy8gVzNDIHJvdXRlXG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3RpbWVvdXRzJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgdmFsaWRhdGU6IChqc29uT2JqLCBwcm90b2NvbE5hbWUpID0+IHtcbiAgICAgICAgICBpZiAocHJvdG9jb2xOYW1lID09PSBQUk9UT0NPTFMuVzNDKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmouc2NyaXB0KSAmJlxuICAgICAgICAgICAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnBhZ2VMb2FkKSAmJlxuICAgICAgICAgICAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLmltcGxpY2l0KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiAnVzNDIHByb3RvY29sIGV4cGVjdHMgYW55IG9mIHNjcmlwdCwgcGFnZUxvYWQgb3IgaW1wbGljaXQgdG8gYmUgc2V0JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gTUpTT05XUFxuICAgICAgICAgICAgaWYgKCF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudHlwZSkgfHwgIXV0aWwuaGFzVmFsdWUoanNvbk9iai5tcykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuICdNSlNPTldQIHByb3RvY29sIHJlcXVpcmVzIHR5cGUgYW5kIG1zJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbmFsOiBbJ3R5cGUnLCAnbXMnLCAnc2NyaXB0JywgJ3BhZ2VMb2FkJywgJ2ltcGxpY2l0J10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RpbWVvdXRzL2FzeW5jX3NjcmlwdCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2FzeW5jU2NyaXB0VGltZW91dCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydtcyddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RpbWVvdXRzL2ltcGxpY2l0X3dhaXQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdpbXBsaWNpdFdhaXQnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnbXMnXX19LFxuICB9LFxuICAvLyBKU09OV1BcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93X2hhbmRsZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93SGFuZGxlJ30sXG4gIH0sXG4gIC8vIFczQ1xuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvaGFuZGxlJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRXaW5kb3dIYW5kbGUnfSxcbiAgfSxcbiAgLy8gSlNPTldQXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dpbmRvd19oYW5kbGVzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRXaW5kb3dIYW5kbGVzJ30sXG4gIH0sXG4gIC8vIFczQ1xuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvaGFuZGxlcyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93SGFuZGxlcyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC91cmwnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFVybCd9LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0VXJsJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VybCddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2ZvcndhcmQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdmb3J3YXJkJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2JhY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdiYWNrJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3JlZnJlc2gnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdyZWZyZXNoJ30sXG4gIH0sXG4gIC8vIE1KU09OV1BcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZXhlY3V0ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2V4ZWN1dGUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc2NyaXB0JywgJ2FyZ3MnXX19LFxuICB9LFxuICAvLyBNSlNPTldQXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2V4ZWN1dGVfYXN5bmMnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2V4ZWN1dGVBc3luYycsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc2NyaXB0JywgJ2FyZ3MnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2NyZWVuc2hvdCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U2NyZWVuc2hvdCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9pbWUvYXZhaWxhYmxlX2VuZ2luZXMnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2F2YWlsYWJsZUlNRUVuZ2luZXMnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvaW1lL2FjdGl2ZV9lbmdpbmUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEFjdGl2ZUlNRUVuZ2luZSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9pbWUvYWN0aXZhdGVkJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdpc0lNRUFjdGl2YXRlZCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9pbWUvZGVhY3RpdmF0ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2RlYWN0aXZhdGVJTUVFbmdpbmUnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvaW1lL2FjdGl2YXRlJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYWN0aXZhdGVJTUVFbmdpbmUnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnZW5naW5lJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZnJhbWUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRGcmFtZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydpZCddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2ZyYW1lL3BhcmVudCc6IHtcbiAgICBQT1NUOiB7fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRXaW5kb3dIYW5kbGUnfSxcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0V2luZG93JyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgb3B0aW9uYWw6IFsnbmFtZScsICdoYW5kbGUnXSxcbiAgICAgICAgLy8gUmV0dXJuIGJvdGggdmFsdWVzIHRvIG1hdGNoIFczQyBhbmQgSlNPTldQIHByb3RvY29sc1xuICAgICAgICBtYWtlQXJnczogKGpzb25PYmopID0+IHtcbiAgICAgICAgICBpZiAodXRpbC5oYXNWYWx1ZShqc29uT2JqLmhhbmRsZSkgJiYgIXV0aWwuaGFzVmFsdWUoanNvbk9iai5uYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtqc29uT2JqLmhhbmRsZSwganNvbk9iai5oYW5kbGVdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodXRpbC5oYXNWYWx1ZShqc29uT2JqLm5hbWUpICYmICF1dGlsLmhhc1ZhbHVlKGpzb25PYmouaGFuZGxlKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtqc29uT2JqLm5hbWUsIGpzb25PYmoubmFtZV07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBbanNvbk9iai5uYW1lLCBqc29uT2JqLmhhbmRsZV07XG4gICAgICAgIH0sXG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT5cbiAgICAgICAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLm5hbWUpICYmXG4gICAgICAgICAgIXV0aWwuaGFzVmFsdWUoanNvbk9iai5oYW5kbGUpICYmXG4gICAgICAgICAgJ3dlIHJlcXVpcmUgb25lIG9mIFwibmFtZVwiIG9yIFwiaGFuZGxlXCIgdG8gYmUgc2V0JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBERUxFVEU6IHtjb21tYW5kOiAnY2xvc2VXaW5kb3cnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93Lzp3aW5kb3doYW5kbGUvc2l6ZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0V2luZG93U2l6ZSd9LFxuICAgIFBPU1Q6IHt9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvOndpbmRvd2hhbmRsZS9wb3NpdGlvbic6IHtcbiAgICBQT1NUOiB7fSxcbiAgICBHRVQ6IHt9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvOndpbmRvd2hhbmRsZS9tYXhpbWl6ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ21heGltaXplV2luZG93J30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2Nvb2tpZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0Q29va2llcyd9LFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnc2V0Q29va2llJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2Nvb2tpZSddfX0sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ2RlbGV0ZUNvb2tpZXMnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvY29va2llLzpuYW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDb29raWUnfSxcbiAgICBERUxFVEU6IHtjb21tYW5kOiAnZGVsZXRlQ29va2llJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NvdXJjZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0UGFnZVNvdXJjZSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90aXRsZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAndGl0bGUnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnZmluZEVsZW1lbnQnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VzaW5nJywgJ3ZhbHVlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnRzJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdmaW5kRWxlbWVudHMnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VzaW5nJywgJ3ZhbHVlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvYWN0aXZlJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdhY3RpdmUnfSwgLy8gVzNDOiBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyL3dlYmRyaXZlci1zcGVjLmh0bWwjZGZuLWdldC1hY3RpdmUtZWxlbWVudFxuICAgIFBPU1Q6IHtjb21tYW5kOiAnYWN0aXZlJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZCc6IHtcbiAgICBHRVQ6IHt9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvZWxlbWVudCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnZmluZEVsZW1lbnRGcm9tRWxlbWVudCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndXNpbmcnLCAndmFsdWUnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2VsZW1lbnRzJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdmaW5kRWxlbWVudHNGcm9tRWxlbWVudCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndXNpbmcnLCAndmFsdWUnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2NsaWNrJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnY2xpY2snfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL3N1Ym1pdCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3N1Ym1pdCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvdGV4dCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0VGV4dCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvdmFsdWUnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3NldFZhbHVlJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgdmFsaWRhdGU6IChqc29uT2JqKSA9PlxuICAgICAgICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudmFsdWUpICYmXG4gICAgICAgICAgIXV0aWwuaGFzVmFsdWUoanNvbk9iai50ZXh0KSAmJlxuICAgICAgICAgICd3ZSByZXF1aXJlIG9uZSBvZiBcInRleHRcIiBvciBcInZhbHVlXCIgcGFyYW1zJyxcbiAgICAgICAgb3B0aW9uYWw6IFsndmFsdWUnLCAndGV4dCddLFxuICAgICAgICAvLyBvdmVycmlkZSB0aGUgZGVmYXVsdCBhcmd1bWVudCBjb25zdHJ1Y3RvciBiZWNhdXNlIG9mIHRoZSBzcGVjaWFsXG4gICAgICAgIC8vIGxvZ2ljIGhlcmUuIEJhc2ljYWxseSB3ZSB3YW50IHRvIGFjY2VwdCBlaXRoZXIgYSB2YWx1ZSAob2xkIEpTT05XUClcbiAgICAgICAgLy8gb3IgYSB0ZXh0IChuZXcgVzNDKSBwYXJhbWV0ZXIsIGJ1dCBvbmx5IHNlbmQgb25lIG9mIHRoZW0gdG8gdGhlXG4gICAgICAgIC8vIGNvbW1hbmQgKG5vdCBib3RoKS4gUHJlZmVyICd2YWx1ZScgc2luY2UgaXQncyBtb3JlXG4gICAgICAgIC8vIGJhY2t3YXJkLWNvbXBhdGlibGUuXG4gICAgICAgIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW2pzb25PYmoudmFsdWUgfHwganNvbk9iai50ZXh0XSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQva2V5cyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2tleXMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndmFsdWUnXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvbmFtZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0TmFtZSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvY2xlYXInOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdjbGVhcid9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2VsZWN0ZWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2VsZW1lbnRTZWxlY3RlZCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvZW5hYmxlZCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZWxlbWVudEVuYWJsZWQnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2F0dHJpYnV0ZS86bmFtZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0QXR0cmlidXRlJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9lcXVhbHMvOm90aGVySWQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2VxdWFsc0VsZW1lbnQnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL2Rpc3BsYXllZCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZWxlbWVudERpc3BsYXllZCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvbG9jYXRpb24nOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldExvY2F0aW9uJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9sb2NhdGlvbl9pbl92aWV3Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2NhdGlvbkluVmlldyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2l6ZSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0U2l6ZSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2hhZG93Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdlbGVtZW50U2hhZG93Um9vdCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9zaGFkb3cvOnNoYWRvd0lkL2VsZW1lbnQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2ZpbmRFbGVtZW50RnJvbVNoYWRvd1Jvb3QnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3VzaW5nJywgJ3ZhbHVlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NoYWRvdy86c2hhZG93SWQvZWxlbWVudHMnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2ZpbmRFbGVtZW50c0Zyb21TaGFkb3dSb290JyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd1c2luZycsICd2YWx1ZSddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvY3NzLzpwcm9wZXJ0eU5hbWUnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldENzc1Byb3BlcnR5J30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL29yaWVudGF0aW9uJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRPcmllbnRhdGlvbid9LFxuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXRPcmllbnRhdGlvbicsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnb3JpZW50YXRpb24nXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvcm90YXRpb24nOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFJvdGF0aW9uJ30sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdzZXRSb3RhdGlvbicsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd4JywgJ3knLCAneiddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL21vdmV0byc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnbW92ZVRvJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydlbGVtZW50JywgJ3hvZmZzZXQnLCAneW9mZnNldCddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9jbGljayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2NsaWNrQ3VycmVudCcsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydidXR0b24nXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9idXR0b25kb3duJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnYnV0dG9uRG93bicsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydidXR0b24nXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9idXR0b251cCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2J1dHRvblVwJywgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ2J1dHRvbiddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2RvdWJsZWNsaWNrJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnZG91YmxlQ2xpY2snfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvY2xpY2snOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdjbGljaycsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydlbGVtZW50J119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvZG93bic6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvdWNoRG93bicsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd4JywgJ3knXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90b3VjaC91cCc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvdWNoVXAnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsneCcsICd5J119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvbW92ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvdWNoTW92ZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd4JywgJ3knXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC90b3VjaC9zY3JvbGwnOiB7XG4gICAgUE9TVDoge30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RvdWNoL2RvdWJsZWNsaWNrJzoge1xuICAgIFBPU1Q6IHt9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hY3Rpb25zJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncGVyZm9ybUFjdGlvbnMnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnYWN0aW9ucyddfX0sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ3JlbGVhc2VBY3Rpb25zJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3RvdWNoL2xvbmdjbGljayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvdWNoTG9uZ0NsaWNrJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2VsZW1lbnRzJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvZmxpY2snOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2ZsaWNrJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgb3B0aW9uYWw6IFsnZWxlbWVudCcsICd4c3BlZWQnLCAneXNwZWVkJywgJ3hvZmZzZXQnLCAneW9mZnNldCcsICdzcGVlZCddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9sb2NhdGlvbic6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0R2VvTG9jYXRpb24nfSxcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NldEdlb0xvY2F0aW9uJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2xvY2F0aW9uJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9jYWxfc3RvcmFnZSc6IHtcbiAgICBHRVQ6IHt9LFxuICAgIFBPU1Q6IHt9LFxuICAgIERFTEVURToge30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2xvY2FsX3N0b3JhZ2Uva2V5LzprZXknOiB7XG4gICAgR0VUOiB7fSxcbiAgICBERUxFVEU6IHt9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9sb2NhbF9zdG9yYWdlL3NpemUnOiB7XG4gICAgR0VUOiB7fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2Vzc2lvbl9zdG9yYWdlJzoge1xuICAgIEdFVDoge30sXG4gICAgUE9TVDoge30sXG4gICAgREVMRVRFOiB7fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2Vzc2lvbl9zdG9yYWdlL2tleS86a2V5Jzoge1xuICAgIEdFVDoge30sXG4gICAgREVMRVRFOiB7fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2Vzc2lvbl9zdG9yYWdlL3NpemUnOiB7XG4gICAgR0VUOiB7fSxcbiAgfSxcbiAgLy8gU2VsZW5pdW0gNCBjbGllbnRzXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NlL2xvZyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2dldExvZycsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd0eXBlJ119fSxcbiAgfSxcbiAgLy8gU2VsZW5pdW0gNCBjbGllbnRzXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3NlL2xvZy90eXBlcyc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0TG9nVHlwZXMnfSxcbiAgfSxcbiAgLy8gbWpzb253aXJlLCBhcHBpdW0gY2xpZW50c1xuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9sb2cnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdnZXRMb2cnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsndHlwZSddfX0sXG4gIH0sXG4gIC8vIG1qc29ud2lyZSwgYXBwaXVtIGNsaWVudHNcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbG9nL3R5cGVzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRMb2dUeXBlcyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBsaWNhdGlvbl9jYWNoZS9zdGF0dXMnOiB7XG4gICAgR0VUOiB7fSxcbiAgfSxcblxuICAvL1xuICAvLyBtanNvbndpcmVcbiAgLy9cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvY29udGV4dCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0Q3VycmVudENvbnRleHQnfSxcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3NldENvbnRleHQnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnbmFtZSddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2NvbnRleHRzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDb250ZXh0cyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvcGFnZUluZGV4Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRQYWdlSW5kZXgnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvbmV0d29ya19jb25uZWN0aW9uJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXROZXR3b3JrQ29ubmVjdGlvbid9LFxuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXROZXR3b3JrQ29ubmVjdGlvbicsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7dW53cmFwOiAncGFyYW1ldGVycycsIHJlcXVpcmVkOiBbJ3R5cGUnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvcGVyZm9ybSc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncGVyZm9ybVRvdWNoJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHt3cmFwOiAnYWN0aW9ucycsIHJlcXVpcmVkOiBbJ2FjdGlvbnMnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvdG91Y2gvbXVsdGkvcGVyZm9ybSc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncGVyZm9ybU11bHRpQWN0aW9uJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydhY3Rpb25zJ10sIG9wdGlvbmFsOiBbJ2VsZW1lbnRJZCddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9yZWNlaXZlX2FzeW5jX3Jlc3BvbnNlJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdyZWNlaXZlQXN5bmNSZXNwb25zZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc3RhdHVzJywgJ3ZhbHVlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvc2hha2UnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdtb2JpbGVTaGFrZSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3N5c3RlbV90aW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXREZXZpY2VUaW1lJywgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ2Zvcm1hdCddfX0sXG4gICAgUE9TVDoge2NvbW1hbmQ6ICdnZXREZXZpY2VUaW1lJywgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ2Zvcm1hdCddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvbG9jayc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2xvY2snLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnc2Vjb25kcyddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvdW5sb2NrJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndW5sb2NrJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvaXNfbG9ja2VkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnaXNMb2NrZWQnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3N0YXJ0X3JlY29yZGluZ19zY3JlZW4nOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3N0YXJ0UmVjb3JkaW5nU2NyZWVuJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydvcHRpb25zJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9zdG9wX3JlY29yZGluZ19zY3JlZW4nOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3N0b3BSZWNvcmRpbmdTY3JlZW4nLFxuICAgICAgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ29wdGlvbnMnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3BlcmZvcm1hbmNlRGF0YS90eXBlcyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2dldFBlcmZvcm1hbmNlRGF0YVR5cGVzJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9nZXRQZXJmb3JtYW5jZURhdGEnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2dldFBlcmZvcm1hbmNlRGF0YScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ3BhY2thZ2VOYW1lJywgJ2RhdGFUeXBlJ10sXG4gICAgICAgIG9wdGlvbmFsOiBbJ2RhdGFSZWFkVGltZW91dCddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3ByZXNzX2tleWNvZGUnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3ByZXNzS2V5Q29kZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsna2V5Y29kZSddLCBvcHRpb25hbDogWydtZXRhc3RhdGUnLCAnZmxhZ3MnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9sb25nX3ByZXNzX2tleWNvZGUnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2xvbmdQcmVzc0tleUNvZGUnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2tleWNvZGUnXSwgb3B0aW9uYWw6IFsnbWV0YXN0YXRlJywgJ2ZsYWdzJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvZmluZ2VyX3ByaW50Jzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdmaW5nZXJwcmludCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnZmluZ2VycHJpbnRJZCddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3NlbmRfc21zJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZW5kU01TJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydwaG9uZU51bWJlcicsICdtZXNzYWdlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvZ3NtX2NhbGwnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2dzbUNhbGwnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3Bob25lTnVtYmVyJywgJ2FjdGlvbiddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2dzbV9zaWduYWwnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2dzbVNpZ25hbCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT5cbiAgICAgICAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnNpZ25hbFN0cmVuZ3RoKSAmJlxuICAgICAgICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmouc2lnbmFsU3RyZW5naCkgJiZcbiAgICAgICAgICAnd2UgcmVxdWlyZSBvbmUgb2YgXCJzaWduYWxTdHJlbmd0aFwiIG9yIFwic2lnbmFsU3RyZW5naFwiIHBhcmFtcycsXG4gICAgICAgIG9wdGlvbmFsOiBbJ3NpZ25hbFN0cmVuZ3RoJywgJ3NpZ25hbFN0cmVuZ2gnXSxcbiAgICAgICAgLy8gYmFja3dhcmQtY29tcGF0aWJsZS4gc29uT2JqLnNpZ25hbFN0cmVuZ3RoIGNhbiBiZSAwXG4gICAgICAgIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW1xuICAgICAgICAgIHV0aWwuaGFzVmFsdWUoanNvbk9iai5zaWduYWxTdHJlbmd0aCkgPyBqc29uT2JqLnNpZ25hbFN0cmVuZ3RoIDoganNvbk9iai5zaWduYWxTdHJlbmdoLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2dzbV92b2ljZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2dzbVZvaWNlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3N0YXRlJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9wb3dlcl9jYXBhY2l0eSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3Bvd2VyQ2FwYWNpdHknLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsncGVyY2VudCddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvcG93ZXJfYWMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwb3dlckFDJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3N0YXRlJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9uZXR3b3JrX3NwZWVkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnbmV0d29ya1NwZWVkJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ25ldHNwZWVkJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9rZXlldmVudCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAna2V5ZXZlbnQnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ2tleWNvZGUnXSwgb3B0aW9uYWw6IFsnbWV0YXN0YXRlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvcm90YXRlJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdtb2JpbGVSb3RhdGlvbicsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ3gnLCAneScsICdyYWRpdXMnLCAncm90YXRpb24nLCAndG91Y2hDb3VudCcsICdkdXJhdGlvbiddLFxuICAgICAgICBvcHRpb25hbDogWydlbGVtZW50J10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvY3VycmVudF9hY3Rpdml0eSc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0Q3VycmVudEFjdGl2aXR5J30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvY3VycmVudF9wYWNrYWdlJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRDdXJyZW50UGFja2FnZSd9LFxuICB9LFxuICAvL3JlZ2lvbiBBcHBsaWNhdGlvbnMgTWFuYWdlbWVudFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2luc3RhbGxfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdpbnN0YWxsQXBwJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFsnYXBwUGF0aCddLFxuICAgICAgICBvcHRpb25hbDogWydvcHRpb25zJ10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvYWN0aXZhdGVfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdhY3RpdmF0ZUFwcCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbWydhcHBJZCddLCBbJ2J1bmRsZUlkJ11dLFxuICAgICAgICBvcHRpb25hbDogWydvcHRpb25zJ10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvcmVtb3ZlX2FwcCc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncmVtb3ZlQXBwJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFtbJ2FwcElkJ10sIFsnYnVuZGxlSWQnXV0sXG4gICAgICAgIG9wdGlvbmFsOiBbJ29wdGlvbnMnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90ZXJtaW5hdGVfYXBwJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICd0ZXJtaW5hdGVBcHAnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogW1snYXBwSWQnXSwgWydidW5kbGVJZCddXSxcbiAgICAgICAgb3B0aW9uYWw6IFsnb3B0aW9ucyddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2FwcF9pbnN0YWxsZWQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2lzQXBwSW5zdGFsbGVkJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IFtbJ2FwcElkJ10sIFsnYnVuZGxlSWQnXV0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvYXBwX3N0YXRlJzoge1xuICAgIEdFVDoge1xuICAgICAgY29tbWFuZDogJ3F1ZXJ5QXBwU3RhdGUnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogW1snYXBwSWQnXSwgWydidW5kbGVJZCddXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncXVlcnlBcHBTdGF0ZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbWydhcHBJZCddLCBbJ2J1bmRsZUlkJ11dLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAvL2VuZHJlZ2lvblxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2hpZGVfa2V5Ym9hcmQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2hpZGVLZXlib2FyZCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsnc3RyYXRlZ3knLCAna2V5JywgJ2tleUNvZGUnLCAna2V5TmFtZSddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL2lzX2tleWJvYXJkX3Nob3duJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdpc0tleWJvYXJkU2hvd24nfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9wdXNoX2ZpbGUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwdXNoRmlsZScsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydwYXRoJywgJ2RhdGEnXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3B1bGxfZmlsZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3B1bGxGaWxlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3BhdGgnXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3B1bGxfZm9sZGVyJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncHVsbEZvbGRlcicsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydwYXRoJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90b2dnbGVfYWlycGxhbmVfbW9kZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvZ2dsZUZsaWdodE1vZGUnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90b2dnbGVfZGF0YSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvZ2dsZURhdGEnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90b2dnbGVfd2lmaSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ3RvZ2dsZVdpRmknfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS90b2dnbGVfbG9jYXRpb25fc2VydmljZXMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICd0b2dnbGVMb2NhdGlvblNlcnZpY2VzJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2Uvb3Blbl9ub3RpZmljYXRpb25zJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAnb3Blbk5vdGlmaWNhdGlvbnMnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9zdGFydF9hY3Rpdml0eSc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc3RhcnRBY3Rpdml0eScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ2FwcFBhY2thZ2UnLCAnYXBwQWN0aXZpdHknXSxcbiAgICAgICAgb3B0aW9uYWw6IFtcbiAgICAgICAgICAnYXBwV2FpdFBhY2thZ2UnLFxuICAgICAgICAgICdhcHBXYWl0QWN0aXZpdHknLFxuICAgICAgICAgICdpbnRlbnRBY3Rpb24nLFxuICAgICAgICAgICdpbnRlbnRDYXRlZ29yeScsXG4gICAgICAgICAgJ2ludGVudEZsYWdzJyxcbiAgICAgICAgICAnb3B0aW9uYWxJbnRlbnRBcmd1bWVudHMnLFxuICAgICAgICAgICdkb250U3RvcEFwcE9uUmVzZXQnLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3N5c3RlbV9iYXJzJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRTeXN0ZW1CYXJzJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9kZXZpY2UvZGlzcGxheV9kZW5zaXR5Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXREaXNwbGF5RGVuc2l0eSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vc2ltdWxhdG9yL3RvdWNoX2lkJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndG91Y2hJZCcsIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydtYXRjaCddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9zaW11bGF0b3IvdG9nZ2xlX3RvdWNoX2lkX2Vucm9sbG1lbnQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3RvZ2dsZUVucm9sbFRvdWNoSWQnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge29wdGlvbmFsOiBbJ2VuYWJsZWQnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2FwcC9sYXVuY2gnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdsYXVuY2hBcHAnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2FwcC9jbG9zZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2Nsb3NlQXBwJ30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9hcHAvcmVzZXQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdyZXNldCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vYXBwL2JhY2tncm91bmQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdiYWNrZ3JvdW5kJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NlY29uZHMnXX19LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vYXBwL2VuZF90ZXN0X2NvdmVyYWdlJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdlbmRDb3ZlcmFnZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnaW50ZW50JywgJ3BhdGgnXX0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2FwcC9zdHJpbmdzJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdnZXRTdHJpbmdzJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWydsYW5ndWFnZScsICdzdHJpbmdGaWxlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9lbGVtZW50LzplbGVtZW50SWQvdmFsdWUnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3NldFZhbHVlSW1tZWRpYXRlJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtcbiAgICAgICAgdmFsaWRhdGU6IChqc29uT2JqKSA9PlxuICAgICAgICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudmFsdWUpICYmXG4gICAgICAgICAgIXV0aWwuaGFzVmFsdWUoanNvbk9iai50ZXh0KSAmJlxuICAgICAgICAgICd3ZSByZXF1aXJlIG9uZSBvZiBcInRleHRcIiBvciBcInZhbHVlXCIgcGFyYW1zJyxcbiAgICAgICAgb3B0aW9uYWw6IFsndmFsdWUnLCAndGV4dCddLFxuICAgICAgICAvLyBXZSB3YW50IHRvIGVpdGhlciBhIHZhbHVlIChvbGQgSlNPTldQKSBvciBhIHRleHQgKG5ldyBXM0MpIHBhcmFtZXRlcixcbiAgICAgICAgLy8gYnV0IG9ubHkgc2VuZCBvbmUgb2YgdGhlbSB0byB0aGUgY29tbWFuZCAobm90IGJvdGgpLlxuICAgICAgICAvLyBQcmVmZXIgJ3ZhbHVlJyBzaW5jZSBpdCdzIG1vcmUgYmFja3dhcmQtY29tcGF0aWJsZS5cbiAgICAgICAgbWFrZUFyZ3M6IChqc29uT2JqKSA9PiBbanNvbk9iai52YWx1ZSB8fCBqc29uT2JqLnRleHRdLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZWxlbWVudC86ZWxlbWVudElkL3JlcGxhY2VfdmFsdWUnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3JlcGxhY2VWYWx1ZScsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHZhbGlkYXRlOiAoanNvbk9iaikgPT5cbiAgICAgICAgICAhdXRpbC5oYXNWYWx1ZShqc29uT2JqLnZhbHVlKSAmJlxuICAgICAgICAgICF1dGlsLmhhc1ZhbHVlKGpzb25PYmoudGV4dCkgJiZcbiAgICAgICAgICAnd2UgcmVxdWlyZSBvbmUgb2YgXCJ0ZXh0XCIgb3IgXCJ2YWx1ZVwiIHBhcmFtcycsXG4gICAgICAgIG9wdGlvbmFsOiBbJ3ZhbHVlJywgJ3RleHQnXSxcbiAgICAgICAgLy8gV2Ugd2FudCB0byBlaXRoZXIgYSB2YWx1ZSAob2xkIEpTT05XUCkgb3IgYSB0ZXh0IChuZXcgVzNDKSBwYXJhbWV0ZXIsXG4gICAgICAgIC8vIGJ1dCBvbmx5IHNlbmQgb25lIG9mIHRoZW0gdG8gdGhlIGNvbW1hbmQgKG5vdCBib3RoKS5cbiAgICAgICAgLy8gUHJlZmVyICd2YWx1ZScgc2luY2UgaXQncyBtb3JlIGJhY2t3YXJkLWNvbXBhdGlibGUuXG4gICAgICAgIG1ha2VBcmdzOiAoanNvbk9iaikgPT4gW2pzb25PYmoudmFsdWUgPz8ganNvbk9iai50ZXh0ID8/ICcnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL3NldHRpbmdzJzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAndXBkYXRlU2V0dGluZ3MnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnc2V0dGluZ3MnXX19LFxuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRTZXR0aW5ncyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vcmVjZWl2ZV9hc3luY19yZXNwb25zZSc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAncmVjZWl2ZUFzeW5jUmVzcG9uc2UnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3Jlc3BvbnNlJ119LFxuICAgIH0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9ldmVudHMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdnZXRMb2dFdmVudHMnLCBwYXlsb2FkUGFyYW1zOiB7b3B0aW9uYWw6IFsndHlwZSddfX0sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9sb2dfZXZlbnQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ2xvZ0N1c3RvbUV2ZW50JyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWyd2ZW5kb3InLCAnZXZlbnQnXX0sXG4gICAgfSxcbiAgfSxcblxuICAvKlxuICAgKiBUaGUgVzNDIHNwZWMgaGFzIHNvbWUgY2hhbmdlcyB0byB0aGUgd2lyZSBwcm90b2NvbC5cbiAgICogaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci93ZWJkcml2ZXItc3BlYy5odG1sXG4gICAqIEJlZ2luIHRvIGFkZCB0aG9zZSBjaGFuZ2VzIGhlcmUsIGtlZXBpbmcgdGhlIG9sZCB2ZXJzaW9uXG4gICAqIHNpbmNlIGNsaWVudHMgc3RpbGwgaW1wbGVtZW50IHRoZW0uXG4gICAqL1xuICAvLyBNSlNPTldQXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FsZXJ0X3RleHQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEFsZXJ0VGV4dCd9LFxuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXRBbGVydFRleHQnLFxuICAgICAgcGF5bG9hZFBhcmFtczogU0VUX0FMRVJUX1RFWFRfUEFZTE9BRF9QQVJBTVMsXG4gICAgfSxcbiAgfSxcbiAgLy8gTUpTT05XUFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hY2NlcHRfYWxlcnQnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwb3N0QWNjZXB0QWxlcnQnfSxcbiAgfSxcbiAgLy8gTUpTT05XUFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9kaXNtaXNzX2FsZXJ0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncG9zdERpc21pc3NBbGVydCd9LFxuICB9LFxuICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyL3dlYmRyaXZlci1zcGVjLmh0bWwjdXNlci1wcm9tcHRzXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FsZXJ0L3RleHQnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEFsZXJ0VGV4dCd9LFxuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdzZXRBbGVydFRleHQnLFxuICAgICAgcGF5bG9hZFBhcmFtczogU0VUX0FMRVJUX1RFWFRfUEFZTE9BRF9QQVJBTVMsXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYWxlcnQvYWNjZXB0Jzoge1xuICAgIFBPU1Q6IHtjb21tYW5kOiAncG9zdEFjY2VwdEFsZXJ0J30sXG4gIH0sXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2FsZXJ0L2Rpc21pc3MnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdwb3N0RGlzbWlzc0FsZXJ0J30sXG4gIH0sXG4gIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVyLXNwZWMuaHRtbCNnZXQtZWxlbWVudC1yZWN0XG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmVsZW1lbnRJZC9yZWN0Jzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRFbGVtZW50UmVjdCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9leGVjdXRlL3N5bmMnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdleGVjdXRlJywgcGF5bG9hZFBhcmFtczoge3JlcXVpcmVkOiBbJ3NjcmlwdCcsICdhcmdzJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZXhlY3V0ZS9hc3luYyc6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnZXhlY3V0ZUFzeW5jJyxcbiAgICAgIHBheWxvYWRQYXJhbXM6IHtyZXF1aXJlZDogWydzY3JpcHQnLCAnYXJncyddfSxcbiAgICB9LFxuICB9LFxuICAvLyBQcmUtVzNDIGVuZHBvaW50IGZvciBlbGVtZW50IHNjcmVlbnNob3RcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvc2NyZWVuc2hvdC86ZWxlbWVudElkJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRFbGVtZW50U2NyZWVuc2hvdCd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzplbGVtZW50SWQvc2NyZWVuc2hvdCc6IHtcbiAgICBHRVQ6IHtjb21tYW5kOiAnZ2V0RWxlbWVudFNjcmVlbnNob3QnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93L3JlY3QnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldFdpbmRvd1JlY3QnfSxcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0V2luZG93UmVjdCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsneCcsICd5JywgJ3dpZHRoJywgJ2hlaWdodCddfSxcbiAgICB9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvbWF4aW1pemUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdtYXhpbWl6ZVdpbmRvdyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvbWluaW1pemUnOiB7XG4gICAgUE9TVDoge2NvbW1hbmQ6ICdtaW5pbWl6ZVdpbmRvdyd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvZnVsbHNjcmVlbic6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2Z1bGxTY3JlZW5XaW5kb3cnfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2luZG93L25ldyc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2NyZWF0ZU5ld1dpbmRvdycsIHBheWxvYWRQYXJhbXM6IHtvcHRpb25hbDogWyd0eXBlJ119fSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC86ZWxlbWVudElkL3Byb3BlcnR5LzpuYW1lJzoge1xuICAgIEdFVDoge2NvbW1hbmQ6ICdnZXRQcm9wZXJ0eSd9LFxuICB9LFxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC9hcHBpdW0vZGV2aWNlL3NldF9jbGlwYm9hcmQnOiB7XG4gICAgUE9TVDoge1xuICAgICAgY29tbWFuZDogJ3NldENsaXBib2FyZCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ2NvbnRlbnQnXSxcbiAgICAgICAgb3B0aW9uYWw6IFsnY29udGVudFR5cGUnLCAnbGFiZWwnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2RldmljZS9nZXRfY2xpcGJvYXJkJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdnZXRDbGlwYm9hcmQnLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICBvcHRpb25hbDogWydjb250ZW50VHlwZSddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuXG4gIC8vIGNocm9taXVtIGRldnRvb2xzXG4gIC8vIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9tYXN0ZXIvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL3NlcnZlci9odHRwX2hhbmRsZXIuY2NcbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvOnZlbmRvci9jZHAvZXhlY3V0ZSc6IHtcbiAgICBQT1NUOiB7Y29tbWFuZDogJ2V4ZWN1dGVDZHAnLCBwYXlsb2FkUGFyYW1zOiB7cmVxdWlyZWQ6IFsnY21kJywgJ3BhcmFtcyddfX0sXG4gIH0sXG5cbiAgLy9yZWdpb24gV2ViYXV0aG5cbiAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI3NjdG4tYXV0b21hdGlvbi1hZGQtdmlydHVhbC1hdXRoZW50aWNhdG9yXG5cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2ViYXV0aG4vYXV0aGVudGljYXRvcic6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnYWRkVmlydHVhbEF1dGhlbnRpY2F0b3InLFxuICAgICAgcGF5bG9hZFBhcmFtczoge1xuICAgICAgICByZXF1aXJlZDogWydwcm90b2NvbCcsICd0cmFuc3BvcnQnXSxcbiAgICAgICAgb3B0aW9uYWw6IFsnaGFzUmVzaWRlbnRLZXknLCAnaGFzVXNlclZlcmlmaWNhdGlvbicsICdpc1VzZXJDb25zZW50aW5nJywgJ2lzVXNlclZlcmlmaWVkJ10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG5cbiAgJy9zZXNzaW9uLzpzZXNzaW9uSWQvd2ViYXV0aG4vYXV0aGVudGljYXRvci86YXV0aGVudGljYXRvcklkJzoge1xuICAgIERFTEVURToge1xuICAgICAgY29tbWFuZDogJ3JlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yJyxcbiAgICB9LFxuICB9LFxuXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3IvOmF1dGhlbnRpY2F0b3JJZC9jcmVkZW50aWFsJzoge1xuICAgIFBPU1Q6IHtcbiAgICAgIGNvbW1hbmQ6ICdhZGRBdXRoQ3JlZGVudGlhbCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ2NyZWRlbnRpYWxJZCcsICdpc1Jlc2lkZW50Q3JlZGVudGlhbCcsICdycElkJywgJ3ByaXZhdGVLZXknXSxcbiAgICAgICAgb3B0aW9uYWw6IFsndXNlckhhbmRsZScsICdzaWduQ291bnQnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcblxuICAnL3Nlc3Npb24vOnNlc3Npb25JZC93ZWJhdXRobi9hdXRoZW50aWNhdG9yLzphdXRoZW50aWNhdG9ySWQvY3JlZGVudGlhbHMnOiB7XG4gICAgR0VUOiB7Y29tbWFuZDogJ2dldEF1dGhDcmVkZW50aWFsJ30sXG4gICAgREVMRVRFOiB7Y29tbWFuZDogJ3JlbW92ZUFsbEF1dGhDcmVkZW50aWFscyd9LFxuICB9LFxuXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3IvOmF1dGhlbnRpY2F0b3JJZC9jcmVkZW50aWFscy86Y3JlZGVudGlhbElkJzoge1xuICAgIERFTEVURToge2NvbW1hbmQ6ICdyZW1vdmVBdXRoQ3JlZGVudGlhbCd9LFxuICB9LFxuXG4gICcvc2Vzc2lvbi86c2Vzc2lvbklkL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3IvOmF1dGhlbnRpY2F0b3JJZC91dic6IHtcbiAgICBQT1NUOiB7XG4gICAgICBjb21tYW5kOiAnc2V0VXNlckF1dGhWZXJpZmllZCcsXG4gICAgICBwYXlsb2FkUGFyYW1zOiB7XG4gICAgICAgIHJlcXVpcmVkOiBbJ2lzVXNlclZlcmlmaWVkJ10sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG5cbiAgLy9lbmRyZWdpb25cbn07XG5cbi8vIGRyaXZlciBjb21tYW5kIG5hbWVzXG5sZXQgQUxMX0NPTU1BTkRTID0gW107XG5mb3IgKGxldCB2IG9mIF8udmFsdWVzKE1FVEhPRF9NQVApKSB7XG4gIGZvciAobGV0IG0gb2YgXy52YWx1ZXModikpIHtcbiAgICBpZiAobS5jb21tYW5kKSB7XG4gICAgICBBTExfQ09NTUFORFMucHVzaChtLmNvbW1hbmQpO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBSRV9FU0NBUEUgPSAvWy1bXFxde30oKSs/LixcXFxcXiR8I1xcc10vZztcbmNvbnN0IFJFX1BBUkFNID0gLyhbOipdKShcXHcrKS9nO1xuXG5jbGFzcyBSb3V0ZSB7XG4gIGNvbnN0cnVjdG9yKHJvdXRlKSB7XG4gICAgdGhpcy5wYXJhbU5hbWVzID0gW107XG5cbiAgICBsZXQgcmVTdHIgPSByb3V0ZS5yZXBsYWNlKFJFX0VTQ0FQRSwgJ1xcXFwkJicpO1xuICAgIHJlU3RyID0gcmVTdHIucmVwbGFjZShSRV9QQVJBTSwgKF8sIG1vZGUsIG5hbWUpID0+IHtcbiAgICAgIHRoaXMucGFyYW1OYW1lcy5wdXNoKG5hbWUpO1xuICAgICAgcmV0dXJuIG1vZGUgPT09ICc6JyA/ICcoW14vXSopJyA6ICcoLiopJztcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlUmVnZXhwID0gbmV3IFJlZ0V4cChgXiR7cmVTdHJ9JGApO1xuICB9XG5cbiAgcGFyc2UodXJsKSB7XG4gICAgLy9pZiAodXJsLmluZGV4T2YoJ3RpbWVvdXRzJykgIT09IC0xICYmIHRoaXMucm91dGVSZWdleHAudG9TdHJpbmcoKS5pbmRleE9mKCd0aW1lb3V0cycpICE9PSAtMSkge1xuICAgIC8vZGVidWdnZXI7XG4gICAgLy99XG4gICAgbGV0IG1hdGNoZXMgPSB1cmwubWF0Y2godGhpcy5yb3V0ZVJlZ2V4cCk7XG4gICAgaWYgKCFtYXRjaGVzKSByZXR1cm47IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY3VybHlcbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IHBhcmFtcyA9IHt9O1xuICAgIHdoaWxlIChpIDwgdGhpcy5wYXJhbU5hbWVzLmxlbmd0aCkge1xuICAgICAgY29uc3QgcGFyYW1OYW1lID0gdGhpcy5wYXJhbU5hbWVzW2krK107XG4gICAgICBwYXJhbXNbcGFyYW1OYW1lXSA9IG1hdGNoZXNbaV07XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGVuZHBvaW50XG4gKiBAcGFyYW0ge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkhUVFBNZXRob2R9IG1ldGhvZFxuICogQHBhcmFtIHtzdHJpbmd9IFtiYXNlUGF0aF1cbiAqIEByZXR1cm5zIHtzdHJpbmd8dW5kZWZpbmVkfVxuICovXG5mdW5jdGlvbiByb3V0ZVRvQ29tbWFuZE5hbWUoZW5kcG9pbnQsIG1ldGhvZCwgYmFzZVBhdGggPSBERUZBVUxUX0JBU0VfUEFUSCkge1xuICBsZXQgZHN0Um91dGUgPSBudWxsO1xuXG4gIC8vIHJlbW92ZSBhbnkgcXVlcnkgc3RyaW5nXG4gIC8vIFRPRE86IHdvdWxkIHRoaXMgYmUgYmV0dGVyIGhhbmRsZWQgYXMgYSBgVVJMYCBvYmplY3Q/XG4gIGlmIChlbmRwb2ludC5pbmNsdWRlcygnPycpKSB7XG4gICAgZW5kcG9pbnQgPSBlbmRwb2ludC5zbGljZSgwLCBlbmRwb2ludC5pbmRleE9mKCc/JykpO1xuICB9XG5cbiAgY29uc3QgYWN0dWFsRW5kcG9pbnQgPVxuICAgIGVuZHBvaW50ID09PSAnLycgPyAnJyA6IF8uc3RhcnRzV2l0aChlbmRwb2ludCwgJy8nKSA/IGVuZHBvaW50IDogYC8ke2VuZHBvaW50fWA7XG5cbiAgZm9yIChsZXQgY3VycmVudFJvdXRlIG9mIF8ua2V5cyhNRVRIT0RfTUFQKSkge1xuICAgIGNvbnN0IHJvdXRlID0gbmV3IFJvdXRlKGAke2Jhc2VQYXRofSR7Y3VycmVudFJvdXRlfWApO1xuICAgIC8vIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIGFjdHVhbCBzZXNzaW9uIGlkIGZvciBtYXRjaGluZ1xuICAgIGlmIChcbiAgICAgIHJvdXRlLnBhcnNlKGAke2Jhc2VQYXRofS9zZXNzaW9uL2lnbm9yZWQtc2Vzc2lvbi1pZCR7YWN0dWFsRW5kcG9pbnR9YCkgfHxcbiAgICAgIHJvdXRlLnBhcnNlKGAke2Jhc2VQYXRofSR7YWN0dWFsRW5kcG9pbnR9YCkgfHxcbiAgICAgIHJvdXRlLnBhcnNlKGFjdHVhbEVuZHBvaW50KVxuICAgICkge1xuICAgICAgZHN0Um91dGUgPSBjdXJyZW50Um91dGU7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKCFkc3RSb3V0ZSkgcmV0dXJuOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGN1cmx5XG5cbiAgY29uc3QgbWV0aG9kcyA9IF8uZ2V0KE1FVEhPRF9NQVAsIGRzdFJvdXRlKTtcbiAgbWV0aG9kID0gLyoqIEB0eXBlIHtVcHBlcmNhc2U8dHlwZW9mIG1ldGhvZD59ICovIChfLnRvVXBwZXIobWV0aG9kKSk7XG4gIGlmIChfLmhhcyhtZXRob2RzLCBtZXRob2QpKSB7XG4gICAgY29uc3QgZHN0TWV0aG9kID0gXy5nZXQobWV0aG9kcywgbWV0aG9kKTtcbiAgICBpZiAoZHN0TWV0aG9kLmNvbW1hbmQpIHtcbiAgICAgIHJldHVybiBkc3RNZXRob2QuY29tbWFuZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gZHJpdmVyIGNvbW1hbmRzIHRoYXQgZG8gbm90IHJlcXVpcmUgYSBzZXNzaW9uIHRvIGFscmVhZHkgZXhpc3RcbmNvbnN0IE5PX1NFU1NJT05fSURfQ09NTUFORFMgPSBbJ2NyZWF0ZVNlc3Npb24nLCAnZ2V0U3RhdHVzJywgJ2dldFNlc3Npb25zJ107XG5cbmV4cG9ydCB7TUVUSE9EX01BUCwgQUxMX0NPTU1BTkRTLCBOT19TRVNTSU9OX0lEX0NPTU1BTkRTLCByb3V0ZVRvQ29tbWFuZE5hbWV9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJ9IERyaXZlclxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLk1ldGhvZE1hcH0gTWV0aG9kTWFwXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsNkJBQTZCLEdBQUc7RUFDcENDLFFBQVEsRUFBR0MsT0FBRCxJQUNSLENBQUNDLGFBQUEsQ0FBS0MsUUFBTCxDQUFjRixPQUFPLENBQUNHLEtBQXRCLENBQUQsSUFDQSxDQUFDRixhQUFBLENBQUtDLFFBQUwsQ0FBY0YsT0FBTyxDQUFDSSxJQUF0QixDQURELElBRUEsc0NBSmtDO0VBS3BDQyxRQUFRLEVBQUUsQ0FBQyxPQUFELEVBQVUsTUFBVixDQUwwQjtFQU9wQ0MsUUFBUSxFQUFHTixPQUFELElBQWEsQ0FBQ0EsT0FBTyxDQUFDRyxLQUFSLElBQWlCSCxPQUFPLENBQUNJLElBQTFCO0FBUGEsQ0FBdEM7QUFnQkEsTUFBTUcsVUFBVSxHQUFHO0VBQ2pCLFdBQVc7SUFDVEMsR0FBRyxFQUFFO01BQUNDLE9BQU8sRUFBRTtJQUFWO0VBREksQ0FETTtFQUlqQixZQUFZO0lBQ1ZDLElBQUksRUFBRTtNQUNKRCxPQUFPLEVBQUUsZUFETDtNQUVKRSxhQUFhLEVBQUU7UUFDYlosUUFBUSxFQUFHQyxPQUFELElBQ1IsQ0FBQ0EsT0FBTyxDQUFDWSxZQUFULElBQ0EsQ0FBQ1osT0FBTyxDQUFDYSxtQkFEVCxJQUVBLGtFQUpXO1FBS2JSLFFBQVEsRUFBRSxDQUFDLHFCQUFELEVBQXdCLHNCQUF4QixFQUFnRCxjQUFoRDtNQUxHO0lBRlg7RUFESSxDQUpLO0VBZ0JqQixhQUFhO0lBQ1hHLEdBQUcsRUFBRTtNQUFDQyxPQUFPLEVBQUU7SUFBVjtFQURNLENBaEJJO0VBbUJqQix1QkFBdUI7SUFDckJELEdBQUcsRUFBRTtNQUFDQyxPQUFPLEVBQUU7SUFBVixDQURnQjtJQUVyQkssTUFBTSxF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
|
|
@@ -45,4 +45,4 @@ const validators = {
|
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
47
|
exports.validators = validators;
|
|
48
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc051bWJlciIsIm8iLCJfIiwiaXNOYU4iLCJwYXJzZUludCIsInBhcnNlRmxvYXQiLCJtc1ZhbGlkYXRvciIsIm1zIiwiRXJyb3IiLCJ2YWxpZGF0b3JzIiwic2V0VXJsIiwidXJsIiwibWF0Y2giLCJpbXBsaWNpdFdhaXQiLCJhc3luY1NjcmlwdFRpbWVvdXQiLCJjbGlja0N1cnJlbnQiLCJidXR0b24iLCJpc1VuZGVmaW5lZCIsInNldE5ldHdvcmtDb25uZWN0aW9uIiwidHlwZSIsImluZGV4T2YiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvcHJvdG9jb2wvdmFsaWRhdG9ycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5mdW5jdGlvbiBpc051bWJlcihvKSB7XG4gIHJldHVybiBfLmlzTnVtYmVyKG8pIHx8ICFfLmlzTmFOKHBhcnNlSW50KG8sIDEwKSkgfHwgIV8uaXNOYU4ocGFyc2VGbG9hdChvKSk7XG59XG5cbmZ1bmN0aW9uIG1zVmFsaWRhdG9yKG1zKSB7XG4gIGlmICghXy5pc051bWJlcihtcykgfHwgbXMgPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdXYWl0IG1zIG11c3QgYmUgYSBudW1iZXIgZXF1YWwgdG8gMCBvciBncmVhdGVyJyk7XG4gIH1cbn1cblxuY29uc3QgdmFsaWRhdG9ycyA9IHtcbiAgc2V0VXJsOiAodXJsKSA9PiB7XG4gICAgLy8gZWl0aGVyIGFuIGB4eXo6Ly9gLCBgYWJvdXQ6YCwgb3IgYGRhdGE6YCBzY2hlbWUgaXMgYWxsb3dlZFxuICAgIGlmICghdXJsIHx8ICF1cmwubWF0Y2goL14oW2EtekEtWjAtOV8rLi1dKzpcXC9cXC8pfChhYm91dDopfChkYXRhOikvKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVcmwgb3IgVXJpIG11c3Qgc3RhcnQgd2l0aCA8c2NoZW1lPjovLycpO1xuICAgIH1cbiAgfSxcbiAgaW1wbGljaXRXYWl0OiAobXMpID0+IHtcbiAgICBtc1ZhbGlkYXRvcihtcyk7XG4gIH0sXG4gIGFzeW5jU2NyaXB0VGltZW91dDogKG1zKSA9PiB7XG4gICAgbXNWYWxpZGF0b3IobXMpO1xuICB9LFxuICBjbGlja0N1cnJlbnQ6IChidXR0b24pID0+IHtcbiAgICBpZiAoIShpc051bWJlcihidXR0b24pIHx8IF8uaXNVbmRlZmluZWQoYnV0dG9uKSkgfHwgYnV0dG9uIDwgMCB8fCBidXR0b24gPiAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NsaWNrIGJ1dHRvbiBtdXN0IGJlIDAsIDEsIG9yIDInKTtcbiAgICB9XG4gIH0sXG4gIHNldE5ldHdvcmtDb25uZWN0aW9uOiAodHlwZSkgPT4ge1xuICAgIGlmICghaXNOdW1iZXIodHlwZSkgfHwgWzAsIDEsIDIsIDQsIDZdLmluZGV4T2YodHlwZSkgPT09IC0xKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05ldHdvcmsgdHlwZSBtdXN0IGJlIG9uZSBvZiAwLCAxLCAyLCA0LCA2Jyk7XG4gICAgfVxuICB9LFxufTtcblxuZXhwb3J0IHt2YWxpZGF0b3JzfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQSxTQUFTQSxRQUFULENBQWtCQyxDQUFsQixFQUFxQjtFQUNuQixPQUFPQyxlQUFBLENBQUVGLFFBQUYsQ0FBV0MsQ0FBWCxLQUFpQixDQUFDQyxlQUFBLENBQUVDLEtBQUYsQ0FBUUMsUUFBUSxDQUFDSCxDQUFELEVBQUksRUFBSixDQUFoQixDQUFsQixJQUE4QyxDQUFDQyxlQUFBLENBQUVDLEtBQUYsQ0FBUUUsVUFBVSxDQUFDSixDQUFELENBQWxCLENBQXREO0FBQ0Q7O0FBRUQsU0FBU0ssV0FBVCxDQUFxQkMsRUFBckIsRUFBeUI7RUFDdkIsSUFBSSxDQUFDTCxlQUFBLENBQUVGLFFBQUYsQ0FBV08sRUFBWCxDQUFELElBQW1CQSxFQUFFLEdBQUcsQ0FBNUIsRUFBK0I7SUFDN0IsTUFBTSxJQUFJQyxLQUFKLENBQVUsZ0RBQVYsQ0FBTjtFQUNEO0FBQ0Y7O0FBRUQsTUFBTUMsVUFBVSxHQUFHO0VBQ2pCQyxNQUFNLEVBQUdDLEdBQUQsSUFBUztJQUVmLElBQUksQ0FBQ0EsR0FBRCxJQUFRLENBQUNBLEdBQUcsQ0FBQ0MsS0FBSixDQUFVLDJDQUFWLENBQWIsRUFBcUU7TUFDbkUsTUFBTSxJQUFJSixLQUFKLENBQVUsd0NBQVYsQ0FBTjtJQUNEO0VBQ0YsQ0FOZ0I7RUFPakJLLFlBQVksRUFBR04sRUFBRCxJQUFRO0lBQ3BCRCxXQUFXLENBQUNDLEVBQUQsQ0FBWDtFQUNELENBVGdCO0VBVWpCTyxrQkFBa0IsRUFBR1AsRUFBRCxJQUFRO0lBQzFCRCxXQUFXLENBQUNDLEVBQUQsQ0FBWDtFQUNELENBWmdCO0VBYWpCUSxZQUFZLEVBQUdDLE1BQUQsSUFBWTtJQUN4QixJQUFJLEVBQUVoQixRQUFRLENBQUNnQixNQUFELENBQVIsSUFBb0JkLGVBQUEsQ0FBRWUsV0FBRixDQUFjRCxNQUFkLENBQXRCLEtBQWdEQSxNQUFNLEdBQUcsQ0FBekQsSUFBOERBLE1BQU0sR0FBRyxDQUEzRSxFQUE4RTtNQUM1RSxNQUFNLElBQUlSLEtBQUosQ0FBVSxpQ0FBVixDQUFOO0lBQ0Q7RUFDRixDQWpCZ0I7RUFrQmpCVSxvQkFBb0IsRUFBR0MsSUFBRCxJQUFVO0lBQzlCLElBQUksQ0FBQ25CLFFBQVEsQ0FBQ21CLElBQUQsQ0FBVCxJQUFtQixDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLENBQVYsRUFBYSxDQUFiLEVBQWdCQyxPQUFoQixDQUF3QkQsSUFBeEIsTUFBa0MsQ0FBQyxDQUExRCxFQUE2RDtNQUMzRCxNQUFNLElBQUlYLEtBQUosQ0FBVSwyQ0FBVixDQUFOO0lBQ0Q7RUFDRjtBQXRCZ0IsQ0FBbkIifQ==
|
|
@@ -410,4 +410,4 @@ function baseDriverE2ETests(DriverClass, defaultCaps = {}) {
|
|
|
410
410
|
|
|
411
411
|
var _default = baseDriverE2ETests;
|
|
412
412
|
exports.default = _default;
|
|
413
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQT1NUIiwiREVMRVRFIiwiTUVUSE9EUyIsImJhc2VEcml2ZXJFMkVUZXN0cyIsIkRyaXZlckNsYXNzIiwiZGVmYXVsdENhcHMiLCJhZGRyZXNzIiwiVEVTVF9IT1NUIiwicG9ydCIsImNsYXNzTmFtZSIsIm5hbWUiLCJkZXNjcmliZSIsImJhc2VTZXJ2ZXIiLCJkIiwibmV3U2Vzc2lvblVSTCIsImNyZWF0ZUFwcGl1bVRlc3RVUkwiLCJjcmVhdGVTZXNzaW9uVVJMIiwiYmVmb3JlIiwicm91dGVDb25maWd1cmluZ0Z1bmN0aW9uIiwiaG9zdG5hbWUiLCJfIiwiYWZ0ZXIiLCJjbG9zZSIsInN0YXJ0U2Vzc2lvbiIsImNhcHMiLCJ1cmwiLCJtZXRob2QiLCJkYXRhIiwiY2FwYWJpbGl0aWVzIiwiYWx3YXlzTWF0Y2giLCJmaXJzdE1hdGNoIiwidmFsdWUiLCJlbmRTZXNzaW9uIiwiaWQiLCJ2YWxpZGF0ZVN0YXR1cyIsImdldFNlc3Npb24iLCJpdCIsInNlc3Npb25JZHMiLCJ0aW1lcyIsInNlc3Npb25JZCIsImhlYWRlcnMiLCJzaW1wbGUiLCJyZXNvbHZlV2l0aEZ1bGxSZXNwb25zZSIsInB1c2giLCJ1bmlxIiwibGVuZ3RoIiwic2hvdWxkIiwiZXF1YWwiLCJzdGF0dXMiLCJyZXFzIiwiQiIsImFsbCIsIm1hcCIsIngiLCJleGlzdCIsInBsYXRmb3JtTmFtZSIsImRldmljZU5hbWUiLCJza2lwIiwib3JpZ2luYWxGaW5kRWxlbWVudCIsIm9yaWdpbmFsRmluZEVsZW1lbnRzIiwic3RhcnRUaW1lb3V0U2Vzc2lvbiIsInRpbWVvdXQiLCJjbG9uZURlZXAiLCJmaW5kRWxlbWVudCIsImJpbmQiLCJmaW5kRWxlbWVudHMiLCJkZWxheSIsIm5ld1Nlc3Npb24iLCJuZXdDb21tYW5kVGltZW91dE1zIiwiYmUiLCJhYm92ZSIsInNlc3Npb25VUkwiLCJ1c2luZyIsImVycm9yIiwicmVzcCIsInN0YXJ0IiwiRGF0ZSIsIm5vdyIsImVxbCIsIm5vdCIsIm5vQ29tbWFuZFRpbWVyIiwic2V0dGluZ3MiLCJEZXZpY2VTZXR0aW5ncyIsImlnbm9yZVVuaW1wb3J0YW50Vmlld3MiLCJnZXRTZXR0aW5ncyIsImZhbHNlIiwidXBkYXRlIiwicmVqZWN0ZWQiLCJldmVudHVhbGx5IiwicmVqZWN0ZWRXaXRoIiwiX29sZEdldFN0YXR1cyIsImdldFN0YXR1cyIsInJlcVByb21pc2UiLCJzaHV0ZG93bkV2ZW50UHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJzZXRUaW1lb3V0IiwiRXJyb3IiLCJvblVuZXhwZWN0ZWRTaHV0ZG93biIsInN0YXJ0VW5leHBlY3RlZFNodXRkb3duIiwibWVzc2FnZSIsImNvbnRhaW4iLCJzZXNzaW9uIiwicmVzIiwiZXZlbnRzIiwiT2JqZWN0IiwiYXNzaWduIiwibmV3U2Vzc2lvblJlcXVlc3RlZCIsIm5ld1Nlc3Npb25TdGFydGVkIiwiYSIsIkJhc2VEcml2ZXIiLCJyZXQiLCJQUkVGSVhFRF9BUFBJVU1fT1BUU19DQVAiLCJwbGF0Zm9ybVZlcnNpb24iLCJvcHRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9iYXNlZHJpdmVyL2RyaXZlci1lMmUtdGVzdHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJhc2VEcml2ZXIsIHNlcnZlciwgcm91dGVDb25maWd1cmluZ0Z1bmN0aW9uLCBEZXZpY2VTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2xpYic7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IHsgVEVTVF9IT1NULCBnZXRUZXN0UG9ydCwgY3JlYXRlQXBwaXVtVVJMLCBNRVRIT0RTIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgeyBQUkVGSVhFRF9BUFBJVU1fT1BUU19DQVAgfSBmcm9tICcuLi8uLi9saWIvYmFzZWRyaXZlci9jYXBhYmlsaXRpZXMnO1xuY29uc3Qge1BPU1QsIERFTEVURX0gPSBNRVRIT0RTO1xuXG5mdW5jdGlvbiBiYXNlRHJpdmVyRTJFVGVzdHMgKERyaXZlckNsYXNzLCBkZWZhdWx0Q2FwcyA9IHt9KSB7XG4gIGxldCBhZGRyZXNzID0gZGVmYXVsdENhcHNbJ2FwcGl1bTphZGRyZXNzJ10gPz8gVEVTVF9IT1NUO1xuICBsZXQgcG9ydCA9IGRlZmF1bHRDYXBzWydhcHBpdW06cG9ydCddO1xuICBjb25zdCBjbGFzc05hbWUgPSBEcml2ZXJDbGFzcy5uYW1lIHx8ICcodW5rbm93biBkcml2ZXIpJztcblxuICBkZXNjcmliZShgQmFzZURyaXZlciBFMkUgKGFzICR7Y2xhc3NOYW1lfSlgLCBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGJhc2VTZXJ2ZXIsIGQ7XG4gICAgLyoqXG4gICAgICAgKiBUaGlzIFVSTCBjcmVhdGVzIGEgbmV3IHNlc3Npb25cbiAgICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICAgKiovXG4gICAgbGV0IG5ld1Nlc3Npb25VUkw7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgVVJMIHdpdGggYmFzZSBob3N0L3BvcnQuIFN1cHBseSBgc2Vzc2lvbmAgYW5kIGBwYXRobmFtZWBcbiAgICAgKiBAdHlwZSB7Xy5DdXJyaWVkRnVuY3Rpb24yPHN0cmluZyxzdHJpbmcsc3RyaW5nPn1cbiAgICAgKi9cbiAgICBsZXQgY3JlYXRlQXBwaXVtVGVzdFVSTDtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBVUkwgd2l0aCB0aGUgZ2l2ZW4gc2Vzc2lvbiBJRCBhbmQgYSBibGFuayBwYXRobmFtZTtcbiAgICAgKiBlLmcuLCBgaHR0cDovL2Zvby5iYXI6MTIzL3Nlc3Npb24vPHNlc3Npb24taWQ+YFxuICAgICAqICBAdHlwZSB7Xy5DdXJyaWVkRnVuY3Rpb24xPHN0cmluZyxzdHJpbmc+fVxuICAgICAqL1xuICAgIGxldCBjcmVhdGVTZXNzaW9uVVJMO1xuXG4gICAgYmVmb3JlKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIHBvcnQgPSBwb3J0ID8/IGF3YWl0IGdldFRlc3RQb3J0KCk7XG4gICAgICBkZWZhdWx0Q2FwcyA9IHsuLi5kZWZhdWx0Q2FwcywgJ2FwcGl1bTpwb3J0JzogcG9ydH07XG4gICAgICBkID0gbmV3IERyaXZlckNsYXNzKHtwb3J0LCBhZGRyZXNzfSk7XG4gICAgICBiYXNlU2VydmVyID0gYXdhaXQgc2VydmVyKHtcbiAgICAgICAgcm91dGVDb25maWd1cmluZ0Z1bmN0aW9uOiByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24oZCksXG4gICAgICAgIHBvcnQsXG4gICAgICAgIGhvc3RuYW1lOiBURVNUX0hPU1RcbiAgICAgIH0pO1xuICAgICAgY3JlYXRlQXBwaXVtVGVzdFVSTCA9IGNyZWF0ZUFwcGl1bVVSTChhZGRyZXNzLCBwb3J0KTtcbiAgICAgIG5ld1Nlc3Npb25VUkwgPSBjcmVhdGVBcHBpdW1UZXN0VVJMKCcnLCAnc2Vzc2lvbicpO1xuICAgICAgY3JlYXRlU2Vzc2lvblVSTCA9IGNyZWF0ZUFwcGl1bVRlc3RVUkwoXywgJycpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXIoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQgYmFzZVNlcnZlci5jbG9zZSgpO1xuICAgIH0pO1xuXG4gICAgYXN5bmMgZnVuY3Rpb24gc3RhcnRTZXNzaW9uIChjYXBzKSB7XG4gICAgICByZXR1cm4gKGF3YWl0IGF4aW9zKHtcbiAgICAgICAgdXJsOiBuZXdTZXNzaW9uVVJMLFxuICAgICAgICBtZXRob2Q6IFBPU1QsXG4gICAgICAgIGRhdGE6IHtjYXBhYmlsaXRpZXM6IHthbHdheXNNYXRjaDogY2FwcywgZmlyc3RNYXRjaDogW3t9XX19LFxuICAgICAgfSkpLmRhdGEudmFsdWU7XG4gICAgfVxuXG4gICAgYXN5bmMgZnVuY3Rpb24gZW5kU2Vzc2lvbiAoaWQpIHtcbiAgICAgIHJldHVybiAoYXdhaXQgYXhpb3Moe1xuICAgICAgICB1cmw6IGNyZWF0ZVNlc3Npb25VUkwoaWQpLFxuICAgICAgICBtZXRob2Q6IERFTEVURSxcbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6IG51bGwsXG4gICAgICB9KSkuZGF0YS52YWx1ZTtcbiAgICB9XG5cbiAgICBhc3luYyBmdW5jdGlvbiBnZXRTZXNzaW9uIChpZCkge1xuICAgICAgcmV0dXJuIChhd2FpdCBheGlvcyh7XG4gICAgICAgIHVybDogY3JlYXRlU2Vzc2lvblVSTChpZCksXG4gICAgICB9KSkuZGF0YS52YWx1ZTtcbiAgICB9XG5cbiAgICBkZXNjcmliZSgnc2Vzc2lvbiBoYW5kbGluZycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGl0KCdzaG91bGQgaGFuZGxlIGlkZW1wb3RlbmN5IHdoaWxlIGNyZWF0aW5nIHNlc3Npb25zJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBzZXNzaW9uSWRzID0gW107XG4gICAgICAgIGxldCB0aW1lcyA9IDA7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICBjb25zdCB7c2Vzc2lvbklkfSA9IChhd2FpdCBheGlvcyh7XG4gICAgICAgICAgICB1cmw6IG5ld1Nlc3Npb25VUkwsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICdYLUlkZW1wb3RlbmN5LUtleSc6ICcxMjM0NTYnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1ldGhvZDogUE9TVCxcbiAgICAgICAgICAgIGRhdGE6IHtjYXBhYmlsaXRpZXM6IHthbHdheXNNYXRjaDogZGVmYXVsdENhcHMsIGZpcnN0TWF0Y2g6IFt7fV19fSxcbiAgICAgICAgICAgIHNpbXBsZTogZmFsc2UsXG4gICAgICAgICAgICByZXNvbHZlV2l0aEZ1bGxSZXNwb25zZTogdHJ1ZVxuICAgICAgICAgIH0pKS5kYXRhLnZhbHVlO1xuXG4gICAgICAgICAgc2Vzc2lvbklkcy5wdXNoKHNlc3Npb25JZCk7XG4gICAgICAgICAgdGltZXMrKztcbiAgICAgICAgfSB3aGlsZSAodGltZXMgPCAyKTtcbiAgICAgICAgXy51bmlxKHNlc3Npb25JZHMpLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG5cbiAgICAgICAgY29uc3Qge3N0YXR1cywgZGF0YX0gPSBhd2FpdCBheGlvcyh7XG4gICAgICAgICAgdXJsOiBjcmVhdGVTZXNzaW9uVVJMKHNlc3Npb25JZHNbMF0pLFxuICAgICAgICAgIG1ldGhvZDogREVMRVRFLFxuICAgICAgICB9KTtcbiAgICAgICAgc3RhdHVzLnNob3VsZC5lcXVhbCgyMDApO1xuICAgICAgICBzaG91bGQuZXF1YWwoZGF0YS52YWx1ZSwgbnVsbCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgaWRlbXBvdGVuY3kgd2hpbGUgY3JlYXRpbmcgcGFyYWxsZWwgc2Vzc2lvbnMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHJlcXMgPSBbXTtcbiAgICAgICAgbGV0IHRpbWVzID0gMDtcbiAgICAgICAgZG8ge1xuICAgICAgICAgIHJlcXMucHVzaChheGlvcyh7XG4gICAgICAgICAgICB1cmw6IG5ld1Nlc3Npb25VUkwsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICdYLUlkZW1wb3RlbmN5LUtleSc6ICcxMjM0NScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbWV0aG9kOiBQT1NULFxuICAgICAgICAgICAgZGF0YToge2NhcGFiaWxpdGllczoge2Fsd2F5c01hdGNoOiBkZWZhdWx0Q2FwcywgZmlyc3RNYXRjaDogW3t9XX19LFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICB0aW1lcysrO1xuICAgICAgICB9IHdoaWxlICh0aW1lcyA8IDIpO1xuICAgICAgICBjb25zdCBzZXNzaW9uSWRzID0gKGF3YWl0IEIuYWxsKHJlcXMpKS5tYXAoKHgpID0+IHguZGF0YS52YWx1ZS5zZXNzaW9uSWQpO1xuICAgICAgICBfLnVuaXEoc2Vzc2lvbklkcykubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcblxuICAgICAgICBjb25zdCB7c3RhdHVzLCBkYXRhfSA9IGF3YWl0IGF4aW9zKHtcbiAgICAgICAgICB1cmw6IGNyZWF0ZVNlc3Npb25VUkwoc2Vzc2lvbklkc1swXSksXG4gICAgICAgICAgbWV0aG9kOiBERUxFVEUsXG4gICAgICAgIH0pO1xuICAgICAgICBzdGF0dXMuc2hvdWxkLmVxdWFsKDIwMCk7XG4gICAgICAgIHNob3VsZC5lcXVhbChkYXRhLnZhbHVlLCBudWxsKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBzZXNzaW9uIGFuZCByZXRyaWV2ZSBhIHNlc3Npb24gaWQsIHRoZW4gZGVsZXRlIGl0JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBsZXQge3N0YXR1cywgZGF0YX0gPSBhd2FpdCBheGlvcyh7XG4gICAgICAgICAgdXJsOiBuZXdTZXNzaW9uVVJMLFxuICAgICAgICAgIG1ldGhvZDogUE9TVCxcbiAgICAgICAgICBkYXRhOiB7Y2FwYWJpbGl0aWVzOiB7YWx3YXlzTWF0Y2g6IGRlZmF1bHRDYXBzLCBmaXJzdE1hdGNoOiBbe31dfX0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN0YXR1cy5zaG91bGQuZXF1YWwoMjAwKTtcbiAgICAgICAgc2hvdWxkLmV4aXN0KGRhdGEudmFsdWUuc2Vzc2lvbklkKTtcbiAgICAgICAgZGF0YS52YWx1ZS5jYXBhYmlsaXRpZXMucGxhdGZvcm1OYW1lLnNob3VsZC5lcXVhbChkZWZhdWx0Q2Fwcy5wbGF0Zm9ybU5hbWUpO1xuICAgICAgICBkYXRhLnZhbHVlLmNhcGFiaWxpdGllcy5kZXZpY2VOYW1lLnNob3VsZC5lcXVhbChkZWZhdWx0Q2Fwc1snYXBwaXVtOmRldmljZU5hbWUnXSk7XG5cbiAgICAgICAgKHtzdGF0dXMsIGRhdGF9ID0gYXdhaXQgYXhpb3Moe1xuICAgICAgICAgIHVybDogY3JlYXRlU2Vzc2lvblVSTChkLnNlc3Npb25JZCksXG4gICAgICAgICAgbWV0aG9kOiBERUxFVEUsXG4gICAgICAgIH0pKTtcblxuICAgICAgICBzdGF0dXMuc2hvdWxkLmVxdWFsKDIwMCk7XG4gICAgICAgIHNob3VsZC5lcXVhbChkYXRhLnZhbHVlLCBudWxsKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKGQuc2Vzc2lvbklkLCBudWxsKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQuc2tpcCgnc2hvdWxkIHRocm93IE5ZSSBmb3IgY29tbWFuZHMgbm90IGltcGxlbWVudGVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2NvbW1hbmQgdGltZW91dHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBsZXQgb3JpZ2luYWxGaW5kRWxlbWVudCwgb3JpZ2luYWxGaW5kRWxlbWVudHM7XG5cbiAgICAgIGFzeW5jIGZ1bmN0aW9uIHN0YXJ0VGltZW91dFNlc3Npb24gKHRpbWVvdXQpIHtcbiAgICAgICAgY29uc3QgY2FwcyA9IF8uY2xvbmVEZWVwKGRlZmF1bHRDYXBzKTtcbiAgICAgICAgY2Fwc1snYXBwaXVtOm5ld0NvbW1hbmRUaW1lb3V0J10gPSB0aW1lb3V0O1xuICAgICAgICByZXR1cm4gYXdhaXQgc3RhcnRTZXNzaW9uKGNhcHMpO1xuICAgICAgfVxuXG4gICAgICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgICAgICBvcmlnaW5hbEZpbmRFbGVtZW50ID0gZC5maW5kRWxlbWVudDtcbiAgICAgICAgZC5maW5kRWxlbWVudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gJ2Zvbyc7XG4gICAgICAgIH0uYmluZChkKTtcblxuICAgICAgICBvcmlnaW5hbEZpbmRFbGVtZW50cyA9IGQuZmluZEVsZW1lbnRzO1xuICAgICAgICBkLmZpbmRFbGVtZW50cyA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBhd2FpdCBCLmRlbGF5KDIwMCk7XG4gICAgICAgICAgcmV0dXJuIFsnZm9vJ107XG4gICAgICAgIH0uYmluZChkKTtcbiAgICAgIH0pO1xuXG4gICAgICBhZnRlcihmdW5jdGlvbiAoKSB7XG4gICAgICAgIGQuZmluZEVsZW1lbnQgPSBvcmlnaW5hbEZpbmRFbGVtZW50O1xuICAgICAgICBkLmZpbmRFbGVtZW50cyA9IG9yaWdpbmFsRmluZEVsZW1lbnRzO1xuICAgICAgfSk7XG5cblxuICAgICAgaXQoJ3Nob3VsZCBzZXQgYSBkZWZhdWx0IGNvbW1hbmRUaW1lb3V0JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBsZXQgbmV3U2Vzc2lvbiA9IGF3YWl0IHN0YXJ0VGltZW91dFNlc3Npb24oKTtcbiAgICAgICAgZC5uZXdDb21tYW5kVGltZW91dE1zLnNob3VsZC5iZS5hYm92ZSgwKTtcbiAgICAgICAgYXdhaXQgZW5kU2Vzc2lvbihuZXdTZXNzaW9uLnNlc3Npb25JZCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCB0aW1lb3V0IG9uIGNvbW1hbmRzIHVzaW5nIGNvbW1hbmRUaW1lb3V0IGNhcCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGV0IG5ld1Nlc3Npb24gPSBhd2FpdCBzdGFydFRpbWVvdXRTZXNzaW9uKDAuMjUpO1xuICAgICAgICAvLyBYWFg6IHJhY2UgY29uZGl0aW9uOiB3ZSBtdXN0IGJ1aWxkIHRoaXMgVVJMIGJlZm9yZSAuLi5zb21ldGhpbmcgaGFwcGVucy4uLlxuICAgICAgICAvLyB3aGljaCBjYXVzZXMgYGQuc2Vzc2lvbklkYCB0byBiZSBtaXNzaW5nXG4gICAgICAgIGxldCBzZXNzaW9uVVJMID0gY3JlYXRlU2Vzc2lvblVSTChkLnNlc3Npb25JZCk7XG4gICAgICAgIGF3YWl0IGF4aW9zKHtcbiAgICAgICAgICB1cmw6IGNyZWF0ZUFwcGl1bVRlc3RVUkwoZC5zZXNzaW9uSWQsICdlbGVtZW50JyksXG4gICAgICAgICAgbWV0aG9kOiBQT1NULFxuICAgICAgICAgIGRhdGE6IHt1c2luZzogJ25hbWUnLCB2YWx1ZTogJ2Zvbyd9LFxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgQi5kZWxheSg0MDApO1xuICAgICAgICBjb25zdCB7ZGF0YX0gPSBhd2FpdCBheGlvcyh7XG4gICAgICAgICAgdXJsOiBzZXNzaW9uVVJMLFxuICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKGRhdGEudmFsdWUuZXJyb3IsICdpbnZhbGlkIHNlc3Npb24gaWQnKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKGQuc2Vzc2lvbklkLCBudWxsKTtcbiAgICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IGVuZFNlc3Npb24obmV3U2Vzc2lvbi5zZXNzaW9uSWQpO1xuICAgICAgICBzaG91bGQuZXF1YWwocmVzcC5lcnJvciwgJ2ludmFsaWQgc2Vzc2lvbiBpZCcpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgbm90IHRpbWVvdXQgd2l0aCBjb21tYW5kVGltZW91dCBvZiBmYWxzZScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGV0IG5ld1Nlc3Npb24gPSBhd2FpdCBzdGFydFRpbWVvdXRTZXNzaW9uKDAuMSk7XG4gICAgICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgICAgIGNvbnN0IHt2YWx1ZX0gPSAoYXdhaXQgYXhpb3Moe1xuICAgICAgICAgIHVybDogY3JlYXRlQXBwaXVtVGVzdFVSTChkLnNlc3Npb25JZCwgJ2VsZW1lbnRzJyksXG4gICAgICAgICAgbWV0aG9kOiBQT1NULFxuICAgICAgICAgIGRhdGE6IHt1c2luZzogJ25hbWUnLCB2YWx1ZTogJ2Zvbyd9LFxuICAgICAgICB9KSkuZGF0YTtcbiAgICAgICAgKERhdGUubm93KCkgLSBzdGFydCkuc2hvdWxkLmJlLmFib3ZlKDE1MCk7XG4gICAgICAgIHZhbHVlLnNob3VsZC5lcWwoWydmb28nXSk7XG4gICAgICAgIGF3YWl0IGVuZFNlc3Npb24obmV3U2Vzc2lvbi5zZXNzaW9uSWQpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgbm90IHRpbWVvdXQgd2l0aCBjb21tYW5kVGltZW91dCBvZiAwJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBkLm5ld0NvbW1hbmRUaW1lb3V0TXMgPSAyO1xuICAgICAgICBsZXQgbmV3U2Vzc2lvbiA9IGF3YWl0IHN0YXJ0VGltZW91dFNlc3Npb24oMCk7XG5cbiAgICAgICAgYXdhaXQgYXhpb3Moe1xuICAgICAgICAgIHVybDogY3JlYXRlQXBwaXVtVGVzdFVSTChkLnNlc3Npb25JZCwgJ2VsZW1lbnQnKSxcbiAgICAgICAgICBtZXRob2Q6IFBPU1QsXG4gICAgICAgICAgZGF0YToge3VzaW5nOiAnbmFtZScsIHZhbHVlOiAnZm9vJ30sXG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCBCLmRlbGF5KDQwMCk7XG4gICAgICAgIGNvbnN0IHt2YWx1ZX0gPSAoYXdhaXQgYXhpb3Moe1xuICAgICAgICAgIHVybDogY3JlYXRlU2Vzc2lvblVSTChkLnNlc3Npb25JZCksXG4gICAgICAgIH0pKS5kYXRhO1xuICAgICAgICB2YWx1ZS5wbGF0Zm9ybU5hbWUuc2hvdWxkLmVxdWFsKGRlZmF1bHRDYXBzLnBsYXRmb3JtTmFtZSk7XG4gICAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBlbmRTZXNzaW9uKG5ld1Nlc3Npb24uc2Vzc2lvbklkKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHJlc3AsIG51bGwpO1xuXG4gICAgICAgIGQubmV3Q29tbWFuZFRpbWVvdXRNcyA9IDYwICogMTAwMDtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIG5vdCB0aW1lb3V0IGlmIGl0cyBqdXN0IHRoZSBjb21tYW5kIHRha2luZyBhd2hpbGUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBuZXdTZXNzaW9uID0gYXdhaXQgc3RhcnRUaW1lb3V0U2Vzc2lvbigwLjI1KTtcbiAgICAgICAgLy8gWFhYOiByYWNlIGNvbmRpdGlvbjogd2UgbXVzdCBidWlsZCB0aGlzIFVSTCBiZWZvcmUgLi4uc29tZXRoaW5nIGhhcHBlbnMuLi5cbiAgICAgICAgLy8gd2hpY2ggY2F1c2VzIGBkLnNlc3Npb25JZGAgdG8gYmUgbWlzc2luZ1xuICAgICAgICBsZXQgc2Vzc2lvblVSTCA9IGNyZWF0ZVNlc3Npb25VUkwoZC5zZXNzaW9uSWQpO1xuICAgICAgICBhd2FpdCBheGlvcyh7XG4gICAgICAgICAgdXJsOiBjcmVhdGVBcHBpdW1UZXN0VVJMKGQuc2Vzc2lvbklkLCAnZWxlbWVudCcpLFxuICAgICAgICAgIG1ldGhvZDogUE9TVCxcbiAgICAgICAgICBkYXRhOiB7dXNpbmc6ICduYW1lJywgdmFsdWU6ICdmb28nfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IEIuZGVsYXkoNDAwKTtcbiAgICAgICAgY29uc3Qge3ZhbHVlfSA9IChhd2FpdCBheGlvcyh7XG4gICAgICAgICAgdXJsOiBzZXNzaW9uVVJMLFxuICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiBudWxsLFxuICAgICAgICB9KSkuZGF0YTtcbiAgICAgICAgdmFsdWUuZXJyb3Iuc2hvdWxkLmVxdWFsKCdpbnZhbGlkIHNlc3Npb24gaWQnKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKGQuc2Vzc2lvbklkLCBudWxsKTtcbiAgICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IGVuZFNlc3Npb24obmV3U2Vzc2lvbi5zZXNzaW9uSWQpO1xuICAgICAgICByZXNwLmVycm9yLnNob3VsZC5lcXVhbCgnaW52YWxpZCBzZXNzaW9uIGlkJyk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBub3QgaGF2ZSBhIHRpbWVyIHJ1bm5pbmcgYmVmb3JlIG9yIGFmdGVyIGEgc2Vzc2lvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc2hvdWxkLm5vdC5leGlzdChkLm5vQ29tbWFuZFRpbWVyKTtcbiAgICAgICAgbGV0IG5ld1Nlc3Npb24gPSBhd2FpdCBzdGFydFRpbWVvdXRTZXNzaW9uKDAuMjUpO1xuICAgICAgICBuZXdTZXNzaW9uLnNlc3Npb25JZC5zaG91bGQuZXF1YWwoZC5zZXNzaW9uSWQpO1xuICAgICAgICBzaG91bGQuZXhpc3QoZC5ub0NvbW1hbmRUaW1lcik7XG4gICAgICAgIGF3YWl0IGVuZFNlc3Npb24obmV3U2Vzc2lvbi5zZXNzaW9uSWQpO1xuICAgICAgICBzaG91bGQubm90LmV4aXN0KGQubm9Db21tYW5kVGltZXIpO1xuICAgICAgfSk7XG5cbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdzZXR0aW5ncyBhcGknLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgICAgICBkLnNldHRpbmdzID0gbmV3IERldmljZVNldHRpbmdzKHtpZ25vcmVVbmltcG9ydGFudFZpZXdzOiBmYWxzZX0pO1xuICAgICAgfSk7XG4gICAgICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gZ2V0IHNldHRpbmdzIG9iamVjdCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZC5zZXR0aW5ncy5nZXRTZXR0aW5ncygpLmlnbm9yZVVuaW1wb3J0YW50Vmlld3Muc2hvdWxkLmJlLmZhbHNlO1xuICAgICAgfSk7XG4gICAgICBpdCgnc2hvdWxkIG5vdCByZWplY3Qgd2hlbiBgdXBkYXRlU2V0dGluZ3NgIG1ldGhvZCBpcyBub3QgcHJvdmlkZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGF3YWl0IGQuc2V0dGluZ3MudXBkYXRlKHtpZ25vcmVVbmltcG9ydGFudFZpZXdzOiB0cnVlfSkuc2hvdWxkLm5vdC5iZS5yZWplY3RlZDtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3Nob3VsZCByZWplY3QgZm9yIGludmFsaWQgdXBkYXRlIG9iamVjdCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXdhaXQgZC5zZXR0aW5ncy51cGRhdGUoJ2ludmFsaWQganNvbicpLnNob3VsZC5ldmVudHVhbGx5XG4gICAgICAgICAgICAgICAgLmJlLnJlamVjdGVkV2l0aCgnSlNPTicpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgndW5leHBlY3RlZCBleGl0cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGl0KCdzaG91bGQgcmVqZWN0IGEgY3VycmVudCBjb21tYW5kIHdoZW4gdGhlIGRyaXZlciBjcmFzaGVzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBkLl9vbGRHZXRTdGF0dXMgPSBkLmdldFN0YXR1cztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBkLmdldFN0YXR1cyA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGF3YWl0IEIuZGVsYXkoNTAwMCk7XG4gICAgICAgICAgfS5iaW5kKGQpO1xuICAgICAgICAgIGNvbnN0IHJlcVByb21pc2UgPSBheGlvcyh7XG4gICAgICAgICAgICB1cmw6IGNyZWF0ZUFwcGl1bVRlc3RVUkwoJycsICdzdGF0dXMnKSxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiBudWxsLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSByZXF1ZXN0IGdldHMgdG8gdGhlIHNlcnZlciBiZWZvcmUgb3VyIHNodXRkb3duXG4gICAgICAgICAgYXdhaXQgQi5kZWxheSgxMDApO1xuICAgICAgICAgIGNvbnN0IHNodXRkb3duRXZlbnRQcm9taXNlID0gbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QobmV3IEVycm9yKCdvblVuZXhwZWN0ZWRTaHV0ZG93biBldmVudCBpcyBleHBlY3RlZCB0byBiZSBmaXJlZCB3aXRoaW4gNSBzZWNvbmRzIHRpbWVvdXQnKSksIDUwMDApO1xuICAgICAgICAgICAgZC5vblVuZXhwZWN0ZWRTaHV0ZG93bihyZXNvbHZlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBkLnN0YXJ0VW5leHBlY3RlZFNodXRkb3duKG5ldyBFcnJvcignQ3Jhc2h5dGltZXMnKSk7XG4gICAgICAgICAgY29uc3Qge3ZhbHVlfSA9IChhd2FpdCByZXFQcm9taXNlKS5kYXRhO1xuICAgICAgICAgIHZhbHVlLm1lc3NhZ2Uuc2hvdWxkLmNvbnRhaW4oJ0NyYXNoeXRpbWVzJyk7XG4gICAgICAgICAgYXdhaXQgc2h1dGRvd25FdmVudFByb21pc2U7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgZC5nZXRTdGF0dXMgPSBkLl9vbGRHZXRTdGF0dXM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2V2ZW50IHRpbWluZ3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpdCgnc2hvdWxkIG5vdCBhZGQgdGltaW5ncyBpZiBub3QgdXNpbmcgb3B0LWluIGNhcCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHN0YXJ0U2Vzc2lvbihkZWZhdWx0Q2Fwcyk7XG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGdldFNlc3Npb24oc2Vzc2lvbi5zZXNzaW9uSWQpO1xuICAgICAgICBzaG91bGQubm90LmV4aXN0KHJlcy5ldmVudHMpO1xuICAgICAgICBhd2FpdCBlbmRTZXNzaW9uKHNlc3Npb24uc2Vzc2lvbklkKTtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3Nob3VsZCBhZGQgc3RhcnQgc2Vzc2lvbiB0aW1pbmdzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBjYXBzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdENhcHMsIHsnYXBwaXVtOmV2ZW50VGltaW5ncyc6IHRydWV9KTtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHN0YXJ0U2Vzc2lvbihjYXBzKTtcbiAgICAgICAgY29uc3QgcmVzID0gKGF3YWl0IGdldFNlc3Npb24oc2Vzc2lvbi5zZXNzaW9uSWQpKTtcbiAgICAgICAgc2hvdWxkLmV4aXN0KHJlcy5ldmVudHMpO1xuICAgICAgICBzaG91bGQuZXhpc3QocmVzLmV2ZW50cy5uZXdTZXNzaW9uUmVxdWVzdGVkKTtcbiAgICAgICAgc2hvdWxkLmV4aXN0KHJlcy5ldmVudHMubmV3U2Vzc2lvblN0YXJ0ZWQpO1xuICAgICAgICByZXMuZXZlbnRzLm5ld1Nlc3Npb25SZXF1ZXN0ZWRbMF0uc2hvdWxkLmJlLmEoJ251bWJlcicpO1xuICAgICAgICByZXMuZXZlbnRzLm5ld1Nlc3Npb25TdGFydGVkWzBdLnNob3VsZC5iZS5hKCdudW1iZXInKTtcbiAgICAgICAgYXdhaXQgZW5kU2Vzc2lvbihzZXNzaW9uLnNlc3Npb25JZCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGlmIChEcml2ZXJDbGFzcyA9PT0gQmFzZURyaXZlcikge1xuICAgICAgLy8gb25seSBydW4gdGhpcyB0ZXN0IG9uIGJhc2Vkcml2ZXIsIG5vdCBvdGhlciBkcml2ZXJzIHdoaWNoIGFsc28gdXNlIHRoZXNlIHRlc3RzLCBzaW5jZSB3ZVxuICAgICAgLy8gZG9uJ3Qgd2FudCB0aGVtIHRvIHRyeSBhbmQgc3RhcnQgc2Vzc2lvbnMgd2l0aCB0aGVzZSByYW5kb20gY2FwYWJpbGl0aWVzIHRoYXQgYXJlXG4gICAgICAvLyBuZWNlc3NhcnkgdG8gdGVzdCB0aGUgYXBwaXVtIG9wdGlvbnMgbG9naWNcbiAgICAgIGRlc2NyaWJlKCdzcGVjaWFsIGFwcGl1bTpvcHRpb25zIGNhcGFiaWxpdHknLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0byBzdGFydCBhIHNlc3Npb24gd2l0aCBjYXBzIGhlbGQgaW4gYXBwaXVtOm9wdGlvbnMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY29uc3QgcmV0ID0gYXdhaXQgc3RhcnRTZXNzaW9uKHtcbiAgICAgICAgICAgIHBsYXRmb3JtTmFtZTogJ2lPUycsXG4gICAgICAgICAgICBbUFJFRklYRURfQVBQSVVNX09QVFNfQ0FQXToge1xuICAgICAgICAgICAgICBwbGF0Zm9ybVZlcnNpb246ICcxMS40JyxcbiAgICAgICAgICAgICAgJ2FwcGl1bTpkZXZpY2VOYW1lJzogJ2lQaG9uZSAxMScsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZC5vcHRzLnBsYXRmb3JtVmVyc2lvbi5zaG91bGQuZXFsKCcxMS40Jyk7XG4gICAgICAgICAgZC5vcHRzLmRldmljZU5hbWUuc2hvdWxkLmVxbCgnaVBob25lIDExJyk7XG4gICAgICAgICAgYXdhaXQgZW5kU2Vzc2lvbihyZXQuc2Vzc2lvbklkKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlRHJpdmVyRTJFVGVzdHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0EsTUFBTTtFQUFDQSxJQUFEO0VBQU9DO0FBQVAsSUFBaUJDLGdCQUF2Qjs7QUFFQSxTQUFTQyxrQkFBVCxDQUE2QkMsV0FBN0IsRUFBMENDLFdBQVcsR0FBRyxFQUF4RCxFQUE0RDtFQUFBOztFQUMxRCxJQUFJQyxPQUFPLDJCQUFHRCxXQUFXLENBQUMsZ0JBQUQsQ0FBZCx1RUFBb0NFLGtCQUEvQztFQUNBLElBQUlDLElBQUksR0FBR0gsV0FBVyxDQUFDLGFBQUQsQ0FBdEI7RUFDQSxNQUFNSSxTQUFTLEdBQUdMLFdBQVcsQ0FBQ00sSUFBWixJQUFvQixrQkFBdEM7RUFFQUMsUUFBUSxDQUFFLHNCQUFxQkYsU0FBVSxHQUFqQyxFQUFxQyxZQUFZO0lBQ3ZELElBQUlHLFVBQUosRUFBZ0JDLENBQWhCO0lBS0EsSUFBSUMsYUFBSjtJQU1BLElBQUlDLG1CQUFKO0lBT0EsSUFBSUMsZ0JBQUo7SUFFQUMsTUFBTSxDQUFDLGtCQUFrQjtNQUFBOztNQUN2QlQsSUFBSSxZQUFHQSxJQUFILHlDQUFXLE1BQU0sMkJBQXJCO01BQ0FILFdBQVcsR0FBRyxFQUFDLEdBQUdBLFdBQUo7UUFBaUIsZUFBZUc7TUFBaEMsQ0FBZDtNQUNBSyxDQUFDLEdBQUcsSUFBSVQsV0FBSixDQUFnQjtRQUFDSSxJQUFEO1FBQU9GO01BQVAsQ0FBaEIsQ0FBSjtNQUNBTSxVQUFVLEdBQUcsTUFBTSxpQkFBTztRQUN4Qk0sd0JBQXdCLEVB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
|
|
413
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQT1NUIiwiREVMRVRFIiwiTUVUSE9EUyIsImJhc2VEcml2ZXJFMkVUZXN0cyIsIkRyaXZlckNsYXNzIiwiZGVmYXVsdENhcHMiLCJhZGRyZXNzIiwiVEVTVF9IT1NUIiwicG9ydCIsImNsYXNzTmFtZSIsIm5hbWUiLCJkZXNjcmliZSIsImJhc2VTZXJ2ZXIiLCJkIiwibmV3U2Vzc2lvblVSTCIsImNyZWF0ZUFwcGl1bVRlc3RVUkwiLCJjcmVhdGVTZXNzaW9uVVJMIiwiYmVmb3JlIiwiZ2V0VGVzdFBvcnQiLCJzZXJ2ZXIiLCJyb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24iLCJob3N0bmFtZSIsImNyZWF0ZUFwcGl1bVVSTCIsIl8iLCJhZnRlciIsImNsb3NlIiwic3RhcnRTZXNzaW9uIiwiY2FwcyIsImF4aW9zIiwidXJsIiwibWV0aG9kIiwiZGF0YSIsImNhcGFiaWxpdGllcyIsImFsd2F5c01hdGNoIiwiZmlyc3RNYXRjaCIsInZhbHVlIiwiZW5kU2Vzc2lvbiIsImlkIiwidmFsaWRhdGVTdGF0dXMiLCJnZXRTZXNzaW9uIiwiaXQiLCJzZXNzaW9uSWRzIiwidGltZXMiLCJzZXNzaW9uSWQiLCJoZWFkZXJzIiwic2ltcGxlIiwicmVzb2x2ZVdpdGhGdWxsUmVzcG9uc2UiLCJwdXNoIiwidW5pcSIsImxlbmd0aCIsInNob3VsZCIsImVxdWFsIiwic3RhdHVzIiwicmVxcyIsIkIiLCJhbGwiLCJtYXAiLCJ4IiwiZXhpc3QiLCJwbGF0Zm9ybU5hbWUiLCJkZXZpY2VOYW1lIiwic2tpcCIsIm9yaWdpbmFsRmluZEVsZW1lbnQiLCJvcmlnaW5hbEZpbmRFbGVtZW50cyIsInN0YXJ0VGltZW91dFNlc3Npb24iLCJ0aW1lb3V0IiwiY2xvbmVEZWVwIiwiZmluZEVsZW1lbnQiLCJiaW5kIiwiZmluZEVsZW1lbnRzIiwiZGVsYXkiLCJuZXdTZXNzaW9uIiwibmV3Q29tbWFuZFRpbWVvdXRNcyIsImJlIiwiYWJvdmUiLCJzZXNzaW9uVVJMIiwidXNpbmciLCJlcnJvciIsInJlc3AiLCJzdGFydCIsIkRhdGUiLCJub3ciLCJlcWwiLCJub3QiLCJub0NvbW1hbmRUaW1lciIsInNldHRpbmdzIiwiRGV2aWNlU2V0dGluZ3MiLCJpZ25vcmVVbmltcG9ydGFudFZpZXdzIiwiZ2V0U2V0dGluZ3MiLCJmYWxzZSIsInVwZGF0ZSIsInJlamVjdGVkIiwiZXZlbnR1YWxseSIsInJlamVjdGVkV2l0aCIsIl9vbGRHZXRTdGF0dXMiLCJnZXRTdGF0dXMiLCJyZXFQcm9taXNlIiwic2h1dGRvd25FdmVudFByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwic2V0VGltZW91dCIsIkVycm9yIiwib25VbmV4cGVjdGVkU2h1dGRvd24iLCJzdGFydFVuZXhwZWN0ZWRTaHV0ZG93biIsIm1lc3NhZ2UiLCJjb250YWluIiwic2Vzc2lvbiIsInJlcyIsImV2ZW50cyIsIk9iamVjdCIsImFzc2lnbiIsIm5ld1Nlc3Npb25SZXF1ZXN0ZWQiLCJuZXdTZXNzaW9uU3RhcnRlZCIsImEiLCJCYXNlRHJpdmVyIiwicmV0IiwiUFJFRklYRURfQVBQSVVNX09QVFNfQ0FQIiwicGxhdGZvcm1WZXJzaW9uIiwib3B0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvYmFzZWRyaXZlci9kcml2ZXItZTJlLXRlc3RzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge0Jhc2VEcml2ZXIsIHNlcnZlciwgcm91dGVDb25maWd1cmluZ0Z1bmN0aW9uLCBEZXZpY2VTZXR0aW5nc30gZnJvbSAnLi4vLi4vbGliJztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQge1RFU1RfSE9TVCwgZ2V0VGVzdFBvcnQsIGNyZWF0ZUFwcGl1bVVSTCwgTUVUSE9EU30gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQge1BSRUZJWEVEX0FQUElVTV9PUFRTX0NBUH0gZnJvbSAnLi4vLi4vbGliL2Jhc2Vkcml2ZXIvY2FwYWJpbGl0aWVzJztcbmNvbnN0IHtQT1NULCBERUxFVEV9ID0gTUVUSE9EUztcblxuZnVuY3Rpb24gYmFzZURyaXZlckUyRVRlc3RzKERyaXZlckNsYXNzLCBkZWZhdWx0Q2FwcyA9IHt9KSB7XG4gIGxldCBhZGRyZXNzID0gZGVmYXVsdENhcHNbJ2FwcGl1bTphZGRyZXNzJ10gPz8gVEVTVF9IT1NUO1xuICBsZXQgcG9ydCA9IGRlZmF1bHRDYXBzWydhcHBpdW06cG9ydCddO1xuICBjb25zdCBjbGFzc05hbWUgPSBEcml2ZXJDbGFzcy5uYW1lIHx8ICcodW5rbm93biBkcml2ZXIpJztcblxuICBkZXNjcmliZShgQmFzZURyaXZlciBFMkUgKGFzICR7Y2xhc3NOYW1lfSlgLCBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGJhc2VTZXJ2ZXIsIGQ7XG4gICAgLyoqXG4gICAgICogVGhpcyBVUkwgY3JlYXRlcyBhIG5ldyBzZXNzaW9uXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKiovXG4gICAgbGV0IG5ld1Nlc3Npb25VUkw7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgVVJMIHdpdGggYmFzZSBob3N0L3BvcnQuIFN1cHBseSBgc2Vzc2lvbmAgYW5kIGBwYXRobmFtZWBcbiAgICAgKiBAdHlwZSB7Xy5DdXJyaWVkRnVuY3Rpb24yPHN0cmluZyxzdHJpbmcsc3RyaW5nPn1cbiAgICAgKi9cbiAgICBsZXQgY3JlYXRlQXBwaXVtVGVzdFVSTDtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBVUkwgd2l0aCB0aGUgZ2l2ZW4gc2Vzc2lvbiBJRCBhbmQgYSBibGFuayBwYXRobmFtZTtcbiAgICAgKiBlLmcuLCBgaHR0cDovL2Zvby5iYXI6MTIzL3Nlc3Npb24vPHNlc3Npb24taWQ+YFxuICAgICAqICBAdHlwZSB7Xy5DdXJyaWVkRnVuY3Rpb24xPHN0cmluZyxzdHJpbmc+fVxuICAgICAqL1xuICAgIGxldCBjcmVhdGVTZXNzaW9uVVJMO1xuXG4gICAgYmVmb3JlKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIHBvcnQgPSBwb3J0ID8/IChhd2FpdCBnZXRUZXN0UG9ydCgpKTtcbiAgICAgIGRlZmF1bHRDYXBzID0gey4uLmRlZmF1bHRDYXBzLCAnYXBwaXVtOnBvcnQnOiBwb3J0fTtcbiAgICAgIGQgPSBuZXcgRHJpdmVyQ2xhc3Moe3BvcnQsIGFkZHJlc3N9KTtcbiAgICAgIGJhc2VTZXJ2ZXIgPSBhd2FpdCBzZXJ2ZXIoe1xuICAgICAgICByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb246IHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbihkKSxcbiAgICAgICAgcG9ydCxcbiAgICAgICAgaG9zdG5hbWU6IFRFU1RfSE9TVCxcbiAgICAgIH0pO1xuICAgICAgY3JlYXRlQXBwaXVtVGVzdFVSTCA9IGNyZWF0ZUFwcGl1bVVSTChhZGRyZXNzLCBwb3J0KTtcbiAgICAgIG5ld1Nlc3Npb25VUkwgPSBjcmVhdGVBcHBpdW1UZXN0VVJMKCcnLCAnc2Vzc2lvbicpO1xuICAgICAgY3JlYXRlU2Vzc2lvblVSTCA9IGNyZWF0ZUFwcGl1bVRlc3RVUkwoXywgJycpO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXIoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQgYmFzZVNlcnZlci5jbG9zZSgpO1xuICAgIH0pO1xuXG4gICAgYXN5bmMgZnVuY3Rpb24gc3RhcnRTZXNzaW9uKGNhcHMpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGF3YWl0IGF4aW9zKHtcbiAgICAgICAgICB1cmw6IG5ld1Nlc3Npb25VUkwsXG4gICAgICAgICAgbWV0aG9kOiBQT1NULFxuICAgICAgICAgIGRhdGE6IHtjYXBhYmlsaXRpZXM6IHthbHdheXNNYXRjaDogY2FwcywgZmlyc3RNYXRjaDogW3t9XX19LFxuICAgICAgICB9KVxuICAgICAgKS5kYXRhLnZhbHVlO1xuICAgIH1cblxuICAgIGFzeW5jIGZ1bmN0aW9uIGVuZFNlc3Npb24oaWQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGF3YWl0IGF4aW9zKHtcbiAgICAgICAgICB1cmw6IGNyZWF0ZVNlc3Npb25VUkwoaWQpLFxuICAgICAgICAgIG1ldGhvZDogREVMRVRFLFxuICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiBudWxsLFxuICAgICAgICB9KVxuICAgICAgKS5kYXRhLnZhbHVlO1xuICAgIH1cblxuICAgIGFzeW5jIGZ1bmN0aW9uIGdldFNlc3Npb24oaWQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGF3YWl0IGF4aW9zKHtcbiAgICAgICAgICB1cmw6IGNyZWF0ZVNlc3Npb25VUkwoaWQpLFxuICAgICAgICB9KVxuICAgICAgKS5kYXRhLnZhbHVlO1xuICAgIH1cblxuICAgIGRlc2NyaWJlKCdzZXNzaW9uIGhhbmRsaW5nJywgZnVuY3Rpb24gKCkge1xuICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgaWRlbXBvdGVuY3kgd2hpbGUgY3JlYXRpbmcgc2Vzc2lvbnMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHNlc3Npb25JZHMgPSBbXTtcbiAgICAgICAgbGV0IHRpbWVzID0gMDtcbiAgICAgICAgZG8ge1xuICAgICAgICAgIGNvbnN0IHtzZXNzaW9uSWR9ID0gKFxuICAgICAgICAgICAgYXdhaXQgYXhpb3Moe1xuICAgICAgICAgICAgICB1cmw6IG5ld1Nlc3Npb25VUkwsXG4gICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAnWC1JZGVtcG90ZW5jeS1LZXknOiAnMTIzNDU2JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgbWV0aG9kOiBQT1NULFxuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzOiB7YWx3YXlzTWF0Y2g6IGRlZmF1bHRDYXBzLCBmaXJzdE1hdGNoOiBbe31dfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgc2ltcGxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgcmVzb2x2ZVdpdGhGdWxsUmVzcG9uc2U6IHRydWUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICkuZGF0YS52YWx1ZTtcblxuICAgICAgICAgIHNlc3Npb25JZHMucHVzaChzZXNzaW9uSWQpO1xuICAgICAgICAgIHRpbWVzKys7XG4gICAgICAgIH0gd2hpbGUgKHRpbWVzIDwgMik7XG4gICAgICAgIF8udW5pcShzZXNzaW9uSWRzKS5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuXG4gICAgICAgIGNvbnN0IHtzdGF0dXMsIGRhdGF9ID0gYXdhaXQgYXhpb3Moe1xuICAgICAgICAgIHVybDogY3JlYXRlU2Vzc2lvblVSTChzZXNzaW9uSWRzWzBdKSxcbiAgICAgICAgICBtZXRob2Q6IERFTEVURSxcbiAgICAgICAgfSk7XG4gICAgICAgIHN0YXR1cy5zaG91bGQuZXF1YWwoMjAwKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKGRhdGEudmFsdWUsIG51bGwpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgaGFuZGxlIGlkZW1wb3RlbmN5IHdoaWxlIGNyZWF0aW5nIHBhcmFsbGVsIHNlc3Npb25zJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCByZXFzID0gW107XG4gICAgICAgIGxldCB0aW1lcyA9IDA7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICByZXFzLnB1c2goXG4gICAgICAgICAgICBheGlvcyh7XG4gICAgICAgICAgICAgIHVybDogbmV3U2Vzc2lvblVSTCxcbiAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdYLUlkZW1wb3RlbmN5LUtleSc6ICcxMjM0NScsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIG1ldGhvZDogUE9TVCxcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllczoge2Fsd2F5c01hdGNoOiBkZWZhdWx0Q2FwcywgZmlyc3RNYXRjaDogW3t9XX0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGltZXMrKztcbiAgICAgICAgfSB3aGlsZSAodGltZXMgPCAyKTtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbklkcyA9IChhd2FpdCBCLmFsbChyZXFzKSkubWFwKCh4KSA9PiB4LmRhdGEudmFsdWUuc2Vzc2lvbklkKTtcbiAgICAgICAgXy51bmlxKHNlc3Npb25JZHMpLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG5cbiAgICAgICAgY29uc3Qge3N0YXR1cywgZGF0YX0gPSBhd2FpdCBheGlvcyh7XG4gICAgICAgICAgdXJsOiBjcmVhdGVTZXNzaW9uVVJMKHNlc3Npb25JZHNbMF0pLFxuICAgICAgICAgIG1ldGhvZDogREVMRVRFLFxuICAgICAgICB9KTtcbiAgICAgICAgc3RhdHVzLnNob3VsZC5lcXVhbCgyMDApO1xuICAgICAgICBzaG91bGQuZXF1YWwoZGF0YS52YWx1ZSwgbnVsbCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgc2Vzc2lvbiBhbmQgcmV0cmlldmUgYSBzZXNzaW9uIGlkLCB0aGVuIGRlbGV0ZSBpdCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGV0IHtzdGF0dXMsIGRhdGF9ID0gYXdhaXQgYXhpb3Moe1xuICAgICAgICAgIHVybDogbmV3U2Vzc2lvblVSTCxcbiAgICAgICAgICBtZXRob2Q6IFBPU1QsXG4gICAgICAgICAgZGF0YToge2NhcGFiaWxpdGllczoge2Fsd2F5c01hdGNoOiBkZWZhdWx0Q2FwcywgZmlyc3RNYXRjaDogW3t9XX19LFxuICAgICAgICB9KTtcblxuICAgICAgICBzdGF0dXMuc2hvdWxkLmVxdWFsKDIwMCk7XG4gICAgICAgIHNob3VsZC5leGlzdChkYXRhLnZhbHVlLnNlc3Npb25JZCk7XG4gICAgICAgIGRhdGEudmFsdWUuY2FwYWJpbGl0aWVzLnBsYXRmb3JtTmFtZS5zaG91bGQuZXF1YWwoZGVmYXVsdENhcHMucGxhdGZvcm1OYW1lKTtcbiAgICAgICAgZGF0YS52YWx1ZS5jYXBhYmlsaXRpZXMuZGV2aWNlTmFtZS5zaG91bGQuZXF1YWwoZGVmYXVsdENhcHNbJ2FwcGl1bTpkZXZpY2VOYW1lJ10pO1xuXG4gICAgICAgICh7c3RhdHVzLCBkYXRhfSA9IGF3YWl0IGF4aW9zKHtcbiAgICAgICAgICB1cmw6IGNyZWF0ZVNlc3Npb25VUkwoZC5zZXNzaW9uSWQpLFxuICAgICAgICAgIG1ldGhvZDogREVMRVRFLFxuICAgICAgICB9KSk7XG5cbiAgICAgICAgc3RhdHVzLnNob3VsZC5lcXVhbCgyMDApO1xuICAgICAgICBzaG91bGQuZXF1YWwoZGF0YS52YWx1ZSwgbnVsbCk7XG4gICAgICAgIHNob3VsZC5lcXVhbChkLnNlc3Npb25JZCwgbnVsbCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0LnNraXAoJ3Nob3VsZCB0aHJvdyBOWUkgZm9yIGNvbW1hbmRzIG5vdCBpbXBsZW1lbnRlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHt9KTtcblxuICAgIGRlc2NyaWJlKCdjb21tYW5kIHRpbWVvdXRzJywgZnVuY3Rpb24gKCkge1xuICAgICAgbGV0IG9yaWdpbmFsRmluZEVsZW1lbnQsIG9yaWdpbmFsRmluZEVsZW1lbnRzO1xuXG4gICAgICBhc3luYyBmdW5jdGlvbiBzdGFydFRpbWVvdXRTZXNzaW9uKHRpbWVvdXQpIHtcbiAgICAgICAgY29uc3QgY2FwcyA9IF8uY2xvbmVEZWVwKGRlZmF1bHRDYXBzKTtcbiAgICAgICAgY2Fwc1snYXBwaXVtOm5ld0NvbW1hbmRUaW1lb3V0J10gPSB0aW1lb3V0O1xuICAgICAgICByZXR1cm4gYXdhaXQgc3RhcnRTZXNzaW9uKGNhcHMpO1xuICAgICAgfVxuXG4gICAgICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgICAgICBvcmlnaW5hbEZpbmRFbGVtZW50ID0gZC5maW5kRWxlbWVudDtcbiAgICAgICAgZC5maW5kRWxlbWVudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gJ2Zvbyc7XG4gICAgICAgIH0uYmluZChkKTtcblxuICAgICAgICBvcmlnaW5hbEZpbmRFbGVtZW50cyA9IGQuZmluZEVsZW1lbnRzO1xuICAgICAgICBkLmZpbmRFbGVtZW50cyA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBhd2FpdCBCLmRlbGF5KDIwMCk7XG4gICAgICAgICAgcmV0dXJuIFsnZm9vJ107XG4gICAgICAgIH0uYmluZChkKTtcbiAgICAgIH0pO1xuXG4gICAgICBhZnRlcihmdW5jdGlvbiAoKSB7XG4gICAgICAgIGQuZmluZEVsZW1lbnQgPSBvcmlnaW5hbEZpbmRFbGVtZW50O1xuICAgICAgICBkLmZpbmRFbGVtZW50cyA9IG9yaWdpbmFsRmluZEVsZW1lbnRzO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgc2V0IGEgZGVmYXVsdCBjb21tYW5kVGltZW91dCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGV0IG5ld1Nlc3Npb24gPSBhd2FpdCBzdGFydFRpbWVvdXRTZXNzaW9uKCk7XG4gICAgICAgIGQubmV3Q29tbWFuZFRpbWVvdXRNcy5zaG91bGQuYmUuYWJvdmUoMCk7XG4gICAgICAgIGF3YWl0IGVuZFNlc3Npb24obmV3U2Vzc2lvbi5zZXNzaW9uSWQpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgdGltZW91dCBvbiBjb21tYW5kcyB1c2luZyBjb21tYW5kVGltZW91dCBjYXAnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBuZXdTZXNzaW9uID0gYXdhaXQgc3RhcnRUaW1lb3V0U2Vzc2lvbigwLjI1KTtcbiAgICAgICAgLy8gWFhYOiByYWNlIGNvbmRpdGlvbjogd2UgbXVzdCBidWlsZCB0aGlzIFVSTCBiZWZvcmUgLi4uc29tZXRoaW5nIGhhcHBlbnMuLi5cbiAgICAgICAgLy8gd2hpY2ggY2F1c2VzIGBkLnNlc3Npb25JZGAgdG8gYmUgbWlzc2luZ1xuICAgICAgICBsZXQgc2Vzc2lvblVSTCA9IGNyZWF0ZVNlc3Npb25VUkwoZC5zZXNzaW9uSWQpO1xuICAgICAgICBhd2FpdCBheGlvcyh7XG4gICAgICAgICAgdXJsOiBjcmVhdGVBcHBpdW1UZXN0VVJMKGQuc2Vzc2lvbklkLCAnZWxlbWVudCcpLFxuICAgICAgICAgIG1ldGhvZDogUE9TVCxcbiAgICAgICAgICBkYXRhOiB7dXNpbmc6ICduYW1lJywgdmFsdWU6ICdmb28nfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IEIuZGVsYXkoNDAwKTtcbiAgICAgICAgY29uc3Qge2RhdGF9ID0gYXdhaXQgYXhpb3Moe1xuICAgICAgICAgIHVybDogc2Vzc2lvblVSTCxcbiAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICAgIHNob3VsZC5lcXVhbChkYXRhLnZhbHVlLmVycm9yLCAnaW52YWxpZCBzZXNzaW9uIGlkJyk7XG4gICAgICAgIHNob3VsZC5lcXVhbChkLnNlc3Npb25JZCwgbnVsbCk7XG4gICAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBlbmRTZXNzaW9uKG5ld1Nlc3Npb24uc2Vzc2lvbklkKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHJlc3AuZXJyb3IsICdpbnZhbGlkIHNlc3Npb24gaWQnKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIG5vdCB0aW1lb3V0IHdpdGggY29tbWFuZFRpbWVvdXQgb2YgZmFsc2UnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBuZXdTZXNzaW9uID0gYXdhaXQgc3RhcnRUaW1lb3V0U2Vzc2lvbigwLjEpO1xuICAgICAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCB7dmFsdWV9ID0gKFxuICAgICAgICAgIGF3YWl0IGF4aW9zKHtcbiAgICAgICAgICAgIHVybDogY3JlYXRlQXBwaXVtVGVzdFVSTChkLnNlc3Npb25JZCwgJ2VsZW1lbnRzJyksXG4gICAgICAgICAgICBtZXRob2Q6IFBPU1QsXG4gICAgICAgICAgICBkYXRhOiB7dXNpbmc6ICduYW1lJywgdmFsdWU6ICdmb28nfSxcbiAgICAgICAgICB9KVxuICAgICAgICApLmRhdGE7XG4gICAgICAgIChEYXRlLm5vdygpIC0gc3RhcnQpLnNob3VsZC5iZS5hYm92ZSgxNTApO1xuICAgICAgICB2YWx1ZS5zaG91bGQuZXFsKFsnZm9vJ10pO1xuICAgICAgICBhd2FpdCBlbmRTZXNzaW9uKG5ld1Nlc3Npb24uc2Vzc2lvbklkKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIG5vdCB0aW1lb3V0IHdpdGggY29tbWFuZFRpbWVvdXQgb2YgMCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZC5uZXdDb21tYW5kVGltZW91dE1zID0gMjtcbiAgICAgICAgbGV0IG5ld1Nlc3Npb24gPSBhd2FpdCBzdGFydFRpbWVvdXRTZXNzaW9uKDApO1xuXG4gICAgICAgIGF3YWl0IGF4aW9zKHtcbiAgICAgICAgICB1cmw6IGNyZWF0ZUFwcGl1bVRlc3RVUkwoZC5zZXNzaW9uSWQsICdlbGVtZW50JyksXG4gICAgICAgICAgbWV0aG9kOiBQT1NULFxuICAgICAgICAgIGRhdGE6IHt1c2luZzogJ25hbWUnLCB2YWx1ZTogJ2Zvbyd9LFxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgQi5kZWxheSg0MDApO1xuICAgICAgICBjb25zdCB7dmFsdWV9ID0gKFxuICAgICAgICAgIGF3YWl0IGF4aW9zKHtcbiAgICAgICAgICAgIHVybDogY3JlYXRlU2Vzc2lvblVSTChkLnNlc3Npb25JZCksXG4gICAgICAgICAgfSlcbiAgICAgICAgKS5kYXRhO1xuICAgICAgICB2YWx1ZS5wbGF0Zm9ybU5hbWUuc2hvdWxkLmVxdWFsKGRlZmF1bHRDYXBzLnBsYXRmb3JtTmFtZSk7XG4gICAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBlbmRTZXNzaW9uKG5ld1Nlc3Npb24uc2Vzc2lvbklkKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHJlc3AsIG51bGwpO1xuXG4gICAgICAgIGQubmV3Q29tbWFuZFRpbWVvdXRNcyA9IDYwICogMTAwMDtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIG5vdCB0aW1lb3V0IGlmIGl0cyBqdXN0IHRoZSBjb21tYW5kIHRha2luZyBhd2hpbGUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBuZXdTZXNzaW9uID0gYXdhaXQgc3RhcnRUaW1lb3V0U2Vzc2lvbigwLjI1KTtcbiAgICAgICAgLy8gWFhYOiByYWNlIGNvbmRpdGlvbjogd2UgbXVzdCBidWlsZCB0aGlzIFVSTCBiZWZvcmUgLi4uc29tZXRoaW5nIGhhcHBlbnMuLi5cbiAgICAgICAgLy8gd2hpY2ggY2F1c2VzIGBkLnNlc3Npb25JZGAgdG8gYmUgbWlzc2luZ1xuICAgICAgICBsZXQgc2Vzc2lvblVSTCA9IGNyZWF0ZVNlc3Npb25VUkwoZC5zZXNzaW9uSWQpO1xuICAgICAgICBhd2FpdCBheGlvcyh7XG4gICAgICAgICAgdXJsOiBjcmVhdGVBcHBpdW1UZXN0VVJMKGQuc2Vzc2lvbklkLCAnZWxlbWVudCcpLFxuICAgICAgICAgIG1ldGhvZDogUE9TVCxcbiAgICAgICAgICBkYXRhOiB7dXNpbmc6ICduYW1lJywgdmFsdWU6ICdmb28nfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IEIuZGVsYXkoNDAwKTtcbiAgICAgICAgY29uc3Qge3ZhbHVlfSA9IChcbiAgICAgICAgICBhd2FpdCBheGlvcyh7XG4gICAgICAgICAgICB1cmw6IHNlc3Npb25VUkwsXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogbnVsbCxcbiAgICAgICAgICB9KVxuICAgICAgICApLmRhdGE7XG4gICAgICAgIHZhbHVlLmVycm9yLnNob3VsZC5lcXVhbCgnaW52YWxpZCBzZXNzaW9uIGlkJyk7XG4gICAgICAgIHNob3VsZC5lcXVhbChkLnNlc3Npb25JZCwgbnVsbCk7XG4gICAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBlbmRTZXNzaW9uKG5ld1Nlc3Npb24uc2Vzc2lvbklkKTtcbiAgICAgICAgcmVzcC5lcnJvci5zaG91bGQuZXF1YWwoJ2ludmFsaWQgc2Vzc2lvbiBpZCcpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgbm90IGhhdmUgYSB0aW1lciBydW5uaW5nIGJlZm9yZSBvciBhZnRlciBhIHNlc3Npb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNob3VsZC5ub3QuZXhpc3QoZC5ub0NvbW1hbmRUaW1lcik7XG4gICAgICAgIGxldCBuZXdTZXNzaW9uID0gYXdhaXQgc3RhcnRUaW1lb3V0U2Vzc2lvbigwLjI1KTtcbiAgICAgICAgbmV3U2Vzc2lvbi5zZXNzaW9uSWQuc2hvdWxkLmVxdWFsKGQuc2Vzc2lvbklkKTtcbiAgICAgICAgc2hvdWxkLmV4aXN0KGQubm9Db21tYW5kVGltZXIpO1xuICAgICAgICBhd2FpdCBlbmRTZXNzaW9uKG5ld1Nlc3Npb24uc2Vzc2lvbklkKTtcbiAgICAgICAgc2hvdWxkLm5vdC5leGlzdChkLm5vQ29tbWFuZFRpbWVyKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3NldHRpbmdzIGFwaScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIGQuc2V0dGluZ3MgPSBuZXcgRGV2aWNlU2V0dGluZ3Moe2lnbm9yZVVuaW1wb3J0YW50Vmlld3M6IGZhbHNlfSk7XG4gICAgICB9KTtcbiAgICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0byBnZXQgc2V0dGluZ3Mgb2JqZWN0JywgZnVuY3Rpb24gKCkge1xuICAgICAgICBkLnNldHRpbmdzLmdldFNldHRpbmdzKCkuaWdub3JlVW5pbXBvcnRhbnRWaWV3cy5zaG91bGQuYmUuZmFsc2U7XG4gICAgICB9KTtcbiAgICAgIGl0KCdzaG91bGQgbm90IHJlamVjdCB3aGVuIGB1cGRhdGVTZXR0aW5nc2AgbWV0aG9kIGlzIG5vdCBwcm92aWRlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXdhaXQgZC5zZXR0aW5ncy51cGRhdGUoe2lnbm9yZVVuaW1wb3J0YW50Vmlld3M6IHRydWV9KS5zaG91bGQubm90LmJlLnJlamVjdGVkO1xuICAgICAgfSk7XG4gICAgICBpdCgnc2hvdWxkIHJlamVjdCBmb3IgaW52YWxpZCB1cGRhdGUgb2JqZWN0JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBhd2FpdCBkLnNldHRpbmdzLnVwZGF0ZSgnaW52YWxpZCBqc29uJykuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKCdKU09OJyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCd1bmV4cGVjdGVkIGV4aXRzJywgZnVuY3Rpb24gKCkge1xuICAgICAgaXQoJ3Nob3VsZCByZWplY3QgYSBjdXJyZW50IGNvbW1hbmQgd2hlbiB0aGUgZHJpdmVyIGNyYXNoZXMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGQuX29sZEdldFN0YXR1cyA9IGQuZ2V0U3RhdHVzO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGQuZ2V0U3RhdHVzID0gYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgYXdhaXQgQi5kZWxheSg1MDAwKTtcbiAgICAgICAgICB9LmJpbmQoZCk7XG4gICAgICAgICAgY29uc3QgcmVxUHJvbWlzZSA9IGF4aW9zKHtcbiAgICAgICAgICAgIHVybDogY3JlYXRlQXBwaXVtVGVzdFVSTCgnJywgJ3N0YXR1cycpLFxuICAgICAgICAgICAgdmFsaWRhdGVTdGF0dXM6IG51bGwsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhlIHJlcXVlc3QgZ2V0cyB0byB0aGUgc2VydmVyIGJlZm9yZSBvdXIgc2h1dGRvd25cbiAgICAgICAgICBhd2FpdCBCLmRlbGF5KDEwMCk7XG4gICAgICAgICAgY29uc3Qgc2h1dGRvd25FdmVudFByb21pc2UgPSBuZXcgQigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KFxuICAgICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICAgIHJlamVjdChcbiAgICAgICAgICAgICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgJ29uVW5leHBlY3RlZFNodXRkb3duIGV2ZW50IGlzIGV4cGVjdGVkIHRvIGJlIGZpcmVkIHdpdGhpbiA1IHNlY29uZHMgdGltZW91dCdcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICA1MDAwXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZC5vblVuZXhwZWN0ZWRTaHV0ZG93bihyZXNvbHZlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBkLnN0YXJ0VW5leHBlY3RlZFNodXRkb3duKG5ldyBFcnJvcignQ3Jhc2h5dGltZXMnKSk7XG4gICAgICAgICAgY29uc3Qge3ZhbHVlfSA9IChhd2FpdCByZXFQcm9taXNlKS5kYXRhO1xuICAgICAgICAgIHZhbHVlLm1lc3NhZ2Uuc2hvdWxkLmNvbnRhaW4oJ0NyYXNoeXRpbWVzJyk7XG4gICAgICAgICAgYXdhaXQgc2h1dGRvd25FdmVudFByb21pc2U7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgZC5nZXRTdGF0dXMgPSBkLl9vbGRHZXRTdGF0dXM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2V2ZW50IHRpbWluZ3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpdCgnc2hvdWxkIG5vdCBhZGQgdGltaW5ncyBpZiBub3QgdXNpbmcgb3B0LWluIGNhcCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHN0YXJ0U2Vzc2lvbihkZWZhdWx0Q2Fwcyk7XG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGdldFNlc3Npb24oc2Vzc2lvbi5zZXNzaW9uSWQpO1xuICAgICAgICBzaG91bGQubm90LmV4aXN0KHJlcy5ldmVudHMpO1xuICAgICAgICBhd2FpdCBlbmRTZXNzaW9uKHNlc3Npb24uc2Vzc2lvbklkKTtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3Nob3VsZCBhZGQgc3RhcnQgc2Vzc2lvbiB0aW1pbmdzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBjYXBzID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdENhcHMsIHtcbiAgICAgICAgICAnYXBwaXVtOmV2ZW50VGltaW5ncyc6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgc3RhcnRTZXNzaW9uKGNhcHMpO1xuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBnZXRTZXNzaW9uKHNlc3Npb24uc2Vzc2lvbklkKTtcbiAgICAgICAgc2hvdWxkLmV4aXN0KHJlcy5ldmVudHMpO1xuICAgICAgICBzaG91bGQuZXhpc3QocmVzLmV2ZW50cy5uZXdTZXNzaW9uUmVxdWVzdGVkKTtcbiAgICAgICAgc2hvdWxkLmV4aXN0KHJlcy5ldmVudHMubmV3U2Vzc2lvblN0YXJ0ZWQpO1xuICAgICAgICByZXMuZXZlbnRzLm5ld1Nlc3Npb25SZXF1ZXN0ZWRbMF0uc2hvdWxkLmJlLmEoJ251bWJlcicpO1xuICAgICAgICByZXMuZXZlbnRzLm5ld1Nlc3Npb25TdGFydGVkWzBdLnNob3VsZC5iZS5hKCdudW1iZXInKTtcbiAgICAgICAgYXdhaXQgZW5kU2Vzc2lvbihzZXNzaW9uLnNlc3Npb25JZCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGlmIChEcml2ZXJDbGFzcyA9PT0gQmFzZURyaXZlcikge1xuICAgICAgLy8gb25seSBydW4gdGhpcyB0ZXN0IG9uIGJhc2Vkcml2ZXIsIG5vdCBvdGhlciBkcml2ZXJzIHdoaWNoIGFsc28gdXNlIHRoZXNlIHRlc3RzLCBzaW5jZSB3ZVxuICAgICAgLy8gZG9uJ3Qgd2FudCB0aGVtIHRvIHRyeSBhbmQgc3RhcnQgc2Vzc2lvbnMgd2l0aCB0aGVzZSByYW5kb20gY2FwYWJpbGl0aWVzIHRoYXQgYXJlXG4gICAgICAvLyBuZWNlc3NhcnkgdG8gdGVzdCB0aGUgYXBwaXVtIG9wdGlvbnMgbG9naWNcbiAgICAgIGRlc2NyaWJlKCdzcGVjaWFsIGFwcGl1bTpvcHRpb25zIGNhcGFiaWxpdHknLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0byBzdGFydCBhIHNlc3Npb24gd2l0aCBjYXBzIGhlbGQgaW4gYXBwaXVtOm9wdGlvbnMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY29uc3QgcmV0ID0gYXdhaXQgc3RhcnRTZXNzaW9uKHtcbiAgICAgICAgICAgIHBsYXRmb3JtTmFtZTogJ2lPUycsXG4gICAgICAgICAgICBbUFJFRklYRURfQVBQSVVNX09QVFNfQ0FQXToge1xuICAgICAgICAgICAgICBwbGF0Zm9ybVZlcnNpb246ICcxMS40JyxcbiAgICAgICAgICAgICAgJ2FwcGl1bTpkZXZpY2VOYW1lJzogJ2lQaG9uZSAxMScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGQub3B0cy5wbGF0Zm9ybVZlcnNpb24uc2hvdWxkLmVxbCgnMTEuNCcpO1xuICAgICAgICAgIGQub3B0cy5kZXZpY2VOYW1lLnNob3VsZC5lcWwoJ2lQaG9uZSAxMScpO1xuICAgICAgICAgIGF3YWl0IGVuZFNlc3Npb24ocmV0LnNlc3Npb25JZCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZURyaXZlckUyRVRlc3RzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBLE1BQU07RUFBQ0EsSUFBRDtFQUFPQztBQUFQLElBQWlCQyxnQkFBdkI7O0FBRUEsU0FBU0Msa0JBQVQsQ0FBNEJDLFdBQTVCLEVBQXlDQyxXQUFXLEdBQUcsRUFBdkQsRUFBMkQ7RUFBQTs7RUFDekQsSUFBSUMsT0FBTywyQkFBR0QsV0FBVyxD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
|