@dollhousemcp/mcp-server 2.0.2 → 2.0.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.
Files changed (59) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.github.md +8 -33
  3. package/README.md +10 -8
  4. package/README.md.backup +10 -8
  5. package/README.npm.md +10 -8
  6. package/dist/constants/version.d.ts +3 -0
  7. package/dist/constants/version.d.ts.map +1 -0
  8. package/dist/constants/version.js +4 -0
  9. package/dist/generated/version.d.ts +2 -2
  10. package/dist/generated/version.js +3 -3
  11. package/dist/logging/sinks/SSELogSink.d.ts +35 -0
  12. package/dist/logging/sinks/SSELogSink.d.ts.map +1 -0
  13. package/dist/logging/sinks/SSELogSink.js +181 -0
  14. package/dist/logging/viewer/viewerHtml.d.ts +8 -0
  15. package/dist/logging/viewer/viewerHtml.d.ts.map +1 -0
  16. package/dist/logging/viewer/viewerHtml.js +204 -0
  17. package/dist/security/audit/config/suppressions.d.ts.map +1 -1
  18. package/dist/security/audit/config/suppressions.js +6 -1
  19. package/dist/seed-elements/memories/dollhousemcp-baseline-knowledge.yaml +149 -0
  20. package/dist/seed-elements/memories/how-to-create-custom-auto-load-memories.yaml +455 -0
  21. package/dist/seed-elements/memories/priority-best-practices-for-teams.yaml +542 -0
  22. package/dist/seed-elements/memories/token-estimation-guidelines.yaml +602 -0
  23. package/dist/web/public/app.js +29 -10
  24. package/dist/web/public/fonts/ibmplexmono--F63fjptAgt5VM-kVkqdyU8n1i8q131nj-o.woff2 +0 -0
  25. package/dist/web/public/fonts/ibmplexmono--F63fjptAgt5VM-kVkqdyU8n1iAq131nj-otFQ.woff2 +0 -0
  26. package/dist/web/public/fonts/ibmplexmono--F63fjptAgt5VM-kVkqdyU8n1iEq131nj-otFQ.woff2 +0 -0
  27. package/dist/web/public/fonts/ibmplexmono--F63fjptAgt5VM-kVkqdyU8n1iIq131nj-otFQ.woff2 +0 -0
  28. package/dist/web/public/fonts/ibmplexmono--F63fjptAgt5VM-kVkqdyU8n1isq131nj-otFQ.woff2 +0 -0
  29. package/dist/web/public/fonts/ibmplexmono--F6qfjptAgt5VM-kVkqdyU8n3twJwl1FgsAXHNlYzg.woff2 +0 -0
  30. package/dist/web/public/fonts/ibmplexmono--F6qfjptAgt5VM-kVkqdyU8n3twJwl5FgsAXHNlYzg.woff2 +0 -0
  31. package/dist/web/public/fonts/ibmplexmono--F6qfjptAgt5VM-kVkqdyU8n3twJwl9FgsAXHNlYzg.woff2 +0 -0
  32. package/dist/web/public/fonts/ibmplexmono--F6qfjptAgt5VM-kVkqdyU8n3twJwlBFgsAXHNk.woff2 +0 -0
  33. package/dist/web/public/fonts/ibmplexmono--F6qfjptAgt5VM-kVkqdyU8n3twJwlRFgsAXHNlYzg.woff2 +0 -0
  34. package/dist/web/public/fonts/manrope-xn7gYHE41ni1AdIRggOxSvfedN62Zw.woff2 +0 -0
  35. package/dist/web/public/fonts/manrope-xn7gYHE41ni1AdIRggSxSvfedN62Zw.woff2 +0 -0
  36. package/dist/web/public/fonts/manrope-xn7gYHE41ni1AdIRggexSvfedN4.woff2 +0 -0
  37. package/dist/web/public/fonts/manrope-xn7gYHE41ni1AdIRggixSvfedN62Zw.woff2 +0 -0
  38. package/dist/web/public/fonts/manrope-xn7gYHE41ni1AdIRggmxSvfedN62Zw.woff2 +0 -0
  39. package/dist/web/public/fonts/manrope-xn7gYHE41ni1AdIRggqxSvfedN62Zw.woff2 +0 -0
  40. package/dist/web/public/fonts/plusjakartasans-LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yygg_vb.woff2 +0 -0
  41. package/dist/web/public/fonts/plusjakartasans-LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yygg_vbd-E.woff2 +0 -0
  42. package/dist/web/public/fonts/plusjakartasans-LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko50yygg_vbd-E.woff2 +0 -0
  43. package/dist/web/public/fonts/plusjakartasans-LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko70yygg_vbd-E.woff2 +0 -0
  44. package/dist/web/public/fonts.css +270 -0
  45. package/dist/web/public/index.html +365 -0
  46. package/dist/web/public/logs.css +472 -0
  47. package/dist/web/public/metrics.css +238 -0
  48. package/dist/web/public/permissions.css +364 -0
  49. package/dist/web/public/sessions.css +235 -0
  50. package/dist/web/public/setup.css +648 -0
  51. package/dist/web/public/setup.js +752 -0
  52. package/dist/web/public/styles.css +1717 -0
  53. package/dist/web/routes/setupRoutes.d.ts +18 -0
  54. package/dist/web/routes/setupRoutes.d.ts.map +1 -0
  55. package/dist/web/routes/setupRoutes.js +360 -0
  56. package/dist/web/server.d.ts.map +1 -1
  57. package/dist/web/server.js +11 -1
  58. package/package.json +4 -1
  59. package/server.json +2 -2
@@ -74,6 +74,11 @@ export const suppressions = [
74
74
  file: 'src/web/public/logs.js',
75
75
  reason: 'FALSE POSITIVE: Client-side browser JavaScript. Filter inputs are used for local JS array filtering only — never sent to server. UnicodeValidator is a Node.js module unavailable in browser context.'
76
76
  },
77
+ {
78
+ rule: 'DMCP-SEC-004',
79
+ file: 'src/web/public/setup.js',
80
+ reason: 'FALSE POSITIVE: Client-side browser JavaScript. User inputs (platform tab clicks, method toggle) are matched against hardcoded DOM element IDs only — no free-text processing. Server-side handlers in setupRoutes.ts use UnicodeValidator.normalize() on all API input. UnicodeValidator is a Node.js module unavailable in browser context.'
81
+ },
77
82
  // ========================================
78
83
  // Test File Suppressions
79
84
  // ========================================
@@ -1308,4 +1313,4 @@ const validationErrors = validateSuppressions();
1308
1313
  if (validationErrors.length > 0) {
1309
1314
  logger.warn('Suppression configuration warnings:', validationErrors);
1310
1315
  }
1311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcHJlc3Npb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3VyaXR5L2F1ZGl0L2NvbmZpZy9zdXBwcmVzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFRbEQ7O0dBRUc7QUFDSCxNQUFNLGdCQUFnQjtJQUNaLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUNuQyxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFL0MsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsRUFBRSxRQUFnQjtRQUMxQyxPQUFPLEdBQUcsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxHQUFHLENBQUMsTUFBYyxFQUFFLFFBQWdCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsR0FBRyxDQUFDLE1BQWMsRUFBRSxRQUFnQixFQUFFLEtBQWM7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFlLEVBQUUsS0FBYTtRQUNyQyxJQUFJLENB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QU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsdUNBQXVDO0FBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQztBQUNoRCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNoQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDdkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2VjdXJpdHkgQXVkaXQgU3VwcHJlc3Npb24gQ29uZmlndXJhdGlvblxuICogXG4gKiBUaGlzIGZpbGUgY29udGFpbnMgc3VwcHJlc3Npb24gcnVsZXMgZm9yIGZhbHNlIHBvc2l0aXZlcyBpbiB0aGUgc2VjdXJpdHkgYXVkaXQuXG4gKiBFYWNoIHN1cHByZXNzaW9uIHNob3VsZCBiZSB3ZWxsLWRvY3VtZW50ZWQgd2l0aCBhIGNsZWFyIHJlYXNvbi5cbiAqL1xuXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9sb2dnZXIuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN1cHByZXNzaW9uIHtcbiAgcnVsZTogc3RyaW5nO1xuICBmaWxlPzogc3RyaW5nO1xuICByZWFzb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBTdXBwcmVzc2lvbiBjYWNoZSBmb3IgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uXG4gKi9cbmNsYXNzIFN1cHByZXNzaW9uQ2FjaGUge1xuICBwcml2YXRlIGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgcmVnZXhDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBSZWdFeHA+KCk7XG4gIFxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmNhY2hlLmNsZWFyKCk7XG4gICAgdGhpcy5yZWdleENhY2hlLmNsZWFyKCk7XG4gIH1cbiAgXG4gIGdldENhY2hlS2V5KHJ1bGVJZDogc3RyaW5nLCBmaWxlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7cnVsZUlkfTo6JHtmaWxlUGF0aH1gO1xuICB9XG4gIFxuICBnZXQocnVsZUlkOiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZS5nZXQodGhpcy5nZXRDYWNoZUtleShydWxlSWQsIGZpbGVQYXRoKSk7XG4gIH1cbiAgXG4gIHNldChydWxlSWQ6IHN0cmluZywgZmlsZVBhdGg6IHN0cmluZywgdmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNhY2hlLnNldCh0aGlzLmdldENhY2hlS2V5KHJ1bGVJZCwgZmlsZVBhdGgpLCB2YWx1ZSk7XG4gIH1cbiAgXG4gIGdldFJlZ2V4KHBhdHRlcm46IHN0cmluZyk6IFJlZ0V4cCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVnZXhDYWNoZS5nZXQocGF0dGVybik7XG4gIH1cbiAgXG4gIHNldFJlZ2V4KHBhdHRlcm46IHN0cmluZywgcmVnZXg6IFJlZ0V4cCk6IHZvaWQge1xuICAgIHRoaXMucmVnZXhDYWNoZS5zZXQocGF0dGVybiwgcmVnZXgpO1xuICB9XG59XG5cbmNvbnN0IGNhY2hlID0gbmV3IFN1cHByZXNzaW9uQ2FjaGUoKTtcblxuZXhwb3J0IGNvbnN0IHN1cHByZXNzaW9uczogU3VwcHJlc3Npb25bXSA9IFtcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTUUwgSW5qZWN0aW9uIEZhbHNlIFBvc2l0aXZlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnQ1dFLTg5LTAwMScsXG4gICAgZmlsZTogJ3NyYy91cGRhdGUvVXBkYXRlTWFuYWdlci50cycsXG4gICAgcmVhc29uOiAnRmFsc2UgcG9zaXRpdmUgLSBcIlVwZGF0ZSBGYWlsZWRcIiBpcyBhIFVJIG1lc3NhZ2UsIG5vdCBTUUwuIFRoZSBjb2RlYmFzZSBkb2VzIG5vdCB1c2UgU1FMLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdDV0UtODktMDAxJyxcbiAgICBmaWxlOiAnc3JjL2VsZW1lbnRzL21lbW9yaWVzL01lbW9yeU1hbmFnZXIudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBMaW5lIDEwMjQgaXMgYSBsb2dnZXIuZXJyb3IoKSBjYWxsIGZvcm1hdHRpbmcgYW4gZXJyb3IgbWVzc2FnZSB3aXRoIHN0cmluZyBjb25jYXRlbmF0aW9uLiBUaGlzIGlzIG5vdCBhIFNRTCBxdWVyeSAtIHRoZSBjb2RlYmFzZSBkb2VzIG5vdCB1c2UgU1FMLiBUaGUgc3RyaW5nIGNvbmNhdGVuYXRpb24gYnVpbGRzIGEgdXNlci1mYWNpbmcgZXJyb3IgbWVzc2FnZSBmb3IgZGVsZXRpb24gZmFpbHVyZXMuIFBSICM3J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0NXRS04OS0wMDEnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3B1YmxpYy9tZXRyaWNzLmpzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogQnJvd3Nlci1zaWRlIERhdGUudG9Mb2NhbGVUaW1lU3RyaW5nKCkgY29uY2F0ZW5hdGlvbiBmb3IgZGlzcGxheSBsYWJlbC4gTm90IFNRTCDigJQgdGhlIGNvZGViYXNlIGRvZXMgbm90IHVzZSBTUUwuJ1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gTWV0cmljcyAmIFdlYiBDb25zb2xlIEZhbHNlIFBvc2l0aXZlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL21ldHJpY3Mvc2lua3MvTWVtb3J5TWV0cmljc1NpbmsudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBJbnRlcm5hbCBtZXRyaWNzIHN0b3JhZ2Ug4oCUIGRvZXMgbm90IHByb2Nlc3MgdXNlciBpbnB1dCBkaXJlY3RseS4gTWV0cmljIG5hbWVzIGFuZCBzb3VyY2VzIGFyZSBzZXJ2ZXItZ2VuZXJhdGVkIGNvbnN0YW50cy4gSW5wdXQgbm9ybWFsaXphdGlvbiBpcyBoYW5kbGVkIGF0IHRoZSByb3V0ZSBoYW5kbGVyIGJvdW5kYXJ5LidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvbWV0cmljcy9jb2xsZWN0b3JzL1BlcmZvcm1hbmNlTW9uaXRvckNvbGxlY3Rvci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IE1ldHJpYyBjb2xsZWN0b3Igd2l0aCBoYXJkY29kZWQgY29uc3RhbnQgc3RyaW5ncyBvbmx5LiBObyB1c2VyIGlucHV0IGVudGVycyB0aGlzIGNvbXBvbmVudC4gQWxsIG1ldHJpYyBuYW1lcywgc291cmNlcywgYW5kIGRlc2NyaXB0aW9ucyBhcmUgY29tcGlsZS10aW1lIGNvbnN0YW50cy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3dlYi9wdWJsaWMvbWV0cmljcy5qcycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IENsaWVudC1zaWRlIGJyb3dzZXIgSmF2YVNjcmlwdC4gVW5pY29kZVZhbGlkYXRvciBpcyBhIE5vZGUuanMgbW9kdWxlIHVuYXZhaWxhYmxlIGluIGJyb3dzZXIgY29udGV4dC4gRGFzaGJvYXJkIHJlbmRlcnMgc2VydmVyLWdlbmVyYXRlZCBtZXRyaWMgZGF0YSBvbmx5IOKAlCBubyB1c2VyIHRleHQgaW5wdXQuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy93ZWIvcHVibGljL2xvZ3MuanMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBDbGllbnQtc2lkZSBicm93c2VyIEphdmFTY3JpcHQuIEZpbHRlciBpbnB1dHMgYXJlIHVzZWQgZm9yIGxvY2FsIEpTIGFycmF5IGZpbHRlcmluZyBvbmx5IOKAlCBuZXZlciBzZW50IHRvIHNlcnZlci4gVW5pY29kZVZhbGlkYXRvciBpcyBhIE5vZGUuanMgbW9kdWxlIHVuYXZhaWxhYmxlIGluIGJyb3dzZXIgY29udGV4dC4nXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBUZXN0IEZpbGUgU3VwcHJlc3Npb25zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnX190ZXN0c19fLyoqLyonLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZXMgbWF5IGNvbnRhaW4gaW50ZW50aW9uYWwgc2VjdXJpdHkgcGF0dGVybnMgZm9yIHRlc3RpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJyoqLyoudGVzdC50cycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlcyBtYXkgY29udGFpbiBpbnRlbnRpb25hbCBzZWN1cml0eSBwYXR0ZXJucyBmb3IgdGVzdGluZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnKiovKi5zcGVjLnRzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGVzIG1heSBjb250YWluIGludGVudGlvbmFsIHNlY3VyaXR5IHBhdHRlcm5zIGZvciB0ZXN0aW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3Rlc3RzLyoqLyonLFxuICAgIHJlYXNvbjogJ1Rlc3QgdXRpbGl0aWVzIGFuZCBFMkUgdGVzdHMgZG8gbm90IHByb2Nlc3MgdW50cnVzdGVkIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAndGVzdHMvKiovKicsXG4gICAgcmVhc29uOiAnQXVkaXQgbG9nZ2luZyBub3QgcmVxdWlyZWQgZm9yIHRlc3QgdXRpbGl0aWVzIGFuZCBFMkUgdGVzdHMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMycsXG4gICAgZmlsZTogJ3Rlc3RzL2UyZS9jbGVhbnVwLXRlc3QtZGF0YS50cycsXG4gICAgcmVhc29uOiAnRmFsc2UgcG9zaXRpdmUgLSBjb25zb2xlLmxvZyBtZXNzYWdlIHN0cmluZyBsaXRlcmFsLCBub3QgYSBwYXRoIG9wZXJhdGlvbidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDEtMDAxJyxcbiAgICBmaWxlOiAnX190ZXN0c19fLyoqLyonLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZXMgdXNlIGZha2UgdG9rZW5zIGFuZCBzZWNyZXRzIGZvciB0ZXN0aW5nIHNlY3VyaXR5IGZlYXR1cmVzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMS0wMDEnLFxuICAgIGZpbGU6ICd0ZXN0cy9maXh0dXJlcy8qKi8qJyxcbiAgICByZWFzb246ICdUZXN0IGZpeHR1cmVzIGNvbnRhaW4gaW50ZW50aW9uYWwgbW9jayBjcmVkZW50aWFscyBjbGVhcmx5IG1hcmtlZCBhcyBGQUtFL1RFU1QvTk9UX1JFQUwnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAxLTAwMScsXG4gICAgZmlsZTogJ3Rlc3RzL3NlY3VyaXR5L2ZyYW1ld29yay9SYXBpZFNlY3VyaXR5VGVzdGluZy50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IExpbmUgMjAyIGNvbnRhaW5zIGFuIGludGVudGlvbmFsIGZha2UgdG9rZW4gKGdocF8xMjM0NTY3ODkwLi4uKSBmb3Igc2VjdXJpdHkgdGVzdGluZy4gQ2xlYXJseSBtYXJrZWQgd2l0aCBOT1NPTkFSIGNvbW1lbnQuIFVzZWQgdG8gdmVyaWZ5IHRva2VucyBhcmUgbm90IGV4cG9zZWQgaW4gZXJyb3IgbWVzc2FnZXMuIFBSICMxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICd0ZXN0cy9maXh0dXJlcy90ZXN0Q3JlZGVudGlhbHMudHMnLFxuICAgIHJlYXNvbjogJ0NlbnRyYWxpemVkIHRlc3QgY3JlZGVudGlhbHMgZmlsZSB3aXRoIGludGVudGlvbmFsbHkgZmFrZSB2YWx1ZXMgZm9yIHRlc3RpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnQ1dFLTg5LTAwMScsXG4gICAgZmlsZTogJ19fdGVzdHNfXy8qKi8qJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGVzIGNvbnRhaW4gU1FMIGluamVjdGlvbiBwYXR0ZXJucyBmb3Igc2VjdXJpdHkgdGVzdGluZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnX190ZXN0c19fLyoqLyonLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZXMgY29udGFpbiBjb21tYW5kIGluamVjdGlvbiBwYXR0ZXJucyBmb3Igc2VjdXJpdHkgdGVzdGluZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAzJyxcbiAgICBmaWxlOiAnX190ZXN0c19fLyoqLyonLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZXMgY29udGFpbiBwYXRoIHRyYXZlcnNhbCBwYXR0ZXJucyBmb3Igc2VjdXJpdHkgdGVzdGluZydcbiAgfSxcbiAgXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gWUFNTCBQYXJzaW5nIEZhbHNlIFBvc2l0aXZlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL3NlY3VyaXR5L3lhbWxWYWxpZGF0b3IudHMnLFxuICAgIHJlYXNvbjogJ1lhbWxWYWxpZGF0b3IgaXMgdGhlIHNlY3VyaXR5IHZhbGlkYXRpb24gbGF5ZXIgaXRzZWxmIC0gaXQgbmVlZHMgZGlyZWN0IHlhbWwubG9hZCBhY2Nlc3MnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL3NlY3VyaXR5L3NlY3VyZVlhbWxQYXJzZXIudHMnLFxuICAgIHJlYXNvbjogJ1NlY3VyZVlhbWxQYXJzZXIgaXMgdGhlIHNlY3VyaXR5IHdyYXBwZXIgdGhhdCB2YWxpZGF0ZXMgWUFNTCBiZWZvcmUgcGFyc2luZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDUnLFxuICAgIGZpbGU6ICdzcmMvZWxlbWVudHMvc2tpbGxzL1NraWxsTWFuYWdlci50cycsXG4gICAgcmVhc29uOiAnVXNlcyB5YW1sLmxvYWQgd2l0aCBGQUlMU0FGRV9TQ0hFTUEgYW5kIHNpemUgdmFsaWRhdGlvbiAtIGVxdWl2YWxlbnQgc2VjdXJpdHkgdG8gU2VjdXJlWWFtbFBhcnNlciBmb3IgcmF3IFlBTUwgaW1wb3J0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy90b29scy9wb3J0Zm9saW8vc3VibWl0VG9Qb3J0Zm9saW9Ub29sLnRzJyxcbiAgICByZWFzb246ICdGYWxzZSBwb3NpdGl2ZSAtIFVzZXMgU2VjdXJlWWFtbFBhcnNlci5wYXJzZSgpIHdoaWNoIGlzIHRoZSBzZWN1cmUgaW1wbGVtZW50YXRpb24gZGVzaWduZWQgdG8gcHJldmVudCBZQU1MIHZ1bG5lcmFiaWxpdGllcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDUnLFxuICAgIGZpbGU6ICdzcmMvY29uZmlnL0NvbmZpZ01hbmFnZXIudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBVc2VzIGpzLXlhbWwgd2l0aCBGQUlMU0FGRV9TQ0hFTUEgZm9yIHB1cmUgWUFNTCBjb25maWcgZmlsZXMuIFRoaXMgcHJldmVudHMgY29kZSBleGVjdXRpb24gYW5kIGlzIHRoZSBhcHByb3ByaWF0ZSBzZWN1cml0eSBtZWFzdXJlIGZvciBjb25maWcgZmlsZXMgdGhhdCBhcmUgTk9UIG1hcmtkb3duIHdpdGggZnJvbnRtYXR0ZXIuIFJlZ3Jlc3Npb24gdGVzdCBlbnN1cmVzIHdlIGRvIG5vdCB1c2UgU2VjdXJlWWFtbFBhcnNlciBoZXJlIHdoaWNoIHdvdWxkIHJlc2V0IGNvbmZpZyB2YWx1ZXMuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy9wb3J0Zm9saW8vUG9ydGZvbGlvSW5kZXhNYW5hZ2VyLnRzJyxcbiAgICByZWFzb246ICdJTlRFTlRJT05BTDogTWVtb3J5IGZpbGVzIGFyZSBwdXJlIFlBTUwgKG5vdCBNYXJrZG93biB3aXRoIGZyb250bWF0dGVyKSwgc28gU2VjdXJlWWFtbFBhcnNlciBjYW5ub3QgYmUgdXNlZC4gVXNlcyB5YW1sLmxvYWQgd2l0aCBGQUlMU0FGRV9TQ0hFTUEgKyBzaXplIHZhbGlkYXRpb24gKyB0eXBlIGNoZWNraW5nIGZvciBzZWN1cml0eS4gVGhlc2UgYXJlIHRydXN0ZWQgbG9jYWwgdXNlciBmaWxlcy4gRml4IGZvciBpc3N1ZSAjMTE5Ni4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZlci9yZXNvdXJjZXMvQ2FwYWJpbGl0eUluZGV4UmVzb3VyY2UudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBjYXBhYmlsaXR5LWluZGV4LnlhbWwgaXMgYSBwdXJlIFlBTUwgZmlsZSAobm90IE1hcmtkb3duIHdpdGggZnJvbnRtYXR0ZXIpLCBzbyBTZWN1cmVZYW1sUGFyc2VyIGNhbm5vdCBiZSB1c2VkLiBVc2VzIHlhbWwubG9hZCB3aXRoIEZBSUxTQUZFX1NDSEVNQSB3aGljaCBwcmV2ZW50cyBjb2RlIGV4ZWN1dGlvbi4gVGhpcyBpcyBhIHRydXN0ZWQgbG9jYWwgc3lzdGVtLWdlbmVyYXRlZCBmaWxlIChjcmVhdGVkIGJ5IEVuaGFuY2VkSW5kZXhNYW5hZ2VyKS4gU2FtZSBzZWN1cml0eSBwYXR0ZXJuIGFzIENvbmZpZ01hbmFnZXIgYW5kIFBvcnRmb2xpb0luZGV4TWFuYWdlciBmb3IgcHVyZSBZQU1MIGZpbGVzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDUnLFxuICAgIGZpbGU6ICdzcmMvY29udmVydGVycy9Eb2xsaG91c2VUb0FudGhyb3BpY0NvbnZlcnRlci50cycsXG4gICAgcmVhc29uOiAnSU5URU5USU9OQUw6IEZvcm1hdCB0cmFuc2Zvcm1lciwgbm90IHNlY3VyaXR5IGJvdW5kYXJ5LiBVc2VzIHlhbWwubG9hZCB3aXRoIENPUkVfU0NIRU1BIHRvIHByZXZlbnQgZGVzZXJpYWxpemF0aW9uIGF0dGFja3MuIENhbm5vdCB1c2UgU2VjdXJlWWFtbFBhcnNlciAoZXhwZWN0cyBmdWxsIE1hcmtkb3duIHdpdGggZnJvbnRtYXR0ZXIsIG5vdCBleHRyYWN0ZWQgWUFNTCBzdHJpbmdzKS4gUHJlc2VydmVzIGNvbnRlbnQgZmlkZWxpdHkgLSBubyBtb2RpZmljYXRpb24uIElucHV0IHNraWxscyBhbHJlYWR5IHZhbGlkYXRlZCAoZnJvbSBEb2xsaG91c2VNQ1Agc3lzdGVtKS4gUFIgIzE0MDAnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL2NvbnZlcnRlcnMvQW50aHJvcGljVG9Eb2xsaG91c2VDb252ZXJ0ZXIudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBGb3JtYXQgdHJhbnNmb3JtZXIsIG5vdCBzZWN1cml0eSBib3VuZGFyeS4gVXNlcyB5YW1sLmxvYWQgd2l0aCBDT1JFX1NDSEVNQSB0byBwcmV2ZW50IGRlc2VyaWFsaXphdGlvbiBhdHRhY2tzLiBDYW5ub3QgdXNlIFNlY3VyZVlhbWxQYXJzZXIgKHByb2Nlc3NlcyBleHRyYWN0ZWQgWUFNTCBzdHJpbmdzKS4gUHJlc2VydmVzIGNvbnRlbnQgZmlkZWxpdHkgLSBubyBtb2RpZmljYXRpb24uIE91dHB1dCB2YWxpZGF0ZWQgd2hlbiBsb2FkZWQgdmlhIFNraWxsTWFuYWdlci5sb2FkKCkgd2hpY2ggYXBwbGllcyBTZWN1cmVZYW1sUGFyc2VyLiBQUiAjMTQwMCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDUnLFxuICAgIGZpbGU6ICdzcmMvc2VjdXJpdHkvYXVkaXQvc2Nhbm5lcnMvQ29uZmlndXJhdGlvblNjYW5uZXIudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBTZWN1cml0eSBzY2FubmVyIGZvciBwdXJlIFlBTUwgY29uZmlndXJhdGlvbiBmaWxlcyAobm90IE1hcmtkb3duIHdpdGggZnJvbnRtYXR0ZXIpLiBVc2VzIHlhbWwubG9hZCB3aXRoIEZBSUxTQUZFX1NDSEVNQSB3aGljaCBwcmV2ZW50cyBjb2RlIGV4ZWN1dGlvbiBhbmQgYXJiaXRyYXJ5IG9iamVjdCBpbnN0YW50aWF0aW9uLiBTZWN1cmVZYW1sUGFyc2VyIGlzIGRlc2lnbmVkIGZvciBlbGVtZW50IGZpbGVzIChNYXJrZG93biB3aXRoIFlBTUwgZnJvbnRtYXR0ZXIpLCBub3QgcmF3IGNvbmZpZyBmaWxlcy4gUFIgIzEnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL1NlcmlhbGl6YXRpb25TZXJ2aWNlLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogVXNlcyBzYWZlIFlBTUwgc2NoZW1hIChGQUlMU0FGRV9TQ0hFTUEgb3IgSlNPTl9TQ0hFTUEpIHNlbGVjdGVkIGJ5IGdldFlhbWxTY2hlbWEoKS4gU2VjdXJlWWFtbFBhcnNlciBpcyBkZXNpZ25lZCBmb3IgTWFya2Rvd24gZmlsZXMgd2l0aCBmcm9udG1hdHRlciwgbm90IHB1cmUgWUFNTCBwYXJzaW5nLiBMaW5lcyAzMDcgYW5kIDgxMiB1c2Ugc2FmZSBzY2hlbWFzIHRoYXQgcHJldmVudCBjb2RlIGV4ZWN1dGlvbi4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL2hhbmRsZXJzL21jcC1hcWwvTUNQQVFMSGFuZGxlci50cycsXG4gICAgcmVhc29uOiAnSU5URU5USU9OQUw6IEltcG9ydCBvcGVyYXRpb24gcGFyc2VzIHB1cmUgWUFNTCBkYXRhIGZyb20gZXhwb3J0IHBhY2thZ2VzIChub3QgTWFya2Rvd24gd2l0aCBmcm9udG1hdHRlcikuIFVzZXMgeWFtbC5sb2FkIHdpdGggSlNPTl9TQ0hFTUEgd2hpY2ggcHJldmVudHMgY29kZSBleGVjdXRpb24gYW5kIGlzIGFwcHJvcHJpYXRlIGZvciBzdHJ1Y3R1cmVkIGVsZW1lbnQgZGF0YS4gU2VjdXJlWWFtbFBhcnNlciBjYW5ub3QgYmUgdXNlZCBhcyBpdCBleHBlY3RzIE1hcmtkb3duIGZyb250bWF0dGVyIGZvcm1hdC4gUFIgIzE5MydcbiAgfSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFNlcnZpY2UgTGF5ZXIgRmFsc2UgUG9zaXRpdmVzIChSZWZhY3RvciBQUilcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9TZXJpYWxpemF0aW9uU2VydmljZS50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IFNlcmlhbGl6YXRpb25TZXJ2aWNlIGhhbmRsZXMgZGF0YSBzZXJpYWxpemF0aW9uL2Rlc2VyaWFsaXphdGlvbi4gVW5pY29kZSBub3JtYWxpemF0aW9uIGlzIGFwcGxpZWQgYXQgdGhlIHZhbGlkYXRpb24gbGF5ZXIgKFZhbGlkYXRpb25TZXJ2aWNlLnZhbGlkYXRlQW5kU2FuaXRpemVJbnB1dCBjYWxscyBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSkgYmVmb3JlIGRhdGEgcmVhY2hlcyBzZXJpYWxpemF0aW9uLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvRmlsZU9wZXJhdGlvbnNTZXJ2aWNlLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogRmlsZU9wZXJhdGlvbnNTZXJ2aWNlIGhhbmRsZXMgZmlsZSBJL08gb3BlcmF0aW9ucy4gUGF0aHMgYXJlIHZhbGlkYXRlZCBieSBQYXRoVmFsaWRhdG9yLiBDb250ZW50IHZhbGlkYXRpb24gaW5jbHVkaW5nIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBoYXBwZW5zIGF0IHRoZSBlbGVtZW50IG1hbmFnZXIgbGF5ZXIgYmVmb3JlIGZpbGUgb3BlcmF0aW9ucy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3ZhbGlkYXRpb24vRWxlbWVudFZhbGlkYXRvci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEludGVyZmFjZS90eXBlIGRlZmluaXRpb24gZmlsZSBvbmx5LiBDb25jcmV0ZSBpbXBsZW1lbnRhdGlvbnMgdXNlIFZhbGlkYXRpb25TZXJ2aWNlIHdoaWNoIHBlcmZvcm1zIFVuaWNvZGUgbm9ybWFsaXphdGlvbiB2aWEgVW5pY29kZVZhbGlkYXRvci5ub3JtYWxpemUoKS4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3ZhbGlkYXRpb24vR2VuZXJpY0VsZW1lbnRWYWxpZGF0b3IudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBDYWxscyBJbnB1dE5vcm1hbGl6ZXIubm9ybWFsaXplKCkgYXQgdGhlIHZhbGlkYXRpb24gYm91bmRhcnkgKGxpbmUgNjQpIHdoaWNoIHJlY3Vyc2l2ZWx5IG5vcm1hbGl6ZXMgYWxsIHN0cmluZ3MgdmlhIFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKCkuIFRoaXMgaXMgdGhlIGNlbnRyYWxpemVkIG5vcm1hbGl6YXRpb24gcG9pbnQgZm9yIGFsbCBlbGVtZW50IHZhbGlkYXRvcnMuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL1BlcnNvbmFFbGVtZW50VmFsaWRhdG9yLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogRXh0ZW5kcyBHZW5lcmljRWxlbWVudFZhbGlkYXRvciB3aGljaCBub3JtYWxpemVzIGFsbCBpbnB1dCB2aWEgSW5wdXROb3JtYWxpemVyLm5vcm1hbGl6ZSgpIGF0IHRoZSBib3VuZGFyeS4gQ3VzdG9tIGZpZWxkcyBhZGRpdGlvbmFsbHkgbm9ybWFsaXplZCBieSBWYWxpZGF0aW9uU2VydmljZS52YWxpZGF0ZUFuZFNhbml0aXplSW5wdXQoKS4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3ZhbGlkYXRpb24vTWVtb3J5RWxlbWVudFZhbGlkYXRvci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEV4dGVuZHMgR2VuZXJpY0VsZW1lbnRWYWxpZGF0b3Igd2hpY2ggbm9ybWFsaXplcyBhbGwgaW5wdXQgdmlhIElucHV0Tm9ybWFsaXplci5ub3JtYWxpemUoKSBhdCB0aGUgYm91bmRhcnkuIEN1c3RvbSBmaWVsZHMgYWRkaXRpb25hbGx5IG5vcm1hbGl6ZWQgYnkgVmFsaWRhdGlvblNlcnZpY2UudmFsaWRhdGVBbmRTYW5pdGl6ZUlucHV0KCkuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL1RlbXBsYXRlRWxlbWVudFZhbGlkYXRvci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEV4dGVuZHMgR2VuZXJpY0VsZW1lbnRWYWxpZGF0b3Igd2hpY2ggbm9ybWFsaXplcyBhbGwgaW5wdXQgdmlhIElucHV0Tm9ybWFsaXplci5ub3JtYWxpemUoKSBhdCB0aGUgYm91bmRhcnkuIEN1c3RvbSBmaWVsZHMgYWRkaXRpb25hbGx5IG5vcm1hbGl6ZWQgYnkgVmFsaWRhdGlvblNlcnZpY2UudmFsaWRhdGVBbmRTYW5pdGl6ZUlucHV0KCkuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL0Vuc2VtYmxlRWxlbWVudFZhbGlkYXRvci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEV4dGVuZHMgR2VuZXJpY0VsZW1lbnRWYWxpZGF0b3Igd2hpY2ggbm9ybWFsaXplcyBhbGwgaW5wdXQgdmlhIElucHV0Tm9ybWFsaXplci5ub3JtYWxpemUoKSBhdCB0aGUgYm91bmRhcnkuIEN1c3RvbSBmaWVsZHMgYWRkaXRpb25hbGx5IG5vcm1hbGl6ZWQgYnkgVmFsaWRhdGlvblNlcnZpY2UudmFsaWRhdGVBbmRTYW5pdGl6ZUlucHV0KCkuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL1NraWxsRWxlbWVudFZhbGlkYXRvci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEV4dGVuZHMgR2VuZXJpY0VsZW1lbnRWYWxpZGF0b3Igd2hpY2ggbm9ybWFsaXplcyBhbGwgaW5wdXQgdmlhIElucHV0Tm9ybWFsaXplci5ub3JtYWxpemUoKSBhdCB0aGUgYm91bmRhcnkuIHZhbGlkYXRlTWV0YWRhdGEoKSByZWNlaXZlcyBwcmUtbm9ybWFsaXplZCBlbGVtZW50Lm1ldGFkYXRhIGZyb20gU2tpbGwgY29uc3RydWN0b3IgKFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplICsgc2FuaXRpemVJbnB1dCkuIFBSICM0NTcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3ZhbGlkYXRpb24vQWdlbnRFbGVtZW50VmFsaWRhdG9yLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogRXh0ZW5kcyBHZW5lcmljRWxlbWVudFZhbGlkYXRvciB3aGljaCBub3JtYWxpemVzIGFsbCBpbnB1dCB2aWEgSW5wdXROb3JtYWxpemVyLm5vcm1hbGl6ZSgpIGF0IHRoZSBib3VuZGFyeS4gQWdlbnQtc3BlY2lmaWMgZmllbGRzIChnb2FsLCBzeXN0ZW1Qcm9tcHQsIGFjdGl2YXRlcywgdG9vbHMsIGF1dG9ub215KSBhZGRpdGlvbmFsbHkgbm9ybWFsaXplZCBieSBWYWxpZGF0aW9uU2VydmljZS52YWxpZGF0ZUNvbnRlbnQoKS4gUFIgIzEzNCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvY29udmVydGVycy9Eb2xsaG91c2VUb0FudGhyb3BpY0NvbnZlcnRlci50cycsXG4gICAgcmVhc29uOiAnSU5URU5USU9OQUw6IEZvcm1hdCB0cmFuc2Zvcm1lciwgbm90IHNlY3VyaXR5IGJvdW5kYXJ5LiBQcmVzZXJ2ZXMgY29udGVudCBmaWRlbGl0eSB3aXRob3V0IFVuaWNvZGUgbm9ybWFsaXphdGlvbi4gSW5wdXQgc2tpbGxzIGFscmVhZHkgdmFsaWRhdGVkIChmcm9tIERvbGxob3VzZU1DUCBzeXN0ZW0pLiBPbmUtdG8tb25lIG1lY2hhbmljYWwgdHJhbnNmb3JtYXRpb24gLSBubyBjb250ZW50IG1vZGlmaWNhdGlvbi4gU2VjdXJpdHkgYm91bmRhcnkgaXMgU2tpbGxNYW5hZ2VyLmxvYWQoKSwgbm90IGNvbnZlcnRlcnMuIFBSICMxNDAwJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jb252ZXJ0ZXJzL0FudGhyb3BpY1RvRG9sbGhvdXNlQ29udmVydGVyLnRzJyxcbiAgICByZWFzb246ICdJTlRFTlRJT05BTDogRm9ybWF0IHRyYW5zZm9ybWVyLCBub3Qgc2VjdXJpdHkgYm91bmRhcnkuIFByZXNlcnZlcyBjb250ZW50IGZpZGVsaXR5IHdpdGhvdXQgVW5pY29kZSBub3JtYWxpemF0aW9uLiBPdXRwdXQgdmFsaWRhdGVkIHdoZW4gbG9hZGVkIHZpYSBTa2lsbE1hbmFnZXIubG9hZCgpIHdoaWNoIGFwcGxpZXMgZnVsbCBzZWN1cml0eSB2YWxpZGF0aW9uIChTZWN1cmVZYW1sUGFyc2VyICsgVW5pY29kZVZhbGlkYXRvcikuIE9uZS10by1vbmUgbWVjaGFuaWNhbCB0cmFuc2Zvcm1hdGlvbi4gUFIgIzE0MDAnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2NvbnZlcnRlcnMvQ29udGVudEV4dHJhY3Rvci50cycsXG4gICAgcmVhc29uOiAnSU5URU5USU9OQUw6IEZvcm1hdCBhbmFseXNpcyB0b29sIGZvciBjb252ZXJ0ZXJzLCBub3Qgc2VjdXJpdHkgYm91bmRhcnkuIFByZXNlcnZlcyBjb250ZW50IGZpZGVsaXR5IHdpdGhvdXQgbW9kaWZpY2F0aW9uLiBVc2VkIGJ5IGZvcm1hdCB0cmFuc2Zvcm1lcnMgd2hpY2ggcHJlc2VydmUgb25lLXRvLW9uZSBjb3JyZXNwb25kZW5jZS4gTm8gdXNlciBpbnB1dCBwcm9jZXNzaW5nIC0gaW50ZXJuYWwgdXRpbGl0eSBmb3IgbWVjaGFuaWNhbCBjb252ZXJzaW9uLiBQUiAjMTQwMCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvY29udmVydGVycy9Eb2xsaG91c2VUb0FudGhyb3BpY0NvbnZlcnRlci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IENvbnZlcnRlcnMgYXJlIGZvcm1hdCB0cmFuc2Zvcm1lcnMsIG5vdCBzZWN1cml0eSBvcGVyYXRpb25zLiBBdWRpdCBsb2dnaW5nIGhhcHBlbnMgYXQgQ0xJIGxldmVsIChjbGkvY29udmVydC50cyBsaW5lIDI1MSkgd2hlcmUgY29udmVyc2lvbiBvcGVyYXRpb25zIGFyZSBsb2dnZWQuIENvbnZlcnRlcnMgYXJlIGludGVybmFsIHV0aWxpdGllcywgbm90IHVzZXItZmFjaW5nIHNlY3VyaXR5IGJvdW5kYXJpZXMuIFBSICMxNDAwJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9jb252ZXJ0ZXJzL0FudGhyb3BpY1RvRG9sbGhvdXNlQ29udmVydGVyLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogQ29udmVydGVycyBhcmUgZm9ybWF0IHRyYW5zZm9ybWVycywgbm90IHNlY3VyaXR5IG9wZXJhdGlvbnMuIEF1ZGl0IGxvZ2dpbmcgaGFwcGVucyBhdCBDTEkgbGV2ZWwgKGNsaS9jb252ZXJ0LnRzIGxpbmUgMjUxKSB3aGVyZSBjb252ZXJzaW9uIG9wZXJhdGlvbnMgYXJlIGxvZ2dlZC4gQ29udmVydGVycyBhcmUgaW50ZXJuYWwgdXRpbGl0aWVzLCBub3QgdXNlci1mYWNpbmcgc2VjdXJpdHkgYm91bmRhcmllcy4gUFIgIzE0MDAnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZlci9yZXNvdXJjZXMvQ2FwYWJpbGl0eUluZGV4UmVzb3VyY2UudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBGaWxlIHBhdGggaXMgY29uc3RydWN0ZWQgZnJvbSBvcy5ob21lZGlyKCkgKHN5c3RlbS1wcm92aWRlZCkgd2l0aCBoYXJkY29kZWQgcGF0aCBzZWdtZW50cy4gTm8gdXNlciBpbnB1dCBmbG93cyB0aHJvdWdoIHRoaXMgY29kZS4gVGhlIGNhcGFiaWxpdHktaW5kZXgueWFtbCBmaWxlIGlzIHN5c3RlbS1nZW5lcmF0ZWQgYnkgRW5oYW5jZWRJbmRleE1hbmFnZXIsIG5vdCB1c2VyLXByb3ZpZGVkLidcbiAgfSxcbiAgXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQ2xlYXItdGV4dCBMb2dnaW5nIEZhbHNlIFBvc2l0aXZlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDEwJyxcbiAgICBmaWxlOiAnc3JjL3V0aWxzL2xvZ2dlci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IFRoZSBsb2dnZXIgYWxyZWFkeSBzYW5pdGl6ZXMgYWxsIHNlbnNpdGl2ZSBkYXRhIHRocm91Z2ggc2FuaXRpemVNZXNzYWdlKCkgYW5kIHNhbml0aXplT2JqZWN0KCkgbWV0aG9kcy4gQWxsIHNlbnNpdGl2ZSBmaWVsZHMgKHRva2Vucywga2V5cywgcGFzc3dvcmRzLCBldGMuKSBhcmUgcmVwbGFjZWQgd2l0aCBbUkVEQUNURURdIGJlZm9yZSBhbnkgY29uc29sZSBvdXRwdXQuIExpbmVzIDI4OCwgMjkxLCBhbmQgMjk1IG9ubHkgbG9nIHByZS1zYW5pdGl6ZWQgc2FmZSBtZXNzYWdlcy4nXG4gIH0sXG4gIFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFNlY3VyaXR5IFJ1bGUgRGVmaW5pdGlvbiBGaWxlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZWN1cml0eS9hdWRpdC9ydWxlcy9TZWN1cml0eVJ1bGVzLnRzJyxcbiAgICByZWFzb246ICdUaGlzIGlzIGEgcmVnZXggcGF0dGVybiBkZWZpbml0aW9uIGZvciBkZXRlY3RpbmcgaW5uZXJIVE1MIHVzYWdlLCBub3QgYWN0dWFsIHVzYWdlJ1xuICB9LFxuICBcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQZXJzb25hIExvYWRpbmcgRmFsc2UgUG9zaXRpdmVzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDEnLFxuICAgIGZpbGU6ICdzcmMvcGVyc29uYS9QZXJzb25hTG9hZGVyLnRzJyxcbiAgICByZWFzb246ICdQZXJzb25hTG9hZGVyIHZhbGlkYXRlcyBwZXJzb25hcyB0aHJvdWdoIFNlY3VyZVlhbWxQYXJzZXIgYW5kIENvbnRlbnRWYWxpZGF0b3InXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDAxJyxcbiAgICBmaWxlOiAnc3JjL3BlcnNvbmEvUGVyc29uYU1hbmFnZXIudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBQZXJzb25hTWFuYWdlciB2YWxpZGF0ZXMgYWxsIGxvYWRlZCBwZXJzb25hcyB1c2luZyBQZXJzb25hVmFsaWRhdG9yLnZhbGlkYXRlUGVyc29uYSgpIGltbWVkaWF0ZWx5IGFmdGVyIGxvYWRpbmcgYXQgbGluZSAzMjUuIEludmFsaWQgcGVyc29uYXMgYXJlIHJlamVjdGVkIGFuZCByZW1vdmVkIGZyb20gY2FjaGUuIFBSICMxJ1xuICB9LFxuICBcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBVbmljb2RlIE5vcm1hbGl6YXRpb24gRmFsc2UgUG9zaXRpdmVzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvdHlwZXMvKi50cycsXG4gICAgcmVhc29uOiAnVHlwZSBkZWZpbml0aW9uIGZpbGVzIGRvIG5vdCBwcm9jZXNzIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3RlbGVtZXRyeS90eXBlcy50cycsXG4gICAgcmVhc29uOiAnVGVsZW1ldHJ5IHR5cGUgZGVmaW5pdGlvbiBmaWxlIC0gY29udGFpbnMgb25seSBUeXBlU2NyaXB0IGludGVyZmFjZXMsIG5vIHJ1bnRpbWUgY29kZSBvciB1c2VyIGlucHV0IHByb2Nlc3NpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovdGVsZW1ldHJ5L3R5cGVzLnRzJyxcbiAgICByZWFzb246ICdUZWxlbWV0cnkgdHlwZSBkZWZpbml0aW9uIGZpbGUgLSBDSSBwYXRoIHZhcmlhbnQsIGNvbnRhaW5zIG9ubHkgVHlwZVNjcmlwdCBpbnRlcmZhY2VzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy90eXBlcy9lbGVtZW50cy8qLnRzJyxcbiAgICByZWFzb246ICdFbGVtZW50IGludGVyZmFjZSBmaWxlcyBhcmUgdHlwZSBkZWZpbml0aW9ucyB0aGF0IGRvIG5vdCBwcm9jZXNzIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2Vycm9ycy8qLnRzJyxcbiAgICByZWFzb246ICdFcnJvciBjbGFzc2VzIGRvIG5vdCBwcm9jZXNzIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2NvbmZpZy8qLnRzJyxcbiAgICByZWFzb246ICdDb25maWd1cmF0aW9uIGZpbGVzIGRvIG5vdCBwcm9jZXNzIHVzZXIgaW5wdXQgZGlyZWN0bHknXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2NvbnN0YW50cy8qLnRzJyxcbiAgICByZWFzb246ICdDb25zdGFudCBkZWZpbml0aW9uIGZpbGVzIGRvIG5vdCBwcm9jZXNzIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2VsZW1lbnRzL21lbW9yaWVzL2NvbnN0YW50cy50cycsXG4gICAgcmVhc29uOiAnQ29uc3RhbnRzIGZpbGUgLSBjb250YWlucyBvbmx5IHR5cGUgZGVmaW5pdGlvbnMgYW5kIGNvbnN0YW50cywgbm8gdXNlciBpbnB1dCBwcm9jZXNzaW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJyoqL3NyYy9lbGVtZW50cy9tZW1vcmllcy9jb25zdGFudHMudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50cyBmaWxlIC0gY29udGFpbnMgb25seSB0eXBlIGRlZmluaXRpb25zIGFuZCBjb25zdGFudHMsIG5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi9lbGVtZW50cy9tZW1vcmllcy9jb25zdGFudHMudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50cyBmaWxlIC0gQ0kgZW52aXJvbm1lbnRzIG1heSBoYXZlIGRpZmZlcmVudCBwYXRoIHN0cnVjdHVyZXMsIG5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdlbGVtZW50cy9tZW1vcmllcy9jb25zdGFudHMudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50cyBmaWxlIC0gaGFuZGxlcyBjYXNlIHdoZXJlIHNyYy8gcHJlZml4IGlzIHN0cmlwcGVkLCBubyB1c2VyIGlucHV0IHByb2Nlc3NpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3JldGVudGlvbi90eXBlcy50cycsXG4gICAgcmVhc29uOiAnVHlwZSBkZWZpbml0aW9uIGZpbGUgZm9yIHJldGVudGlvbiBwb2xpY3kgaW50ZXJmYWNlcyAtIGNvbnRhaW5zIG9ubHkgVHlwZVNjcmlwdCBpbnRlcmZhY2VzIGFuZCB0eXBlIGRlZmluaXRpb25zLCBubyBydW50aW1lIGNvZGUgb3IgdXNlciBpbnB1dCBwcm9jZXNzaW5nLiBBY3R1YWwgVW5pY29kZSBub3JtYWxpemF0aW9uIGlzIGltcGxlbWVudGVkIGluIFJldGVudGlvblBvbGljeVNlcnZpY2UgYW5kIE1lbW9yeVJldGVudGlvblN0cmF0ZWd5LiBQUiAjNTInXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2VsZW1lbnRzL21lbW9yaWVzL3V0aWxzLnRzJyxcbiAgICByZWFzb246ICdNZW1vcnkgdXRpbGl0aWVzIC0gYWxsIGV4dGVybmFsIGlucHV0IGlzIG5vcm1hbGl6ZWQgdmlhIFVuaWNvZGVWYWxpZGF0b3IgaW4gdGhlIGZ1bmN0aW9ucyB0aGVtc2VsdmVzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJyoqL3NyYy9lbGVtZW50cy9tZW1vcmllcy91dGlscy50cycsXG4gICAgcmVhc29uOiAnTWVtb3J5IHV0aWxpdGllcyAtIGFsbCBleHRlcm5hbCBpbnB1dCBpcyBub3JtYWxpemVkIHZpYSBVbmljb2RlVmFsaWRhdG9yIGluIHRoZSBmdW5jdGlvbnMgdGhlbXNlbHZlcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi9lbGVtZW50cy9tZW1vcmllcy91dGlscy50cycsXG4gICAgcmVhc29uOiAnTWVtb3J5IHV0aWxpdGllcyAtIENJIHBhdGggdmFyaWFudCwgYWxsIGV4dGVybmFsIGlucHV0IGlzIG5vcm1hbGl6ZWQgdmlhIFVuaWNvZGVWYWxpZGF0b3InXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnZWxlbWVudHMvbWVtb3JpZXMvdXRpbHMudHMnLFxuICAgIHJlYXNvbjogJ01lbW9yeSB1dGlsaXRpZXMgLSBzcmMtc3RyaXBwZWQgcGF0aCB2YXJpYW50LCBhbGwgZXh0ZXJuYWwgaW5wdXQgaXMgbm9ybWFsaXplZCB2aWEgVW5pY29kZVZhbGlkYXRvcidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi9tZW1vcmllcy8qLnRzJyxcbiAgICByZWFzb246ICdNZW1vcnkgZWxlbWVudCBmaWxlcyAtIGFsbCB1c2VyIGlucHV0IGlzIHByb3Blcmx5IG5vcm1hbGl6ZWQgaW4gTWVtb3J5LnRzIGFuZCBNZW1vcnlNYW5hZ2VyLnRzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9lbGVtZW50cy9tZW1vcmllcy8qLnRzJyxcbiAgICByZWFzb246ICdNZW1vcnkgZWxlbWVudCBmaWxlcyAtIGFsbCB1c2VyIGlucHV0IGlzIHByb3Blcmx5IG5vcm1hbGl6ZWQgaW4gTWVtb3J5LnRzIGFuZCBNZW1vcnlNYW5hZ2VyLnRzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy91dGlscy92ZXJzaW9uLnRzJyxcbiAgICByZWFzb246ICdWZXJzaW9uIHV0aWxpdHkgb25seSBoYW5kbGVzIGludGVybmFsIHZlcnNpb24gc3RyaW5ncywgbm90IHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2NhY2hlLyoudHMnLFxuICAgIHJlYXNvbjogJ0NhY2hlIGxheWVyIHJlY2VpdmVzIGFscmVhZHktbm9ybWFsaXplZCBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VjdXJpdHkvKiovKi50cycsXG4gICAgcmVhc29uOiAnU2VjdXJpdHkgbW9kdWxlcyBoYW5kbGUgdmFsaWRhdGlvbiBhbmQgbm9ybWFsaXphdGlvbiB0aGVtc2VsdmVzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9pbmRleC50cycsXG4gICAgcmVhc29uOiAnTWFpbiBlbnRyeSBwb2ludCBkZWxlZ2F0ZXMgdG8gU2VydmVyU2V0dXAgd2hpY2ggbm9ybWFsaXplcyBhbGwgaW5wdXRzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2ZXIvU2VydmVyU2V0dXAudHMnLFxuICAgIHJlYXNvbjogJ0NFTlRSQUxJWkVEIFVOSUNPREUgTk9STUFMSVpBVElPTjogVGhpcyBpcyB3aGVyZSBVbmljb2RlIG5vcm1hbGl6YXRpb24gaXMgaW1wbGVtZW50ZWQgZm9yIEFMTCB0b29sIGlucHV0cy4gU2VydmVyU2V0dXAubm9ybWFsaXplQXJndW1lbnRzVW5pY29kZSgpIChsaW5lcyAxMTMtMTQ2KSByZWN1cnNpdmVseSBub3JtYWxpemVzIGFsbCBzdHJpbmcgYXJndW1lbnRzIGJlZm9yZSB0aGV5IHJlYWNoIGFueSBoYW5kbGVyLiBUaGlzIGlzIHRoZSBjb3JyZWN0IGFyY2hpdGVjdHVyYWwgcGF0dGVybiAoc2luZ2xlIGVudHJ5IHBvaW50KS4gUFIgIzEnXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBDZW50cmFsaXplZCBVbmljb2RlIE5vcm1hbGl6YXRpb24gLSBQUiAjMVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEFsbCBoYW5kbGVycyByZWNlaXZlIHByZS1ub3JtYWxpemVkIGlucHV0IGZyb20gU2VydmVyU2V0dXAudHNcbiAgLy8gU2VydmVyU2V0dXAuc2V0dXBDYWxsVG9vbEhhbmRsZXIoKSBjYWxscyBub3JtYWxpemVBcmd1bWVudHNVbmljb2RlKClcbiAgLy8gb24gbGluZSA4OSBCRUZPUkUgZGlzcGF0Y2hpbmcgdG8gYW55IGhhbmRsZXIuIFRoaXMgcmVjdXJzaXZlbHlcbiAgLy8gbm9ybWFsaXplcyBhbGwgc3RyaW5ncyBpbiB0aGUgYXJndW1lbnRzIG9iamVjdC5cbiAgLy8gU2VlIHNyYy9zZXJ2ZXIvU2VydmVyU2V0dXAudHMgbGluZXMgMTEzLTE0NiBmb3IgaW1wbGVtZW50YXRpb24uXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICd0ZXN0LWFyY2hpdmUvKiovKicsXG4gICAgcmVhc29uOiAnQ0VOVFJBTElaRUQgTk9STUFMSVpBVElPTjogVGVzdCBhcmNoaXZlIGZpbGVzIGFyZSBhcmNoaXZlZCBleHBlcmltZW50cywgbm90IHByb2R1Y3Rpb24gY29kZS4gQWxsIHByb2R1Y3Rpb24gdXNlciBpbnB1dCBpcyBub3JtYWxpemVkIGluIFNlcnZlclNldHVwLnRzIGJlZm9yZSByZWFjaGluZyBoYW5kbGVycy4gUFIgIzEnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2hhbmRsZXJzLyoudHMnLFxuICAgIHJlYXNvbjogJ0NFTlRSQUxJWkVEIE5PUk1BTElaQVRJT046IEFsbCBoYW5kbGVycyByZWNlaXZlIHByZS1ub3JtYWxpemVkIGlucHV0IGZyb20gU2VydmVyU2V0dXAubm9ybWFsaXplQXJndW1lbnRzVW5pY29kZSgpIChsaW5lcyA4OSwgMTEzLTE0NikuIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBoYXBwZW5zIGF0IHRoZSBlbnRyeSBwb2ludCBiZWZvcmUgaGFuZGxlcnMgYXJlIGludm9rZWQuIFBSICMxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9oYW5kbGVycy8qKi8qLnRzJyxcbiAgICByZWFzb246ICdDRU5UUkFMSVpFRCBOT1JNQUxJWkFUSU9OOiBBbGwgaGFuZGxlciBzdHJhdGVnaWVzIGFuZCBtb2R1bGVzIHJlY2VpdmUgcHJlLW5vcm1hbGl6ZWQgaW5wdXQgZnJvbSBTZXJ2ZXJTZXR1cC5ub3JtYWxpemVBcmd1bWVudHNVbmljb2RlKCkuIElucHV0IGlzIHNhbml0aXplZCBhdCB0aGUgTUNQIHJlcXVlc3QgbGF5ZXIuIFBSICMxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9lbGVtZW50cy8qKi8qLnRzJyxcbiAgICByZWFzb246ICdDRU5UUkFMSVpFRCBOT1JNQUxJWkFUSU9OOiBFbGVtZW50IG1hbmFnZXJzIHJlY2VpdmUgcHJlLW5vcm1hbGl6ZWQgaW5wdXQgZnJvbSBoYW5kbGVycywgd2hpY2ggcmVjZWl2ZSBwcmUtbm9ybWFsaXplZCBpbnB1dCBmcm9tIFNlcnZlclNldHVwLiBEZWZlbnNlIGluIGRlcHRoIHdpdGggY2VudHJhbGl6ZWQgZW50cnkgcG9pbnQgbm9ybWFsaXphdGlvbi4gUFIgIzEnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2RpL0NvbnRhaW5lci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IERJIENvbnRhaW5lciBvbmx5IHdpcmVzIGRlcGVuZGVuY2llcywgZG9lcyBub3QgcHJvY2VzcyB1c2VyIGlucHV0LiBBbGwgdXNlciBpbnB1dCBpcyBub3JtYWxpemVkIGluIFNlcnZlclNldHVwIGJlZm9yZSByZWFjaGluZyBhbnkgaW5qZWN0ZWQgc2VydmljZS4gUFIgIzEnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2NvbGxlY3Rpb24vKi50cycsXG4gICAgcmVhc29uOiAnTWFya2V0cGxhY2UgbW9kdWxlcyByZWNlaXZlIG5vcm1hbGl6ZWQgaW5wdXQgZnJvbSB0b29sIGhhbmRsZXJzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jb2xsZWN0aW9uLyoqLyoudHMnLFxuICAgIHJlYXNvbjogJ01hcmtldHBsYWNlIG1vZHVsZXMgcmVjZWl2ZSBub3JtYWxpemVkIGlucHV0IGZyb20gdG9vbCBoYW5kbGVycydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvcGVyc29uYS8qLnRzJyxcbiAgICByZWFzb246ICdQZXJzb25hIG1vZHVsZXMgcmVjZWl2ZSBub3JtYWxpemVkIGlucHV0IGZyb20gdG9vbCBoYW5kbGVycydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvcGVyc29uYS8qKi8qLnRzJyxcbiAgICByZWFzb246ICdQZXJzb25hIG1vZHVsZXMgcmVjZWl2ZSBub3JtYWxpemVkIGlucHV0IGZyb20gdG9vbCBoYW5kbGVycydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvdXBkYXRlLyoudHMnLFxuICAgIHJlYXNvbjogJ1VwZGF0ZSBtb2R1bGVzIHJlY2VpdmUgbm9ybWFsaXplZCBpbnB1dCBmcm9tIHRvb2wgaGFuZGxlcnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3Rvb2xzLyoudHMnLFxuICAgIHJlYXNvbjogJ1Rvb2wgZmlsZXMgcmVjZWl2ZSBub3JtYWxpemVkIGlucHV0IGZyb20gU2VydmVyU2V0dXAnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZlci90eXBlcy50cycsXG4gICAgcmVhc29uOiAnVHlwZSBkZWZpbml0aW9uIGZpbGUgZG9lcyBub3QgcHJvY2VzcyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2ZXIvdG9vbHMvKi50cycsXG4gICAgcmVhc29uOiAnU2VydmVyIHRvb2xzIHJlY2VpdmUgbm9ybWFsaXplZCBpbnB1dCBmcm9tIFNlcnZlclNldHVwJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NjcmlwdHMvKiovKicsXG4gICAgcmVhc29uOiAnQnVpbGQgYW5kIHV0aWxpdHkgc2NyaXB0cyBkbyBub3QgcHJvY2VzcyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy90b29scy9wb3J0Zm9saW8vdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlIGNvbnRhaW5pbmcgb25seSBUeXBlU2NyaXB0IGludGVyZmFjZXMgLSBubyBydW50aW1lIGNvZGUgb3IgdXNlciBpbnB1dCBwcm9jZXNzaW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy90b29scy8qKi90eXBlcy50cycsXG4gICAgcmVhc29uOiAnVHlwZSBkZWZpbml0aW9uIGZpbGVzIGRvIG5vdCBwcm9jZXNzIHVzZXIgaW5wdXQgLSBjb21waWxlLXRpbWUgb25seSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvQnVpbGRJbmZvU2VydmljZS50cycsXG4gICAgcmVhc29uOiAnQnVpbGRJbmZvU2VydmljZSBvbmx5IHByb2Nlc3NlcyBzeXN0ZW0gaW5mb3JtYXRpb24gKHBhY2thZ2UuanNvbiwgZ2l0IGNvbW1hbmRzLCBEb2NrZXIgcnVudGltZSkgLSB0aGUgTUNQIHRvb2wgdGFrZXMgbm8gcGFyYW1ldGVycyBhbmQgbm8gdXNlciBpbnB1dCBmbG93cyB0aHJvdWdoIHRoaXMgc2VydmljZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvaGFuZGxlcnMvU3luY0hhbmRsZXJWMi50cycsXG4gICAgcmVhc29uOiAnU3luY0hhbmRsZXJWMiByZWNlaXZlcyBhbHJlYWR5LW5vcm1hbGl6ZWQgaW5wdXQgZnJvbSB0aGUgTUNQIHJlcXVlc3QgbGF5ZXIuIEFsbCB1c2VyIGlucHV0IGlzIG5vcm1hbGl6ZWQgaW4gU2VydmVyU2V0dXAgYmVmb3JlIHJlYWNoaW5nIGhhbmRsZXJzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvaGFuZGxlcnMvQ29uZmlnSGFuZGxlci50cycsXG4gICAgcmVhc29uOiAnQ29uZmlnSGFuZGxlciByZWNlaXZlcyBhbHJlYWR5LW5vcm1hbGl6ZWQgaW5wdXQgZnJvbSB0aGUgTUNQIHJlcXVlc3QgbGF5ZXIuIEFsbCB1c2VyIGlucHV0IGlzIG5vcm1hbGl6ZWQgaW4gU2VydmVyU2V0dXAgYmVmb3JlIHJlYWNoaW5nIGhhbmRsZXJzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICd0ZXN0LXN5bmMtb3BlcmF0aW9ucy5qcycsXG4gICAgcmVhc29uOiAnVGVzdCB1dGlsaXR5IGZpbGUgZm9yIGRldmVsb3BtZW50IHRlc3RpbmcuIERvZXMgbm90IHByb2Nlc3MgcHJvZHVjdGlvbiB1c2VyIGlucHV0LidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi90ZXN0LXN5bmMtb3BlcmF0aW9ucy5qcycsXG4gICAgcmVhc29uOiAnVGVzdCB1dGlsaXR5IGZpbGUgZm9yIGRldmVsb3BtZW50IHRlc3RpbmcuIERvZXMgbm90IHByb2Nlc3MgcHJvZHVjdGlvbiB1c2VyIGlucHV0LidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICd0ZXN0LSouanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgdXRpbGl0eSBmaWxlcyBpbiByb290IGRpcmVjdG9yeSBmb3IgZGV2ZWxvcG1lbnQgdGVzdGluZy4gRG8gbm90IHByb2Nlc3MgcHJvZHVjdGlvbiB1c2VyIGlucHV0LidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICd0ZXN0LSouanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgdXRpbGl0eSBmaWxlcyBpbiByb290IGRpcmVjdG9yeS4gQXVkaXQgbG9nZ2luZyBub3QgcmVxdWlyZWQgZm9yIGRldmVsb3BtZW50IHRlc3Qgc2NyaXB0cy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJ3Rlc3QtKi5qcycsXG4gICAgcmVhc29uOiAnVGVzdCB1dGlsaXR5IGZpbGVzIHVzaW5nIHNwYXduIHdpdGggYXJyYXkgYXJndW1lbnRzIHdoaWNoIGlzIHNhZmUgZnJvbSBpbmplY3Rpb24uJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDInLFxuICAgIGZpbGU6ICcqKi90ZXN0LWVsZW1lbnQtbGlmZWN5Y2xlLmpzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogc3Bhd24gd2l0aCBhcnJheSBhcmd1bWVudHMgaXMgc2FmZSAobm8gc2hlbGwgaW52b2NhdGlvbikuIEdpdEh1YiB0b2tlbiBwYXNzZWQgYXMgYXJyYXkgZWxlbWVudCwgbm90IGNvbmNhdGVuYXRlZCBpbnRvIGNvbW1hbmQgc3RyaW5nLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi90ZXN0LWVsZW1lbnQtbGlmZWN5Y2xlLmpzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogVGVzdCBoYXJuZXNzIHdpdGggbm8gdXNlciBpbnB1dCBtZWNoYW5pc21zLiBBbGwgZGF0YSBpcyBoYXJkY29kZWQgdGVzdCBzY2VuYXJpb3Mgb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAndGVzdC1mdWxsLXZhbGlkYXRpb24uanMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBzcGF3biB3aXRoIGFycmF5IGFyZ3VtZW50cyBpcyBzYWZlLiBEb2NrZXIgY29tbWFuZCB1c2VzIGFycmF5IGFyZ3MgcHJldmVudGluZyBzaGVsbCBpbmplY3Rpb24uIExpbmUgMzcyLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnKiovdGVzdC1mdWxsLXZhbGlkYXRpb24uanMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBzcGF3biB3aXRoIGFycmF5IGFyZ3VtZW50cyBpcyBzYWZlLiBEb2NrZXIgY29tbWFuZCB1c2VzIGFycmF5IGFyZ3MgcHJldmVudGluZyBzaGVsbCBpbmplY3Rpb24uJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3Rlc3QtZnVsbC12YWxpZGF0aW9uLmpzJyxcbiAgICByZWFzb246ICdUZXN0IHZhbGlkYXRpb24gc2NyaXB0IC0gbm90IHByb2R1Y3Rpb24gY29kZS4gTm8gdXNlciBpbnB1dCBwcm9jZXNzaW5nLCBvbmx5IHRlc3Qgc2NlbmFyaW9zLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi90ZXN0LWZ1bGwtdmFsaWRhdGlvbi5qcycsXG4gICAgcmVhc29uOiAnVGVzdCB2YWxpZGF0aW9uIHNjcmlwdCAtIG5vdCBwcm9kdWN0aW9uIGNvZGUuIE5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZywgb25seSB0ZXN0IHNjZW5hcmlvcy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAndGVzdC12ZXJzaW9uLXZhbGlkYXRpb24uanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgdXRpbGl0eSBzY3JpcHQgLSBub3QgcHJvZHVjdGlvbiBjb2RlLiBBdWRpdCBsb2dnaW5nIG5vdCByZXF1aXJlZCBmb3IgdGVzdCB1dGlsaXRpZXMuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJyoqL3Rlc3QtdmVyc2lvbi12YWxpZGF0aW9uLmpzJyxcbiAgICByZWFzb246ICdUZXN0IHV0aWxpdHkgc2NyaXB0IC0gbm90IHByb2R1Y3Rpb24gY29kZS4gQXVkaXQgbG9nZ2luZyBub3QgcmVxdWlyZWQgZm9yIHRlc3QgdXRpbGl0aWVzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICd0ZXN0LW1lbW9yeS1kZWxldGlvbi5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIC0gTm8gdXNlciBpbnB1dCBwcm9jZXNzZWQsIGFsbCB0ZXN0IGRhdGEgaXMgaW50ZXJuYWxseSBnZW5lcmF0ZWQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovdGVzdC1tZW1vcnktZGVsZXRpb24uanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZSAtIE5vIHVzZXIgaW5wdXQgcHJvY2Vzc2VkLCBhbGwgdGVzdCBkYXRhIGlzIGludGVybmFsbHkgZ2VuZXJhdGVkJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3Rlc3QtbWVtb3J5LWRlbGV0aW9uLmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgLSBBdWRpdCBsb2dnaW5nIGhhcHBlbnMgaW4gdGhlIHNlcnZlciBkZWxldGVFbGVtZW50IG1ldGhvZCwgbm90IGluIHRlc3QnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnKiovdGVzdC1tZW1vcnktZGVsZXRpb24uanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZSAtIEF1ZGl0IGxvZ2dpbmcgaGFwcGVucyBpbiB0aGUgc2VydmVyIGRlbGV0ZUVsZW1lbnQgbWV0aG9kLCBub3QgaW4gdGVzdCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdDV0UtODktMDAxJyxcbiAgICBmaWxlOiAndGVzdC1tZW1vcnktZGVsZXRpb24uanMnLFxuICAgIHJlYXNvbjogJ0ZhbHNlIHBvc2l0aXZlIC0gVGVtcGxhdGUgbGl0ZXJhbHMgaW4gZXJyb3IgbWVzc2FnZXMgYXJlIG5vdCBTUUwgcXVlcmllcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdDV0UtODktMDAxJyxcbiAgICBmaWxlOiAnKiovdGVzdC1tZW1vcnktZGVsZXRpb24uanMnLFxuICAgIHJlYXNvbjogJ0ZhbHNlIHBvc2l0aXZlIC0gVGVtcGxhdGUgbGl0ZXJhbHMgaW4gZXJyb3IgbWVzc2FnZXMgYXJlIG5vdCBTUUwgcXVlcmllcydcbiAgfSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEF1ZGl0IExvZ2dpbmcgRmFsc2UgUG9zaXRpdmVzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvdHlwZXMvKi50cycsXG4gICAgcmVhc29uOiAnVHlwZSBkZWZpbml0aW9uIGZpbGVzIGRvIG5vdCBwZXJmb3JtIHNlY3VyaXR5IG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL3R5cGVzL2VsZW1lbnRzLyoudHMnLFxuICAgIHJlYXNvbjogJ0VsZW1lbnQgaW50ZXJmYWNlIGZpbGVzIGFyZSB0eXBlIGRlZmluaXRpb25zIHRoYXQgZG8gbm90IHBlcmZvcm0gc2VjdXJpdHkgb3BlcmF0aW9ucydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvY29uc3RhbnRzLyoudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50IGZpbGVzIGRvIG5vdCBwZXJmb3JtIHNlY3VyaXR5IG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL2NvbmZpZy8qLnRzJyxcbiAgICByZWFzb246ICdDb25maWd1cmF0aW9uIGZpbGVzIGRvIG5vdCBwZXJmb3JtIHNlY3VyaXR5IG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL2VsZW1lbnRzL21lbW9yaWVzL2NvbnN0YW50cy50cycsXG4gICAgcmVhc29uOiAnQ29uc3RhbnRzIGZpbGUgLSBjb250YWlucyBvbmx5IHR5cGUgZGVmaW5pdGlvbnMgYW5kIGNvbnN0YW50cywgbm8gc2VjdXJpdHkgb3BlcmF0aW9ucydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICcqKi9zcmMvZWxlbWVudHMvbWVtb3JpZXMvY29uc3RhbnRzLnRzJyxcbiAgICByZWFzb246ICdDb25zdGFudHMgZmlsZSAtIGNvbnRhaW5zIG9ubHkgdHlwZSBkZWZpbml0aW9ucyBhbmQgY29uc3RhbnRzLCBubyBzZWN1cml0eSBvcGVyYXRpb25zJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJyoqL2VsZW1lbnRzL21lbW9yaWVzL2NvbnN0YW50cy50cycsXG4gICAgcmVhc29uOiAnQ29uc3RhbnRzIGZpbGUgLSBDSSBwYXRoIHZhcmlhbnQsIGNvbnRhaW5zIG9ubHkgdHlwZSBkZWZpbml0aW9ucyBhbmQgY29uc3RhbnRzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ2VsZW1lbnRzL21lbW9yaWVzL2NvbnN0YW50cy50cycsXG4gICAgcmVhc29uOiAnQ29uc3RhbnRzIGZpbGUgLSBzcmMtc3RyaXBwZWQgcGF0aCB2YXJpYW50LCBjb250YWlucyBvbmx5IHR5cGUgZGVmaW5pdGlvbnMgYW5kIGNvbnN0YW50cydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvZXJyb3JzLyoudHMnLFxuICAgIHJlYXNvbjogJ0Vycm9yIGNsYXNzZXMgYXJlIG5vdCBzZWN1cml0eSBvcGVyYXRpb25zIHJlcXVpcmluZyBhdWRpdCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICcqKi8qLmpzb24nLFxuICAgIHJlYXNvbjogJ0pTT04gZmlsZXMgY2Fubm90IGNvbnRhaW4gZXhlY3V0YWJsZSBjb2RlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9zZWN1cml0eS8qKi8qLnRzJyxcbiAgICByZWFzb246ICdTZWN1cml0eSBtb2R1bGVzIGFyZSBpbmZyYXN0cnVjdHVyZSwgbm90IG9wZXJhdGlvbnMgcmVxdWlyaW5nIGF1ZGl0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9jb2xsZWN0aW9uLyoudHMnLFxuICAgIHJlYXNvbjogJ01hcmtldHBsYWNlIG9wZXJhdGlvbnMgYXJlIG5vdCBzZWN1cml0eS1zZW5zaXRpdmUgcmVxdWlyaW5nIGF1ZGl0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9jb2xsZWN0aW9uLyoqLyoudHMnLFxuICAgIHJlYXNvbjogJ01hcmtldHBsYWNlIG9wZXJhdGlvbnMgYXJlIG5vdCBzZWN1cml0eS1zZW5zaXRpdmUgcmVxdWlyaW5nIGF1ZGl0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9wZXJzb25hLyoudHMnLFxuICAgIHJlYXNvbjogJ1BlcnNvbmEgb3BlcmF0aW9ucyBhcmUgdmFsaWRhdGVkIGF0IGVudHJ5IHBvaW50LCBub3Qgc2VjdXJpdHkgb3BlcmF0aW9ucydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvcGVyc29uYS8qKi8qLnRzJyxcbiAgICByZWFzb246ICdQZXJzb25hIG9wZXJhdGlvbnMgYXJlIHZhbGlkYXRlZCBhdCBlbnRyeSBwb2ludCwgbm90IHNlY3VyaXR5IG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZlci90b29scy8qKi8qLnRzJyxcbiAgICByZWFzb246ICdUb29sIGltcGxlbWVudGF0aW9ucyBkZWxlZ2F0ZSB0byBzZXJ2aWNlcyB0aGF0IGhhbmRsZSBzZWN1cml0eSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvaW5kZXgudHMnLFxuICAgIHJlYXNvbjogJ01haW4gZW50cnkgcG9pbnQgZGVsZWdhdGVzIHNlY3VyaXR5IG9wZXJhdGlvbnMgdG8gc3BlY2lhbGl6ZWQgbW9kdWxlcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvdXRpbHMvRXZpY3RpbmdRdWV1ZS50cycsXG4gICAgcmVhc29uOiAnR2VuZXJpYyBkYXRhIHN0cnVjdHVyZSDigJQgZG9lcyBub3QgcHJvY2VzcyB1c2VyIGlucHV0LiBBbGwgY2FsbGVycyAoQWdlbnQsIFNlY3VyaXR5VGVsZW1ldHJ5LCBTZWN1cml0eU1vbml0b3IsIExvZ2dlcikgc2FuaXRpemUgaW5wdXQgYmVmb3JlIHB1c2hpbmcgdG8gdGhlIHF1ZXVlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy91dGlscy8qLnRzJyxcbiAgICByZWFzb246ICdVdGlsaXR5IGZ1bmN0aW9ucyBhcmUgbm90IHNlY3VyaXR5IG9wZXJhdGlvbnMgcmVxdWlyaW5nIGF1ZGl0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy91cGRhdGUvKiovKi50cycsXG4gICAgcmVhc29uOiAnVXBkYXRlIHN5c3RlbSBoYXMgaXRzIG93biBsb2dnaW5nIGFuZCBpcyBub3QgYSBkaXJlY3Qgc2VjdXJpdHkgb3BlcmF0aW9uJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9zZXJ2ZXIvdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlIGRvZXMgbm90IHBlcmZvcm0gb3BlcmF0aW9ucydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzY3JpcHRzLyoqLyonLFxuICAgIHJlYXNvbjogJ0J1aWxkIHNjcmlwdHMgZG8gbm90IHBlcmZvcm0gcnVudGltZSBzZWN1cml0eSBvcGVyYXRpb25zJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NjcmlwdHMvbGliL2doLWNvbW1hbmQuanMnLFxuICAgIHJlYXNvbjogJ0NMSSB1dGlsaXR5IC0gU2VjdXJpdHlNb25pdG9yIG5vdCBhdmFpbGFibGUgaW4gc3RhbmRhbG9uZSBzY3JpcHRzLiBTZWN1cml0eSBlbnN1cmVkIHZpYSBpbnB1dCB2YWxpZGF0aW9uIGFuZCBzZWN1cmUgY29tbWFuZCBleGVjdXRpb24gcGF0dGVybnMgKERNQ1AtU0VDLTAwMSwgRE1DUC1TRUMtMDAyKSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICcqKi9zY3JpcHRzL2xpYi9naC1jb21tYW5kLmpzJyxcbiAgICByZWFzb246ICdDTEkgdXRpbGl0eSAtIFNlY3VyaXR5TW9uaXRvciBub3QgYXZhaWxhYmxlIGluIHN0YW5kYWxvbmUgc2NyaXB0cy4gU2VjdXJpdHkgZW5zdXJlZCB2aWEgaW5wdXQgdmFsaWRhdGlvbiBhbmQgc2VjdXJlIGNvbW1hbmQgZXhlY3V0aW9uIHBhdHRlcm5zIChETUNQLVNFQy0wMDEsIERNQ1AtU0VDLTAwMiknXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL3BvcnRmb2xpby9Qb3J0Zm9saW9TeW5jTWFuYWdlci50cycsXG4gICAgcmVhc29uOiAnUG9ydGZvbGlvIHN5bmMgb3BlcmF0aW9ucyBhcmUgZmlsZSBtYW5hZ2VtZW50IHRhc2tzLCBub3Qgc2VjdXJpdHkgb3BlcmF0aW9ucy4gU2VjdXJpdHkgdmFsaWRhdGlvbiBoYXBwZW5zIGF0IHRoZSBNQ1AgcmVxdWVzdCBsYXllci4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL2hhbmRsZXJzL1N5bmNIYW5kbGVyVjIudHMnLFxuICAgIHJlYXNvbjogJ1N5bmMgaGFuZGxlciBkZWxlZ2F0ZXMgdG8gUG9ydGZvbGlvU3luY01hbmFnZXIgd2hpY2ggaGFuZGxlcyBpdHMgb3duIGxvZ2dpbmcuIFNlY3VyaXR5IHZhbGlkYXRpb24gaGFwcGVucyBhdCB0aGUgTUNQIHJlcXVlc3QgbGF5ZXIuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9oYW5kbGVycy9Db25maWdIYW5kbGVyLnRzJyxcbiAgICByZWFzb246ICdDb25maWcgaGFuZGxlciBvcGVyYXRpb25zIGFyZSBjb25maWd1cmF0aW9uIG1hbmFnZW1lbnQsIG5vdCBzZWN1cml0eSBvcGVyYXRpb25zLiBDb25maWdNYW5hZ2VyIGhhbmRsZXMgaXRzIG93biBsb2dnaW5nLidcbiAgfSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFF1ZXJ5IFNlcnZpY2VzIC0gSXNzdWUgIzM4IChQUiAjNDYpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUXVlcnkgc2VydmljZXMgcmVjZWl2ZSBwcmUtbm9ybWFsaXplZCBpbnB1dCB2aWEgdHdvIGxheWVyczpcbiAgLy8gMS4gU2VydmVyU2V0dXAubm9ybWFsaXplQXJndW1lbnRzVW5pY29kZSgpIG5vcm1hbGl6ZXMgYWxsIE1DUCB0b29sIGFyZ3VtZW50c1xuICAvLyAyLiBGaWx0ZXJTZXJ2aWNlIHVzZXMgbm9ybWFsaXplU2VhcmNoVGVybSgpIHdoaWNoIGNhbGxzIFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKClcbiAgLy8gU2VlIHNyYy91dGlscy9zZWFyY2hVdGlscy50cyBsaW5lcyAxNy0zMCBmb3Igc2Vjb25kYXJ5IG5vcm1hbGl6YXRpb25cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvcXVlcnkvdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlIGNvbnRhaW5pbmcgb25seSBUeXBlU2NyaXB0IGludGVyZmFjZXMgLSBubyBydW50aW1lIGNvZGUgb3IgdXNlciBpbnB1dCBwcm9jZXNzaW5nLiBQUiAjNDYnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3F1ZXJ5L2luZGV4LnRzJyxcbiAgICByZWFzb246ICdSZS1leHBvcnQgbW9kdWxlIC0gbm8gdXNlciBpbnB1dCBwcm9jZXNzaW5nLCBvbmx5IFR5cGVTY3JpcHQgcmUtZXhwb3J0cy4gUFIgIzQ2J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9xdWVyeS9QYWdpbmF0aW9uU2VydmljZS50cycsXG4gICAgcmVhc29uOiAnUGFnaW5hdGlvblNlcnZpY2UgcHJvY2Vzc2VzIG51bWVyaWMgcGFyYW1ldGVycyAocGFnZSwgcGFnZVNpemUpIC0gbm8gc3RyaW5nIGlucHV0IHJlcXVpcmluZyBVbmljb2RlIG5vcm1hbGl6YXRpb24uIElucHV0IHByZS12YWxpZGF0ZWQgYXQgTUNQIHJlcXVlc3QgbGF5ZXIuIFBSICM0NidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvcXVlcnkvRmlsdGVyU2VydmljZS50cycsXG4gICAgcmVhc29uOiAnRFVBTCBQUk9URUNUSU9OOiAoMSkgSW5wdXQgcHJlLW5vcm1hbGl6ZWQgYnkgU2VydmVyU2V0dXAubm9ybWFsaXplQXJndW1lbnRzVW5pY29kZSgpIGF0IE1DUCBsYXllciwgKDIpIEZpbHRlclNlcnZpY2UgdXNlcyBub3JtYWxpemVTZWFyY2hUZXJtKCkgd2hpY2ggY2FsbHMgVW5pY29kZVZhbGlkYXRvci5ub3JtYWxpemUoKS4gU2VlIHNlYXJjaFV0aWxzLnRzOjE3LTMwLiBQUiAjNDYnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3F1ZXJ5L0VsZW1lbnRRdWVyeVNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ09yY2hlc3RyYXRvciBzZXJ2aWNlIC0gZGVsZWdhdGVzIHRvIEZpbHRlclNlcnZpY2Ugd2hpY2ggcGVyZm9ybXMgVW5pY29kZSBub3JtYWxpemF0aW9uIHZpYSBub3JtYWxpemVTZWFyY2hUZXJtKCkuIElucHV0IHByZS1ub3JtYWxpemVkIGF0IE1DUCBsYXllci4gUFIgIzQ2J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9xdWVyeS9Tb3J0U2VydmljZS50cycsXG4gICAgcmVhc29uOiAnU29ydFNlcnZpY2UgdmFsaWRhdGVzIHNvcnRCeSBhZ2FpbnN0IGVudW0gd2hpdGVsaXN0IChTb3J0YWJsZUZpZWxkKSAtIG5vIGFyYml0cmFyeSBzdHJpbmcgaW5wdXQuIHNvcnRPcmRlciBpcyBlbnVtLXZhbGlkYXRlZC4gTm8gVW5pY29kZSBub3JtYWxpemF0aW9uIG5lZWRlZC4gUFIgIzQ2J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9xdWVyeS8qLnRzJyxcbiAgICByZWFzb246ICdRdWVyeSBzZXJ2aWNlcyByZWNlaXZlIHByZS1ub3JtYWxpemVkIGlucHV0IGZyb20gTUNQIGxheWVyIGFuZCB1c2Ugbm9ybWFsaXplU2VhcmNoVGVybSgpIGZvciBhZGRpdGlvbmFsIHByb3RlY3Rpb24uIFBSICM0NidcbiAgfSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIENvdmVyYWdlIFJlcG9ydCBGaWxlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJ3Rlc3QvY292ZXJhZ2UvKiovKicsXG4gICAgcmVhc29uOiAnQ292ZXJhZ2UgcmVwb3J0IGZpbGVzIGFyZSBhdXRvLWdlbmVyYXRlZCBhbmQgbm90IHBhcnQgb2YgdGhlIGFwcGxpY2F0aW9uIGNvZGUnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJ3Rlc3RzL2NvdmVyYWdlLyoqLyonLFxuICAgIHJlYXNvbjogJ0NvdmVyYWdlIHJlcG9ydCBmaWxlcyBhcmUgYXV0by1nZW5lcmF0ZWQgYW5kIG5vdCBwYXJ0IG9mIHRoZSBhcHBsaWNhdGlvbiBjb2RlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICcqKi9sY292LXJlcG9ydC8qKi8qJyxcbiAgICByZWFzb246ICdMQ09WIGNvdmVyYWdlIHJlcG9ydCBmaWxlcyBhcmUgYXV0by1nZW5lcmF0ZWQgYW5kIG5vdCBwYXJ0IG9mIHRoZSBhcHBsaWNhdGlvbiBjb2RlJ1xuICB9LFxuICBcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBEb2N1bWVudGF0aW9uIGFuZCBOb24tQ29kZSBGaWxlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJ2RvY3MvKiovKicsXG4gICAgcmVhc29uOiAnRG9jdW1lbnRhdGlvbiBmaWxlcyBpbmNsdWRpbmcgUUEgbWV0cmljcyBhbmQgcmVwb3J0cydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnKiovKi5tZCcsXG4gICAgcmVhc29uOiAnTWFya2Rvd24gZG9jdW1lbnRhdGlvbiBmaWxlcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnKiovKi5qc29uJyxcbiAgICByZWFzb246ICdKU09OIGNvbmZpZ3VyYXRpb24gYW5kIGRhdGEgZmlsZXMgZG8gbm90IGV4ZWN1dGUgY29kZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnTElDRU5TRScsXG4gICAgcmVhc29uOiAnTGljZW5zZSBmaWxlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICcuZ2l0aWdub3JlJyxcbiAgICByZWFzb246ICdHaXQgY29uZmlndXJhdGlvbiBmaWxlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICdwYWNrYWdlLWxvY2suanNvbicsXG4gICAgcmVhc29uOiAnTlBNIGxvY2sgZmlsZSAtIGF1dG8tZ2VuZXJhdGVkLCBubyB1c2VyIGlucHV0IHByb2Nlc3NpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJyoqLyoueW1sJyxcbiAgICByZWFzb246ICdZQU1MIGNvbmZpZ3VyYXRpb24gZmlsZXMgYXJlIGRhdGEsIG5vdCBjb2RlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICcqKi8qLnlhbWwnLFxuICAgIHJlYXNvbjogJ1lBTUwgY29uZmlndXJhdGlvbiBmaWxlcyBhcmUgZGF0YSwgbm90IGNvZGUnXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTZXB0ZW1iZXIgMjIgU2Vzc2lvbiBEb2NzIFJlc3RvcmF0aW9uIC0gUFIgIzEwODJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDInLFxuICAgIGZpbGU6ICdzY3JpcHRzL3Rlc3QtY2FwYWJpbGl0eS1pbmRleC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBzY3JpcHQgdXNpbmcgc3Bhd24gd2l0aCBoYXJkY29kZWQgYXJyYXkgYXJndW1lbnRzIC0gbm8gdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnKiovc2NyaXB0cy90ZXN0LWNhcGFiaWxpdHktaW5kZXguanMnLFxuICAgIHJlYXNvbjogJ1Rlc3Qgc2NyaXB0IHVzaW5nIHNwYXduIHdpdGggaGFyZGNvZGVkIGFycmF5IGFyZ3VtZW50cyAtIG5vIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJ3Rlc3RzL2V4cGVyaW1lbnRzL2NhcGFiaWxpdHktaW5kZXgtY29tcHJlaGVuc2l2ZS10ZXN0LmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgdXNpbmcgc3Bhd24gd2l0aCBoYXJkY29kZWQgYXJyYXkgYXJndW1lbnRzIC0gbm8gdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnKiovdGVzdHMvZXhwZXJpbWVudHMvY2FwYWJpbGl0eS1pbmRleC1jb21wcmVoZW5zaXZlLXRlc3QuanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZSB1c2luZyBzcGF3biB3aXRoIGhhcmRjb2RlZCBhcnJheSBhcmd1bWVudHMgLSBubyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwMycsXG4gICAgZmlsZTogJ3NjcmlwdHMvdGVzdC1jYXBhYmlsaXR5LWluZGV4LmpzJyxcbiAgICByZWFzb246ICdUZXN0IHNjcmlwdCB3aXRoIGhhcmRjb2RlZCB0ZXN0IHBlcnNvbmEgcGF0aHMgLSBub3QgcHJvZHVjdGlvbiBjb2RlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwMycsXG4gICAgZmlsZTogJyoqL3NjcmlwdHMvdGVzdC1jYXBhYmlsaXR5LWluZGV4LmpzJyxcbiAgICByZWFzb246ICdUZXN0IHNjcmlwdCB3aXRoIGhhcmRjb2RlZCB0ZXN0IHBlcnNvbmEgcGF0aHMgLSBub3QgcHJvZHVjdGlvbiBjb2RlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0NXRS0yMi0wMDEnLFxuICAgIGZpbGU6ICd0ZXN0cy9leHBlcmltZW50cy9jYXBhYmlsaXR5LWluZGV4LWRvY2tlci10ZXN0LmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgdXNpbmcgaGFyZGNvZGVkIHRlc3QgcGF0aHMgLSBubyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0NXRS0yMi0wMDEnLFxuICAgIGZpbGU6ICcqKi90ZXN0cy9leHBlcmltZW50cy9jYXBhYmlsaXR5LWluZGV4LWRvY2tlci10ZXN0LmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgdXNpbmcgaGFyZGNvZGVkIHRlc3QgcGF0aHMgLSBubyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3Rlc3QtbWVtb3J5LWVkaXQuanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZSBmb3IgbWVtb3J5IGVkaXRpbmcgLSBubyB1c2VyIGlucHV0IHByb2Nlc3NpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovdGVzdC1tZW1vcnktZWRpdC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIGZvciBtZW1vcnkgZWRpdGluZyAtIG5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZydcbiAgfSxcblxuICAvLyBBZGRpdGlvbmFsIHN1cHByZXNzaW9ucyBmb3IgcmVtYWluaW5nIGlzc3Vlc1xuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDInLFxuICAgIGZpbGU6ICd0ZXN0cy9leHBlcmltZW50cy9jYXBhYmlsaXR5LWluZGV4LWRvY2tlci10ZXN0LmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgdXNpbmcgc3Bhd24gd2l0aCBoYXJkY29kZWQgYXJyYXkgYXJndW1lbnRzIGF0IGxpbmUgMjc5IC0gbm8gdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnKiovdGVzdHMvZXhwZXJpbWVudHMvY2FwYWJpbGl0eS1pbmRleC1kb2NrZXItdGVzdC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIHVzaW5nIHNwYXduIHdpdGggaGFyZGNvZGVkIGFycmF5IGFyZ3VtZW50cyBhdCBsaW5lIDI3OSAtIG5vIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDAxJyxcbiAgICBmaWxlOiAnc2NyaXB0cy90ZXN0LWNhcGFiaWxpdHktaW5kZXguanMnLFxuICAgIHJlYXNvbjogJ1Rlc3Qgc2NyaXB0IGxvYWRpbmcgdGVzdCBwZXJzb25hcyB3aXRoIGhhcmRjb2RlZCBwYXRocyAtIG5vdCBwcm9kdWN0aW9uIGNvZGUnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDAxJyxcbiAgICBmaWxlOiAnKiovc2NyaXB0cy90ZXN0LWNhcGFiaWxpdHktaW5kZXguanMnLFxuICAgIHJlYXNvbjogJ1Rlc3Qgc2NyaXB0IGxvYWRpbmcgdGVzdCBwZXJzb25hcyB3aXRoIGhhcmRjb2RlZCBwYXRocyAtIG5vdCBwcm9kdWN0aW9uIGNvZGUnXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBwYWNrYWdlcy9zYWZldHkgU3VwcHJlc3Npb25zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAncGFja2FnZXMvc2FmZXR5L3NyYy9EaXNwbGF5U2VydmljZS50cycsXG4gICAgcmVhc29uOiAnSW50ZW50aW9uYWwgZXhlY1N5bmMgZm9yIGNyb3NzLXBsYXRmb3JtIE9TIGRpYWxvZ3MuIEFsbCB1c2VyIGlucHV0IGlzIHByb3Blcmx5IGVzY2FwZWQgdXNpbmcgZXNjYXBlU2hlbGxBcmcgKFVuaXgpIG9yIEJhc2U2NCBlbmNvZGluZyAoUG93ZXJTaGVsbCknXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJyoqL3BhY2thZ2VzL3NhZmV0eS9zcmMvRGlzcGxheVNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ0ludGVudGlvbmFsIGV4ZWNTeW5jIGZvciBjcm9zcy1wbGF0Zm9ybSBPUyBkaWFsb2dzLiBBbGwgdXNlciBpbnB1dCBpcyBwcm9wZXJseSBlc2NhcGVkIHVzaW5nIGVzY2FwZVNoZWxsQXJnIChVbml4KSBvciBCYXNlNjQgZW5jb2RpbmcgKFBvd2VyU2hlbGwpJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3BhY2thZ2VzL3NhZmV0eS9zcmMvRGlzcGxheVNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ0Rpc3BsYXlTZXJ2aWNlIHJlY2VpdmVzIHNhbml0aXplZCBpbnB1dCBmcm9tIFRpZXJlZFNhZmV0eVNlcnZpY2UuIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBoYXBwZW5zIGF0IHZhbGlkYXRpb24gYm91bmRhcmllcywgbm90IGluIGRpc3BsYXkgbGF5ZXInXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovcGFja2FnZXMvc2FmZXR5L3NyYy9EaXNwbGF5U2VydmljZS50cycsXG4gICAgcmVhc29uOiAnRGlzcGxheVNlcnZpY2UgcmVjZWl2ZXMgc2FuaXRpemVkIGlucHV0IGZyb20gVGllcmVkU2FmZXR5U2VydmljZS4gVW5pY29kZSBub3JtYWxpemF0aW9uIGhhcHBlbnMgYXQgdmFsaWRhdGlvbiBib3VuZGFyaWVzLCBub3QgaW4gZGlzcGxheSBsYXllcidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdwYWNrYWdlcy9zYWZldHkvc3JjL1RpZXJlZFNhZmV0eVNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ1RpZXJlZFNhZmV0eVNlcnZpY2UgdmFsaWRhdGVzIG9wZXJhdGlvbiBzYWZldHkgbGV2ZWxzLCBub3QgdXNlciBpbnB1dC4gSW5wdXQgdmFsaWRhdGlvbiB3aXRoIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBpcyBoYW5kbGVkIGJ5IHVwc3RyZWFtIHZhbGlkYXRvcnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovcGFja2FnZXMvc2FmZXR5L3NyYy9UaWVyZWRTYWZldHlTZXJ2aWNlLnRzJyxcbiAgICByZWFzb246ICdUaWVyZWRTYWZldHlTZXJ2aWNlIHZhbGlkYXRlcyBvcGVyYXRpb24gc2FmZXR5IGxldmVscywgbm90IHVzZXIgaW5wdXQuIElucHV0IHZhbGlkYXRpb24gd2l0aCBVbmljb2RlIG5vcm1hbGl6YXRpb24gaXMgaGFuZGxlZCBieSB1cHN0cmVhbSB2YWxpZGF0b3JzJ1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRG9ja2VyIFRva2VuIE1lYXN1cmVtZW50IFNjcmlwdCAtIFBSICMyOTJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDInLFxuICAgIGZpbGU6ICdzY3JpcHRzL21lYXN1cmUtZG9ja2VyLXRva2Vucy50cycsXG4gICAgcmVhc29uOiAnQ29tbWFuZCBpbmplY3Rpb24gbWl0aWdhdGVkOiBpbnRlcmZhY2VNb2RlIGFuZCBlbmRwb2ludE1vZGUgYXJlIHZhbGlkYXRlZCBhZ2FpbnN0IFZBTElEX0lOVEVSRkFDRV9NT0RFUyBhbmQgVkFMSURfRU5EUE9JTlRfTU9ERVMgYWxsb3dsaXN0cyBiZWZvcmUgdXNlIGluIHNwYXduKCkuIFR5cGVTY3JpcHQgdHlwZXMgYWxzbyBjb25zdHJhaW4gcGFyYW1ldGVycyBhdCBjb21waWxlIHRpbWUuIFBSICMyOTInXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJyoqL3NjcmlwdHMvbWVhc3VyZS1kb2NrZXItdG9rZW5zLnRzJyxcbiAgICByZWFzb246ICdDb21tYW5kIGluamVjdGlvbiBtaXRpZ2F0ZWQ6IGludGVyZmFjZU1vZGUgYW5kIGVuZHBvaW50TW9kZSBhcmUgdmFsaWRhdGVkIGFnYWluc3QgVkFMSURfSU5URVJGQUNFX01PREVTIGFuZCBWQUxJRF9FTkRQT0lOVF9NT0RFUyBhbGxvd2xpc3RzIGJlZm9yZSB1c2UgaW4gc3Bhd24oKS4gVHlwZVNjcmlwdCB0eXBlcyBhbHNvIGNvbnN0cmFpbiBwYXJhbWV0ZXJzIGF0IGNvbXBpbGUgdGltZS4gUFIgIzI5MidcbiAgfSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFVuaWZpZWQgTG9nZ2luZyBTeXN0ZW0g4oCUIFBSICM0NzFcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTaW5rcyByZWNlaXZlIHByZS1jb25zdHJ1Y3RlZCBVbmlmaWVkTG9nRW50cnkgb2JqZWN0cyBmcm9tIExvZ01hbmFnZXIuXG4gIC8vIERhdGEgZW50ZXJzIHRoZSBwaXBlbGluZSB0aHJvdWdoIExvZ0hvb2tzIHdoaWNoIGNyZWF0ZXMgZW50cmllcyBmcm9tXG4gIC8vIGludGVybmFsIHN5c3RlbSBldmVudHMuIE1DUExvZ2dlciBzYW5pdGl6ZXMgdmlhIHNhbml0aXplTWVzc2FnZSgpIGFuZFxuICAvLyBzYW5pdGl6ZURhdGEoKSBiZWZvcmUgZW1pdHRpbmcuIE90aGVyIHNvdXJjZXMgKFNlY3VyaXR5TW9uaXRvcixcbiAgLy8gUGVyZm9ybWFuY2VNb25pdG9yLCBldGMuKSBlbWl0IGludGVybmFsIHN5c3RlbSBkYXRhLCBub3QgdXNlciBpbnB1dC5cbiAgLy8gVGhlIFNTRSB2aWV3ZXIgSFRNTC1lc2NhcGVzIGFsbCBkeW5hbWljIGNvbnRlbnQgdmlhIGVzY0h0bWwoKS9cbiAgLy8gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoKS5cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvbG9nZ2luZy90eXBlcy50cycsXG4gICAgcmVhc29uOiAnUHVyZSB0eXBlIGRlZmluaXRpb25zIGFuZCBpbnRlcmZhY2VzIOKAlCBubyBkYXRhIHByb2Nlc3Npbmcgb3IgdXNlciBpbnB1dCBoYW5kbGluZy4gUFIgIzQ3MSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvbG9nZ2luZy9zaW5rcy9NZW1vcnlMb2dTaW5rLnRzJyxcbiAgICByZWFzb246ICdSZWNlaXZlcyBwcmUtY29uc3RydWN0ZWQgVW5pZmllZExvZ0VudHJ5IG9iamVjdHMgZnJvbSBMb2dNYW5hZ2VyLiBRdWVyeSBwYXJhbWV0ZXJzIGFyZSB1c2VkIGFzIHJlYWQtb25seSBzdWJzdHJpbmcgZmlsdGVycywgbm90IHdyaXR0ZW4gdG8gb3V0cHV0LiBQUiAjNDcxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9sb2dnaW5nL3NpbmtzL0ZpbGVMb2dTaW5rLnRzJyxcbiAgICByZWFzb246ICdSZWNlaXZlcyBwcmUtZm9ybWF0dGVkIGVudHJpZXMgdmlhIElMb2dGb3JtYXR0ZXIuIEZpbGUgcGF0aHMgYnVpbHQgZnJvbSBoYXJkY29kZWQgY2F0ZWdvcnkgbmFtZXMgKyBkYXRlcy4gTUNQTG9nZ2VyIHNhbml0aXplcyB1cHN0cmVhbSB2aWEgc2FuaXRpemVNZXNzYWdlL3Nhbml0aXplRGF0YTsgb3RoZXIgc291cmNlcyBlbWl0IGludGVybmFsIHN5c3RlbSBkYXRhLiBQUiAjNDcxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy93ZWIvcm91dGVzL2xvZ1JvdXRlcy50cycsXG4gICAgcmVhc29uOiAnSlNPTi1zZXJpYWxpemVzIHByZS1jb25zdHJ1Y3RlZCBVbmlmaWVkTG9nRW50cnkgb2JqZWN0cyBvdmVyIFNTRS4gQWxsIHF1ZXJ5IHBhcmFtZXRlcnMgYXJlIHZhbGlkYXRlZCBzdHJpbmdzIHBhc3NlZCB0byBNZW1vcnlMb2dTaW5rLnF1ZXJ5KCkuIE5vIEhUTUwgcmVuZGVyaW5nLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc3RvcmFnZS90eXBlcy50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IFR5cGUtb25seSBpbnRlcmZhY2UgZGVjbGFyYXRpb25zIChTdG9yYWdlSXRlbU1ldGFkYXRhLCBFbGVtZW50SW5kZXhFbnRyeSwgTWFuaWZlc3REaWZmUmVzdWx0KS4gTm8gZXhlY3V0YWJsZSBpbnB1dC1wcm9jZXNzaW5nIGNvZGU7IFVuaWNvZGUgbm9ybWFsaXphdGlvbiBpcyBlbmZvcmNlZCBpbiBjb25jcmV0ZSBzdG9yYWdlIHBhcnNlcnMvbGF5ZXJzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc3RvcmFnZS9JU3RvcmFnZUJhY2tlbmQudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBJbnRlcmZhY2UgY29udHJhY3Qgb25seSBmb3IgYmFja2VuZCBhYnN0cmFjdGlvbi4gTm8gcnVudGltZSB1c2VyLWlucHV0IGhhbmRsaW5nIGluIHRoaXMgZmlsZTsgbm9ybWFsaXphdGlvbiBpcyBlbmZvcmNlZCBieSBpbXBsZW1lbnRpbmcgc3RvcmFnZSBsYXllcnMgYW5kIHZhbGlkYXRvcnMuJ1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVmVyaWZpY2F0aW9uTm90aWZpZXIgRmFsc2UgUG9zaXRpdmVzIOKAlCBJc3N1ZSAjNTM3XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL1ZlcmlmaWNhdGlvbk5vdGlmaWVyLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogTGluZXMgMTE3LCAxMzIsIDE0NSB1c2Ugc3Bhd24oKSB3aXRoIGFycmF5IGFyZ3VtZW50cyAobm8gc2hlbGwgaW52b2NhdGlvbikuIHplbml0eS9rZGlhbG9nL3htZXNzYWdlIGFyZSBkaXNwbGF5LW9ubHkgdG9vbHMgdGhhdCByZW5kZXIgdGV4dCBpbiBHVUkgZGlhbG9ncyB3aXRob3V0IGludGVycHJldGluZyBjb250ZW50IGFzIGNvZGUuIGFnZW50TmFtZSAoZnJvbSBNQ1AgcGFyYW1zKSBhbmQgY29kZSAoY3J5cHRvZ3JhcGhpYyBhbHBoYW51bWVyaWMpIGZsb3cgaW50byBkaXNwbGF5IHRleHQgb25seS4gU2VlIElzc3VlICM1MzcgZXZpZGVuY2UgdHJhY2UuJ1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gV2ViIFVJIENsaWVudC1TaWRlIEZhbHNlIFBvc2l0aXZlcyDigJQgUkMxIFNlY3VyaXR5IEF1ZGl0XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDUnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3B1YmxpYy9hcHAuanMnLFxuICAgIHJlYXNvbjogJ0NsaWVudC1zaWRlIGJyb3dzZXIgSmF2YVNjcmlwdC4gU2VjdXJlWWFtbFBhcnNlciBpcyBhIE5vZGUuanMgbW9kdWxlIHVuYXZhaWxhYmxlIGluIGJyb3dzZXIgY29udGV4dC4gc2FmZVBhcnNlWWFtbCgpIHdyYXBwZXIgdXNlcyBDT1JFX1NDSEVNQSAoc2FmZSwgbm8gY3VzdG9tIHR5cGVzKSB3aXRoIDUxMktCIHNpemUgbGltaXQuIERhdGEgc2VydmVkIGZyb20gbG9jYWxob3N0IG9yIHRydXN0ZWQgR2l0SHViIGNvbGxlY3Rpb24gQVBJLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3B1YmxpYy9hcHAuanMnLFxuICAgIHJlYXNvbjogJ0NsaWVudC1zaWRlIGJyb3dzZXIgSmF2YVNjcmlwdC4gVW5pY29kZVZhbGlkYXRvciBpcyBhIE5vZGUuanMgbW9kdWxlIHVuYXZhaWxhYmxlIGluIGJyb3dzZXIgY29udGV4dC4gSW5wdXQgc2VydmVkIGZyb20gRG9sbGhvdXNlTUNQIHNlcnZlciB3aGljaCBub3JtYWxpemVzIGJlZm9yZSBzZXJ2aW5nLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3NlcnZlci50cycsXG4gICAgcmVhc29uOiAnTkZDIG5vcm1hbGl6YXRpb24gYWRkZWQgdG8gcmVxLnBhdGggaW4gU1BBIGZhbGxiYWNrIGhhbmRsZXIgKGxpbmUgMTgwKS4gRmlsZS1sZXZlbCBzY2FubmVyIGZsYWdzIGRlc3BpdGUgcGVyLWlucHV0IGZpeC4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3dlYi9yb3V0ZXMudHMnLFxuICAgIHJlYXNvbjogJ05GQyBub3JtYWxpemF0aW9uIHZpYSBub3JtYWxpemVJbnB1dCgpIGFwcGxpZWQgdG8gYWxsIHJlcS5wYXJhbXMuIEZpbGUtbGV2ZWwgc2Nhbm5lciBmbGFncyBkZXNwaXRlIHBlci1pbnB1dCBmaXguJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jb252ZXJ0ZXJzL0FnZW50U2tpbGxDb252ZXJ0ZXIudHMnLFxuICAgIHJlYXNvbjogJ05GQyBub3JtYWxpemF0aW9uIGFkZGVkIHRvIGJvdGggY29udmVydEFnZW50VG9Eb2xsaG91c2UoKSBhbmQgY29udmVydERvbGxob3VzZVRvQWdlbnQoKSBlbnRyeSBwb2ludHMuIEZpbGUtbGV2ZWwgc2Nhbm5lciBmbGFncyBkZXNwaXRlIHBlci1pbnB1dCBmaXguJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy93ZWIvcm91dGVzL3Blcm1pc3Npb25Sb3V0ZXMudHMnLFxuICAgIHJlYXNvbjogJ05GQyBub3JtYWxpemF0aW9uIGFwcGxpZWQgdG8gdG9vbF9uYW1lIGFuZCBwbGF0Zm9ybSBpbnB1dHMgYXQgSFRUUCBib3VuZGFyeSBiZWZvcmUgZm9yd2FyZGluZyB0byBNQ1BBUUxIYW5kbGVyLmhhbmRsZVJlYWQoKS4gR0VUIC9wZXJtaXNzaW9ucy9zdGF0dXMgaGFzIG5vIHVzZXItc3VwcGxpZWQgc3RyaW5nIHBhcmFtZXRlcnMuIFNjYW5uZXIgbWF5IGZsYWcgZmlsZS1sZXZlbCBkZXNwaXRlIHBlci1pbnB1dCBmaXguJ1xuICB9XG5dO1xuXG4vKipcbiAqIFZhbGlkYXRlIHN1cHByZXNzaW9uIGNvbmZpZ3VyYXRpb24gYXQgc3RhcnR1cFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTdXBwcmVzc2lvbnMoKTogc3RyaW5nW10ge1xuICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHNlZW5QYXR0ZXJucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBcbiAgZm9yIChjb25zdCBzdXBwcmVzc2lvbiBvZiBzdXBwcmVzc2lvbnMpIHtcbiAgICAvLyBDaGVjayBmb3IgZW1wdHkgcmVhc29uc1xuICAgIGlmICghc3VwcHJlc3Npb24ucmVhc29uIHx8IHN1cHByZXNzaW9uLnJlYXNvbi50cmltKCkubGVuZ3RoIDwgMTApIHtcbiAgICAgIGVycm9ycy5wdXNoKGBTdXBwcmVzc2lvbiBmb3IgJHtzdXBwcmVzc2lvbi5ydWxlfSBoYXMgaW5zdWZmaWNpZW50IHJlYXNvbmApO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBmb3IgdmFsaWQgcnVsZSBwYXR0ZXJuc1xuICAgIGNvbnN0IHJ1bGVQYXR0ZXJuID0gL14oRE1DUC1TRUMtXFxkezN9fE9XQVNQLVtBLVpdXFxkezJ9LVxcZHszfXxDV0UtXFxkKy1cXGR7M318XFwqKSQvO1xuICAgIGlmICghc3VwcHJlc3Npb24ucnVsZS5tYXRjaChydWxlUGF0dGVybikpIHtcbiAgICAgIGVycm9ycy5wdXNoKGBJbnZhbGlkIHJ1bGUgcGF0dGVybjogJHtzdXBwcmVzc2lvbi5ydWxlfWApO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBmb3IgZHVwbGljYXRlIHN1cHByZXNzaW9uc1xuICAgIGNvbnN0IGtleSA9IGAke3N1cHByZXNzaW9uLnJ1bGV9OiR7c3VwcHJlc3Npb24uZmlsZSB8fCAnKid9YDtcbiAgICBpZiAoc2VlblBhdHRlcm5zLmhhcyhrZXkpKSB7XG4gICAgICBlcnJvcnMucHVzaChgRHVwbGljYXRlIHN1cHByZXNzaW9uOiAke2tleX1gKTtcbiAgICB9XG4gICAgc2VlblBhdHRlcm5zLmFkZChrZXkpO1xuICAgIFxuICAgIC8vIFZhbGlkYXRlIGdsb2IgcGF0dGVybnNcbiAgICBpZiAoc3VwcHJlc3Npb24uZmlsZT8uaW5jbHVkZXMoJyoqJykgJiYgIXN1cHByZXNzaW9uLmZpbGUuaW5jbHVkZXMoJyoqLycpKSB7XG4gICAgICBlcnJvcnMucHVzaChgSW52YWxpZCBnbG9iIHBhdHRlcm4gaW4gJHtzdXBwcmVzc2lvbi5maWxlfSAtICoqIG11c3QgYmUgZm9sbG93ZWQgYnkgL2ApO1xuICAgIH1cbiAgfVxuICBcbiAgcmV0dXJuIGVycm9ycztcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGdsb2IgcGF0dGVybiB0byByZWdleCBwYXR0ZXJuIHNhZmVseVxuICogVXNpbmcgYSBwcm9wZXIgZ2xvYi10by1yZWdleCBjb252ZXJzaW9uIHRoYXQgaGFuZGxlcyBhbGwgZWRnZSBjYXNlc1xuICovXG5mdW5jdGlvbiBnbG9iVG9SZWdleChnbG9iOiBzdHJpbmcpOiBSZWdFeHAge1xuICAvLyBDaGVjayBjYWNoZSBmaXJzdFxuICBjb25zdCBjYWNoZWQgPSBjYWNoZS5nZXRSZWdleChnbG9iKTtcbiAgaWYgKGNhY2hlZCkgcmV0dXJuIGNhY2hlZDtcbiAgXG4gIC8vIFNwZWNpYWwgY2FzZTogaWYgZ2xvYiBzdGFydHMgd2l0aCAqLCBpdCBzaG91bGQgbWF0Y2ggYW55dGhpbmcgYXQgdGhlIGJlZ2lubmluZ1xuICBsZXQgcHJvY2Vzc2VkR2xvYiA9IGdsb2I7XG4gIGxldCBwcmVmaXggPSAnJztcbiAgaWYgKGdsb2Iuc3RhcnRzV2l0aCgnKicpICYmICFnbG9iLnN0YXJ0c1dpdGgoJyoqJykpIHtcbiAgICBwcmVmaXggPSAnKD86LiovKT8nOyAgLy8gT3B0aW9uYWwgcGF0aCBwcmVmaXhcbiAgICBwcm9jZXNzZWRHbG9iID0gZ2xvYi5zdWJzdHJpbmcoMSk7XG4gIH1cbiAgXG4gIC8vIEVzY2FwZSBhbGwgcmVnZXggc3BlY2lhbCBjaGFyYWN0ZXJzIGV4Y2VwdCAqIGFuZCAvXG4gIC8vIEZpeGVkOiBQcm9wZXJseSBlc2NhcGUgYmFja3NsYXNoZXMgYW5kIG90aGVyIHNwZWNpYWwgcmVnZXggY2hhcmFjdGVyc1xuICBsZXQgcGF0dGVybiA9IHByb2Nlc3NlZEdsb2IucmVwbGFjZUFsbCgvW1xcXFxeJC4oKSs/e31bXFxdfF0vZywgJ1xcXFwkJicpO1xuXG4gIC8vIEhhbmRsZSBnbG9iIHBhdHRlcm5zIGluIGNvcnJlY3Qgb3JkZXJcbiAgLy8gUmVwbGFjZSAqKiBiZWZvcmUgKiB0byBhdm9pZCBjb25mbGljdHNcbiAgcGF0dGVybiA9IHBhdHRlcm5cbiAgICAucmVwbGFjZUFsbCgnKionLCAnPDxHTE9CU1RBUj4+JykgICAgIC8vIFRlbXBvcmFyeSBwbGFjZWhvbGRlciBmb3IgKipcbiAgICAucmVwbGFjZUFsbCgnKicsICc8PFNUQVI+PicpICAgICAgICAgICAgLy8gVGVtcG9yYXJ5IHBsYWNlaG9sZGVyIGZvciAqXG4gICAgLnJlcGxhY2VBbGwoJzw8R0xPQlNUQVI+Pi8nLCAnKD86LiovKT8nKSAvLyAqKi8gbWF0Y2hlcyBhbnkgbnVtYmVyIG9mIGRpcmVjdG9yaWVzIGluY2x1ZGluZyBub25lXG4gICAgLnJlcGxhY2VBbGwoJzw8R0xPQlNUQVI+PicsICcuKicpICAgICAgIC8vICoqIG1hdGNoZXMgYW55dGhpbmdcbiAgICAucmVwbGFjZUFsbCgnPDxTVEFSPj4nLCAnW14vXSonKSAgICAgICAgLy8gKiBtYXRjaGVzIGFueXRoaW5nIGV4Y2VwdCBkaXJlY3Rvcnkgc2VwYXJhdG9yXG4gICAgLnJlcGxhY2VBbGwoJy8nLCAnXFxcXC8nKTsgICAgICAgICAgICAgICAgLy8gRXNjYXBlIGZvcndhcmQgc2xhc2hlc1xuICBcbiAgLy8gQ29tYmluZSBwcmVmaXggYW5kIHBhdHRlcm5cbiAgY29uc3QgZnVsbFBhdHRlcm4gPSBwcmVmaXggKyBwYXR0ZXJuO1xuICBcbiAgLy8gQWRkIGFuY2hvcnMgdG8gZW5zdXJlIGZ1bGwgcGF0aCBtYXRjaFxuICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF4ke2Z1bGxQYXR0ZXJufSRgKTtcbiAgXG4gIC8vIENhY2hlIHRoZSBjb21waWxlZCByZWdleFxuICBjYWNoZS5zZXRSZWdleChnbG9iLCByZWdleCk7XG4gIFxuICByZXR1cm4gcmVnZXg7XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGZpbGUgcGF0aCBmb3IgY29uc2lzdGVudCBtYXRjaGluZ1xuICogSGFuZGxlcyBib3RoIGFic29sdXRlIGFuZCByZWxhdGl2ZSBwYXRocyBhY3Jvc3MgZGlmZmVyZW50IHBsYXRmb3Jtc1xuICovXG5mdW5jdGlvbiBub3JtYWxpemVQYXRoKGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBDb252ZXJ0IGJhY2tzbGFzaGVzIHRvIGZvcndhcmQgc2xhc2hlcyBmb3IgV2luZG93cyBwYXRoc1xuICBsZXQgbm9ybWFsaXplZCA9IGZpbGVQYXRoLnJlcGxhY2VBbGwoJ1xcXFwnLCAnLycpO1xuXG4gIC8vIFJlbW92ZSBkdXBsaWNhdGUgc2xhc2hlc1xuICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5yZXBsYWNlQWxsKC9cXC8rL2csICcvJyk7XG4gIFxuICAvLyBSZW1vdmUgdHJhaWxpbmcgc2xhc2ggaWYgcHJlc2VudFxuICBpZiAobm9ybWFsaXplZC5lbmRzV2l0aCgnLycpICYmIG5vcm1hbGl6ZWQubGVuZ3RoID4gMSkge1xuICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVkLnNsaWNlKDAsIC0xKTtcbiAgfVxuICBcbiAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG59XG5cbi8qKlxuICogRXh0cmFjdCByZWxhdGl2ZSBwYXRoIGZyb20gYWJzb2x1dGUgcGF0aFxuICogSGFuZGxlcyB2YXJpb3VzIENJL0NEIGFuZCBsb2NhbCBkZXZlbG9wbWVudCBwYXRoIGZvcm1hdHNcbiAqL1xuZnVuY3Rpb24gZ2V0UmVsYXRpdmVQYXRoKGFic29sdXRlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZVBhdGgoYWJzb2x1dGVQYXRoKTtcbiAgXG4gIC8vIElmIGFscmVhZHkgYSByZWxhdGl2ZSBwYXRoLCByZXR1cm4gYXMtaXNcbiAgaWYgKCFub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy8nKSAmJiAhbm9ybWFsaXplZC5tYXRjaCgvXltBLVpdOi9pKSkge1xuICAgIHJldHVybiBub3JtYWxpemVkO1xuICB9XG4gIFxuICAvLyBEZWZpbmUgY29tbW9uIHByb2plY3Qgc291cmNlIGRpcmVjdG9yaWVzXG4gIGNvbnN0IHByb2plY3REaXJzID0gWydzcmMvJywgJ19fdGVzdHNfXy8nLCAnc2NyaXB0cy8nLCAnZG9jcy8nLCAndGVzdHMvJywgJ3Rlc3QtYXJjaGl2ZS8nLCAnbGliLyddO1xuICBcbiAgLy8gRmluZCB0aGUgcG9zaXRpb24gb2YgY29tbW9uIHByb2plY3QgZGlyZWN0b3JpZXMgaW4gdGhlIHBhdGhcbiAgbGV0IGJlc3RNYXRjaCA9IHsgaW5kZXg6IC0xLCBkaXI6ICcnLCByZWxhdGl2ZVBhdGg6ICcnIH07XG4gIFxuICBmb3IgKGNvbnN0IGRpciBvZiBwcm9qZWN0RGlycykge1xuICAgIC8vIExvb2sgZm9yIC9kaXIgcGF0dGVybiAod2l0aCBsZWFkaW5nIHNsYXNoIHRvIGF2b2lkIGZhbHNlIG1hdGNoZXMpXG4gICAgY29uc3Qgc2VhcmNoUGF0dGVybiA9IGAvJHtkaXJ9YDtcbiAgICBjb25zdCBpbmRleCA9IG5vcm1hbGl6ZWQubGFzdEluZGV4T2Yoc2VhcmNoUGF0dGVybik7XG4gICAgXG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIC8vIEV4dHJhY3QgZXZlcnl0aGluZyBhZnRlciB0aGUgcGFyZW50IG9mIHRoaXMgZGlyZWN0b3J5XG4gICAgICAvLyBGb3IgZXhhbXBsZTogL2hvbWUvdXNlci9wcm9qZWN0L3NyYy9maWxlLnRzIC0+IHNyYy9maWxlLnRzXG4gICAgICBjb25zdCBkaXJTdGFydEluZGV4ID0gaW5kZXggKyAxOyAvLyBTa2lwIHRoZSBsZWFkaW5nIHNsYXNoXG4gICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBub3JtYWxpemVkLnN1YnN0cmluZyhkaXJTdGFydEluZGV4KTtcbiAgICAgIFxuICAgICAgLy8gVmVyaWZ5IHRoaXMgbG9va3MgbGlrZSBhIHZhbGlkIHByb2plY3QgZmlsZVxuICAgICAgaWYgKHJlbGF0aXZlUGF0aC5zdGFydHNXaXRoKGRpcikgJiYgcmVsYXRpdmVQYXRoLmluY2x1ZGVzKCcuJykpIHtcbiAgICAgICAgLy8gS2VlcCB0aGUgbWF0Y2ggdGhhdCBhcHBlYXJzIGxhdGVzdCBpbiB0aGUgcGF0aCAobW9zdCBzcGVjaWZpYylcbiAgICAgICAgaWYgKGluZGV4ID4gYmVzdE1hdGNoLmluZGV4KSB7XG4gICAgICAgICAgYmVzdE1hdGNoID0geyBpbmRleCwgZGlyLCByZWxhdGl2ZVBhdGggfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgLy8gSWYgd2UgZm91bmQgYSBtYXRjaCwgcmV0dXJuIGl0XG4gIGlmIChiZXN0TWF0Y2guaW5kZXggPj0gMCkge1xuICAgIHJldHVybiBiZXN0TWF0Y2gucmVsYXRpdmVQYXRoO1xuICB9XG4gIFxuICAvLyBGYWxsYmFjazogVHJ5IHRvIGZpbmQgY29tbW9uIGZpbGUgcGF0dGVybnMgdGhhdCBpbmRpY2F0ZSBwcm9qZWN0IGZpbGVzXG4gIGNvbnN0IGZpbGVQYXR0ZXJucyA9IFtcbiAgICAvXFwvKHNyY3xfX3Rlc3RzX198c2NyaXB0c3x0ZXN0fHRlc3RzfGxpYilcXC8uKlxcLltqdF1zeD8kLyxcbiAgICAvXFwvKHNyY3xfX3Rlc3RzX198c2NyaXB0c3x0ZXN0fHRlc3RzfGxpYilcXC8uKlxcLmpzb24kLyxcbiAgICAvXFwvKHNyY3xfX3Rlc3RzX198c2NyaXB0c3x0ZXN0fHRlc3RzfGxpYilcXC8uKlxcLnlhP21sJC8sXG4gICAgL1xcL3BhY2thZ2VcXC5qc29uJC8sXG4gICAgL1xcL3BhY2thZ2UtbG9ja1xcLmpzb24kLyxcbiAgICAvXFwvdHNjb25maWcuKlxcLmpzb24kLyxcbiAgICAvXFwvXFwuLipyY1xcLmpzb24kLyAgLy8gLmVzbGludHJjLmpzb24sIGV0Yy5cbiAgXTtcbiAgXG4gIGZvciAoY29uc3QgcGF0dGVybiBvZiBmaWxlUGF0dGVybnMpIHtcbiAgICBjb25zdCBtYXRjaCA9IG5vcm1hbGl6ZWQubWF0Y2gocGF0dGVybik7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICAvLyBGaW5kIHdoZXJlIHRoZSBtYXRjaCBzdGFydHMgYW5kIGV4dHJhY3QgZnJvbSB0aGVyZVxuICAgICAgY29uc3QgbWF0Y2hJbmRleCA9IG5vcm1hbGl6ZWQuaW5kZXhPZihtYXRjaFswXSk7XG4gICAgICBpZiAobWF0Y2hJbmRleCA+PSAwKSB7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVkLnN1YnN0cmluZyhtYXRjaEluZGV4ICsgMSk7IC8vIFNraXAgbGVhZGluZyAvXG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICAvLyBMYXN0IHJlc29ydDogaWYgcGF0aCBjb250YWlucyBjb21tb24gZXh0ZW5zaW9ucywgdHJ5IHRvIGV4dHJhY3QgYSByZWFzb25hYmxlIHJlbGF0aXZlIHBhdGhcbiAgaWYgKG5vcm1hbGl6ZWQubWF0Y2goL1xcLih0c3xqc3x0c3h8anN4fGpzb258eWFtbHx5bWwpJC8pKSB7XG4gICAgLy8gRmluZCB0aGUgbGFzdCBzZWdtZW50IHRoYXQgbG9va3MgbGlrZSBhIHByb2plY3QgZGlyZWN0b3J5XG4gICAgY29uc3Qgc2VnbWVudHMgPSBub3JtYWxpemVkLnNwbGl0KCcvJyk7XG4gICAgZm9yIChsZXQgaSA9IHNlZ21lbnRzLmxlbmd0aCAtIDI7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBpZiAocHJvamVjdERpcnMuc29tZShkaXIgPT4gZGlyLnN0YXJ0c1dpdGgoc2VnbWVudHNbaV0pKSkge1xuICAgICAgICByZXR1cm4gc2VnbWVudHMuc2xpY2UoaSkuam9pbignLycpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBGb3Igcm9vdC1sZXZlbCBmaWxlcyBsaWtlIHBhY2thZ2UtbG9jay5qc29uLCBqdXN0IHJldHVybiB0aGUgZmlsZW5hbWVcbiAgICBjb25zdCBmaWxlbmFtZSA9IHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtIDFdO1xuICAgIGlmIChmaWxlbmFtZSAmJiBmaWxlbmFtZS5pbmNsdWRlcygnLicpKSB7XG4gICAgICByZXR1cm4gZmlsZW5hbWU7XG4gICAgfVxuICB9XG4gIFxuICAvLyBSZXR1cm4gdGhlIG5vcm1hbGl6ZWQgcGF0aCBpZiB3ZSBjYW4ndCBleHRyYWN0IHJlbGF0aXZlXG4gIHJldHVybiBub3JtYWxpemVkO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgZmluZGluZyBzaG91bGQgYmUgc3VwcHJlc3NlZFxuICogT3B0aW1pemVkIHdpdGggY2FjaGluZyBhbmQgZWFybHkgcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkU3VwcHJlc3MocnVsZUlkOiBzdHJpbmcsIGZpbGVQYXRoPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmICghZmlsZVBhdGgpIHJldHVybiBmYWxzZTtcbiAgXG4gIC8vIE5vcm1hbGl6ZSBwYXRocyBmb3IgY29uc2lzdGVudCBtYXRjaGluZ1xuICBjb25zdCBub3JtYWxpemVkUGF0aCA9IG5vcm1hbGl6ZVBhdGgoZmlsZVBhdGgpO1xuICBjb25zdCByZWxhdGl2ZVBhdGggPSBnZXRSZWxhdGl2ZVBhdGgobm9ybWFsaXplZFBhdGgpO1xuICBcbiAgLy8gQ2hlY2sgY2FjaGUgZmlyc3RcbiAgY29uc3QgY2FjaGVkID0gY2FjaGUuZ2V0KHJ1bGVJZCwgcmVsYXRpdmVQYXRoKTtcbiAgaWYgKGNhY2hlZCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gY2FjaGVkO1xuICBcbiAgLy8gUHJvY2VzcyBzdXBwcmVzc2lvbnMgd2l0aCBlYXJseSByZXR1cm5zXG4gIGZvciAoY29uc3Qgc3VwcHJlc3Npb24gb2Ygc3VwcHJlc3Npb25zKSB7XG4gICAgLy8gU2tpcCBpZiBydWxlIGRvZXNuJ3QgbWF0Y2hcbiAgICBpZiAoc3VwcHJlc3Npb24ucnVsZSAhPT0gJyonICYmIHN1cHByZXNzaW9uLnJ1bGUgIT09IHJ1bGVJZCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIFxuICAgIC8vIEhhbmRsZSBnbG9iYWwgc3VwcHJlc3Npb25zIChubyBmaWxlIHNwZWNpZmllZClcbiAgICBpZiAoIXN1cHByZXNzaW9uLmZpbGUpIHtcbiAgICAgIGNhY2hlLnNldChydWxlSWQsIHJlbGF0aXZlUGF0aCwgdHJ1ZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgXG4gICAgLy8gQ2hlY2sgZXhhY3QgZmlsZSBtYXRjaCAobW9zdCBjb21tb24gY2FzZSlcbiAgICBpZiAoc3VwcHJlc3Npb24uZmlsZSA9PT0gcmVsYXRpdmVQYXRoIHx8IHN1cHByZXNzaW9uLmZpbGUgPT09IG5vcm1hbGl6ZWRQYXRoKSB7XG4gICAgICBjYWNoZS5zZXQocnVsZUlkLCByZWxhdGl2ZVBhdGgsIHRydWUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIFxuICAgIC8vIENoZWNrIHBhdHRlcm4gbWF0Y2ggb25seSBpZiBmaWxlIGNvbnRhaW5zIHdpbGRjYXJkc1xuICAgIGlmIChzdXBwcmVzc2lvbi5maWxlLmluY2x1ZGVzKCcqJykpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gZ2xvYlRvUmVnZXgoc3VwcHJlc3Npb24uZmlsZSk7XG4gICAgICAgIGlmIChyZWdleC50ZXN0KHJlbGF0aXZlUGF0aCkgfHwgcmVnZXgudGVzdChub3JtYWxpemVkUGF0aCkpIHtcbiAgICAgICAgICBjYWNoZS5zZXQocnVsZUlkLCByZWxhdGl2ZVBhdGgsIHRydWUpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoYEludmFsaWQgc3VwcHJlc3Npb24gcGF0dGVybiBcIiR7c3VwcHJlc3Npb24uZmlsZX1cIjpgLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICAvLyBOb3Qgc3VwcHJlc3NlZFxuICBjYWNoZS5zZXQocnVsZUlkLCByZWxhdGl2ZVBhdGgsIGZhbHNlKTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIENsZWFyIHN1cHByZXNzaW9uIGNhY2hlICh1c2VmdWwgZm9yIHRlc3RpbmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhclN1cHByZXNzaW9uQ2FjaGUoKTogdm9pZCB7XG4gIGNhY2hlLmNsZWFyKCk7XG59XG5cbi8qKlxuICogR2V0IHN1cHByZXNzaW9uIHN0YXRpc3RpY3MgZm9yIHJlcG9ydGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3VwcHJlc3Npb25TdGF0cygpOiB7IFxuICB0b3RhbDogbnVtYmVyOyBcbiAgYnlSdWxlOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICBieUNhdGVnb3J5OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xufSB7XG4gIGNvbnN0IHN0YXRzID0ge1xuICAgIHRvdGFsOiBzdXBwcmVzc2lvbnMubGVuZ3RoLFxuICAgIGJ5UnVsZToge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPixcbiAgICBieUNhdGVnb3J5OiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+XG4gIH07XG4gIFxuICBmb3IgKGNvbnN0IHN1cHByZXNzaW9uIG9mIHN1cHByZXNzaW9ucykge1xuICAgIC8vIENvdW50IGJ5IHJ1bGVcbiAgICBzdGF0cy5ieVJ1bGVbc3VwcHJlc3Npb24ucnVsZV0gPSAoc3RhdHMuYnlSdWxlW3N1cHByZXNzaW9uLnJ1bGVdIHx8IDApICsgMTtcbiAgICBcbiAgICAvLyBDb3VudCBieSBjYXRlZ29yeSAoZXh0cmFjdCBmcm9tIHJ1bGUgcHJlZml4KVxuICAgIGNvbnN0IGNhdGVnb3J5ID0gc3VwcHJlc3Npb24ucnVsZS5zcGxpdCgnLScpWzBdO1xuICAgIHN0YXRzLmJ5Q2F0ZWdvcnlbY2F0ZWdvcnldID0gKHN0YXRzLmJ5Q2F0ZWdvcnlbY2F0ZWdvcnldIHx8IDApICsgMTtcbiAgfVxuICBcbiAgcmV0dXJuIHN0YXRzO1xufVxuXG4vLyBWYWxpZGF0ZSBzdXBwcmVzc2lvbnMgb24gbW9kdWxlIGxvYWRcbmNvbnN0IHZhbGlkYXRpb25FcnJvcnMgPSB2YWxpZGF0ZVN1cHByZXNzaW9ucygpO1xuaWYgKHZhbGlkYXRpb25FcnJvcnMubGVuZ3RoID4gMCkge1xuICBsb2dnZXIud2FybignU3VwcHJlc3Npb24gY29uZmlndXJhdGlvbiB3YXJuaW5nczonLCB2YWxpZGF0aW9uRXJyb3JzKTtcbn1cbiJdfQ==
1316
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcHJlc3Npb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3VyaXR5L2F1ZGl0L2NvbmZpZy9zdXBwcmVzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFRbEQ7O0dBRUc7QUFDSCxNQUFNLGdCQUFnQjtJQUNaLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUNuQyxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFL0MsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsRUFBRSxRQUFnQjtRQUMxQyxPQUFPLEdBQUcsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxHQUFHLENBQUMsTUFBYyxFQUFFLFFBQWdCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsR0FBRyxDQUFDLE1BQWMsRUFBRSxRQUFnQixFQUFFLEtBQWM7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFlLEVBQUUsS0FBYTtRQUNyQyxJQUFJLENB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LENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUzRSwrQ0FBK0M7UUFDL0MsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCx1Q0FBdUM7QUFDdkMsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBb0IsRUFBRSxDQUFDO0FBQ2hELElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUNBQXFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUN2RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZWN1cml0eSBBdWRpdCBTdXBwcmVzc2lvbiBDb25maWd1cmF0aW9uXG4gKiBcbiAqIFRoaXMgZmlsZSBjb250YWlucyBzdXBwcmVzc2lvbiBydWxlcyBmb3IgZmFsc2UgcG9zaXRpdmVzIGluIHRoZSBzZWN1cml0eSBhdWRpdC5cbiAqIEVhY2ggc3VwcHJlc3Npb24gc2hvdWxkIGJlIHdlbGwtZG9jdW1lbnRlZCB3aXRoIGEgY2xlYXIgcmVhc29uLlxuICovXG5cbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2xvZ2dlci5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VwcHJlc3Npb24ge1xuICBydWxlOiBzdHJpbmc7XG4gIGZpbGU/OiBzdHJpbmc7XG4gIHJlYXNvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFN1cHByZXNzaW9uIGNhY2hlIGZvciBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25cbiAqL1xuY2xhc3MgU3VwcHJlc3Npb25DYWNoZSB7XG4gIHByaXZhdGUgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgYm9vbGVhbj4oKTtcbiAgcHJpdmF0ZSByZWdleENhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFJlZ0V4cD4oKTtcbiAgXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgICB0aGlzLnJlZ2V4Q2FjaGUuY2xlYXIoKTtcbiAgfVxuICBcbiAgZ2V0Q2FjaGVLZXkocnVsZUlkOiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtydWxlSWR9Ojoke2ZpbGVQYXRofWA7XG4gIH1cbiAgXG4gIGdldChydWxlSWQ6IHN0cmluZywgZmlsZVBhdGg6IHN0cmluZyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNhY2hlLmdldCh0aGlzLmdldENhY2hlS2V5KHJ1bGVJZCwgZmlsZVBhdGgpKTtcbiAgfVxuICBcbiAgc2V0KHJ1bGVJZDogc3RyaW5nLCBmaWxlUGF0aDogc3RyaW5nLCB2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY2FjaGUuc2V0KHRoaXMuZ2V0Q2FjaGVLZXkocnVsZUlkLCBmaWxlUGF0aCksIHZhbHVlKTtcbiAgfVxuICBcbiAgZ2V0UmVnZXgocGF0dGVybjogc3RyaW5nKTogUmVnRXhwIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZWdleENhY2hlLmdldChwYXR0ZXJuKTtcbiAgfVxuICBcbiAgc2V0UmVnZXgocGF0dGVybjogc3RyaW5nLCByZWdleDogUmVnRXhwKTogdm9pZCB7XG4gICAgdGhpcy5yZWdleENhY2hlLnNldChwYXR0ZXJuLCByZWdleCk7XG4gIH1cbn1cblxuY29uc3QgY2FjaGUgPSBuZXcgU3VwcHJlc3Npb25DYWNoZSgpO1xuXG5leHBvcnQgY29uc3Qgc3VwcHJlc3Npb25zOiBTdXBwcmVzc2lvbltdID0gW1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFNRTCBJbmplY3Rpb24gRmFsc2UgUG9zaXRpdmVzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdDV0UtODktMDAxJyxcbiAgICBmaWxlOiAnc3JjL3VwZGF0ZS9VcGRhdGVNYW5hZ2VyLnRzJyxcbiAgICByZWFzb246ICdGYWxzZSBwb3NpdGl2ZSAtIFwiVXBkYXRlIEZhaWxlZFwiIGlzIGEgVUkgbWVzc2FnZSwgbm90IFNRTC4gVGhlIGNvZGViYXNlIGRvZXMgbm90IHVzZSBTUUwuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0NXRS04OS0wMDEnLFxuICAgIGZpbGU6ICdzcmMvZWxlbWVudHMvbWVtb3JpZXMvTWVtb3J5TWFuYWdlci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IExpbmUgMTAyNCBpcyBhIGxvZ2dlci5lcnJvcigpIGNhbGwgZm9ybWF0dGluZyBhbiBlcnJvciBtZXNzYWdlIHdpdGggc3RyaW5nIGNvbmNhdGVuYXRpb24uIFRoaXMgaXMgbm90IGEgU1FMIHF1ZXJ5IC0gdGhlIGNvZGViYXNlIGRvZXMgbm90IHVzZSBTUUwuIFRoZSBzdHJpbmcgY29uY2F0ZW5hdGlvbiBidWlsZHMgYSB1c2VyLWZhY2luZyBlcnJvciBtZXNzYWdlIGZvciBkZWxldGlvbiBmYWlsdXJlcy4gUFIgIzcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnQ1dFLTg5LTAwMScsXG4gICAgZmlsZTogJ3NyYy93ZWIvcHVibGljL21ldHJpY3MuanMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBCcm93c2VyLXNpZGUgRGF0ZS50b0xvY2FsZVRpbWVTdHJpbmcoKSBjb25jYXRlbmF0aW9uIGZvciBkaXNwbGF5IGxhYmVsLiBOb3QgU1FMIOKAlCB0aGUgY29kZWJhc2UgZG9lcyBub3QgdXNlIFNRTC4nXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBNZXRyaWNzICYgV2ViIENvbnNvbGUgRmFsc2UgUG9zaXRpdmVzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvbWV0cmljcy9zaW5rcy9NZW1vcnlNZXRyaWNzU2luay50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEludGVybmFsIG1ldHJpY3Mgc3RvcmFnZSDigJQgZG9lcyBub3QgcHJvY2VzcyB1c2VyIGlucHV0IGRpcmVjdGx5LiBNZXRyaWMgbmFtZXMgYW5kIHNvdXJjZXMgYXJlIHNlcnZlci1nZW5lcmF0ZWQgY29uc3RhbnRzLiBJbnB1dCBub3JtYWxpemF0aW9uIGlzIGhhbmRsZWQgYXQgdGhlIHJvdXRlIGhhbmRsZXIgYm91bmRhcnkuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9tZXRyaWNzL2NvbGxlY3RvcnMvUGVyZm9ybWFuY2VNb25pdG9yQ29sbGVjdG9yLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogTWV0cmljIGNvbGxlY3RvciB3aXRoIGhhcmRjb2RlZCBjb25zdGFudCBzdHJpbmdzIG9ubHkuIE5vIHVzZXIgaW5wdXQgZW50ZXJzIHRoaXMgY29tcG9uZW50LiBBbGwgbWV0cmljIG5hbWVzLCBzb3VyY2VzLCBhbmQgZGVzY3JpcHRpb25zIGFyZSBjb21waWxlLXRpbWUgY29uc3RhbnRzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3B1YmxpYy9tZXRyaWNzLmpzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogQ2xpZW50LXNpZGUgYnJvd3NlciBKYXZhU2NyaXB0LiBVbmljb2RlVmFsaWRhdG9yIGlzIGEgTm9kZS5qcyBtb2R1bGUgdW5hdmFpbGFibGUgaW4gYnJvd3NlciBjb250ZXh0LiBEYXNoYm9hcmQgcmVuZGVycyBzZXJ2ZXItZ2VuZXJhdGVkIG1ldHJpYyBkYXRhIG9ubHkg4oCUIG5vIHVzZXIgdGV4dCBpbnB1dC4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3dlYi9wdWJsaWMvbG9ncy5qcycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IENsaWVudC1zaWRlIGJyb3dzZXIgSmF2YVNjcmlwdC4gRmlsdGVyIGlucHV0cyBhcmUgdXNlZCBmb3IgbG9jYWwgSlMgYXJyYXkgZmlsdGVyaW5nIG9ubHkg4oCUIG5ldmVyIHNlbnQgdG8gc2VydmVyLiBVbmljb2RlVmFsaWRhdG9yIGlzIGEgTm9kZS5qcyBtb2R1bGUgdW5hdmFpbGFibGUgaW4gYnJvd3NlciBjb250ZXh0LidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3B1YmxpYy9zZXR1cC5qcycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IENsaWVudC1zaWRlIGJyb3dzZXIgSmF2YVNjcmlwdC4gVXNlciBpbnB1dHMgKHBsYXRmb3JtIHRhYiBjbGlja3MsIG1ldGhvZCB0b2dnbGUpIGFyZSBtYXRjaGVkIGFnYWluc3QgaGFyZGNvZGVkIERPTSBlbGVtZW50IElEcyBvbmx5IOKAlCBubyBmcmVlLXRleHQgcHJvY2Vzc2luZy4gU2VydmVyLXNpZGUgaGFuZGxlcnMgaW4gc2V0dXBSb3V0ZXMudHMgdXNlIFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKCkgb24gYWxsIEFQSSBpbnB1dC4gVW5pY29kZVZhbGlkYXRvciBpcyBhIE5vZGUuanMgbW9kdWxlIHVuYXZhaWxhYmxlIGluIGJyb3dzZXIgY29udGV4dC4nXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBUZXN0IEZpbGUgU3VwcHJlc3Npb25zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnX190ZXN0c19fLyoqLyonLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZXMgbWF5IGNvbnRhaW4gaW50ZW50aW9uYWwgc2VjdXJpdHkgcGF0dGVybnMgZm9yIHRlc3RpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJyoqLyoudGVzdC50cycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlcyBtYXkgY29udGFpbiBpbnRlbnRpb25hbCBzZWN1cml0eSBwYXR0ZXJucyBmb3IgdGVzdGluZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnKiovKi5zcGVjLnRzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGVzIG1heSBjb250YWluIGludGVudGlvbmFsIHNlY3VyaXR5IHBhdHRlcm5zIGZvciB0ZXN0aW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3Rlc3RzLyoqLyonLFxuICAgIHJlYXNvbjogJ1Rlc3QgdXRpbGl0aWVzIGFuZCBFMkUgdGVzdHMgZG8gbm90IHByb2Nlc3MgdW50cnVzdGVkIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAndGVzdHMvKiovKicsXG4gICAgcmVhc29uOiAnQXVkaXQgbG9nZ2luZyBub3QgcmVxdWlyZWQgZm9yIHRlc3QgdXRpbGl0aWVzIGFuZCBFMkUgdGVzdHMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMycsXG4gICAgZmlsZTogJ3Rlc3RzL2UyZS9jbGVhbnVwLXRlc3QtZGF0YS50cycsXG4gICAgcmVhc29uOiAnRmFsc2UgcG9zaXRpdmUgLSBjb25zb2xlLmxvZyBtZXNzYWdlIHN0cmluZyBsaXRlcmFsLCBub3QgYSBwYXRoIG9wZXJhdGlvbidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDEtMDAxJyxcbiAgICBmaWxlOiAnX190ZXN0c19fLyoqLyonLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZXMgdXNlIGZha2UgdG9rZW5zIGFuZCBzZWNyZXRzIGZvciB0ZXN0aW5nIHNlY3VyaXR5IGZlYXR1cmVzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMS0wMDEnLFxuICAgIGZpbGU6ICd0ZXN0cy9maXh0dXJlcy8qKi8qJyxcbiAgICByZWFzb246ICdUZXN0IGZpeHR1cmVzIGNvbnRhaW4gaW50ZW50aW9uYWwgbW9jayBjcmVkZW50aWFscyBjbGVhcmx5IG1hcmtlZCBhcyBGQUtFL1RFU1QvTk9UX1JFQUwnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAxLTAwMScsXG4gICAgZmlsZTogJ3Rlc3RzL3NlY3VyaXR5L2ZyYW1ld29yay9SYXBpZFNlY3VyaXR5VGVzdGluZy50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IExpbmUgMjAyIGNvbnRhaW5zIGFuIGludGVudGlvbmFsIGZha2UgdG9rZW4gKGdocF8xMjM0NTY3ODkwLi4uKSBmb3Igc2VjdXJpdHkgdGVzdGluZy4gQ2xlYXJseSBtYXJrZWQgd2l0aCBOT1NPTkFSIGNvbW1lbnQuIFVzZWQgdG8gdmVyaWZ5IHRva2VucyBhcmUgbm90IGV4cG9zZWQgaW4gZXJyb3IgbWVzc2FnZXMuIFBSICMxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICd0ZXN0cy9maXh0dXJlcy90ZXN0Q3JlZGVudGlhbHMudHMnLFxuICAgIHJlYXNvbjogJ0NlbnRyYWxpemVkIHRlc3QgY3JlZGVudGlhbHMgZmlsZSB3aXRoIGludGVudGlvbmFsbHkgZmFrZSB2YWx1ZXMgZm9yIHRlc3RpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnQ1dFLTg5LTAwMScsXG4gICAgZmlsZTogJ19fdGVzdHNfXy8qKi8qJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGVzIGNvbnRhaW4gU1FMIGluamVjdGlvbiBwYXR0ZXJucyBmb3Igc2VjdXJpdHkgdGVzdGluZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnX190ZXN0c19fLyoqLyonLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZXMgY29udGFpbiBjb21tYW5kIGluamVjdGlvbiBwYXR0ZXJucyBmb3Igc2VjdXJpdHkgdGVzdGluZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAzJyxcbiAgICBmaWxlOiAnX190ZXN0c19fLyoqLyonLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZXMgY29udGFpbiBwYXRoIHRyYXZlcnNhbCBwYXR0ZXJucyBmb3Igc2VjdXJpdHkgdGVzdGluZydcbiAgfSxcbiAgXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gWUFNTCBQYXJzaW5nIEZhbHNlIFBvc2l0aXZlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL3NlY3VyaXR5L3lhbWxWYWxpZGF0b3IudHMnLFxuICAgIHJlYXNvbjogJ1lhbWxWYWxpZGF0b3IgaXMgdGhlIHNlY3VyaXR5IHZhbGlkYXRpb24gbGF5ZXIgaXRzZWxmIC0gaXQgbmVlZHMgZGlyZWN0IHlhbWwubG9hZCBhY2Nlc3MnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL3NlY3VyaXR5L3NlY3VyZVlhbWxQYXJzZXIudHMnLFxuICAgIHJlYXNvbjogJ1NlY3VyZVlhbWxQYXJzZXIgaXMgdGhlIHNlY3VyaXR5IHdyYXBwZXIgdGhhdCB2YWxpZGF0ZXMgWUFNTCBiZWZvcmUgcGFyc2luZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDUnLFxuICAgIGZpbGU6ICdzcmMvZWxlbWVudHMvc2tpbGxzL1NraWxsTWFuYWdlci50cycsXG4gICAgcmVhc29uOiAnVXNlcyB5YW1sLmxvYWQgd2l0aCBGQUlMU0FGRV9TQ0hFTUEgYW5kIHNpemUgdmFsaWRhdGlvbiAtIGVxdWl2YWxlbnQgc2VjdXJpdHkgdG8gU2VjdXJlWWFtbFBhcnNlciBmb3IgcmF3IFlBTUwgaW1wb3J0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy90b29scy9wb3J0Zm9saW8vc3VibWl0VG9Qb3J0Zm9saW9Ub29sLnRzJyxcbiAgICByZWFzb246ICdGYWxzZSBwb3NpdGl2ZSAtIFVzZXMgU2VjdXJlWWFtbFBhcnNlci5wYXJzZSgpIHdoaWNoIGlzIHRoZSBzZWN1cmUgaW1wbGVtZW50YXRpb24gZGVzaWduZWQgdG8gcHJldmVudCBZQU1MIHZ1bG5lcmFiaWxpdGllcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDUnLFxuICAgIGZpbGU6ICdzcmMvY29uZmlnL0NvbmZpZ01hbmFnZXIudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBVc2VzIGpzLXlhbWwgd2l0aCBGQUlMU0FGRV9TQ0hFTUEgZm9yIHB1cmUgWUFNTCBjb25maWcgZmlsZXMuIFRoaXMgcHJldmVudHMgY29kZSBleGVjdXRpb24gYW5kIGlzIHRoZSBhcHByb3ByaWF0ZSBzZWN1cml0eSBtZWFzdXJlIGZvciBjb25maWcgZmlsZXMgdGhhdCBhcmUgTk9UIG1hcmtkb3duIHdpdGggZnJvbnRtYXR0ZXIuIFJlZ3Jlc3Npb24gdGVzdCBlbnN1cmVzIHdlIGRvIG5vdCB1c2UgU2VjdXJlWWFtbFBhcnNlciBoZXJlIHdoaWNoIHdvdWxkIHJlc2V0IGNvbmZpZyB2YWx1ZXMuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy9wb3J0Zm9saW8vUG9ydGZvbGlvSW5kZXhNYW5hZ2VyLnRzJyxcbiAgICByZWFzb246ICdJTlRFTlRJT05BTDogTWVtb3J5IGZpbGVzIGFyZSBwdXJlIFlBTUwgKG5vdCBNYXJrZG93biB3aXRoIGZyb250bWF0dGVyKSwgc28gU2VjdXJlWWFtbFBhcnNlciBjYW5ub3QgYmUgdXNlZC4gVXNlcyB5YW1sLmxvYWQgd2l0aCBGQUlMU0FGRV9TQ0hFTUEgKyBzaXplIHZhbGlkYXRpb24gKyB0eXBlIGNoZWNraW5nIGZvciBzZWN1cml0eS4gVGhlc2UgYXJlIHRydXN0ZWQgbG9jYWwgdXNlciBmaWxlcy4gRml4IGZvciBpc3N1ZSAjMTE5Ni4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZlci9yZXNvdXJjZXMvQ2FwYWJpbGl0eUluZGV4UmVzb3VyY2UudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBjYXBhYmlsaXR5LWluZGV4LnlhbWwgaXMgYSBwdXJlIFlBTUwgZmlsZSAobm90IE1hcmtkb3duIHdpdGggZnJvbnRtYXR0ZXIpLCBzbyBTZWN1cmVZYW1sUGFyc2VyIGNhbm5vdCBiZSB1c2VkLiBVc2VzIHlhbWwubG9hZCB3aXRoIEZBSUxTQUZFX1NDSEVNQSB3aGljaCBwcmV2ZW50cyBjb2RlIGV4ZWN1dGlvbi4gVGhpcyBpcyBhIHRydXN0ZWQgbG9jYWwgc3lzdGVtLWdlbmVyYXRlZCBmaWxlIChjcmVhdGVkIGJ5IEVuaGFuY2VkSW5kZXhNYW5hZ2VyKS4gU2FtZSBzZWN1cml0eSBwYXR0ZXJuIGFzIENvbmZpZ01hbmFnZXIgYW5kIFBvcnRmb2xpb0luZGV4TWFuYWdlciBmb3IgcHVyZSBZQU1MIGZpbGVzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDUnLFxuICAgIGZpbGU6ICdzcmMvY29udmVydGVycy9Eb2xsaG91c2VUb0FudGhyb3BpY0NvbnZlcnRlci50cycsXG4gICAgcmVhc29uOiAnSU5URU5USU9OQUw6IEZvcm1hdCB0cmFuc2Zvcm1lciwgbm90IHNlY3VyaXR5IGJvdW5kYXJ5LiBVc2VzIHlhbWwubG9hZCB3aXRoIENPUkVfU0NIRU1BIHRvIHByZXZlbnQgZGVzZXJpYWxpemF0aW9uIGF0dGFja3MuIENhbm5vdCB1c2UgU2VjdXJlWWFtbFBhcnNlciAoZXhwZWN0cyBmdWxsIE1hcmtkb3duIHdpdGggZnJvbnRtYXR0ZXIsIG5vdCBleHRyYWN0ZWQgWUFNTCBzdHJpbmdzKS4gUHJlc2VydmVzIGNvbnRlbnQgZmlkZWxpdHkgLSBubyBtb2RpZmljYXRpb24uIElucHV0IHNraWxscyBhbHJlYWR5IHZhbGlkYXRlZCAoZnJvbSBEb2xsaG91c2VNQ1Agc3lzdGVtKS4gUFIgIzE0MDAnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL2NvbnZlcnRlcnMvQW50aHJvcGljVG9Eb2xsaG91c2VDb252ZXJ0ZXIudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBGb3JtYXQgdHJhbnNmb3JtZXIsIG5vdCBzZWN1cml0eSBib3VuZGFyeS4gVXNlcyB5YW1sLmxvYWQgd2l0aCBDT1JFX1NDSEVNQSB0byBwcmV2ZW50IGRlc2VyaWFsaXphdGlvbiBhdHRhY2tzLiBDYW5ub3QgdXNlIFNlY3VyZVlhbWxQYXJzZXIgKHByb2Nlc3NlcyBleHRyYWN0ZWQgWUFNTCBzdHJpbmdzKS4gUHJlc2VydmVzIGNvbnRlbnQgZmlkZWxpdHkgLSBubyBtb2RpZmljYXRpb24uIE91dHB1dCB2YWxpZGF0ZWQgd2hlbiBsb2FkZWQgdmlhIFNraWxsTWFuYWdlci5sb2FkKCkgd2hpY2ggYXBwbGllcyBTZWN1cmVZYW1sUGFyc2VyLiBQUiAjMTQwMCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDUnLFxuICAgIGZpbGU6ICdzcmMvc2VjdXJpdHkvYXVkaXQvc2Nhbm5lcnMvQ29uZmlndXJhdGlvblNjYW5uZXIudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBTZWN1cml0eSBzY2FubmVyIGZvciBwdXJlIFlBTUwgY29uZmlndXJhdGlvbiBmaWxlcyAobm90IE1hcmtkb3duIHdpdGggZnJvbnRtYXR0ZXIpLiBVc2VzIHlhbWwubG9hZCB3aXRoIEZBSUxTQUZFX1NDSEVNQSB3aGljaCBwcmV2ZW50cyBjb2RlIGV4ZWN1dGlvbiBhbmQgYXJiaXRyYXJ5IG9iamVjdCBpbnN0YW50aWF0aW9uLiBTZWN1cmVZYW1sUGFyc2VyIGlzIGRlc2lnbmVkIGZvciBlbGVtZW50IGZpbGVzIChNYXJrZG93biB3aXRoIFlBTUwgZnJvbnRtYXR0ZXIpLCBub3QgcmF3IGNvbmZpZyBmaWxlcy4gUFIgIzEnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL1NlcmlhbGl6YXRpb25TZXJ2aWNlLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogVXNlcyBzYWZlIFlBTUwgc2NoZW1hIChGQUlMU0FGRV9TQ0hFTUEgb3IgSlNPTl9TQ0hFTUEpIHNlbGVjdGVkIGJ5IGdldFlhbWxTY2hlbWEoKS4gU2VjdXJlWWFtbFBhcnNlciBpcyBkZXNpZ25lZCBmb3IgTWFya2Rvd24gZmlsZXMgd2l0aCBmcm9udG1hdHRlciwgbm90IHB1cmUgWUFNTCBwYXJzaW5nLiBMaW5lcyAzMDcgYW5kIDgxMiB1c2Ugc2FmZSBzY2hlbWFzIHRoYXQgcHJldmVudCBjb2RlIGV4ZWN1dGlvbi4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL2hhbmRsZXJzL21jcC1hcWwvTUNQQVFMSGFuZGxlci50cycsXG4gICAgcmVhc29uOiAnSU5URU5USU9OQUw6IEltcG9ydCBvcGVyYXRpb24gcGFyc2VzIHB1cmUgWUFNTCBkYXRhIGZyb20gZXhwb3J0IHBhY2thZ2VzIChub3QgTWFya2Rvd24gd2l0aCBmcm9udG1hdHRlcikuIFVzZXMgeWFtbC5sb2FkIHdpdGggSlNPTl9TQ0hFTUEgd2hpY2ggcHJldmVudHMgY29kZSBleGVjdXRpb24gYW5kIGlzIGFwcHJvcHJpYXRlIGZvciBzdHJ1Y3R1cmVkIGVsZW1lbnQgZGF0YS4gU2VjdXJlWWFtbFBhcnNlciBjYW5ub3QgYmUgdXNlZCBhcyBpdCBleHBlY3RzIE1hcmtkb3duIGZyb250bWF0dGVyIGZvcm1hdC4gUFIgIzE5MydcbiAgfSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFNlcnZpY2UgTGF5ZXIgRmFsc2UgUG9zaXRpdmVzIChSZWZhY3RvciBQUilcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9TZXJpYWxpemF0aW9uU2VydmljZS50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IFNlcmlhbGl6YXRpb25TZXJ2aWNlIGhhbmRsZXMgZGF0YSBzZXJpYWxpemF0aW9uL2Rlc2VyaWFsaXphdGlvbi4gVW5pY29kZSBub3JtYWxpemF0aW9uIGlzIGFwcGxpZWQgYXQgdGhlIHZhbGlkYXRpb24gbGF5ZXIgKFZhbGlkYXRpb25TZXJ2aWNlLnZhbGlkYXRlQW5kU2FuaXRpemVJbnB1dCBjYWxscyBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSkgYmVmb3JlIGRhdGEgcmVhY2hlcyBzZXJpYWxpemF0aW9uLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvRmlsZU9wZXJhdGlvbnNTZXJ2aWNlLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogRmlsZU9wZXJhdGlvbnNTZXJ2aWNlIGhhbmRsZXMgZmlsZSBJL08gb3BlcmF0aW9ucy4gUGF0aHMgYXJlIHZhbGlkYXRlZCBieSBQYXRoVmFsaWRhdG9yLiBDb250ZW50IHZhbGlkYXRpb24gaW5jbHVkaW5nIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBoYXBwZW5zIGF0IHRoZSBlbGVtZW50IG1hbmFnZXIgbGF5ZXIgYmVmb3JlIGZpbGUgb3BlcmF0aW9ucy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3ZhbGlkYXRpb24vRWxlbWVudFZhbGlkYXRvci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEludGVyZmFjZS90eXBlIGRlZmluaXRpb24gZmlsZSBvbmx5LiBDb25jcmV0ZSBpbXBsZW1lbnRhdGlvbnMgdXNlIFZhbGlkYXRpb25TZXJ2aWNlIHdoaWNoIHBlcmZvcm1zIFVuaWNvZGUgbm9ybWFsaXphdGlvbiB2aWEgVW5pY29kZVZhbGlkYXRvci5ub3JtYWxpemUoKS4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3ZhbGlkYXRpb24vR2VuZXJpY0VsZW1lbnRWYWxpZGF0b3IudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBDYWxscyBJbnB1dE5vcm1hbGl6ZXIubm9ybWFsaXplKCkgYXQgdGhlIHZhbGlkYXRpb24gYm91bmRhcnkgKGxpbmUgNjQpIHdoaWNoIHJlY3Vyc2l2ZWx5IG5vcm1hbGl6ZXMgYWxsIHN0cmluZ3MgdmlhIFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKCkuIFRoaXMgaXMgdGhlIGNlbnRyYWxpemVkIG5vcm1hbGl6YXRpb24gcG9pbnQgZm9yIGFsbCBlbGVtZW50IHZhbGlkYXRvcnMuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL1BlcnNvbmFFbGVtZW50VmFsaWRhdG9yLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogRXh0ZW5kcyBHZW5lcmljRWxlbWVudFZhbGlkYXRvciB3aGljaCBub3JtYWxpemVzIGFsbCBpbnB1dCB2aWEgSW5wdXROb3JtYWxpemVyLm5vcm1hbGl6ZSgpIGF0IHRoZSBib3VuZGFyeS4gQ3VzdG9tIGZpZWxkcyBhZGRpdGlvbmFsbHkgbm9ybWFsaXplZCBieSBWYWxpZGF0aW9uU2VydmljZS52YWxpZGF0ZUFuZFNhbml0aXplSW5wdXQoKS4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3ZhbGlkYXRpb24vTWVtb3J5RWxlbWVudFZhbGlkYXRvci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEV4dGVuZHMgR2VuZXJpY0VsZW1lbnRWYWxpZGF0b3Igd2hpY2ggbm9ybWFsaXplcyBhbGwgaW5wdXQgdmlhIElucHV0Tm9ybWFsaXplci5ub3JtYWxpemUoKSBhdCB0aGUgYm91bmRhcnkuIEN1c3RvbSBmaWVsZHMgYWRkaXRpb25hbGx5IG5vcm1hbGl6ZWQgYnkgVmFsaWRhdGlvblNlcnZpY2UudmFsaWRhdGVBbmRTYW5pdGl6ZUlucHV0KCkuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL1RlbXBsYXRlRWxlbWVudFZhbGlkYXRvci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEV4dGVuZHMgR2VuZXJpY0VsZW1lbnRWYWxpZGF0b3Igd2hpY2ggbm9ybWFsaXplcyBhbGwgaW5wdXQgdmlhIElucHV0Tm9ybWFsaXplci5ub3JtYWxpemUoKSBhdCB0aGUgYm91bmRhcnkuIEN1c3RvbSBmaWVsZHMgYWRkaXRpb25hbGx5IG5vcm1hbGl6ZWQgYnkgVmFsaWRhdGlvblNlcnZpY2UudmFsaWRhdGVBbmRTYW5pdGl6ZUlucHV0KCkuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL0Vuc2VtYmxlRWxlbWVudFZhbGlkYXRvci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEV4dGVuZHMgR2VuZXJpY0VsZW1lbnRWYWxpZGF0b3Igd2hpY2ggbm9ybWFsaXplcyBhbGwgaW5wdXQgdmlhIElucHV0Tm9ybWFsaXplci5ub3JtYWxpemUoKSBhdCB0aGUgYm91bmRhcnkuIEN1c3RvbSBmaWVsZHMgYWRkaXRpb25hbGx5IG5vcm1hbGl6ZWQgYnkgVmFsaWRhdGlvblNlcnZpY2UudmFsaWRhdGVBbmRTYW5pdGl6ZUlucHV0KCkuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL1NraWxsRWxlbWVudFZhbGlkYXRvci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEV4dGVuZHMgR2VuZXJpY0VsZW1lbnRWYWxpZGF0b3Igd2hpY2ggbm9ybWFsaXplcyBhbGwgaW5wdXQgdmlhIElucHV0Tm9ybWFsaXplci5ub3JtYWxpemUoKSBhdCB0aGUgYm91bmRhcnkuIHZhbGlkYXRlTWV0YWRhdGEoKSByZWNlaXZlcyBwcmUtbm9ybWFsaXplZCBlbGVtZW50Lm1ldGFkYXRhIGZyb20gU2tpbGwgY29uc3RydWN0b3IgKFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplICsgc2FuaXRpemVJbnB1dCkuIFBSICM0NTcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3ZhbGlkYXRpb24vQWdlbnRFbGVtZW50VmFsaWRhdG9yLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogRXh0ZW5kcyBHZW5lcmljRWxlbWVudFZhbGlkYXRvciB3aGljaCBub3JtYWxpemVzIGFsbCBpbnB1dCB2aWEgSW5wdXROb3JtYWxpemVyLm5vcm1hbGl6ZSgpIGF0IHRoZSBib3VuZGFyeS4gQWdlbnQtc3BlY2lmaWMgZmllbGRzIChnb2FsLCBzeXN0ZW1Qcm9tcHQsIGFjdGl2YXRlcywgdG9vbHMsIGF1dG9ub215KSBhZGRpdGlvbmFsbHkgbm9ybWFsaXplZCBieSBWYWxpZGF0aW9uU2VydmljZS52YWxpZGF0ZUNvbnRlbnQoKS4gUFIgIzEzNCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvY29udmVydGVycy9Eb2xsaG91c2VUb0FudGhyb3BpY0NvbnZlcnRlci50cycsXG4gICAgcmVhc29uOiAnSU5URU5USU9OQUw6IEZvcm1hdCB0cmFuc2Zvcm1lciwgbm90IHNlY3VyaXR5IGJvdW5kYXJ5LiBQcmVzZXJ2ZXMgY29udGVudCBmaWRlbGl0eSB3aXRob3V0IFVuaWNvZGUgbm9ybWFsaXphdGlvbi4gSW5wdXQgc2tpbGxzIGFscmVhZHkgdmFsaWRhdGVkIChmcm9tIERvbGxob3VzZU1DUCBzeXN0ZW0pLiBPbmUtdG8tb25lIG1lY2hhbmljYWwgdHJhbnNmb3JtYXRpb24gLSBubyBjb250ZW50IG1vZGlmaWNhdGlvbi4gU2VjdXJpdHkgYm91bmRhcnkgaXMgU2tpbGxNYW5hZ2VyLmxvYWQoKSwgbm90IGNvbnZlcnRlcnMuIFBSICMxNDAwJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jb252ZXJ0ZXJzL0FudGhyb3BpY1RvRG9sbGhvdXNlQ29udmVydGVyLnRzJyxcbiAgICByZWFzb246ICdJTlRFTlRJT05BTDogRm9ybWF0IHRyYW5zZm9ybWVyLCBub3Qgc2VjdXJpdHkgYm91bmRhcnkuIFByZXNlcnZlcyBjb250ZW50IGZpZGVsaXR5IHdpdGhvdXQgVW5pY29kZSBub3JtYWxpemF0aW9uLiBPdXRwdXQgdmFsaWRhdGVkIHdoZW4gbG9hZGVkIHZpYSBTa2lsbE1hbmFnZXIubG9hZCgpIHdoaWNoIGFwcGxpZXMgZnVsbCBzZWN1cml0eSB2YWxpZGF0aW9uIChTZWN1cmVZYW1sUGFyc2VyICsgVW5pY29kZVZhbGlkYXRvcikuIE9uZS10by1vbmUgbWVjaGFuaWNhbCB0cmFuc2Zvcm1hdGlvbi4gUFIgIzE0MDAnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2NvbnZlcnRlcnMvQ29udGVudEV4dHJhY3Rvci50cycsXG4gICAgcmVhc29uOiAnSU5URU5USU9OQUw6IEZvcm1hdCBhbmFseXNpcyB0b29sIGZvciBjb252ZXJ0ZXJzLCBub3Qgc2VjdXJpdHkgYm91bmRhcnkuIFByZXNlcnZlcyBjb250ZW50IGZpZGVsaXR5IHdpdGhvdXQgbW9kaWZpY2F0aW9uLiBVc2VkIGJ5IGZvcm1hdCB0cmFuc2Zvcm1lcnMgd2hpY2ggcHJlc2VydmUgb25lLXRvLW9uZSBjb3JyZXNwb25kZW5jZS4gTm8gdXNlciBpbnB1dCBwcm9jZXNzaW5nIC0gaW50ZXJuYWwgdXRpbGl0eSBmb3IgbWVjaGFuaWNhbCBjb252ZXJzaW9uLiBQUiAjMTQwMCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvY29udmVydGVycy9Eb2xsaG91c2VUb0FudGhyb3BpY0NvbnZlcnRlci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IENvbnZlcnRlcnMgYXJlIGZvcm1hdCB0cmFuc2Zvcm1lcnMsIG5vdCBzZWN1cml0eSBvcGVyYXRpb25zLiBBdWRpdCBsb2dnaW5nIGhhcHBlbnMgYXQgQ0xJIGxldmVsIChjbGkvY29udmVydC50cyBsaW5lIDI1MSkgd2hlcmUgY29udmVyc2lvbiBvcGVyYXRpb25zIGFyZSBsb2dnZWQuIENvbnZlcnRlcnMgYXJlIGludGVybmFsIHV0aWxpdGllcywgbm90IHVzZXItZmFjaW5nIHNlY3VyaXR5IGJvdW5kYXJpZXMuIFBSICMxNDAwJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9jb252ZXJ0ZXJzL0FudGhyb3BpY1RvRG9sbGhvdXNlQ29udmVydGVyLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogQ29udmVydGVycyBhcmUgZm9ybWF0IHRyYW5zZm9ybWVycywgbm90IHNlY3VyaXR5IG9wZXJhdGlvbnMuIEF1ZGl0IGxvZ2dpbmcgaGFwcGVucyBhdCBDTEkgbGV2ZWwgKGNsaS9jb252ZXJ0LnRzIGxpbmUgMjUxKSB3aGVyZSBjb252ZXJzaW9uIG9wZXJhdGlvbnMgYXJlIGxvZ2dlZC4gQ29udmVydGVycyBhcmUgaW50ZXJuYWwgdXRpbGl0aWVzLCBub3QgdXNlci1mYWNpbmcgc2VjdXJpdHkgYm91bmRhcmllcy4gUFIgIzE0MDAnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZlci9yZXNvdXJjZXMvQ2FwYWJpbGl0eUluZGV4UmVzb3VyY2UudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBGaWxlIHBhdGggaXMgY29uc3RydWN0ZWQgZnJvbSBvcy5ob21lZGlyKCkgKHN5c3RlbS1wcm92aWRlZCkgd2l0aCBoYXJkY29kZWQgcGF0aCBzZWdtZW50cy4gTm8gdXNlciBpbnB1dCBmbG93cyB0aHJvdWdoIHRoaXMgY29kZS4gVGhlIGNhcGFiaWxpdHktaW5kZXgueWFtbCBmaWxlIGlzIHN5c3RlbS1nZW5lcmF0ZWQgYnkgRW5oYW5jZWRJbmRleE1hbmFnZXIsIG5vdCB1c2VyLXByb3ZpZGVkLidcbiAgfSxcbiAgXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQ2xlYXItdGV4dCBMb2dnaW5nIEZhbHNlIFBvc2l0aXZlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDEwJyxcbiAgICBmaWxlOiAnc3JjL3V0aWxzL2xvZ2dlci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IFRoZSBsb2dnZXIgYWxyZWFkeSBzYW5pdGl6ZXMgYWxsIHNlbnNpdGl2ZSBkYXRhIHRocm91Z2ggc2FuaXRpemVNZXNzYWdlKCkgYW5kIHNhbml0aXplT2JqZWN0KCkgbWV0aG9kcy4gQWxsIHNlbnNpdGl2ZSBmaWVsZHMgKHRva2Vucywga2V5cywgcGFzc3dvcmRzLCBldGMuKSBhcmUgcmVwbGFjZWQgd2l0aCBbUkVEQUNURURdIGJlZm9yZSBhbnkgY29uc29sZSBvdXRwdXQuIExpbmVzIDI4OCwgMjkxLCBhbmQgMjk1IG9ubHkgbG9nIHByZS1zYW5pdGl6ZWQgc2FmZSBtZXNzYWdlcy4nXG4gIH0sXG4gIFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFNlY3VyaXR5IFJ1bGUgRGVmaW5pdGlvbiBGaWxlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZWN1cml0eS9hdWRpdC9ydWxlcy9TZWN1cml0eVJ1bGVzLnRzJyxcbiAgICByZWFzb246ICdUaGlzIGlzIGEgcmVnZXggcGF0dGVybiBkZWZpbml0aW9uIGZvciBkZXRlY3RpbmcgaW5uZXJIVE1MIHVzYWdlLCBub3QgYWN0dWFsIHVzYWdlJ1xuICB9LFxuICBcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQZXJzb25hIExvYWRpbmcgRmFsc2UgUG9zaXRpdmVzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDEnLFxuICAgIGZpbGU6ICdzcmMvcGVyc29uYS9QZXJzb25hTG9hZGVyLnRzJyxcbiAgICByZWFzb246ICdQZXJzb25hTG9hZGVyIHZhbGlkYXRlcyBwZXJzb25hcyB0aHJvdWdoIFNlY3VyZVlhbWxQYXJzZXIgYW5kIENvbnRlbnRWYWxpZGF0b3InXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDAxJyxcbiAgICBmaWxlOiAnc3JjL3BlcnNvbmEvUGVyc29uYU1hbmFnZXIudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBQZXJzb25hTWFuYWdlciB2YWxpZGF0ZXMgYWxsIGxvYWRlZCBwZXJzb25hcyB1c2luZyBQZXJzb25hVmFsaWRhdG9yLnZhbGlkYXRlUGVyc29uYSgpIGltbWVkaWF0ZWx5IGFmdGVyIGxvYWRpbmcgYXQgbGluZSAzMjUuIEludmFsaWQgcGVyc29uYXMgYXJlIHJlamVjdGVkIGFuZCByZW1vdmVkIGZyb20gY2FjaGUuIFBSICMxJ1xuICB9LFxuICBcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBVbmljb2RlIE5vcm1hbGl6YXRpb24gRmFsc2UgUG9zaXRpdmVzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvdHlwZXMvKi50cycsXG4gICAgcmVhc29uOiAnVHlwZSBkZWZpbml0aW9uIGZpbGVzIGRvIG5vdCBwcm9jZXNzIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3RlbGVtZXRyeS90eXBlcy50cycsXG4gICAgcmVhc29uOiAnVGVsZW1ldHJ5IHR5cGUgZGVmaW5pdGlvbiBmaWxlIC0gY29udGFpbnMgb25seSBUeXBlU2NyaXB0IGludGVyZmFjZXMsIG5vIHJ1bnRpbWUgY29kZSBvciB1c2VyIGlucHV0IHByb2Nlc3NpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovdGVsZW1ldHJ5L3R5cGVzLnRzJyxcbiAgICByZWFzb246ICdUZWxlbWV0cnkgdHlwZSBkZWZpbml0aW9uIGZpbGUgLSBDSSBwYXRoIHZhcmlhbnQsIGNvbnRhaW5zIG9ubHkgVHlwZVNjcmlwdCBpbnRlcmZhY2VzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy90eXBlcy9lbGVtZW50cy8qLnRzJyxcbiAgICByZWFzb246ICdFbGVtZW50IGludGVyZmFjZSBmaWxlcyBhcmUgdHlwZSBkZWZpbml0aW9ucyB0aGF0IGRvIG5vdCBwcm9jZXNzIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2Vycm9ycy8qLnRzJyxcbiAgICByZWFzb246ICdFcnJvciBjbGFzc2VzIGRvIG5vdCBwcm9jZXNzIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2NvbmZpZy8qLnRzJyxcbiAgICByZWFzb246ICdDb25maWd1cmF0aW9uIGZpbGVzIGRvIG5vdCBwcm9jZXNzIHVzZXIgaW5wdXQgZGlyZWN0bHknXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2NvbnN0YW50cy8qLnRzJyxcbiAgICByZWFzb246ICdDb25zdGFudCBkZWZpbml0aW9uIGZpbGVzIGRvIG5vdCBwcm9jZXNzIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2VsZW1lbnRzL21lbW9yaWVzL2NvbnN0YW50cy50cycsXG4gICAgcmVhc29uOiAnQ29uc3RhbnRzIGZpbGUgLSBjb250YWlucyBvbmx5IHR5cGUgZGVmaW5pdGlvbnMgYW5kIGNvbnN0YW50cywgbm8gdXNlciBpbnB1dCBwcm9jZXNzaW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJyoqL3NyYy9lbGVtZW50cy9tZW1vcmllcy9jb25zdGFudHMudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50cyBmaWxlIC0gY29udGFpbnMgb25seSB0eXBlIGRlZmluaXRpb25zIGFuZCBjb25zdGFudHMsIG5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi9lbGVtZW50cy9tZW1vcmllcy9jb25zdGFudHMudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50cyBmaWxlIC0gQ0kgZW52aXJvbm1lbnRzIG1heSBoYXZlIGRpZmZlcmVudCBwYXRoIHN0cnVjdHVyZXMsIG5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdlbGVtZW50cy9tZW1vcmllcy9jb25zdGFudHMudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50cyBmaWxlIC0gaGFuZGxlcyBjYXNlIHdoZXJlIHNyYy8gcHJlZml4IGlzIHN0cmlwcGVkLCBubyB1c2VyIGlucHV0IHByb2Nlc3NpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3JldGVudGlvbi90eXBlcy50cycsXG4gICAgcmVhc29uOiAnVHlwZSBkZWZpbml0aW9uIGZpbGUgZm9yIHJldGVudGlvbiBwb2xpY3kgaW50ZXJmYWNlcyAtIGNvbnRhaW5zIG9ubHkgVHlwZVNjcmlwdCBpbnRlcmZhY2VzIGFuZCB0eXBlIGRlZmluaXRpb25zLCBubyBydW50aW1lIGNvZGUgb3IgdXNlciBpbnB1dCBwcm9jZXNzaW5nLiBBY3R1YWwgVW5pY29kZSBub3JtYWxpemF0aW9uIGlzIGltcGxlbWVudGVkIGluIFJldGVudGlvblBvbGljeVNlcnZpY2UgYW5kIE1lbW9yeVJldGVudGlvblN0cmF0ZWd5LiBQUiAjNTInXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2VsZW1lbnRzL21lbW9yaWVzL3V0aWxzLnRzJyxcbiAgICByZWFzb246ICdNZW1vcnkgdXRpbGl0aWVzIC0gYWxsIGV4dGVybmFsIGlucHV0IGlzIG5vcm1hbGl6ZWQgdmlhIFVuaWNvZGVWYWxpZGF0b3IgaW4gdGhlIGZ1bmN0aW9ucyB0aGVtc2VsdmVzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJyoqL3NyYy9lbGVtZW50cy9tZW1vcmllcy91dGlscy50cycsXG4gICAgcmVhc29uOiAnTWVtb3J5IHV0aWxpdGllcyAtIGFsbCBleHRlcm5hbCBpbnB1dCBpcyBub3JtYWxpemVkIHZpYSBVbmljb2RlVmFsaWRhdG9yIGluIHRoZSBmdW5jdGlvbnMgdGhlbXNlbHZlcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi9lbGVtZW50cy9tZW1vcmllcy91dGlscy50cycsXG4gICAgcmVhc29uOiAnTWVtb3J5IHV0aWxpdGllcyAtIENJIHBhdGggdmFyaWFudCwgYWxsIGV4dGVybmFsIGlucHV0IGlzIG5vcm1hbGl6ZWQgdmlhIFVuaWNvZGVWYWxpZGF0b3InXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnZWxlbWVudHMvbWVtb3JpZXMvdXRpbHMudHMnLFxuICAgIHJlYXNvbjogJ01lbW9yeSB1dGlsaXRpZXMgLSBzcmMtc3RyaXBwZWQgcGF0aCB2YXJpYW50LCBhbGwgZXh0ZXJuYWwgaW5wdXQgaXMgbm9ybWFsaXplZCB2aWEgVW5pY29kZVZhbGlkYXRvcidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi9tZW1vcmllcy8qLnRzJyxcbiAgICByZWFzb246ICdNZW1vcnkgZWxlbWVudCBmaWxlcyAtIGFsbCB1c2VyIGlucHV0IGlzIHByb3Blcmx5IG5vcm1hbGl6ZWQgaW4gTWVtb3J5LnRzIGFuZCBNZW1vcnlNYW5hZ2VyLnRzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9lbGVtZW50cy9tZW1vcmllcy8qLnRzJyxcbiAgICByZWFzb246ICdNZW1vcnkgZWxlbWVudCBmaWxlcyAtIGFsbCB1c2VyIGlucHV0IGlzIHByb3Blcmx5IG5vcm1hbGl6ZWQgaW4gTWVtb3J5LnRzIGFuZCBNZW1vcnlNYW5hZ2VyLnRzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy91dGlscy92ZXJzaW9uLnRzJyxcbiAgICByZWFzb246ICdWZXJzaW9uIHV0aWxpdHkgb25seSBoYW5kbGVzIGludGVybmFsIHZlcnNpb24gc3RyaW5ncywgbm90IHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2NhY2hlLyoudHMnLFxuICAgIHJlYXNvbjogJ0NhY2hlIGxheWVyIHJlY2VpdmVzIGFscmVhZHktbm9ybWFsaXplZCBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VjdXJpdHkvKiovKi50cycsXG4gICAgcmVhc29uOiAnU2VjdXJpdHkgbW9kdWxlcyBoYW5kbGUgdmFsaWRhdGlvbiBhbmQgbm9ybWFsaXphdGlvbiB0aGVtc2VsdmVzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9pbmRleC50cycsXG4gICAgcmVhc29uOiAnTWFpbiBlbnRyeSBwb2ludCBkZWxlZ2F0ZXMgdG8gU2VydmVyU2V0dXAgd2hpY2ggbm9ybWFsaXplcyBhbGwgaW5wdXRzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2ZXIvU2VydmVyU2V0dXAudHMnLFxuICAgIHJlYXNvbjogJ0NFTlRSQUxJWkVEIFVOSUNPREUgTk9STUFMSVpBVElPTjogVGhpcyBpcyB3aGVyZSBVbmljb2RlIG5vcm1hbGl6YXRpb24gaXMgaW1wbGVtZW50ZWQgZm9yIEFMTCB0b29sIGlucHV0cy4gU2VydmVyU2V0dXAubm9ybWFsaXplQXJndW1lbnRzVW5pY29kZSgpIChsaW5lcyAxMTMtMTQ2KSByZWN1cnNpdmVseSBub3JtYWxpemVzIGFsbCBzdHJpbmcgYXJndW1lbnRzIGJlZm9yZSB0aGV5IHJlYWNoIGFueSBoYW5kbGVyLiBUaGlzIGlzIHRoZSBjb3JyZWN0IGFyY2hpdGVjdHVyYWwgcGF0dGVybiAoc2luZ2xlIGVudHJ5IHBvaW50KS4gUFIgIzEnXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBDZW50cmFsaXplZCBVbmljb2RlIE5vcm1hbGl6YXRpb24gLSBQUiAjMVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEFsbCBoYW5kbGVycyByZWNlaXZlIHByZS1ub3JtYWxpemVkIGlucHV0IGZyb20gU2VydmVyU2V0dXAudHNcbiAgLy8gU2VydmVyU2V0dXAuc2V0dXBDYWxsVG9vbEhhbmRsZXIoKSBjYWxscyBub3JtYWxpemVBcmd1bWVudHNVbmljb2RlKClcbiAgLy8gb24gbGluZSA4OSBCRUZPUkUgZGlzcGF0Y2hpbmcgdG8gYW55IGhhbmRsZXIuIFRoaXMgcmVjdXJzaXZlbHlcbiAgLy8gbm9ybWFsaXplcyBhbGwgc3RyaW5ncyBpbiB0aGUgYXJndW1lbnRzIG9iamVjdC5cbiAgLy8gU2VlIHNyYy9zZXJ2ZXIvU2VydmVyU2V0dXAudHMgbGluZXMgMTEzLTE0NiBmb3IgaW1wbGVtZW50YXRpb24uXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICd0ZXN0LWFyY2hpdmUvKiovKicsXG4gICAgcmVhc29uOiAnQ0VOVFJBTElaRUQgTk9STUFMSVpBVElPTjogVGVzdCBhcmNoaXZlIGZpbGVzIGFyZSBhcmNoaXZlZCBleHBlcmltZW50cywgbm90IHByb2R1Y3Rpb24gY29kZS4gQWxsIHByb2R1Y3Rpb24gdXNlciBpbnB1dCBpcyBub3JtYWxpemVkIGluIFNlcnZlclNldHVwLnRzIGJlZm9yZSByZWFjaGluZyBoYW5kbGVycy4gUFIgIzEnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2hhbmRsZXJzLyoudHMnLFxuICAgIHJlYXNvbjogJ0NFTlRSQUxJWkVEIE5PUk1BTElaQVRJT046IEFsbCBoYW5kbGVycyByZWNlaXZlIHByZS1ub3JtYWxpemVkIGlucHV0IGZyb20gU2VydmVyU2V0dXAubm9ybWFsaXplQXJndW1lbnRzVW5pY29kZSgpIChsaW5lcyA4OSwgMTEzLTE0NikuIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBoYXBwZW5zIGF0IHRoZSBlbnRyeSBwb2ludCBiZWZvcmUgaGFuZGxlcnMgYXJlIGludm9rZWQuIFBSICMxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9oYW5kbGVycy8qKi8qLnRzJyxcbiAgICByZWFzb246ICdDRU5UUkFMSVpFRCBOT1JNQUxJWkFUSU9OOiBBbGwgaGFuZGxlciBzdHJhdGVnaWVzIGFuZCBtb2R1bGVzIHJlY2VpdmUgcHJlLW5vcm1hbGl6ZWQgaW5wdXQgZnJvbSBTZXJ2ZXJTZXR1cC5ub3JtYWxpemVBcmd1bWVudHNVbmljb2RlKCkuIElucHV0IGlzIHNhbml0aXplZCBhdCB0aGUgTUNQIHJlcXVlc3QgbGF5ZXIuIFBSICMxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9lbGVtZW50cy8qKi8qLnRzJyxcbiAgICByZWFzb246ICdDRU5UUkFMSVpFRCBOT1JNQUxJWkFUSU9OOiBFbGVtZW50IG1hbmFnZXJzIHJlY2VpdmUgcHJlLW5vcm1hbGl6ZWQgaW5wdXQgZnJvbSBoYW5kbGVycywgd2hpY2ggcmVjZWl2ZSBwcmUtbm9ybWFsaXplZCBpbnB1dCBmcm9tIFNlcnZlclNldHVwLiBEZWZlbnNlIGluIGRlcHRoIHdpdGggY2VudHJhbGl6ZWQgZW50cnkgcG9pbnQgbm9ybWFsaXphdGlvbi4gUFIgIzEnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2RpL0NvbnRhaW5lci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IERJIENvbnRhaW5lciBvbmx5IHdpcmVzIGRlcGVuZGVuY2llcywgZG9lcyBub3QgcHJvY2VzcyB1c2VyIGlucHV0LiBBbGwgdXNlciBpbnB1dCBpcyBub3JtYWxpemVkIGluIFNlcnZlclNldHVwIGJlZm9yZSByZWFjaGluZyBhbnkgaW5qZWN0ZWQgc2VydmljZS4gUFIgIzEnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2NvbGxlY3Rpb24vKi50cycsXG4gICAgcmVhc29uOiAnTWFya2V0cGxhY2UgbW9kdWxlcyByZWNlaXZlIG5vcm1hbGl6ZWQgaW5wdXQgZnJvbSB0b29sIGhhbmRsZXJzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jb2xsZWN0aW9uLyoqLyoudHMnLFxuICAgIHJlYXNvbjogJ01hcmtldHBsYWNlIG1vZHVsZXMgcmVjZWl2ZSBub3JtYWxpemVkIGlucHV0IGZyb20gdG9vbCBoYW5kbGVycydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvcGVyc29uYS8qLnRzJyxcbiAgICByZWFzb246ICdQZXJzb25hIG1vZHVsZXMgcmVjZWl2ZSBub3JtYWxpemVkIGlucHV0IGZyb20gdG9vbCBoYW5kbGVycydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvcGVyc29uYS8qKi8qLnRzJyxcbiAgICByZWFzb246ICdQZXJzb25hIG1vZHVsZXMgcmVjZWl2ZSBub3JtYWxpemVkIGlucHV0IGZyb20gdG9vbCBoYW5kbGVycydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvdXBkYXRlLyoudHMnLFxuICAgIHJlYXNvbjogJ1VwZGF0ZSBtb2R1bGVzIHJlY2VpdmUgbm9ybWFsaXplZCBpbnB1dCBmcm9tIHRvb2wgaGFuZGxlcnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3Rvb2xzLyoudHMnLFxuICAgIHJlYXNvbjogJ1Rvb2wgZmlsZXMgcmVjZWl2ZSBub3JtYWxpemVkIGlucHV0IGZyb20gU2VydmVyU2V0dXAnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZlci90eXBlcy50cycsXG4gICAgcmVhc29uOiAnVHlwZSBkZWZpbml0aW9uIGZpbGUgZG9lcyBub3QgcHJvY2VzcyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2ZXIvdG9vbHMvKi50cycsXG4gICAgcmVhc29uOiAnU2VydmVyIHRvb2xzIHJlY2VpdmUgbm9ybWFsaXplZCBpbnB1dCBmcm9tIFNlcnZlclNldHVwJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NjcmlwdHMvKiovKicsXG4gICAgcmVhc29uOiAnQnVpbGQgYW5kIHV0aWxpdHkgc2NyaXB0cyBkbyBub3QgcHJvY2VzcyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy90b29scy9wb3J0Zm9saW8vdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlIGNvbnRhaW5pbmcgb25seSBUeXBlU2NyaXB0IGludGVyZmFjZXMgLSBubyBydW50aW1lIGNvZGUgb3IgdXNlciBpbnB1dCBwcm9jZXNzaW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy90b29scy8qKi90eXBlcy50cycsXG4gICAgcmVhc29uOiAnVHlwZSBkZWZpbml0aW9uIGZpbGVzIGRvIG5vdCBwcm9jZXNzIHVzZXIgaW5wdXQgLSBjb21waWxlLXRpbWUgb25seSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvQnVpbGRJbmZvU2VydmljZS50cycsXG4gICAgcmVhc29uOiAnQnVpbGRJbmZvU2VydmljZSBvbmx5IHByb2Nlc3NlcyBzeXN0ZW0gaW5mb3JtYXRpb24gKHBhY2thZ2UuanNvbiwgZ2l0IGNvbW1hbmRzLCBEb2NrZXIgcnVudGltZSkgLSB0aGUgTUNQIHRvb2wgdGFrZXMgbm8gcGFyYW1ldGVycyBhbmQgbm8gdXNlciBpbnB1dCBmbG93cyB0aHJvdWdoIHRoaXMgc2VydmljZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvaGFuZGxlcnMvU3luY0hhbmRsZXJWMi50cycsXG4gICAgcmVhc29uOiAnU3luY0hhbmRsZXJWMiByZWNlaXZlcyBhbHJlYWR5LW5vcm1hbGl6ZWQgaW5wdXQgZnJvbSB0aGUgTUNQIHJlcXVlc3QgbGF5ZXIuIEFsbCB1c2VyIGlucHV0IGlzIG5vcm1hbGl6ZWQgaW4gU2VydmVyU2V0dXAgYmVmb3JlIHJlYWNoaW5nIGhhbmRsZXJzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvaGFuZGxlcnMvQ29uZmlnSGFuZGxlci50cycsXG4gICAgcmVhc29uOiAnQ29uZmlnSGFuZGxlciByZWNlaXZlcyBhbHJlYWR5LW5vcm1hbGl6ZWQgaW5wdXQgZnJvbSB0aGUgTUNQIHJlcXVlc3QgbGF5ZXIuIEFsbCB1c2VyIGlucHV0IGlzIG5vcm1hbGl6ZWQgaW4gU2VydmVyU2V0dXAgYmVmb3JlIHJlYWNoaW5nIGhhbmRsZXJzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICd0ZXN0LXN5bmMtb3BlcmF0aW9ucy5qcycsXG4gICAgcmVhc29uOiAnVGVzdCB1dGlsaXR5IGZpbGUgZm9yIGRldmVsb3BtZW50IHRlc3RpbmcuIERvZXMgbm90IHByb2Nlc3MgcHJvZHVjdGlvbiB1c2VyIGlucHV0LidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi90ZXN0LXN5bmMtb3BlcmF0aW9ucy5qcycsXG4gICAgcmVhc29uOiAnVGVzdCB1dGlsaXR5IGZpbGUgZm9yIGRldmVsb3BtZW50IHRlc3RpbmcuIERvZXMgbm90IHByb2Nlc3MgcHJvZHVjdGlvbiB1c2VyIGlucHV0LidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICd0ZXN0LSouanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgdXRpbGl0eSBmaWxlcyBpbiByb290IGRpcmVjdG9yeSBmb3IgZGV2ZWxvcG1lbnQgdGVzdGluZy4gRG8gbm90IHByb2Nlc3MgcHJvZHVjdGlvbiB1c2VyIGlucHV0LidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICd0ZXN0LSouanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgdXRpbGl0eSBmaWxlcyBpbiByb290IGRpcmVjdG9yeS4gQXVkaXQgbG9nZ2luZyBub3QgcmVxdWlyZWQgZm9yIGRldmVsb3BtZW50IHRlc3Qgc2NyaXB0cy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJ3Rlc3QtKi5qcycsXG4gICAgcmVhc29uOiAnVGVzdCB1dGlsaXR5IGZpbGVzIHVzaW5nIHNwYXduIHdpdGggYXJyYXkgYXJndW1lbnRzIHdoaWNoIGlzIHNhZmUgZnJvbSBpbmplY3Rpb24uJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDInLFxuICAgIGZpbGU6ICcqKi90ZXN0LWVsZW1lbnQtbGlmZWN5Y2xlLmpzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogc3Bhd24gd2l0aCBhcnJheSBhcmd1bWVudHMgaXMgc2FmZSAobm8gc2hlbGwgaW52b2NhdGlvbikuIEdpdEh1YiB0b2tlbiBwYXNzZWQgYXMgYXJyYXkgZWxlbWVudCwgbm90IGNvbmNhdGVuYXRlZCBpbnRvIGNvbW1hbmQgc3RyaW5nLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi90ZXN0LWVsZW1lbnQtbGlmZWN5Y2xlLmpzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogVGVzdCBoYXJuZXNzIHdpdGggbm8gdXNlciBpbnB1dCBtZWNoYW5pc21zLiBBbGwgZGF0YSBpcyBoYXJkY29kZWQgdGVzdCBzY2VuYXJpb3Mgb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAndGVzdC1mdWxsLXZhbGlkYXRpb24uanMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBzcGF3biB3aXRoIGFycmF5IGFyZ3VtZW50cyBpcyBzYWZlLiBEb2NrZXIgY29tbWFuZCB1c2VzIGFycmF5IGFyZ3MgcHJldmVudGluZyBzaGVsbCBpbmplY3Rpb24uIExpbmUgMzcyLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnKiovdGVzdC1mdWxsLXZhbGlkYXRpb24uanMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBzcGF3biB3aXRoIGFycmF5IGFyZ3VtZW50cyBpcyBzYWZlLiBEb2NrZXIgY29tbWFuZCB1c2VzIGFycmF5IGFyZ3MgcHJldmVudGluZyBzaGVsbCBpbmplY3Rpb24uJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3Rlc3QtZnVsbC12YWxpZGF0aW9uLmpzJyxcbiAgICByZWFzb246ICdUZXN0IHZhbGlkYXRpb24gc2NyaXB0IC0gbm90IHByb2R1Y3Rpb24gY29kZS4gTm8gdXNlciBpbnB1dCBwcm9jZXNzaW5nLCBvbmx5IHRlc3Qgc2NlbmFyaW9zLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi90ZXN0LWZ1bGwtdmFsaWRhdGlvbi5qcycsXG4gICAgcmVhc29uOiAnVGVzdCB2YWxpZGF0aW9uIHNjcmlwdCAtIG5vdCBwcm9kdWN0aW9uIGNvZGUuIE5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZywgb25seSB0ZXN0IHNjZW5hcmlvcy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAndGVzdC12ZXJzaW9uLXZhbGlkYXRpb24uanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgdXRpbGl0eSBzY3JpcHQgLSBub3QgcHJvZHVjdGlvbiBjb2RlLiBBdWRpdCBsb2dnaW5nIG5vdCByZXF1aXJlZCBmb3IgdGVzdCB1dGlsaXRpZXMuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJyoqL3Rlc3QtdmVyc2lvbi12YWxpZGF0aW9uLmpzJyxcbiAgICByZWFzb246ICdUZXN0IHV0aWxpdHkgc2NyaXB0IC0gbm90IHByb2R1Y3Rpb24gY29kZS4gQXVkaXQgbG9nZ2luZyBub3QgcmVxdWlyZWQgZm9yIHRlc3QgdXRpbGl0aWVzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICd0ZXN0LW1lbW9yeS1kZWxldGlvbi5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIC0gTm8gdXNlciBpbnB1dCBwcm9jZXNzZWQsIGFsbCB0ZXN0IGRhdGEgaXMgaW50ZXJuYWxseSBnZW5lcmF0ZWQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovdGVzdC1tZW1vcnktZGVsZXRpb24uanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZSAtIE5vIHVzZXIgaW5wdXQgcHJvY2Vzc2VkLCBhbGwgdGVzdCBkYXRhIGlzIGludGVybmFsbHkgZ2VuZXJhdGVkJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3Rlc3QtbWVtb3J5LWRlbGV0aW9uLmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgLSBBdWRpdCBsb2dnaW5nIGhhcHBlbnMgaW4gdGhlIHNlcnZlciBkZWxldGVFbGVtZW50IG1ldGhvZCwgbm90IGluIHRlc3QnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnKiovdGVzdC1tZW1vcnktZGVsZXRpb24uanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZSAtIEF1ZGl0IGxvZ2dpbmcgaGFwcGVucyBpbiB0aGUgc2VydmVyIGRlbGV0ZUVsZW1lbnQgbWV0aG9kLCBub3QgaW4gdGVzdCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdDV0UtODktMDAxJyxcbiAgICBmaWxlOiAndGVzdC1tZW1vcnktZGVsZXRpb24uanMnLFxuICAgIHJlYXNvbjogJ0ZhbHNlIHBvc2l0aXZlIC0gVGVtcGxhdGUgbGl0ZXJhbHMgaW4gZXJyb3IgbWVzc2FnZXMgYXJlIG5vdCBTUUwgcXVlcmllcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdDV0UtODktMDAxJyxcbiAgICBmaWxlOiAnKiovdGVzdC1tZW1vcnktZGVsZXRpb24uanMnLFxuICAgIHJlYXNvbjogJ0ZhbHNlIHBvc2l0aXZlIC0gVGVtcGxhdGUgbGl0ZXJhbHMgaW4gZXJyb3IgbWVzc2FnZXMgYXJlIG5vdCBTUUwgcXVlcmllcydcbiAgfSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEF1ZGl0IExvZ2dpbmcgRmFsc2UgUG9zaXRpdmVzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvdHlwZXMvKi50cycsXG4gICAgcmVhc29uOiAnVHlwZSBkZWZpbml0aW9uIGZpbGVzIGRvIG5vdCBwZXJmb3JtIHNlY3VyaXR5IG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL3R5cGVzL2VsZW1lbnRzLyoudHMnLFxuICAgIHJlYXNvbjogJ0VsZW1lbnQgaW50ZXJmYWNlIGZpbGVzIGFyZSB0eXBlIGRlZmluaXRpb25zIHRoYXQgZG8gbm90IHBlcmZvcm0gc2VjdXJpdHkgb3BlcmF0aW9ucydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvY29uc3RhbnRzLyoudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50IGZpbGVzIGRvIG5vdCBwZXJmb3JtIHNlY3VyaXR5IG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL2NvbmZpZy8qLnRzJyxcbiAgICByZWFzb246ICdDb25maWd1cmF0aW9uIGZpbGVzIGRvIG5vdCBwZXJmb3JtIHNlY3VyaXR5IG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL2VsZW1lbnRzL21lbW9yaWVzL2NvbnN0YW50cy50cycsXG4gICAgcmVhc29uOiAnQ29uc3RhbnRzIGZpbGUgLSBjb250YWlucyBvbmx5IHR5cGUgZGVmaW5pdGlvbnMgYW5kIGNvbnN0YW50cywgbm8gc2VjdXJpdHkgb3BlcmF0aW9ucydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICcqKi9zcmMvZWxlbWVudHMvbWVtb3JpZXMvY29uc3RhbnRzLnRzJyxcbiAgICByZWFzb246ICdDb25zdGFudHMgZmlsZSAtIGNvbnRhaW5zIG9ubHkgdHlwZSBkZWZpbml0aW9ucyBhbmQgY29uc3RhbnRzLCBubyBzZWN1cml0eSBvcGVyYXRpb25zJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJyoqL2VsZW1lbnRzL21lbW9yaWVzL2NvbnN0YW50cy50cycsXG4gICAgcmVhc29uOiAnQ29uc3RhbnRzIGZpbGUgLSBDSSBwYXRoIHZhcmlhbnQsIGNvbnRhaW5zIG9ubHkgdHlwZSBkZWZpbml0aW9ucyBhbmQgY29uc3RhbnRzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ2VsZW1lbnRzL21lbW9yaWVzL2NvbnN0YW50cy50cycsXG4gICAgcmVhc29uOiAnQ29uc3RhbnRzIGZpbGUgLSBzcmMtc3RyaXBwZWQgcGF0aCB2YXJpYW50LCBjb250YWlucyBvbmx5IHR5cGUgZGVmaW5pdGlvbnMgYW5kIGNvbnN0YW50cydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvZXJyb3JzLyoudHMnLFxuICAgIHJlYXNvbjogJ0Vycm9yIGNsYXNzZXMgYXJlIG5vdCBzZWN1cml0eSBvcGVyYXRpb25zIHJlcXVpcmluZyBhdWRpdCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICcqKi8qLmpzb24nLFxuICAgIHJlYXNvbjogJ0pTT04gZmlsZXMgY2Fubm90IGNvbnRhaW4gZXhlY3V0YWJsZSBjb2RlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9zZWN1cml0eS8qKi8qLnRzJyxcbiAgICByZWFzb246ICdTZWN1cml0eSBtb2R1bGVzIGFyZSBpbmZyYXN0cnVjdHVyZSwgbm90IG9wZXJhdGlvbnMgcmVxdWlyaW5nIGF1ZGl0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9jb2xsZWN0aW9uLyoudHMnLFxuICAgIHJlYXNvbjogJ01hcmtldHBsYWNlIG9wZXJhdGlvbnMgYXJlIG5vdCBzZWN1cml0eS1zZW5zaXRpdmUgcmVxdWlyaW5nIGF1ZGl0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9jb2xsZWN0aW9uLyoqLyoudHMnLFxuICAgIHJlYXNvbjogJ01hcmtldHBsYWNlIG9wZXJhdGlvbnMgYXJlIG5vdCBzZWN1cml0eS1zZW5zaXRpdmUgcmVxdWlyaW5nIGF1ZGl0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9wZXJzb25hLyoudHMnLFxuICAgIHJlYXNvbjogJ1BlcnNvbmEgb3BlcmF0aW9ucyBhcmUgdmFsaWRhdGVkIGF0IGVudHJ5IHBvaW50LCBub3Qgc2VjdXJpdHkgb3BlcmF0aW9ucydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvcGVyc29uYS8qKi8qLnRzJyxcbiAgICByZWFzb246ICdQZXJzb25hIG9wZXJhdGlvbnMgYXJlIHZhbGlkYXRlZCBhdCBlbnRyeSBwb2ludCwgbm90IHNlY3VyaXR5IG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZlci90b29scy8qKi8qLnRzJyxcbiAgICByZWFzb246ICdUb29sIGltcGxlbWVudGF0aW9ucyBkZWxlZ2F0ZSB0byBzZXJ2aWNlcyB0aGF0IGhhbmRsZSBzZWN1cml0eSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvaW5kZXgudHMnLFxuICAgIHJlYXNvbjogJ01haW4gZW50cnkgcG9pbnQgZGVsZWdhdGVzIHNlY3VyaXR5IG9wZXJhdGlvbnMgdG8gc3BlY2lhbGl6ZWQgbW9kdWxlcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvdXRpbHMvRXZpY3RpbmdRdWV1ZS50cycsXG4gICAgcmVhc29uOiAnR2VuZXJpYyBkYXRhIHN0cnVjdHVyZSDigJQgZG9lcyBub3QgcHJvY2VzcyB1c2VyIGlucHV0LiBBbGwgY2FsbGVycyAoQWdlbnQsIFNlY3VyaXR5VGVsZW1ldHJ5LCBTZWN1cml0eU1vbml0b3IsIExvZ2dlcikgc2FuaXRpemUgaW5wdXQgYmVmb3JlIHB1c2hpbmcgdG8gdGhlIHF1ZXVlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy91dGlscy8qLnRzJyxcbiAgICByZWFzb246ICdVdGlsaXR5IGZ1bmN0aW9ucyBhcmUgbm90IHNlY3VyaXR5IG9wZXJhdGlvbnMgcmVxdWlyaW5nIGF1ZGl0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy91cGRhdGUvKiovKi50cycsXG4gICAgcmVhc29uOiAnVXBkYXRlIHN5c3RlbSBoYXMgaXRzIG93biBsb2dnaW5nIGFuZCBpcyBub3QgYSBkaXJlY3Qgc2VjdXJpdHkgb3BlcmF0aW9uJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9zZXJ2ZXIvdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlIGRvZXMgbm90IHBlcmZvcm0gb3BlcmF0aW9ucydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzY3JpcHRzLyoqLyonLFxuICAgIHJlYXNvbjogJ0J1aWxkIHNjcmlwdHMgZG8gbm90IHBlcmZvcm0gcnVudGltZSBzZWN1cml0eSBvcGVyYXRpb25zJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NjcmlwdHMvbGliL2doLWNvbW1hbmQuanMnLFxuICAgIHJlYXNvbjogJ0NMSSB1dGlsaXR5IC0gU2VjdXJpdHlNb25pdG9yIG5vdCBhdmFpbGFibGUgaW4gc3RhbmRhbG9uZSBzY3JpcHRzLiBTZWN1cml0eSBlbnN1cmVkIHZpYSBpbnB1dCB2YWxpZGF0aW9uIGFuZCBzZWN1cmUgY29tbWFuZCBleGVjdXRpb24gcGF0dGVybnMgKERNQ1AtU0VDLTAwMSwgRE1DUC1TRUMtMDAyKSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICcqKi9zY3JpcHRzL2xpYi9naC1jb21tYW5kLmpzJyxcbiAgICByZWFzb246ICdDTEkgdXRpbGl0eSAtIFNlY3VyaXR5TW9uaXRvciBub3QgYXZhaWxhYmxlIGluIHN0YW5kYWxvbmUgc2NyaXB0cy4gU2VjdXJpdHkgZW5zdXJlZCB2aWEgaW5wdXQgdmFsaWRhdGlvbiBhbmQgc2VjdXJlIGNvbW1hbmQgZXhlY3V0aW9uIHBhdHRlcm5zIChETUNQLVNFQy0wMDEsIERNQ1AtU0VDLTAwMiknXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL3BvcnRmb2xpby9Qb3J0Zm9saW9TeW5jTWFuYWdlci50cycsXG4gICAgcmVhc29uOiAnUG9ydGZvbGlvIHN5bmMgb3BlcmF0aW9ucyBhcmUgZmlsZSBtYW5hZ2VtZW50IHRhc2tzLCBub3Qgc2VjdXJpdHkgb3BlcmF0aW9ucy4gU2VjdXJpdHkgdmFsaWRhdGlvbiBoYXBwZW5zIGF0IHRoZSBNQ1AgcmVxdWVzdCBsYXllci4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL2hhbmRsZXJzL1N5bmNIYW5kbGVyVjIudHMnLFxuICAgIHJlYXNvbjogJ1N5bmMgaGFuZGxlciBkZWxlZ2F0ZXMgdG8gUG9ydGZvbGlvU3luY01hbmFnZXIgd2hpY2ggaGFuZGxlcyBpdHMgb3duIGxvZ2dpbmcuIFNlY3VyaXR5IHZhbGlkYXRpb24gaGFwcGVucyBhdCB0aGUgTUNQIHJlcXVlc3QgbGF5ZXIuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9oYW5kbGVycy9Db25maWdIYW5kbGVyLnRzJyxcbiAgICByZWFzb246ICdDb25maWcgaGFuZGxlciBvcGVyYXRpb25zIGFyZSBjb25maWd1cmF0aW9uIG1hbmFnZW1lbnQsIG5vdCBzZWN1cml0eSBvcGVyYXRpb25zLiBDb25maWdNYW5hZ2VyIGhhbmRsZXMgaXRzIG93biBsb2dnaW5nLidcbiAgfSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFF1ZXJ5IFNlcnZpY2VzIC0gSXNzdWUgIzM4IChQUiAjNDYpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUXVlcnkgc2VydmljZXMgcmVjZWl2ZSBwcmUtbm9ybWFsaXplZCBpbnB1dCB2aWEgdHdvIGxheWVyczpcbiAgLy8gMS4gU2VydmVyU2V0dXAubm9ybWFsaXplQXJndW1lbnRzVW5pY29kZSgpIG5vcm1hbGl6ZXMgYWxsIE1DUCB0b29sIGFyZ3VtZW50c1xuICAvLyAyLiBGaWx0ZXJTZXJ2aWNlIHVzZXMgbm9ybWFsaXplU2VhcmNoVGVybSgpIHdoaWNoIGNhbGxzIFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKClcbiAgLy8gU2VlIHNyYy91dGlscy9zZWFyY2hVdGlscy50cyBsaW5lcyAxNy0zMCBmb3Igc2Vjb25kYXJ5IG5vcm1hbGl6YXRpb25cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvcXVlcnkvdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlIGNvbnRhaW5pbmcgb25seSBUeXBlU2NyaXB0IGludGVyZmFjZXMgLSBubyBydW50aW1lIGNvZGUgb3IgdXNlciBpbnB1dCBwcm9jZXNzaW5nLiBQUiAjNDYnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3F1ZXJ5L2luZGV4LnRzJyxcbiAgICByZWFzb246ICdSZS1leHBvcnQgbW9kdWxlIC0gbm8gdXNlciBpbnB1dCBwcm9jZXNzaW5nLCBvbmx5IFR5cGVTY3JpcHQgcmUtZXhwb3J0cy4gUFIgIzQ2J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9xdWVyeS9QYWdpbmF0aW9uU2VydmljZS50cycsXG4gICAgcmVhc29uOiAnUGFnaW5hdGlvblNlcnZpY2UgcHJvY2Vzc2VzIG51bWVyaWMgcGFyYW1ldGVycyAocGFnZSwgcGFnZVNpemUpIC0gbm8gc3RyaW5nIGlucHV0IHJlcXVpcmluZyBVbmljb2RlIG5vcm1hbGl6YXRpb24uIElucHV0IHByZS12YWxpZGF0ZWQgYXQgTUNQIHJlcXVlc3QgbGF5ZXIuIFBSICM0NidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvcXVlcnkvRmlsdGVyU2VydmljZS50cycsXG4gICAgcmVhc29uOiAnRFVBTCBQUk9URUNUSU9OOiAoMSkgSW5wdXQgcHJlLW5vcm1hbGl6ZWQgYnkgU2VydmVyU2V0dXAubm9ybWFsaXplQXJndW1lbnRzVW5pY29kZSgpIGF0IE1DUCBsYXllciwgKDIpIEZpbHRlclNlcnZpY2UgdXNlcyBub3JtYWxpemVTZWFyY2hUZXJtKCkgd2hpY2ggY2FsbHMgVW5pY29kZVZhbGlkYXRvci5ub3JtYWxpemUoKS4gU2VlIHNlYXJjaFV0aWxzLnRzOjE3LTMwLiBQUiAjNDYnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3F1ZXJ5L0VsZW1lbnRRdWVyeVNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ09yY2hlc3RyYXRvciBzZXJ2aWNlIC0gZGVsZWdhdGVzIHRvIEZpbHRlclNlcnZpY2Ugd2hpY2ggcGVyZm9ybXMgVW5pY29kZSBub3JtYWxpemF0aW9uIHZpYSBub3JtYWxpemVTZWFyY2hUZXJtKCkuIElucHV0IHByZS1ub3JtYWxpemVkIGF0IE1DUCBsYXllci4gUFIgIzQ2J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9xdWVyeS9Tb3J0U2VydmljZS50cycsXG4gICAgcmVhc29uOiAnU29ydFNlcnZpY2UgdmFsaWRhdGVzIHNvcnRCeSBhZ2FpbnN0IGVudW0gd2hpdGVsaXN0IChTb3J0YWJsZUZpZWxkKSAtIG5vIGFyYml0cmFyeSBzdHJpbmcgaW5wdXQuIHNvcnRPcmRlciBpcyBlbnVtLXZhbGlkYXRlZC4gTm8gVW5pY29kZSBub3JtYWxpemF0aW9uIG5lZWRlZC4gUFIgIzQ2J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9xdWVyeS8qLnRzJyxcbiAgICByZWFzb246ICdRdWVyeSBzZXJ2aWNlcyByZWNlaXZlIHByZS1ub3JtYWxpemVkIGlucHV0IGZyb20gTUNQIGxheWVyIGFuZCB1c2Ugbm9ybWFsaXplU2VhcmNoVGVybSgpIGZvciBhZGRpdGlvbmFsIHByb3RlY3Rpb24uIFBSICM0NidcbiAgfSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIENvdmVyYWdlIFJlcG9ydCBGaWxlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJ3Rlc3QvY292ZXJhZ2UvKiovKicsXG4gICAgcmVhc29uOiAnQ292ZXJhZ2UgcmVwb3J0IGZpbGVzIGFyZSBhdXRvLWdlbmVyYXRlZCBhbmQgbm90IHBhcnQgb2YgdGhlIGFwcGxpY2F0aW9uIGNvZGUnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJ3Rlc3RzL2NvdmVyYWdlLyoqLyonLFxuICAgIHJlYXNvbjogJ0NvdmVyYWdlIHJlcG9ydCBmaWxlcyBhcmUgYXV0by1nZW5lcmF0ZWQgYW5kIG5vdCBwYXJ0IG9mIHRoZSBhcHBsaWNhdGlvbiBjb2RlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICcqKi9sY292LXJlcG9ydC8qKi8qJyxcbiAgICByZWFzb246ICdMQ09WIGNvdmVyYWdlIHJlcG9ydCBmaWxlcyBhcmUgYXV0by1nZW5lcmF0ZWQgYW5kIG5vdCBwYXJ0IG9mIHRoZSBhcHBsaWNhdGlvbiBjb2RlJ1xuICB9LFxuICBcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBEb2N1bWVudGF0aW9uIGFuZCBOb24tQ29kZSBGaWxlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJ2RvY3MvKiovKicsXG4gICAgcmVhc29uOiAnRG9jdW1lbnRhdGlvbiBmaWxlcyBpbmNsdWRpbmcgUUEgbWV0cmljcyBhbmQgcmVwb3J0cydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnKiovKi5tZCcsXG4gICAgcmVhc29uOiAnTWFya2Rvd24gZG9jdW1lbnRhdGlvbiBmaWxlcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnKiovKi5qc29uJyxcbiAgICByZWFzb246ICdKU09OIGNvbmZpZ3VyYXRpb24gYW5kIGRhdGEgZmlsZXMgZG8gbm90IGV4ZWN1dGUgY29kZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnTElDRU5TRScsXG4gICAgcmVhc29uOiAnTGljZW5zZSBmaWxlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICcuZ2l0aWdub3JlJyxcbiAgICByZWFzb246ICdHaXQgY29uZmlndXJhdGlvbiBmaWxlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICdwYWNrYWdlLWxvY2suanNvbicsXG4gICAgcmVhc29uOiAnTlBNIGxvY2sgZmlsZSAtIGF1dG8tZ2VuZXJhdGVkLCBubyB1c2VyIGlucHV0IHByb2Nlc3NpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJyoqLyoueW1sJyxcbiAgICByZWFzb246ICdZQU1MIGNvbmZpZ3VyYXRpb24gZmlsZXMgYXJlIGRhdGEsIG5vdCBjb2RlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICcqKi8qLnlhbWwnLFxuICAgIHJlYXNvbjogJ1lBTUwgY29uZmlndXJhdGlvbiBmaWxlcyBhcmUgZGF0YSwgbm90IGNvZGUnXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTZXB0ZW1iZXIgMjIgU2Vzc2lvbiBEb2NzIFJlc3RvcmF0aW9uIC0gUFIgIzEwODJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDInLFxuICAgIGZpbGU6ICdzY3JpcHRzL3Rlc3QtY2FwYWJpbGl0eS1pbmRleC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBzY3JpcHQgdXNpbmcgc3Bhd24gd2l0aCBoYXJkY29kZWQgYXJyYXkgYXJndW1lbnRzIC0gbm8gdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnKiovc2NyaXB0cy90ZXN0LWNhcGFiaWxpdHktaW5kZXguanMnLFxuICAgIHJlYXNvbjogJ1Rlc3Qgc2NyaXB0IHVzaW5nIHNwYXduIHdpdGggaGFyZGNvZGVkIGFycmF5IGFyZ3VtZW50cyAtIG5vIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJ3Rlc3RzL2V4cGVyaW1lbnRzL2NhcGFiaWxpdHktaW5kZXgtY29tcHJlaGVuc2l2ZS10ZXN0LmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgdXNpbmcgc3Bhd24gd2l0aCBoYXJkY29kZWQgYXJyYXkgYXJndW1lbnRzIC0gbm8gdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnKiovdGVzdHMvZXhwZXJpbWVudHMvY2FwYWJpbGl0eS1pbmRleC1jb21wcmVoZW5zaXZlLXRlc3QuanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZSB1c2luZyBzcGF3biB3aXRoIGhhcmRjb2RlZCBhcnJheSBhcmd1bWVudHMgLSBubyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwMycsXG4gICAgZmlsZTogJ3NjcmlwdHMvdGVzdC1jYXBhYmlsaXR5LWluZGV4LmpzJyxcbiAgICByZWFzb246ICdUZXN0IHNjcmlwdCB3aXRoIGhhcmRjb2RlZCB0ZXN0IHBlcnNvbmEgcGF0aHMgLSBub3QgcHJvZHVjdGlvbiBjb2RlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwMycsXG4gICAgZmlsZTogJyoqL3NjcmlwdHMvdGVzdC1jYXBhYmlsaXR5LWluZGV4LmpzJyxcbiAgICByZWFzb246ICdUZXN0IHNjcmlwdCB3aXRoIGhhcmRjb2RlZCB0ZXN0IHBlcnNvbmEgcGF0aHMgLSBub3QgcHJvZHVjdGlvbiBjb2RlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0NXRS0yMi0wMDEnLFxuICAgIGZpbGU6ICd0ZXN0cy9leHBlcmltZW50cy9jYXBhYmlsaXR5LWluZGV4LWRvY2tlci10ZXN0LmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgdXNpbmcgaGFyZGNvZGVkIHRlc3QgcGF0aHMgLSBubyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0NXRS0yMi0wMDEnLFxuICAgIGZpbGU6ICcqKi90ZXN0cy9leHBlcmltZW50cy9jYXBhYmlsaXR5LWluZGV4LWRvY2tlci10ZXN0LmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgdXNpbmcgaGFyZGNvZGVkIHRlc3QgcGF0aHMgLSBubyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3Rlc3QtbWVtb3J5LWVkaXQuanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZSBmb3IgbWVtb3J5IGVkaXRpbmcgLSBubyB1c2VyIGlucHV0IHByb2Nlc3NpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovdGVzdC1tZW1vcnktZWRpdC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIGZvciBtZW1vcnkgZWRpdGluZyAtIG5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZydcbiAgfSxcblxuICAvLyBBZGRpdGlvbmFsIHN1cHByZXNzaW9ucyBmb3IgcmVtYWluaW5nIGlzc3Vlc1xuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDInLFxuICAgIGZpbGU6ICd0ZXN0cy9leHBlcmltZW50cy9jYXBhYmlsaXR5LWluZGV4LWRvY2tlci10ZXN0LmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgdXNpbmcgc3Bhd24gd2l0aCBoYXJkY29kZWQgYXJyYXkgYXJndW1lbnRzIGF0IGxpbmUgMjc5IC0gbm8gdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnKiovdGVzdHMvZXhwZXJpbWVudHMvY2FwYWJpbGl0eS1pbmRleC1kb2NrZXItdGVzdC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIHVzaW5nIHNwYXduIHdpdGggaGFyZGNvZGVkIGFycmF5IGFyZ3VtZW50cyBhdCBsaW5lIDI3OSAtIG5vIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDAxJyxcbiAgICBmaWxlOiAnc2NyaXB0cy90ZXN0LWNhcGFiaWxpdHktaW5kZXguanMnLFxuICAgIHJlYXNvbjogJ1Rlc3Qgc2NyaXB0IGxvYWRpbmcgdGVzdCBwZXJzb25hcyB3aXRoIGhhcmRjb2RlZCBwYXRocyAtIG5vdCBwcm9kdWN0aW9uIGNvZGUnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDAxJyxcbiAgICBmaWxlOiAnKiovc2NyaXB0cy90ZXN0LWNhcGFiaWxpdHktaW5kZXguanMnLFxuICAgIHJlYXNvbjogJ1Rlc3Qgc2NyaXB0IGxvYWRpbmcgdGVzdCBwZXJzb25hcyB3aXRoIGhhcmRjb2RlZCBwYXRocyAtIG5vdCBwcm9kdWN0aW9uIGNvZGUnXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBwYWNrYWdlcy9zYWZldHkgU3VwcHJlc3Npb25zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAncGFja2FnZXMvc2FmZXR5L3NyYy9EaXNwbGF5U2VydmljZS50cycsXG4gICAgcmVhc29uOiAnSW50ZW50aW9uYWwgZXhlY1N5bmMgZm9yIGNyb3NzLXBsYXRmb3JtIE9TIGRpYWxvZ3MuIEFsbCB1c2VyIGlucHV0IGlzIHByb3Blcmx5IGVzY2FwZWQgdXNpbmcgZXNjYXBlU2hlbGxBcmcgKFVuaXgpIG9yIEJhc2U2NCBlbmNvZGluZyAoUG93ZXJTaGVsbCknXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJyoqL3BhY2thZ2VzL3NhZmV0eS9zcmMvRGlzcGxheVNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ0ludGVudGlvbmFsIGV4ZWNTeW5jIGZvciBjcm9zcy1wbGF0Zm9ybSBPUyBkaWFsb2dzLiBBbGwgdXNlciBpbnB1dCBpcyBwcm9wZXJseSBlc2NhcGVkIHVzaW5nIGVzY2FwZVNoZWxsQXJnIChVbml4KSBvciBCYXNlNjQgZW5jb2RpbmcgKFBvd2VyU2hlbGwpJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3BhY2thZ2VzL3NhZmV0eS9zcmMvRGlzcGxheVNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ0Rpc3BsYXlTZXJ2aWNlIHJlY2VpdmVzIHNhbml0aXplZCBpbnB1dCBmcm9tIFRpZXJlZFNhZmV0eVNlcnZpY2UuIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBoYXBwZW5zIGF0IHZhbGlkYXRpb24gYm91bmRhcmllcywgbm90IGluIGRpc3BsYXkgbGF5ZXInXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovcGFja2FnZXMvc2FmZXR5L3NyYy9EaXNwbGF5U2VydmljZS50cycsXG4gICAgcmVhc29uOiAnRGlzcGxheVNlcnZpY2UgcmVjZWl2ZXMgc2FuaXRpemVkIGlucHV0IGZyb20gVGllcmVkU2FmZXR5U2VydmljZS4gVW5pY29kZSBub3JtYWxpemF0aW9uIGhhcHBlbnMgYXQgdmFsaWRhdGlvbiBib3VuZGFyaWVzLCBub3QgaW4gZGlzcGxheSBsYXllcidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdwYWNrYWdlcy9zYWZldHkvc3JjL1RpZXJlZFNhZmV0eVNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ1RpZXJlZFNhZmV0eVNlcnZpY2UgdmFsaWRhdGVzIG9wZXJhdGlvbiBzYWZldHkgbGV2ZWxzLCBub3QgdXNlciBpbnB1dC4gSW5wdXQgdmFsaWRhdGlvbiB3aXRoIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBpcyBoYW5kbGVkIGJ5IHVwc3RyZWFtIHZhbGlkYXRvcnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovcGFja2FnZXMvc2FmZXR5L3NyYy9UaWVyZWRTYWZldHlTZXJ2aWNlLnRzJyxcbiAgICByZWFzb246ICdUaWVyZWRTYWZldHlTZXJ2aWNlIHZhbGlkYXRlcyBvcGVyYXRpb24gc2FmZXR5IGxldmVscywgbm90IHVzZXIgaW5wdXQuIElucHV0IHZhbGlkYXRpb24gd2l0aCBVbmljb2RlIG5vcm1hbGl6YXRpb24gaXMgaGFuZGxlZCBieSB1cHN0cmVhbSB2YWxpZGF0b3JzJ1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRG9ja2VyIFRva2VuIE1lYXN1cmVtZW50IFNjcmlwdCAtIFBSICMyOTJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDInLFxuICAgIGZpbGU6ICdzY3JpcHRzL21lYXN1cmUtZG9ja2VyLXRva2Vucy50cycsXG4gICAgcmVhc29uOiAnQ29tbWFuZCBpbmplY3Rpb24gbWl0aWdhdGVkOiBpbnRlcmZhY2VNb2RlIGFuZCBlbmRwb2ludE1vZGUgYXJlIHZhbGlkYXRlZCBhZ2FpbnN0IFZBTElEX0lOVEVSRkFDRV9NT0RFUyBhbmQgVkFMSURfRU5EUE9JTlRfTU9ERVMgYWxsb3dsaXN0cyBiZWZvcmUgdXNlIGluIHNwYXduKCkuIFR5cGVTY3JpcHQgdHlwZXMgYWxzbyBjb25zdHJhaW4gcGFyYW1ldGVycyBhdCBjb21waWxlIHRpbWUuIFBSICMyOTInXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJyoqL3NjcmlwdHMvbWVhc3VyZS1kb2NrZXItdG9rZW5zLnRzJyxcbiAgICByZWFzb246ICdDb21tYW5kIGluamVjdGlvbiBtaXRpZ2F0ZWQ6IGludGVyZmFjZU1vZGUgYW5kIGVuZHBvaW50TW9kZSBhcmUgdmFsaWRhdGVkIGFnYWluc3QgVkFMSURfSU5URVJGQUNFX01PREVTIGFuZCBWQUxJRF9FTkRQT0lOVF9NT0RFUyBhbGxvd2xpc3RzIGJlZm9yZSB1c2UgaW4gc3Bhd24oKS4gVHlwZVNjcmlwdCB0eXBlcyBhbHNvIGNvbnN0cmFpbiBwYXJhbWV0ZXJzIGF0IGNvbXBpbGUgdGltZS4gUFIgIzI5MidcbiAgfSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFVuaWZpZWQgTG9nZ2luZyBTeXN0ZW0g4oCUIFBSICM0NzFcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTaW5rcyByZWNlaXZlIHByZS1jb25zdHJ1Y3RlZCBVbmlmaWVkTG9nRW50cnkgb2JqZWN0cyBmcm9tIExvZ01hbmFnZXIuXG4gIC8vIERhdGEgZW50ZXJzIHRoZSBwaXBlbGluZSB0aHJvdWdoIExvZ0hvb2tzIHdoaWNoIGNyZWF0ZXMgZW50cmllcyBmcm9tXG4gIC8vIGludGVybmFsIHN5c3RlbSBldmVudHMuIE1DUExvZ2dlciBzYW5pdGl6ZXMgdmlhIHNhbml0aXplTWVzc2FnZSgpIGFuZFxuICAvLyBzYW5pdGl6ZURhdGEoKSBiZWZvcmUgZW1pdHRpbmcuIE90aGVyIHNvdXJjZXMgKFNlY3VyaXR5TW9uaXRvcixcbiAgLy8gUGVyZm9ybWFuY2VNb25pdG9yLCBldGMuKSBlbWl0IGludGVybmFsIHN5c3RlbSBkYXRhLCBub3QgdXNlciBpbnB1dC5cbiAgLy8gVGhlIFNTRSB2aWV3ZXIgSFRNTC1lc2NhcGVzIGFsbCBkeW5hbWljIGNvbnRlbnQgdmlhIGVzY0h0bWwoKS9cbiAgLy8gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoKS5cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvbG9nZ2luZy90eXBlcy50cycsXG4gICAgcmVhc29uOiAnUHVyZSB0eXBlIGRlZmluaXRpb25zIGFuZCBpbnRlcmZhY2VzIOKAlCBubyBkYXRhIHByb2Nlc3Npbmcgb3IgdXNlciBpbnB1dCBoYW5kbGluZy4gUFIgIzQ3MSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvbG9nZ2luZy9zaW5rcy9NZW1vcnlMb2dTaW5rLnRzJyxcbiAgICByZWFzb246ICdSZWNlaXZlcyBwcmUtY29uc3RydWN0ZWQgVW5pZmllZExvZ0VudHJ5IG9iamVjdHMgZnJvbSBMb2dNYW5hZ2VyLiBRdWVyeSBwYXJhbWV0ZXJzIGFyZSB1c2VkIGFzIHJlYWQtb25seSBzdWJzdHJpbmcgZmlsdGVycywgbm90IHdyaXR0ZW4gdG8gb3V0cHV0LiBQUiAjNDcxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9sb2dnaW5nL3NpbmtzL0ZpbGVMb2dTaW5rLnRzJyxcbiAgICByZWFzb246ICdSZWNlaXZlcyBwcmUtZm9ybWF0dGVkIGVudHJpZXMgdmlhIElMb2dGb3JtYXR0ZXIuIEZpbGUgcGF0aHMgYnVpbHQgZnJvbSBoYXJkY29kZWQgY2F0ZWdvcnkgbmFtZXMgKyBkYXRlcy4gTUNQTG9nZ2VyIHNhbml0aXplcyB1cHN0cmVhbSB2aWEgc2FuaXRpemVNZXNzYWdlL3Nhbml0aXplRGF0YTsgb3RoZXIgc291cmNlcyBlbWl0IGludGVybmFsIHN5c3RlbSBkYXRhLiBQUiAjNDcxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy93ZWIvcm91dGVzL2xvZ1JvdXRlcy50cycsXG4gICAgcmVhc29uOiAnSlNPTi1zZXJpYWxpemVzIHByZS1jb25zdHJ1Y3RlZCBVbmlmaWVkTG9nRW50cnkgb2JqZWN0cyBvdmVyIFNTRS4gQWxsIHF1ZXJ5IHBhcmFtZXRlcnMgYXJlIHZhbGlkYXRlZCBzdHJpbmdzIHBhc3NlZCB0byBNZW1vcnlMb2dTaW5rLnF1ZXJ5KCkuIE5vIEhUTUwgcmVuZGVyaW5nLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc3RvcmFnZS90eXBlcy50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IFR5cGUtb25seSBpbnRlcmZhY2UgZGVjbGFyYXRpb25zIChTdG9yYWdlSXRlbU1ldGFkYXRhLCBFbGVtZW50SW5kZXhFbnRyeSwgTWFuaWZlc3REaWZmUmVzdWx0KS4gTm8gZXhlY3V0YWJsZSBpbnB1dC1wcm9jZXNzaW5nIGNvZGU7IFVuaWNvZGUgbm9ybWFsaXphdGlvbiBpcyBlbmZvcmNlZCBpbiBjb25jcmV0ZSBzdG9yYWdlIHBhcnNlcnMvbGF5ZXJzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc3RvcmFnZS9JU3RvcmFnZUJhY2tlbmQudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBJbnRlcmZhY2UgY29udHJhY3Qgb25seSBmb3IgYmFja2VuZCBhYnN0cmFjdGlvbi4gTm8gcnVudGltZSB1c2VyLWlucHV0IGhhbmRsaW5nIGluIHRoaXMgZmlsZTsgbm9ybWFsaXphdGlvbiBpcyBlbmZvcmNlZCBieSBpbXBsZW1lbnRpbmcgc3RvcmFnZSBsYXllcnMgYW5kIHZhbGlkYXRvcnMuJ1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVmVyaWZpY2F0aW9uTm90aWZpZXIgRmFsc2UgUG9zaXRpdmVzIOKAlCBJc3N1ZSAjNTM3XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL1ZlcmlmaWNhdGlvbk5vdGlmaWVyLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogTGluZXMgMTE3LCAxMzIsIDE0NSB1c2Ugc3Bhd24oKSB3aXRoIGFycmF5IGFyZ3VtZW50cyAobm8gc2hlbGwgaW52b2NhdGlvbikuIHplbml0eS9rZGlhbG9nL3htZXNzYWdlIGFyZSBkaXNwbGF5LW9ubHkgdG9vbHMgdGhhdCByZW5kZXIgdGV4dCBpbiBHVUkgZGlhbG9ncyB3aXRob3V0IGludGVycHJldGluZyBjb250ZW50IGFzIGNvZGUuIGFnZW50TmFtZSAoZnJvbSBNQ1AgcGFyYW1zKSBhbmQgY29kZSAoY3J5cHRvZ3JhcGhpYyBhbHBoYW51bWVyaWMpIGZsb3cgaW50byBkaXNwbGF5IHRleHQgb25seS4gU2VlIElzc3VlICM1MzcgZXZpZGVuY2UgdHJhY2UuJ1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gV2ViIFVJIENsaWVudC1TaWRlIEZhbHNlIFBvc2l0aXZlcyDigJQgUkMxIFNlY3VyaXR5IEF1ZGl0XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDUnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3B1YmxpYy9hcHAuanMnLFxuICAgIHJlYXNvbjogJ0NsaWVudC1zaWRlIGJyb3dzZXIgSmF2YVNjcmlwdC4gU2VjdXJlWWFtbFBhcnNlciBpcyBhIE5vZGUuanMgbW9kdWxlIHVuYXZhaWxhYmxlIGluIGJyb3dzZXIgY29udGV4dC4gc2FmZVBhcnNlWWFtbCgpIHdyYXBwZXIgdXNlcyBDT1JFX1NDSEVNQSAoc2FmZSwgbm8gY3VzdG9tIHR5cGVzKSB3aXRoIDUxMktCIHNpemUgbGltaXQuIERhdGEgc2VydmVkIGZyb20gbG9jYWxob3N0IG9yIHRydXN0ZWQgR2l0SHViIGNvbGxlY3Rpb24gQVBJLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3B1YmxpYy9hcHAuanMnLFxuICAgIHJlYXNvbjogJ0NsaWVudC1zaWRlIGJyb3dzZXIgSmF2YVNjcmlwdC4gVW5pY29kZVZhbGlkYXRvciBpcyBhIE5vZGUuanMgbW9kdWxlIHVuYXZhaWxhYmxlIGluIGJyb3dzZXIgY29udGV4dC4gSW5wdXQgc2VydmVkIGZyb20gRG9sbGhvdXNlTUNQIHNlcnZlciB3aGljaCBub3JtYWxpemVzIGJlZm9yZSBzZXJ2aW5nLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3NlcnZlci50cycsXG4gICAgcmVhc29uOiAnTkZDIG5vcm1hbGl6YXRpb24gYWRkZWQgdG8gcmVxLnBhdGggaW4gU1BBIGZhbGxiYWNrIGhhbmRsZXIgKGxpbmUgMTgwKS4gRmlsZS1sZXZlbCBzY2FubmVyIGZsYWdzIGRlc3BpdGUgcGVyLWlucHV0IGZpeC4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3dlYi9yb3V0ZXMudHMnLFxuICAgIHJlYXNvbjogJ05GQyBub3JtYWxpemF0aW9uIHZpYSBub3JtYWxpemVJbnB1dCgpIGFwcGxpZWQgdG8gYWxsIHJlcS5wYXJhbXMuIEZpbGUtbGV2ZWwgc2Nhbm5lciBmbGFncyBkZXNwaXRlIHBlci1pbnB1dCBmaXguJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jb252ZXJ0ZXJzL0FnZW50U2tpbGxDb252ZXJ0ZXIudHMnLFxuICAgIHJlYXNvbjogJ05GQyBub3JtYWxpemF0aW9uIGFkZGVkIHRvIGJvdGggY29udmVydEFnZW50VG9Eb2xsaG91c2UoKSBhbmQgY29udmVydERvbGxob3VzZVRvQWdlbnQoKSBlbnRyeSBwb2ludHMuIEZpbGUtbGV2ZWwgc2Nhbm5lciBmbGFncyBkZXNwaXRlIHBlci1pbnB1dCBmaXguJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy93ZWIvcm91dGVzL3Blcm1pc3Npb25Sb3V0ZXMudHMnLFxuICAgIHJlYXNvbjogJ05GQyBub3JtYWxpemF0aW9uIGFwcGxpZWQgdG8gdG9vbF9uYW1lIGFuZCBwbGF0Zm9ybSBpbnB1dHMgYXQgSFRUUCBib3VuZGFyeSBiZWZvcmUgZm9yd2FyZGluZyB0byBNQ1BBUUxIYW5kbGVyLmhhbmRsZVJlYWQoKS4gR0VUIC9wZXJtaXNzaW9ucy9zdGF0dXMgaGFzIG5vIHVzZXItc3VwcGxpZWQgc3RyaW5nIHBhcmFtZXRlcnMuIFNjYW5uZXIgbWF5IGZsYWcgZmlsZS1sZXZlbCBkZXNwaXRlIHBlci1pbnB1dCBmaXguJ1xuICB9XG5dO1xuXG4vKipcbiAqIFZhbGlkYXRlIHN1cHByZXNzaW9uIGNvbmZpZ3VyYXRpb24gYXQgc3RhcnR1cFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTdXBwcmVzc2lvbnMoKTogc3RyaW5nW10ge1xuICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHNlZW5QYXR0ZXJucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBcbiAgZm9yIChjb25zdCBzdXBwcmVzc2lvbiBvZiBzdXBwcmVzc2lvbnMpIHtcbiAgICAvLyBDaGVjayBmb3IgZW1wdHkgcmVhc29uc1xuICAgIGlmICghc3VwcHJlc3Npb24ucmVhc29uIHx8IHN1cHByZXNzaW9uLnJlYXNvbi50cmltKCkubGVuZ3RoIDwgMTApIHtcbiAgICAgIGVycm9ycy5wdXNoKGBTdXBwcmVzc2lvbiBmb3IgJHtzdXBwcmVzc2lvbi5ydWxlfSBoYXMgaW5zdWZmaWNpZW50IHJlYXNvbmApO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBmb3IgdmFsaWQgcnVsZSBwYXR0ZXJuc1xuICAgIGNvbnN0IHJ1bGVQYXR0ZXJuID0gL14oRE1DUC1TRUMtXFxkezN9fE9XQVNQLVtBLVpdXFxkezJ9LVxcZHszfXxDV0UtXFxkKy1cXGR7M318XFwqKSQvO1xuICAgIGlmICghc3VwcHJlc3Npb24ucnVsZS5tYXRjaChydWxlUGF0dGVybikpIHtcbiAgICAgIGVycm9ycy5wdXNoKGBJbnZhbGlkIHJ1bGUgcGF0dGVybjogJHtzdXBwcmVzc2lvbi5ydWxlfWApO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBmb3IgZHVwbGljYXRlIHN1cHByZXNzaW9uc1xuICAgIGNvbnN0IGtleSA9IGAke3N1cHByZXNzaW9uLnJ1bGV9OiR7c3VwcHJlc3Npb24uZmlsZSB8fCAnKid9YDtcbiAgICBpZiAoc2VlblBhdHRlcm5zLmhhcyhrZXkpKSB7XG4gICAgICBlcnJvcnMucHVzaChgRHVwbGljYXRlIHN1cHByZXNzaW9uOiAke2tleX1gKTtcbiAgICB9XG4gICAgc2VlblBhdHRlcm5zLmFkZChrZXkpO1xuICAgIFxuICAgIC8vIFZhbGlkYXRlIGdsb2IgcGF0dGVybnNcbiAgICBpZiAoc3VwcHJlc3Npb24uZmlsZT8uaW5jbHVkZXMoJyoqJykgJiYgIXN1cHByZXNzaW9uLmZpbGUuaW5jbHVkZXMoJyoqLycpKSB7XG4gICAgICBlcnJvcnMucHVzaChgSW52YWxpZCBnbG9iIHBhdHRlcm4gaW4gJHtzdXBwcmVzc2lvbi5maWxlfSAtICoqIG11c3QgYmUgZm9sbG93ZWQgYnkgL2ApO1xuICAgIH1cbiAgfVxuICBcbiAgcmV0dXJuIGVycm9ycztcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGdsb2IgcGF0dGVybiB0byByZWdleCBwYXR0ZXJuIHNhZmVseVxuICogVXNpbmcgYSBwcm9wZXIgZ2xvYi10by1yZWdleCBjb252ZXJzaW9uIHRoYXQgaGFuZGxlcyBhbGwgZWRnZSBjYXNlc1xuICovXG5mdW5jdGlvbiBnbG9iVG9SZWdleChnbG9iOiBzdHJpbmcpOiBSZWdFeHAge1xuICAvLyBDaGVjayBjYWNoZSBmaXJzdFxuICBjb25zdCBjYWNoZWQgPSBjYWNoZS5nZXRSZWdleChnbG9iKTtcbiAgaWYgKGNhY2hlZCkgcmV0dXJuIGNhY2hlZDtcbiAgXG4gIC8vIFNwZWNpYWwgY2FzZTogaWYgZ2xvYiBzdGFydHMgd2l0aCAqLCBpdCBzaG91bGQgbWF0Y2ggYW55dGhpbmcgYXQgdGhlIGJlZ2lubmluZ1xuICBsZXQgcHJvY2Vzc2VkR2xvYiA9IGdsb2I7XG4gIGxldCBwcmVmaXggPSAnJztcbiAgaWYgKGdsb2Iuc3RhcnRzV2l0aCgnKicpICYmICFnbG9iLnN0YXJ0c1dpdGgoJyoqJykpIHtcbiAgICBwcmVmaXggPSAnKD86LiovKT8nOyAgLy8gT3B0aW9uYWwgcGF0aCBwcmVmaXhcbiAgICBwcm9jZXNzZWRHbG9iID0gZ2xvYi5zdWJzdHJpbmcoMSk7XG4gIH1cbiAgXG4gIC8vIEVzY2FwZSBhbGwgcmVnZXggc3BlY2lhbCBjaGFyYWN0ZXJzIGV4Y2VwdCAqIGFuZCAvXG4gIC8vIEZpeGVkOiBQcm9wZXJseSBlc2NhcGUgYmFja3NsYXNoZXMgYW5kIG90aGVyIHNwZWNpYWwgcmVnZXggY2hhcmFjdGVyc1xuICBsZXQgcGF0dGVybiA9IHByb2Nlc3NlZEdsb2IucmVwbGFjZUFsbCgvW1xcXFxeJC4oKSs/e31bXFxdfF0vZywgJ1xcXFwkJicpO1xuXG4gIC8vIEhhbmRsZSBnbG9iIHBhdHRlcm5zIGluIGNvcnJlY3Qgb3JkZXJcbiAgLy8gUmVwbGFjZSAqKiBiZWZvcmUgKiB0byBhdm9pZCBjb25mbGljdHNcbiAgcGF0dGVybiA9IHBhdHRlcm5cbiAgICAucmVwbGFjZUFsbCgnKionLCAnPDxHTE9CU1RBUj4+JykgICAgIC8vIFRlbXBvcmFyeSBwbGFjZWhvbGRlciBmb3IgKipcbiAgICAucmVwbGFjZUFsbCgnKicsICc8PFNUQVI+PicpICAgICAgICAgICAgLy8gVGVtcG9yYXJ5IHBsYWNlaG9sZGVyIGZvciAqXG4gICAgLnJlcGxhY2VBbGwoJzw8R0xPQlNUQVI+Pi8nLCAnKD86LiovKT8nKSAvLyAqKi8gbWF0Y2hlcyBhbnkgbnVtYmVyIG9mIGRpcmVjdG9yaWVzIGluY2x1ZGluZyBub25lXG4gICAgLnJlcGxhY2VBbGwoJzw8R0xPQlNUQVI+PicsICcuKicpICAgICAgIC8vICoqIG1hdGNoZXMgYW55dGhpbmdcbiAgICAucmVwbGFjZUFsbCgnPDxTVEFSPj4nLCAnW14vXSonKSAgICAgICAgLy8gKiBtYXRjaGVzIGFueXRoaW5nIGV4Y2VwdCBkaXJlY3Rvcnkgc2VwYXJhdG9yXG4gICAgLnJlcGxhY2VBbGwoJy8nLCAnXFxcXC8nKTsgICAgICAgICAgICAgICAgLy8gRXNjYXBlIGZvcndhcmQgc2xhc2hlc1xuICBcbiAgLy8gQ29tYmluZSBwcmVmaXggYW5kIHBhdHRlcm5cbiAgY29uc3QgZnVsbFBhdHRlcm4gPSBwcmVmaXggKyBwYXR0ZXJuO1xuICBcbiAgLy8gQWRkIGFuY2hvcnMgdG8gZW5zdXJlIGZ1bGwgcGF0aCBtYXRjaFxuICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF4ke2Z1bGxQYXR0ZXJufSRgKTtcbiAgXG4gIC8vIENhY2hlIHRoZSBjb21waWxlZCByZWdleFxuICBjYWNoZS5zZXRSZWdleChnbG9iLCByZWdleCk7XG4gIFxuICByZXR1cm4gcmVnZXg7XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGZpbGUgcGF0aCBmb3IgY29uc2lzdGVudCBtYXRjaGluZ1xuICogSGFuZGxlcyBib3RoIGFic29sdXRlIGFuZCByZWxhdGl2ZSBwYXRocyBhY3Jvc3MgZGlmZmVyZW50IHBsYXRmb3Jtc1xuICovXG5mdW5jdGlvbiBub3JtYWxpemVQYXRoKGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBDb252ZXJ0IGJhY2tzbGFzaGVzIHRvIGZvcndhcmQgc2xhc2hlcyBmb3IgV2luZG93cyBwYXRoc1xuICBsZXQgbm9ybWFsaXplZCA9IGZpbGVQYXRoLnJlcGxhY2VBbGwoJ1xcXFwnLCAnLycpO1xuXG4gIC8vIFJlbW92ZSBkdXBsaWNhdGUgc2xhc2hlc1xuICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5yZXBsYWNlQWxsKC9cXC8rL2csICcvJyk7XG4gIFxuICAvLyBSZW1vdmUgdHJhaWxpbmcgc2xhc2ggaWYgcHJlc2VudFxuICBpZiAobm9ybWFsaXplZC5lbmRzV2l0aCgnLycpICYmIG5vcm1hbGl6ZWQubGVuZ3RoID4gMSkge1xuICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVkLnNsaWNlKDAsIC0xKTtcbiAgfVxuICBcbiAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG59XG5cbi8qKlxuICogRXh0cmFjdCByZWxhdGl2ZSBwYXRoIGZyb20gYWJzb2x1dGUgcGF0aFxuICogSGFuZGxlcyB2YXJpb3VzIENJL0NEIGFuZCBsb2NhbCBkZXZlbG9wbWVudCBwYXRoIGZvcm1hdHNcbiAqL1xuZnVuY3Rpb24gZ2V0UmVsYXRpdmVQYXRoKGFic29sdXRlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZVBhdGgoYWJzb2x1dGVQYXRoKTtcbiAgXG4gIC8vIElmIGFscmVhZHkgYSByZWxhdGl2ZSBwYXRoLCByZXR1cm4gYXMtaXNcbiAgaWYgKCFub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy8nKSAmJiAhbm9ybWFsaXplZC5tYXRjaCgvXltBLVpdOi9pKSkge1xuICAgIHJldHVybiBub3JtYWxpemVkO1xuICB9XG4gIFxuICAvLyBEZWZpbmUgY29tbW9uIHByb2plY3Qgc291cmNlIGRpcmVjdG9yaWVzXG4gIGNvbnN0IHByb2plY3REaXJzID0gWydzcmMvJywgJ19fdGVzdHNfXy8nLCAnc2NyaXB0cy8nLCAnZG9jcy8nLCAndGVzdHMvJywgJ3Rlc3QtYXJjaGl2ZS8nLCAnbGliLyddO1xuICBcbiAgLy8gRmluZCB0aGUgcG9zaXRpb24gb2YgY29tbW9uIHByb2plY3QgZGlyZWN0b3JpZXMgaW4gdGhlIHBhdGhcbiAgbGV0IGJlc3RNYXRjaCA9IHsgaW5kZXg6IC0xLCBkaXI6ICcnLCByZWxhdGl2ZVBhdGg6ICcnIH07XG4gIFxuICBmb3IgKGNvbnN0IGRpciBvZiBwcm9qZWN0RGlycykge1xuICAgIC8vIExvb2sgZm9yIC9kaXIgcGF0dGVybiAod2l0aCBsZWFkaW5nIHNsYXNoIHRvIGF2b2lkIGZhbHNlIG1hdGNoZXMpXG4gICAgY29uc3Qgc2VhcmNoUGF0dGVybiA9IGAvJHtkaXJ9YDtcbiAgICBjb25zdCBpbmRleCA9IG5vcm1hbGl6ZWQubGFzdEluZGV4T2Yoc2VhcmNoUGF0dGVybik7XG4gICAgXG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIC8vIEV4dHJhY3QgZXZlcnl0aGluZyBhZnRlciB0aGUgcGFyZW50IG9mIHRoaXMgZGlyZWN0b3J5XG4gICAgICAvLyBGb3IgZXhhbXBsZTogL2hvbWUvdXNlci9wcm9qZWN0L3NyYy9maWxlLnRzIC0+IHNyYy9maWxlLnRzXG4gICAgICBjb25zdCBkaXJTdGFydEluZGV4ID0gaW5kZXggKyAxOyAvLyBTa2lwIHRoZSBsZWFkaW5nIHNsYXNoXG4gICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBub3JtYWxpemVkLnN1YnN0cmluZyhkaXJTdGFydEluZGV4KTtcbiAgICAgIFxuICAgICAgLy8gVmVyaWZ5IHRoaXMgbG9va3MgbGlrZSBhIHZhbGlkIHByb2plY3QgZmlsZVxuICAgICAgaWYgKHJlbGF0aXZlUGF0aC5zdGFydHNXaXRoKGRpcikgJiYgcmVsYXRpdmVQYXRoLmluY2x1ZGVzKCcuJykpIHtcbiAgICAgICAgLy8gS2VlcCB0aGUgbWF0Y2ggdGhhdCBhcHBlYXJzIGxhdGVzdCBpbiB0aGUgcGF0aCAobW9zdCBzcGVjaWZpYylcbiAgICAgICAgaWYgKGluZGV4ID4gYmVzdE1hdGNoLmluZGV4KSB7XG4gICAgICAgICAgYmVzdE1hdGNoID0geyBpbmRleCwgZGlyLCByZWxhdGl2ZVBhdGggfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgLy8gSWYgd2UgZm91bmQgYSBtYXRjaCwgcmV0dXJuIGl0XG4gIGlmIChiZXN0TWF0Y2guaW5kZXggPj0gMCkge1xuICAgIHJldHVybiBiZXN0TWF0Y2gucmVsYXRpdmVQYXRoO1xuICB9XG4gIFxuICAvLyBGYWxsYmFjazogVHJ5IHRvIGZpbmQgY29tbW9uIGZpbGUgcGF0dGVybnMgdGhhdCBpbmRpY2F0ZSBwcm9qZWN0IGZpbGVzXG4gIGNvbnN0IGZpbGVQYXR0ZXJucyA9IFtcbiAgICAvXFwvKHNyY3xfX3Rlc3RzX198c2NyaXB0c3x0ZXN0fHRlc3RzfGxpYilcXC8uKlxcLltqdF1zeD8kLyxcbiAgICAvXFwvKHNyY3xfX3Rlc3RzX198c2NyaXB0c3x0ZXN0fHRlc3RzfGxpYilcXC8uKlxcLmpzb24kLyxcbiAgICAvXFwvKHNyY3xfX3Rlc3RzX198c2NyaXB0c3x0ZXN0fHRlc3RzfGxpYilcXC8uKlxcLnlhP21sJC8sXG4gICAgL1xcL3BhY2thZ2VcXC5qc29uJC8sXG4gICAgL1xcL3BhY2thZ2UtbG9ja1xcLmpzb24kLyxcbiAgICAvXFwvdHNjb25maWcuKlxcLmpzb24kLyxcbiAgICAvXFwvXFwuLipyY1xcLmpzb24kLyAgLy8gLmVzbGludHJjLmpzb24sIGV0Yy5cbiAgXTtcbiAgXG4gIGZvciAoY29uc3QgcGF0dGVybiBvZiBmaWxlUGF0dGVybnMpIHtcbiAgICBjb25zdCBtYXRjaCA9IG5vcm1hbGl6ZWQubWF0Y2gocGF0dGVybik7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICAvLyBGaW5kIHdoZXJlIHRoZSBtYXRjaCBzdGFydHMgYW5kIGV4dHJhY3QgZnJvbSB0aGVyZVxuICAgICAgY29uc3QgbWF0Y2hJbmRleCA9IG5vcm1hbGl6ZWQuaW5kZXhPZihtYXRjaFswXSk7XG4gICAgICBpZiAobWF0Y2hJbmRleCA+PSAwKSB7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVkLnN1YnN0cmluZyhtYXRjaEluZGV4ICsgMSk7IC8vIFNraXAgbGVhZGluZyAvXG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICAvLyBMYXN0IHJlc29ydDogaWYgcGF0aCBjb250YWlucyBjb21tb24gZXh0ZW5zaW9ucywgdHJ5IHRvIGV4dHJhY3QgYSByZWFzb25hYmxlIHJlbGF0aXZlIHBhdGhcbiAgaWYgKG5vcm1hbGl6ZWQubWF0Y2goL1xcLih0c3xqc3x0c3h8anN4fGpzb258eWFtbHx5bWwpJC8pKSB7XG4gICAgLy8gRmluZCB0aGUgbGFzdCBzZWdtZW50IHRoYXQgbG9va3MgbGlrZSBhIHByb2plY3QgZGlyZWN0b3J5XG4gICAgY29uc3Qgc2VnbWVudHMgPSBub3JtYWxpemVkLnNwbGl0KCcvJyk7XG4gICAgZm9yIChsZXQgaSA9IHNlZ21lbnRzLmxlbmd0aCAtIDI7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBpZiAocHJvamVjdERpcnMuc29tZShkaXIgPT4gZGlyLnN0YXJ0c1dpdGgoc2VnbWVudHNbaV0pKSkge1xuICAgICAgICByZXR1cm4gc2VnbWVudHMuc2xpY2UoaSkuam9pbignLycpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBGb3Igcm9vdC1sZXZlbCBmaWxlcyBsaWtlIHBhY2thZ2UtbG9jay5qc29uLCBqdXN0IHJldHVybiB0aGUgZmlsZW5hbWVcbiAgICBjb25zdCBmaWxlbmFtZSA9IHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtIDFdO1xuICAgIGlmIChmaWxlbmFtZSAmJiBmaWxlbmFtZS5pbmNsdWRlcygnLicpKSB7XG4gICAgICByZXR1cm4gZmlsZW5hbWU7XG4gICAgfVxuICB9XG4gIFxuICAvLyBSZXR1cm4gdGhlIG5vcm1hbGl6ZWQgcGF0aCBpZiB3ZSBjYW4ndCBleHRyYWN0IHJlbGF0aXZlXG4gIHJldHVybiBub3JtYWxpemVkO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgZmluZGluZyBzaG91bGQgYmUgc3VwcHJlc3NlZFxuICogT3B0aW1pemVkIHdpdGggY2FjaGluZyBhbmQgZWFybHkgcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkU3VwcHJlc3MocnVsZUlkOiBzdHJpbmcsIGZpbGVQYXRoPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmICghZmlsZVBhdGgpIHJldHVybiBmYWxzZTtcbiAgXG4gIC8vIE5vcm1hbGl6ZSBwYXRocyBmb3IgY29uc2lzdGVudCBtYXRjaGluZ1xuICBjb25zdCBub3JtYWxpemVkUGF0aCA9IG5vcm1hbGl6ZVBhdGgoZmlsZVBhdGgpO1xuICBjb25zdCByZWxhdGl2ZVBhdGggPSBnZXRSZWxhdGl2ZVBhdGgobm9ybWFsaXplZFBhdGgpO1xuICBcbiAgLy8gQ2hlY2sgY2FjaGUgZmlyc3RcbiAgY29uc3QgY2FjaGVkID0gY2FjaGUuZ2V0KHJ1bGVJZCwgcmVsYXRpdmVQYXRoKTtcbiAgaWYgKGNhY2hlZCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gY2FjaGVkO1xuICBcbiAgLy8gUHJvY2VzcyBzdXBwcmVzc2lvbnMgd2l0aCBlYXJseSByZXR1cm5zXG4gIGZvciAoY29uc3Qgc3VwcHJlc3Npb24gb2Ygc3VwcHJlc3Npb25zKSB7XG4gICAgLy8gU2tpcCBpZiBydWxlIGRvZXNuJ3QgbWF0Y2hcbiAgICBpZiAoc3VwcHJlc3Npb24ucnVsZSAhPT0gJyonICYmIHN1cHByZXNzaW9uLnJ1bGUgIT09IHJ1bGVJZCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIFxuICAgIC8vIEhhbmRsZSBnbG9iYWwgc3VwcHJlc3Npb25zIChubyBmaWxlIHNwZWNpZmllZClcbiAgICBpZiAoIXN1cHByZXNzaW9uLmZpbGUpIHtcbiAgICAgIGNhY2hlLnNldChydWxlSWQsIHJlbGF0aXZlUGF0aCwgdHJ1ZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgXG4gICAgLy8gQ2hlY2sgZXhhY3QgZmlsZSBtYXRjaCAobW9zdCBjb21tb24gY2FzZSlcbiAgICBpZiAoc3VwcHJlc3Npb24uZmlsZSA9PT0gcmVsYXRpdmVQYXRoIHx8IHN1cHByZXNzaW9uLmZpbGUgPT09IG5vcm1hbGl6ZWRQYXRoKSB7XG4gICAgICBjYWNoZS5zZXQocnVsZUlkLCByZWxhdGl2ZVBhdGgsIHRydWUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIFxuICAgIC8vIENoZWNrIHBhdHRlcm4gbWF0Y2ggb25seSBpZiBmaWxlIGNvbnRhaW5zIHdpbGRjYXJkc1xuICAgIGlmIChzdXBwcmVzc2lvbi5maWxlLmluY2x1ZGVzKCcqJykpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gZ2xvYlRvUmVnZXgoc3VwcHJlc3Npb24uZmlsZSk7XG4gICAgICAgIGlmIChyZWdleC50ZXN0KHJlbGF0aXZlUGF0aCkgfHwgcmVnZXgudGVzdChub3JtYWxpemVkUGF0aCkpIHtcbiAgICAgICAgICBjYWNoZS5zZXQocnVsZUlkLCByZWxhdGl2ZVBhdGgsIHRydWUpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoYEludmFsaWQgc3VwcHJlc3Npb24gcGF0dGVybiBcIiR7c3VwcHJlc3Npb24uZmlsZX1cIjpgLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICAvLyBOb3Qgc3VwcHJlc3NlZFxuICBjYWNoZS5zZXQocnVsZUlkLCByZWxhdGl2ZVBhdGgsIGZhbHNlKTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIENsZWFyIHN1cHByZXNzaW9uIGNhY2hlICh1c2VmdWwgZm9yIHRlc3RpbmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhclN1cHByZXNzaW9uQ2FjaGUoKTogdm9pZCB7XG4gIGNhY2hlLmNsZWFyKCk7XG59XG5cbi8qKlxuICogR2V0IHN1cHByZXNzaW9uIHN0YXRpc3RpY3MgZm9yIHJlcG9ydGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3VwcHJlc3Npb25TdGF0cygpOiB7IFxuICB0b3RhbDogbnVtYmVyOyBcbiAgYnlSdWxlOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICBieUNhdGVnb3J5OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xufSB7XG4gIGNvbnN0IHN0YXRzID0ge1xuICAgIHRvdGFsOiBzdXBwcmVzc2lvbnMubGVuZ3RoLFxuICAgIGJ5UnVsZToge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPixcbiAgICBieUNhdGVnb3J5OiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+XG4gIH07XG4gIFxuICBmb3IgKGNvbnN0IHN1cHByZXNzaW9uIG9mIHN1cHByZXNzaW9ucykge1xuICAgIC8vIENvdW50IGJ5IHJ1bGVcbiAgICBzdGF0cy5ieVJ1bGVbc3VwcHJlc3Npb24ucnVsZV0gPSAoc3RhdHMuYnlSdWxlW3N1cHByZXNzaW9uLnJ1bGVdIHx8IDApICsgMTtcbiAgICBcbiAgICAvLyBDb3VudCBieSBjYXRlZ29yeSAoZXh0cmFjdCBmcm9tIHJ1bGUgcHJlZml4KVxuICAgIGNvbnN0IGNhdGVnb3J5ID0gc3VwcHJlc3Npb24ucnVsZS5zcGxpdCgnLScpWzBdO1xuICAgIHN0YXRzLmJ5Q2F0ZWdvcnlbY2F0ZWdvcnldID0gKHN0YXRzLmJ5Q2F0ZWdvcnlbY2F0ZWdvcnldIHx8IDApICsgMTtcbiAgfVxuICBcbiAgcmV0dXJuIHN0YXRzO1xufVxuXG4vLyBWYWxpZGF0ZSBzdXBwcmVzc2lvbnMgb24gbW9kdWxlIGxvYWRcbmNvbnN0IHZhbGlkYXRpb25FcnJvcnMgPSB2YWxpZGF0ZVN1cHByZXNzaW9ucygpO1xuaWYgKHZhbGlkYXRpb25FcnJvcnMubGVuZ3RoID4gMCkge1xuICBsb2dnZXIud2FybignU3VwcHJlc3Npb24gY29uZmlndXJhdGlvbiB3YXJuaW5nczonLCB2YWxpZGF0aW9uRXJyb3JzKTtcbn1cbiJdfQ==