@cubist-labs/cubesigner-sdk 0.3.26 → 0.3.28

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 (69) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/client.d.ts +4 -4
  3. package/dist/cjs/src/index.js +7 -4
  4. package/dist/cjs/src/key.d.ts +35 -2
  5. package/dist/cjs/src/key.js +79 -5
  6. package/dist/cjs/src/org_event_processor.d.ts +57 -0
  7. package/dist/cjs/src/org_event_processor.js +137 -0
  8. package/dist/cjs/src/schema.d.ts +41 -24
  9. package/dist/cjs/src/schema.js +1 -1
  10. package/dist/cjs/src/util.d.ts +2 -0
  11. package/dist/cjs/src/util.js +1 -1
  12. package/dist/esm/package.json +1 -1
  13. package/dist/esm/src/client.d.ts +4 -4
  14. package/dist/esm/src/index.js +4 -4
  15. package/dist/esm/src/key.d.ts +35 -2
  16. package/dist/esm/src/key.js +79 -5
  17. package/dist/esm/src/org_event_processor.d.ts +57 -0
  18. package/dist/esm/src/org_event_processor.js +133 -0
  19. package/dist/esm/src/schema.d.ts +41 -24
  20. package/dist/esm/src/schema.js +1 -1
  21. package/dist/esm/src/util.d.ts +2 -0
  22. package/dist/esm/src/util.js +1 -1
  23. package/dist/package.json +36 -0
  24. package/dist/spec/env/beta.json +9 -0
  25. package/dist/spec/env/gamma.json +9 -0
  26. package/dist/spec/env/prod.json +9 -0
  27. package/dist/src/api.d.ts +634 -0
  28. package/dist/src/api.js +1309 -0
  29. package/dist/src/client.d.ts +575 -0
  30. package/dist/src/client.js +381 -0
  31. package/dist/src/env.d.ts +15 -0
  32. package/dist/src/env.js +35 -0
  33. package/dist/src/error.d.ts +29 -0
  34. package/dist/src/error.js +36 -0
  35. package/dist/src/events.d.ts +84 -0
  36. package/dist/src/events.js +195 -0
  37. package/dist/src/index.d.ts +207 -0
  38. package/dist/src/index.js +308 -0
  39. package/dist/src/key.d.ts +152 -0
  40. package/dist/src/key.js +242 -0
  41. package/dist/src/mfa.d.ts +94 -0
  42. package/dist/src/mfa.js +169 -0
  43. package/dist/src/org.d.ts +99 -0
  44. package/dist/src/org.js +95 -0
  45. package/dist/src/paginator.d.ts +76 -0
  46. package/dist/src/paginator.js +99 -0
  47. package/dist/src/response.d.ts +101 -0
  48. package/dist/src/response.js +164 -0
  49. package/dist/src/role.d.ts +283 -0
  50. package/dist/src/role.js +253 -0
  51. package/dist/src/schema.d.ts +6209 -0
  52. package/dist/src/schema.js +7 -0
  53. package/dist/src/schema_types.d.ts +113 -0
  54. package/dist/src/schema_types.js +3 -0
  55. package/dist/src/session/session_storage.d.ts +47 -0
  56. package/dist/src/session/session_storage.js +76 -0
  57. package/dist/src/session/signer_session_manager.d.ts +125 -0
  58. package/dist/src/session/signer_session_manager.js +239 -0
  59. package/dist/src/signer_session.d.ts +41 -0
  60. package/dist/src/signer_session.js +77 -0
  61. package/dist/src/user_export.d.ts +52 -0
  62. package/dist/src/user_export.js +129 -0
  63. package/dist/src/util.d.ts +61 -0
  64. package/dist/src/util.js +97 -0
  65. package/package.json +1 -1
  66. package/src/index.ts +3 -3
  67. package/src/key.ts +83 -4
  68. package/src/schema.ts +42 -25
  69. package/src/util.ts +3 -0
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * This file was auto-generated by openapi-typescript.
4
+ * Do not make direct changes to the file.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGZpbGUgd2FzIGF1dG8tZ2VuZXJhdGVkIGJ5IG9wZW5hcGktdHlwZXNjcmlwdC5cbiAqIERvIG5vdCBtYWtlIGRpcmVjdCBjaGFuZ2VzIHRvIHRoZSBmaWxlLlxuICovXG5cbi8qKiBPbmVPZiB0eXBlIGhlbHBlcnMgKi9cbnR5cGUgV2l0aG91dDxULCBVPiA9IHsgW1AgaW4gRXhjbHVkZTxrZXlvZiBULCBrZXlvZiBVPl0/OiBuZXZlciB9O1xudHlwZSBYT1I8VCwgVT4gPSBUIHwgVSBleHRlbmRzIG9iamVjdCA/IChXaXRob3V0PFQsIFU+ICYgVSkgfCAoV2l0aG91dDxVLCBUPiAmIFQpIDogVCB8IFU7XG50eXBlIE9uZU9mPFQgZXh0ZW5kcyBhbnlbXT4gPSBUIGV4dGVuZHMgW2luZmVyIE9ubHldXG4gID8gT25seVxuICA6IFQgZXh0ZW5kcyBbaW5mZXIgQSwgaW5mZXIgQiwgLi4uaW5mZXIgUmVzdF1cbiAgICA/IE9uZU9mPFtYT1I8QSwgQj4sIC4uLlJlc3RdPlxuICAgIDogbmV2ZXI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgcGF0aHMge1xuICBcIi92MC9hYm91dF9tZVwiOiB7XG4gICAgLyoqXG4gICAgICogVXNlciBJbmZvXG4gICAgICogQGRlc2NyaXB0aW9uIFVzZXIgSW5mb1xuICAgICAqXG4gICAgICogUmV0cmlldmVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiYWJvdXRNZUxlZ2FjeVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgT3JnXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBPcmdcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBpbmZvcm1hdGlvbiBhYm91dCBhbiBvcmdhbml6YXRpb24uXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0T3JnXCJdO1xuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBPcmdcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIE9yZ1xuICAgICAqXG4gICAgICogVXBkYXRlIG9yZ2FuaXphdGlvbiBhdHRyaWJ1dGVzIChlbmFibGVkIGZsYWcsIG5hbWUsIGFuZCBwb2xpY2llcykuXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJ1cGRhdGVPcmdcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9hdmEvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBBdmFsYW5jaGUgWC0gb3IgUC1DaGFpbiBNZXNzYWdlXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gQXZhbGFuY2hlIFgtIG9yIFAtQ2hhaW4gTWVzc2FnZVxuICAgICAqXG4gICAgICogU2lnbnMgYW4gQXZhbGFuY2hlIG1lc3NhZ2Ugd2l0aCBhIGdpdmVuIFNlY3BBdmEga2V5LlxuICAgICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJhdmFTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vYnRjL3NpZ24ve3B1YmtleX1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gQml0Y29pbiBUcmFuc2FjdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIEJpdGNvaW4gVHJhbnNhY3Rpb25cbiAgICAgKlxuICAgICAqIFNpZ25zIGEgQml0Y29pbiB0cmFuc2FjdGlvbiB3aXRoIGEgZ2l2ZW4ga2V5LlxuICAgICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJidGNTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vZGVyaXZlX2tleVwiOiB7XG4gICAgLyoqXG4gICAgICogRGVyaXZlIEtleSBGcm9tIExvbmctTGl2ZWQgTW5lbW9uaWNcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVyaXZlIEtleSBGcm9tIExvbmctTGl2ZWQgTW5lbW9uaWNcbiAgICAgKlxuICAgICAqIERlcml2ZXMgYSBrZXkgb2YgYSBzcGVjaWZpZWQgdHlwZSB1c2luZyBhIHN1cHBsaWVkIGRlcml2YXRpb24gcGF0aCBhbmQgYW5cbiAgICAgKiBleGlzdGluZyBsb25nLWxpdmVkIG1uZW1vbmljLlxuICAgICAqL1xuICAgIHB1dDogb3BlcmF0aW9uc1tcImRlcml2ZUtleVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2V2bS9laXAxOTEvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBFSVAtMTkxIERhdGFcbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBFSVAtMTkxIERhdGFcbiAgICAgKlxuICAgICAqIFNpZ25zIGEgbWVzc2FnZSB1c2luZyBFSVAtMTkxIHBlcnNvbmFsX3NpZ24gd2l0aCBhIGdpdmVuIFNlY3AyNTZrMSBrZXkuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImVpcDE5MVNpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9ldm0vZWlwNzEyL3NpZ24ve3B1YmtleX1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gRUlQLTcxMiBUeXBlZCBEYXRhXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gRUlQLTcxMiBUeXBlZCBEYXRhXG4gICAgICpcbiAgICAgKiBTaWducyB0eXBlZCBkYXRhIGFjY29yZGluZyB0byBFSVAtNzEyIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJlaXA3MTJTaWduXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vaWRlbnRpdHkvcHJvdmVcIjoge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBDdWJlU2lnbmVyIHVzZXIgc2Vzc2lvblxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgW0lkZW50aXR5UHJvb2ZdIGZyb20gQ3ViZVNpZ25lciB1c2VyIHNlc3Npb25cbiAgICAgKlxuICAgICAqIFRoaXMgcm91dGUgY2FuIGJlIHVzZWQgdG8gcHJvdmUgdG8gYW5vdGhlciBwYXJ0eSB0aGF0IGEgdXNlciBoYXMgYVxuICAgICAqIHZhbGlkIEN1YmVTaWduZXIgc2Vzc2lvbi5cbiAgICAgKlxuICAgICAqIENsaWVudHMgYXJlIGludGVuZGVkIHRvIGNhbGwgdGhpcyByb3V0ZSBhbmQgcGFzcyB0aGUgcmV0dXJuZWQgZXZpZGVuY2VcbiAgICAgKiB0byBhbm90aGVyIHNlcnZpY2Ugd2hpY2ggd2lsbCB2ZXJpZnkgaXQgYnkgbWFraW5nIGEgcmVxdWVzdCB0byBgL3YwL29yZy88b3JnX2lkPi9pZGVudGl0eS92ZXJpZnlgLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVQcm9vZkN1YmVTaWduZXJcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pZGVudGl0eS9wcm92ZS9vaWRjXCI6IHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgW0lkZW50aXR5UHJvb2ZdIGZyb20gT0lEQyB0b2tlblxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgW0lkZW50aXR5UHJvb2ZdIGZyb20gT0lEQyB0b2tlblxuICAgICAqXG4gICAgICogRXhjaGFuZ2UgYW4gT0lEQyBJRCB0b2tlbiAocGFzc2VkIHZpYSB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlcikgZm9yIGEgcHJvb2Ygb2YgYXV0aGVudGljYXRpb24uXG4gICAgICpcbiAgICAgKiBUaGlzIHJvdXRlIGNhbiBiZSB1c2VkIHRvIHByb3ZlIHRvIGFub3RoZXIgcGFydHkgdGhhdCBhIHVzZXIgaGFzIG1ldCB0aGVcbiAgICAgKiBhdXRoZW50aWNhdGlvbiByZXF1aXJlbWVudHMgKGFsbG93ZWQgaXNzdWVycyAmIGF1ZGllbmNlcykgZm9yIEN1YmVTaWduZXJcbiAgICAgKiB3aXRob3V0IGxlYWtpbmcgdGhlaXIgY3JlZGVudGlhbHMuXG4gICAgICpcbiAgICAgKiBDbGllbnRzIGFyZSBpbnRlbmRlZCB0byBjYWxsIHRoaXMgcm91dGUgYW5kIHBhc3MgdGhlIHJldHVybmVkIGV2aWRlbmNlIHRvIGFub3RoZXIgc2VydmljZVxuICAgICAqIHdoaWNoIHdpbGwgdmVyaWZ5IGl0IGJ5IG1ha2luZyBhIHJlcXVlc3QgdG8gYC92MC9vcmcvPG9yZ19pZD4vaWRlbnRpdHkvdmVyaWZ5YC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiY3JlYXRlUHJvb2ZPaWRjXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vaWRlbnRpdHkvdmVyaWZ5XCI6IHtcbiAgICAvKipcbiAgICAgKiBWZXJpZnkgaWRlbnRpdHkgcHJvb2ZcbiAgICAgKiBAZGVzY3JpcHRpb24gVmVyaWZ5IGlkZW50aXR5IHByb29mXG4gICAgICpcbiAgICAgKiBBbGxvd3MgYSB0aGlyZC1wYXJ0eSB0byB2YWxpZGF0ZSBwcm9vZiBvZiBhdXRoZW50aWNhdGlvbi5cbiAgICAgKlxuICAgICAqIFdoZW4gYSB0aGlyZC1wYXJ0eSBpcyBwcm92aWRlZCBhbiBbSWRlbnRpdHlQcm9vZl0gb2JqZWN0LCB0aGV5IG11c3QgY2hlY2sgaXRzXG4gICAgICogdmVyYWNpdHkgYnkgY2FsbGluZyB0aGlzIGVuZHBvaW50XG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInZlcmlmeVByb29mXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vaW1wb3J0X2tleVwiOiB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIEtleS1JbXBvcnQgS2V5XG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBLZXktSW1wb3J0IEtleVxuICAgICAqXG4gICAgICogR2VuZXJhdGUgYW4gZXBoZW1lcmFsIGtleSB0aGF0IGEgY2xpZW50IGNhbiB1c2UgZm9yIGtleS1pbXBvcnQgZW5jcnlwdGlvbi5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJjcmVhdGVLZXlJbXBvcnRLZXlcIl07XG4gICAgLyoqXG4gICAgICogSW1wb3J0IEtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBJbXBvcnQgS2V5XG4gICAgICpcbiAgICAgKiBTZWN1cmVseSBpbXBvcnRzIGFuIGV4aXN0aW5nIGtleSB1c2luZyBhIHByZXZpb3VzbHkgZ2VuZXJhdGVkIGtleS1pbXBvcnQga2V5LlxuICAgICAqL1xuICAgIHB1dDogb3BlcmF0aW9uc1tcImltcG9ydEtleVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2ludml0ZVwiOiB7XG4gICAgLyoqXG4gICAgICogSW52aXRlIFVzZXJcbiAgICAgKiBAZGVzY3JpcHRpb24gSW52aXRlIFVzZXJcbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgdXNlciBpbiBhbiBleGlzdGluZyBvcmcgYW5kIHNlbmRzIHRoYXQgdXNlciBhbiBpbnZpdGUgZW1haWwuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImludml0ZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2tleXNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgS2V5c1xuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IEtleXNcbiAgICAgKlxuICAgICAqIEdldHMgdGhlIGxpc3Qgb2Ygb3duZWQga2V5cyBpbiBhIGdpdmVuIG9yZy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0S2V5c0luT3JnXCJdO1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIEtleVxuICAgICAqXG4gICAgICogQ3JlYXRlcyBvbmUgb3IgbW9yZSBuZXcga2V5cyBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZUtleVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2tleXMve2tleV9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IEtleVxuICAgICAqXG4gICAgICogUmV0dXJucyB0aGUgcHJvcGVydGllcyBvZiBhIGtleS5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJnZXRLZXlJbk9yZ1wiXTtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgS2V5XG4gICAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBLZXlcbiAgICAgKlxuICAgICAqIERlbGV0ZXMgYSBrZXkgc3BlY2lmaWVkIGJ5IGl0cyBJRC5cbiAgICAgKiBPbmx5IHRoZSBrZXkgb3duZXIgYW5kIG9yZyBvd25lcnMgYXJlIGFsbG93ZWQgdG8gZGVsZXRlIGtleXMuXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wiZGVsZXRlS2V5XCJdO1xuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIEtleVxuICAgICAqXG4gICAgICogRW5hYmxlIG9yIGRpc2FibGUgYSBrZXkuICBUaGUgdXNlciBtdXN0IGJlIHRoZSBvd25lciBvZiB0aGUga2V5IG9yIG9yZ2FuaXphdGlvbiB0byBwZXJmb3JtIHRoaXMgYWN0aW9uLlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXBkYXRlS2V5XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbWZhXCI6IHtcbiAgICAvKipcbiAgICAgKiBMaXN0IFBlbmRpbmcgTUZBIFJlcXVlc3RzXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgUGVuZGluZyBNRkEgUmVxdWVzdHNcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBhbmQgcmV0dXJucyBhbGwgcGVuZGluZyBNRkEgcmVxdWVzdHMgdGhhdCBhcmUgYWNjZXNzaWJsZSB0byB0aGUgY3VycmVudCB1c2VyLFxuICAgICAqIGkuZS4sIHRob3NlIGluIHdoaWNoIHRoZSBjdXJyZW50IHVzZXIgaXMgbGlzdGVkIGFzIGFuIGFwcHJvdmVyXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibWZhTGlzdFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L21mYS97bWZhX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IFBlbmRpbmcgTUZBIFJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IFBlbmRpbmcgTUZBIFJlcXVlc3RcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBhbmQgcmV0dXJucyBhIHBlbmRpbmcgTUZBIHJlcXVlc3QgYnkgaXRzIGlkLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcIm1mYUdldFwiXTtcbiAgICAvKipcbiAgICAgKiBBcHByb3ZlIE1GQSBSZXF1ZXN0XG4gICAgICogQGRlc2NyaXB0aW9uIEFwcHJvdmUgTUZBIFJlcXVlc3RcbiAgICAgKlxuICAgICAqIEFwcHJvdmUgcmVxdWVzdCBhZnRlciBsb2dnaW5nIGluIHdpdGggQ3ViZVNpZ25lci4gQWRkcyB0aGUgY3VycmVudGx5LWxvZ2dlZCB1c2VyIGFzIGFuIGFwcHJvdmVyXG4gICAgICogb2YgYSBwZW5kaW5nIE1GQSByZXF1ZXN0IG9mIHRoZSBbU3RhdHVzOjpSZXF1aXJlZEFwcHJvdmVyc10ga2luZC4gSWYgdGhlIHJlcXVpcmVkIG51bWJlciBvZlxuICAgICAqIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7IHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0b1xuICAgICAqIHJlc3VtZSB0aGUgb3JpZ2luYWwgSFRUUCByZXF1ZXN0LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wibWZhQXBwcm92ZUNzXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbWZhL3ttZmFfaWR9L2ZpZG9cIjoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYXRlIEFwcHJvdmluZyBhbiBNRkEgUmVxdWVzdCB3aXRoIEZJRE9cbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgQXBwcm92aW5nIGFuIE1GQSBSZXF1ZXN0IHdpdGggRklET1xuICAgICAqXG4gICAgICogSW5pdGlhdGVzIHRoZSBhcHByb3ZhbCBwcm9jZXNzIG9mIGFuIE1GQSBSZXF1ZXN0IHVzaW5nIEZJRE8uXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcIm1mYUFwcHJvdmVGaWRvXCJdO1xuICAgIC8qKlxuICAgICAqIEZpbmFsaXplIGEgRklETyBNRkEgQXBwcm92YWxcbiAgICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgYSBGSURPIE1GQSBBcHByb3ZhbFxuICAgICAqXG4gICAgICogQWRkcyBhbiBhcHByb3ZlciB0byBhIHBlbmRpbmcgTUZBIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBJZiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7XG4gICAgICogdGhlIGNvbmZpcm1hdGlvbiByZWNlaXB0IGNhbiBiZSB1c2VkIHRvIHJlc3VtZSB0aGUgb3JpZ2luYWwgSFRUUCByZXF1ZXN0LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wibWZhQXBwcm92ZUZpZG9Db21wbGV0ZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L21mYS97bWZhX2lkfS90b3RwXCI6IHtcbiAgICAvKipcbiAgICAgKiBBcHByb3ZlIGEgVE9UUCBNRkEgUmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZlIGEgVE9UUCBNRkEgUmVxdWVzdFxuICAgICAqXG4gICAgICogQWRkcyB0aGUgY3VycmVudCB1c2VyIGFzIGFwcHJvdmVyIHRvIGEgcGVuZGluZyBNRkEgcmVxdWVzdCBieSBwcm92aWRpbmcgVE9UUCBjb2RlLlxuICAgICAqXG4gICAgICogSWYgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBhcHByb3ZlcnMgaXMgcmVhY2hlZCwgdGhlIE1GQSByZXF1ZXN0IGlzIGFwcHJvdmVkO1xuICAgICAqIHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0byByZXN1bWUgdGhlIG9yaWdpbmFsIEhUVFAgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcIm1mYUFwcHJvdmVUb3RwXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vb2lkY1wiOiB7XG4gICAgLyoqXG4gICAgICogTG9naW4gd2l0aCBPSURDXG4gICAgICogQGRlc2NyaXB0aW9uIExvZ2luIHdpdGggT0lEQ1xuICAgICAqXG4gICAgICogRXhjaGFuZ2UgYW4gT0lEQyBJRCB0b2tlbiAocGFzc2VkIHZpYSB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlcikgZm9yIGEgc2lnbmVyIHNlc3Npb25cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wib2lkY0F1dGhcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBSb2xlc1xuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IFJvbGVzXG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgYWxsIHJvbGVzIGluIGFuIG9yZ2FuaXphdGlvbiB0aGF0IHRoZSBjdXJyZW50IHVzZXIgaXMgYWxsb3dlZCB0byBhY2Nlc3MuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdFJvbGVzXCJdO1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBSb2xlXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBSb2xlXG4gICAgICpcbiAgICAgKiBDcmVhdGVzIGEgbmV3IHJvbGUgaW4gYW4gb3JnYW5pemF0aW9uLiBVbmxlc3MgdGhlIGxvZ2dlZC1pbiB1c2VyXG4gICAgICogaXMgdGhlIG93bmVyLCB0aGV5IGFyZSBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBuZXdseSBjcmVhdGVkIHJvbGUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZVJvbGVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBSb2xlXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBSb2xlXG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgYSByb2xlIGluIGFuIG9yZ2FuaXphdGlvblxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImdldFJvbGVcIl07XG4gICAgLyoqXG4gICAgICogRGVsZXRlIFJvbGVcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIFJvbGVcbiAgICAgKlxuICAgICAqIERlbGV0ZXMgYSByb2xlIGluIGFuIG9yZ2FuaXphdGlvbi5cbiAgICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLlxuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcImRlbGV0ZVJvbGVcIl07XG4gICAgLyoqXG4gICAgICogVXBkYXRlIFJvbGVcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIFJvbGVcbiAgICAgKlxuICAgICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgYSByb2xlICh0aGlzIHJlcXVpcmVzIHRoZSBgbWFuYWdlOnJvbGU6dXBkYXRlOmVuYWJsZWAgc2NvcGUpLlxuICAgICAqIFVwZGF0ZXMgdGhlIHJvbGUncyBwb2xpY2llcyAodGhpcyByZXF1aXJlcyB0aGUgYG1hbmFnZTpyb2xlOnVwZGF0ZTpwb2xpY3lgIHNjb3BlKS5cbiAgICAgKiBUaGUgdXNlciBtdXN0IGJlIGluIHRoZSByb2xlIG9yIGFuIG93bmVyIG9mIHRoZSBvcmdhbml6YXRpb24uXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJ1cGRhdGVSb2xlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L2FkZF9rZXlzXCI6IHtcbiAgICAvKipcbiAgICAgKiBBZGQgS2V5c1xuICAgICAqIEBkZXNjcmlwdGlvbiBBZGQgS2V5c1xuICAgICAqXG4gICAgICogQWRkcyBhIGxpc3Qgb2YgZXhpc3Rpbmcga2V5cyB0byBhbiBleGlzdGluZyByb2xlLlxuICAgICAqL1xuICAgIHB1dDogb3BlcmF0aW9uc1tcImFkZEtleXNUb1JvbGVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH0vYWRkX3VzZXIve3VzZXJfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBBZGQgVXNlclxuICAgICAqIEBkZXNjcmlwdGlvbiBBZGQgVXNlclxuICAgICAqXG4gICAgICogQWRkcyBhbiBleGlzdGluZyB1c2VyIHRvIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIGFkZCB1c2VycyB0byBhIHJvbGUuXG4gICAgICovXG4gICAgcHV0OiBvcGVyYXRpb25zW1wiYWRkVXNlclRvUm9sZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfS9rZXlzXCI6IHtcbiAgICAvKipcbiAgICAgKiBMaXN0IFJvbGUgS2V5c1xuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IFJvbGUgS2V5c1xuICAgICAqXG4gICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBhbGwga2V5cyBpbiBhIHJvbGUuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdFJvbGVLZXlzXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L2tleXMve2tleV9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIFJlbW92ZSBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVtb3ZlIEtleVxuICAgICAqXG4gICAgICogUmVtb3ZlcyBhIGdpdmVuIGtleSBmcm9tIGEgcm9sZVxuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcInJlbW92ZUtleUZyb21Sb2xlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L3Rva2Vuc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBhIHNpbmdsZSBwYWdlIG9mIFRva2VucyAoRGVwcmVjYXRlZClcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IGEgc2luZ2xlIHBhZ2Ugb2YgVG9rZW5zIChEZXByZWNhdGVkKVxuICAgICAqXG4gICAgICogKipEZXByZWNhdGVkKio6IFVzZSBgR0VUIC9vcmcve29yZ19pZH0vc2Vzc2lvbj9yb2xlPWBcbiAgICAgKlxuICAgICAqIFJldHVybnMgYWxsIGFjY2VzcyB0b2tlbnMgZm9yIGEgZ2l2ZW4gcm9sZS5cbiAgICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG93bmVycyBjYW4gY3JlYXRlIGEgdG9rZW4gZm9yIGl0LlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RSb2xlVG9rZW5zXCJdO1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBUb2tlblxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgVG9rZW5cbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgYWNjZXNzIHRva2VuIGZvciBhIGdpdmVuIHJvbGUgKHRvIGJlIHVzZWQgYXMgXCJBUEkgS2V5XCIgZm9yIGFsbCBzaWduaW5nIGFjdGlvbnMpLlxuICAgICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgb3Igb3duZXJzIGNhbiBjcmVhdGUgYSB0b2tlbiBmb3IgaXQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZVJvbGVUb2tlblwiXTtcbiAgICAvKipcbiAgICAgKiBSZXZva2UgQWxsIFRva2VucyAoRGVwcmVjYXRlZClcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXZva2UgQWxsIFRva2VucyAoRGVwcmVjYXRlZClcbiAgICAgKlxuICAgICAqICoqRGVwcmVjYXRlZCoqOiBVc2UgYERFTEVURSAvb3JnL3tvcmdfaWR9L3Nlc3Npb24/cm9sZT1gIGluc3RlYWRcbiAgICAgKlxuICAgICAqIFJldm9rZXMgYWxsIGFjY2VzcyB0b2tlbnMgYXNzb2NpYXRlZCB3aXRoIGEgcm9sZS5cbiAgICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG93bmVycyBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJyZXZva2VBbGxSb2xlVG9rZW5zXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L3Rva2Vucy97c2Vzc2lvbl9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIFJldm9rZSBUb2tlbiAoRGVwcmVjYXRlZClcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXZva2UgVG9rZW4gKERlcHJlY2F0ZWQpXG4gICAgICpcbiAgICAgKiAqKkRlcHJlY2F0ZWQqKjogVXNlIGBERUxFVEUgL29yZy97b3JnX2lkfS9zZXNzaW9uL3tzZXNzaW9uX2lkfWBcbiAgICAgKlxuICAgICAqIFJldm9rZXMgYW4gYWNjZXNzIHRva2VuIGFzc29jaWF0ZWQgd2l0aCBhIHJvbGUuXG4gICAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wicmV2b2tlUm9sZVRva2VuXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L3VzZXJzXCI6IHtcbiAgICAvKipcbiAgICAgKiBMaXN0IFJvbGUgVXNlcnMuXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgUm9sZSBVc2Vycy5cbiAgICAgKlxuICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2YgYWxsIHVzZXJzIHdobyBoYXZlIGFjY2VzcyB0byBhIHJvbGUuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdFJvbGVVc2Vyc1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3Nlc3Npb25cIjoge1xuICAgIC8qKlxuICAgICAqIExpc3Qgc2Vzc2lvbnNcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBzZXNzaW9uc1xuICAgICAqXG4gICAgICogSWYgbm8gcXVlcnkgcGFyYW1ldGVycyBhcmUgcHJvdmlkZWQsIGluZm9ybWF0aW9uIGZvciB0aGUgY3VycmVudCBzZXNzaW9uIGlzIHJldHVybmVkXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdFNlc3Npb25zXCJdO1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBuZXcgdXNlciBzZXNzaW9uIChtYW5hZ2VtZW50IGFuZC9vciBzaWduaW5nKVxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgbmV3IHVzZXIgc2Vzc2lvbiAobWFuYWdlbWVudCBhbmQvb3Igc2lnbmluZylcbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgdXNlciBzZXNzaW9uLCBzaWxlbnRseSB0cnVuY2F0aW5nIHJlcXVlc3RlZCBzZXNzaW9uIGFuZCBhdXRoIGxpZmV0aW1lc1xuICAgICAqIHRvIGJlIGF0IG1vc3QgcmVxdWVzdG9yJ3Mgc2Vzc2lvbiBhbmQgYXV0aCBsaWZldGltZSwgcmVzcGVjdGl2ZWx5LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVTZXNzaW9uXCJdO1xuICAgIC8qKlxuICAgICAqIFJldm9rZSBleGlzdGluZyBzZXNzaW9uKHMpXG4gICAgICogQGRlc2NyaXB0aW9uIFJldm9rZSBleGlzdGluZyBzZXNzaW9uKHMpXG4gICAgICpcbiAgICAgKiBJbW1lZGlhdGVseSByZXZva2VzIGV4aXN0aW5nIHNlc3Npb25zLCBwcmV2ZW50aW5nIHRoZW0gZnJvbSBiZWluZyB1c2VkIG9yIHJlZnJlc2hlZC5cbiAgICAgKiBJZiBubyBxdWVyeSBwYXJhbXMgYXJlIHByb3ZpZGVkLCB0aGUgY3VycmVudCBzZXNzaW9uIGlzIHJldm9rZWQuXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wicmV2b2tlU2Vzc2lvbnNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9zZXNzaW9uL3NlbGZcIjoge1xuICAgIC8qKlxuICAgICAqIFJldm9rZSBjdXJyZW50IHNlc3Npb25cbiAgICAgKiBAZGVzY3JpcHRpb24gUmV2b2tlIGN1cnJlbnQgc2Vzc2lvblxuICAgICAqXG4gICAgICogSW1tZWRpYXRlbHkgcmV2b2tlcyB0aGUgY3VycmVudCBzZXNzaW9uLCBwcmV2ZW50aW5nIGl0IGZyb20gYmVpbmcgdXNlZCBvciByZWZyZXNoZWRcbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJyZXZva2VDdXJyZW50U2Vzc2lvblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3Nlc3Npb24ve3Nlc3Npb25faWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgc2Vzc2lvbiBpbmZvcm1hdGlvblxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgc2Vzc2lvbiBpbmZvcm1hdGlvblxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImdldFNlc3Npb25cIl07XG4gICAgLyoqXG4gICAgICogUmV2b2tlIGEgc2Vzc2lvblxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXZva2UgYSBzZXNzaW9uXG4gICAgICpcbiAgICAgKiBJbW1lZGlhdGVseSByZXZva2VzIGFuIGV4aXN0aW5nIHNlc3Npb24sIHByZXZlbnRpbmcgaXQgZnJvbSBiZWluZyB1c2VkIG9yIHJlZnJlc2hlZFxuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcInJldm9rZVNlc3Npb25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9zb2xhbmEvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBTb2xhbmEgTWVzc2FnZVxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIFNvbGFuYSBNZXNzYWdlXG4gICAgICpcbiAgICAgKiBTaWducyBhIFNvbGFuYSBtZXNzYWdlIHdpdGggYSBnaXZlbiBrZXkuXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInNvbGFuYVNpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS90b2tlbi9rZXlzXCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgVG9rZW4tQWNjZXNzaWJsZSBLZXlzXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBUb2tlbi1BY2Nlc3NpYmxlIEtleXNcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyB0aGUga2V5cyB0aGF0IHRoZSByb2xlIHRva2VuIGNhbiBhY2Nlc3MuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdFRva2VuS2V5c1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3VzZXIvbWVcIjoge1xuICAgIC8qKlxuICAgICAqIFVzZXIgSW5mb1xuICAgICAqIEBkZXNjcmlwdGlvbiBVc2VyIEluZm9cbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCB1c2VyLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImFib3V0TWVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS91c2VyL21lL2V4cG9ydFwiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvdXRzdGFuZGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0c1xuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IG91dHN0YW5kaW5nIHVzZXItZXhwb3J0IHJlcXVlc3RzXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1widXNlckV4cG9ydExpc3RcIl07XG4gICAgLyoqXG4gICAgICogSW5pdGlhdGUgYSB1c2VyLWV4cG9ydCByZXF1ZXN0XG4gICAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIGEgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgICAqXG4gICAgICogVGhpcyBzdGFydHMgYSBkZWxheSAod2hvc2UgbGVuZ3RoIGlzIGRldGVybWluZWQgYnkgT3JnLXdpZGUgc2V0dGluZ3MpXG4gICAgICogYmVmb3JlIGV4cG9ydCBjYW4gYmUgY29tcGxldGVkLCBhbmQgcmV0dXJucyBhIHRpY2tldCB0aGF0IGNhbiBiZSB1c2VkXG4gICAgICogdG8gY29tcGxldGUgdGhlIGV4cG9ydCBvbmNlIHRoZSB0aW1lciBoYXMgZXhwaXJlZC5cbiAgICAgKlxuICAgICAqIE9ubHkgb25lIHVzZXItZXhwb3J0IHJlcXVlc3QgY2FuIGJlIGFjdGl2ZSBmb3IgYSBnaXZlbiBrZXkuIElmIHRoZXJlXG4gICAgICogaXMgYWxyZWFkeSBhbiBhY3RpdmUgZXhwb3J0LCB0aGlzIGVuZHBvaW50IHdpbGwgcmV0dXJuIGFuIGVycm9yLiBUb1xuICAgICAqIGNyZWF0ZSBhIG5ldyByZXF1ZXN0LCBmaXJzdCBkZWxldGUgdGhlIGV4aXN0aW5nIG9uZS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1widXNlckV4cG9ydEluaXRcIl07XG4gICAgLyoqXG4gICAgICogRGVsZXRlIGFuIGV4aXN0aW5nIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIGFuIGV4aXN0aW5nIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJ1c2VyRXhwb3J0RGVsZXRlXCJdO1xuICAgIC8qKlxuICAgICAqIENvbXBsZXRlIGEgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBDb21wbGV0ZSBhIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICAgKlxuICAgICAqIFRoaXMgZW5kcG9pbnQgY2FuIGJlIGNhbGxlZCBvbmx5IGFmdGVyIGluaXRpYXRpbmcgYSB1c2VyLWV4cG9ydCByZXF1ZXN0IHZpYVxuICAgICAqIHRoZSBgdXNlcl9leHBvcnRfaW5pdGAgQVBJLCBhbmQgb25seSB3aXRoaW4gdGhlIHN1YnNlcXVlbnQgZXhwb3J0IHdpbmRvd1xuICAgICAqIChpLmUuLCBhZnRlciB0aGUgZXhwb3J0IGRlbGF5IGhhcyBwYXNzZWQgYW5kIGJlZm9yZSB0aGUgcmVxdWVzdCBoYXMgZXhwaXJlZCkuXG4gICAgICpcbiAgICAgKiBUbyBjaGVjayBvbiB0aGUgc3RhdHVzIG9mIGFuIGV4cG9ydCByZXF1ZXN0LCBzZWUgdGhlIGB1c2VyX2V4cG9ydF9saXN0YCBBUEkuXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJ1c2VyRXhwb3J0Q29tcGxldGVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS91c2VyL21lL2ZpZG9cIjoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYXRlIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAgICpcbiAgICAgKiBHZW5lcmF0ZXMgYSBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIG93bmVyc2hpcCBvZiBhIGtleVxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJ1c2VyUmVnaXN0ZXJGaWRvSW5pdFwiXTtcbiAgICAvKipcbiAgICAgKiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgICAqXG4gICAgICogQWNjZXB0cyB0aGUgcmVzcG9uc2UgdG8gdGhlIGNoYWxsZW5nZSBnZW5lcmF0ZWQgYnkgdGhlIFBPU1QgdG8gdGhpcyBlbmRwb2ludC5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInVzZXJSZWdpc3RlckZpZG9Db21wbGV0ZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3VzZXIvbWUvZmlkby97Zmlkb19pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSBGSURPIGtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgRklETyBrZXlcbiAgICAgKlxuICAgICAqIERlbGV0ZXMgYSBGSURPIGtleSBmcm9tIHRoZSB1c2VyJ3MgYWNjb3VudCAoaWYgdGhlIGtleSBpcyBub3QgdGhlIHNvbGUgTUZBIGZhY3RvcikuIE1GQSBpcyBhbHdheXMgcmVxdWlyZWQuXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1widXNlckRlbGV0ZUZpZG9cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS91c2VyL21lL3RvdHBcIjoge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgVE9UUCBSZXNldFxuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplIFRPVFAgUmVzZXRcbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgVE9UUCBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIHRoYXQgdGhlIG5ldyBUT1RQXG4gICAgICogd2FzIHN1Y2Nlc3NmdWxseSBpbXBvcnRlZCBpbnRvIGFuIGF1dGhlbnRpY2F0b3IgYXBwLlxuICAgICAqXG4gICAgICogVGhpcyBvcGVyYXRpb24gaXMgYWxsb3dlZCBpZiBFSVRIRVJcbiAgICAgKiAtIHRoZSB1c2VyIGFjY291bnQgaXMgbm90IHlldCBpbml0aWFsaXplZCBhbmQgbm8gVE9UUCBpcyBhbHJlYWR5IHNldCwgT1JcbiAgICAgKiAtIHRoZSB1c2VyIGhhcyBub3QgY29uZmlndXJlZCBhbnkgYXV0aCBmYWN0b3JzO1xuICAgICAqIG90aGVyd2lzZSwgTUZBIGlzIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJ1c2VyUmVzZXRUb3RwSW5pdFwiXTtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgVE9UUFxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgVE9UUFxuICAgICAqXG4gICAgICogRGVsZXRlcyBUT1RQIGZyb20gdGhlIHVzZXIncyBhY2NvdW50IChpZiBUT1RQIGlzIG5vdCB0aGUgc29sZSBNRkEgZmFjdG9yKS4gTUZBIGlzIGFsd2F5cyByZXF1aXJlZC5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJ1c2VyRGVsZXRlVG90cFwiXTtcbiAgICAvKipcbiAgICAgKiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgICAqXG4gICAgICogQ2hlY2tzIGlmIHRoZSByZXNwb25zZSBjb250YWlucyB0aGUgY29ycmVjdCBUT1RQIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGVcbiAgICAgKiBjaGFsbGVuZ2UgZ2VuZXJhdGVkIGJ5IHRoZSBQT1NUIG1ldGhvZCBvZiB0aGlzIGVuZHBvaW50LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXNlclJlc2V0VG90cENvbXBsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlci9tZS90b3RwL3ZlcmlmeVwiOiB7XG4gICAgLyoqXG4gICAgICogVmVyaWZ5IFRPVFBcbiAgICAgKiBAZGVzY3JpcHRpb24gVmVyaWZ5IFRPVFBcbiAgICAgKlxuICAgICAqIENoZWNrcyBpZiBhIGdpdmVuIGNvZGUgbWF0Y2hlcyB0aGUgY3VycmVudCBUT1RQIGNvZGUgZm9yIHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICogRXJyb3JzIHdpdGggNDAzIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIG5vdCBzZXQgdXAgVE9UUCBvciB0aGUgY29kZSBmYWlscyB2ZXJpZmljYXRpb24uXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInVzZXJWZXJpZnlUb3RwXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlcnNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgdXNlcnMgaW4gb3JnYW5pemF0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgdXNlcnMgaW4gb3JnYW5pemF0aW9uXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdFVzZXJzSW5PcmdcIl07XG4gICAgLyoqXG4gICAgICogQWRkIGEgdGhpcmQtcGFydHkgdXNlciB0byB0aGUgb3JnXG4gICAgICogQGRlc2NyaXB0aW9uIEFkZCBhIHRoaXJkLXBhcnR5IHVzZXIgdG8gdGhlIG9yZ1xuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVPaWRjVXNlclwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3VzZXJzL29pZGNcIjoge1xuICAgIC8qKlxuICAgICAqIFJlbW92ZSBhIHRoaXJkLXBhcnR5IHVzZXIgZnJvbSB0aGUgb3JnXG4gICAgICogQGRlc2NyaXB0aW9uIFJlbW92ZSBhIHRoaXJkLXBhcnR5IHVzZXIgZnJvbSB0aGUgb3JnXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wiZGVsZXRlT2lkY1VzZXJcIl07XG4gIH07XG4gIFwiL3YwL3VzZXIvbWUvZmlkb1wiOiB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhdGUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgICAqXG4gICAgICogR2VuZXJhdGVzIGEgY2hhbGxlbmdlIHRoYXQgbXVzdCBiZSBhbnN3ZXJlZCB0byBwcm92ZSBvd25lcnNoaXAgb2YgYSBrZXlcbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wicmVnaXN0ZXJGaWRvSW5pdExlZ2FjeVwiXTtcbiAgICAvKipcbiAgICAgKiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQGRlc2NyaXB0aW9uIEZpbmFsaXplIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAgICpcbiAgICAgKiBBY2NlcHRzIHRoZSByZXNwb25zZSB0byB0aGUgY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCB0byB0aGlzIGVuZHBvaW50LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wicmVnaXN0ZXJGaWRvQ29tcGxldGVMZWdhY3lcIl07XG4gIH07XG4gIFwiL3YwL3VzZXIvbWUvdG90cFwiOiB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZSBUT1RQIFJlc2V0XG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZSBUT1RQIFJlc2V0XG4gICAgICpcbiAgICAgKiBDcmVhdGVzIGEgbmV3IFRPVFAgY2hhbGxlbmdlIHRoYXQgbXVzdCBiZSBhbnN3ZXJlZCB0byBwcm92ZSB0aGF0IHRoZSBuZXcgVE9UUFxuICAgICAqIHdhcyBzdWNjZXNzZnVsbHkgaW1wb3J0ZWQgaW50byBhbiBhdXRoZW50aWNhdG9yIGFwcC5cbiAgICAgKlxuICAgICAqIFRoaXMgb3BlcmF0aW9uIGlzIGFsbG93ZWQgaWYgRUlUSEVSXG4gICAgICogLSB0aGUgdXNlciBhY2NvdW50IGlzIG5vdCB5ZXQgaW5pdGlhbGl6ZWQgYW5kIG5vIFRPVFAgaXMgYWxyZWFkeSBzZXQsIE9SXG4gICAgICogLSB0aGUgdXNlciBoYXMgbm90IGNvbmZpZ3VyZWQgYW55IGF1dGggZmFjdG9ycztcbiAgICAgKiBvdGhlcndpc2UsIE1GQSBpcyByZXF1aXJlZC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wicmVzZXRUb3RwSW5pdExlZ2FjeVwiXTtcbiAgICAvKipcbiAgICAgKiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQGRlc2NyaXB0aW9uIEZpbmFsaXplIHJlc2V0dGluZyBUT1RQXG4gICAgICpcbiAgICAgKiBDaGVja3MgaWYgdGhlIHJlc3BvbnNlIGNvbnRhaW5zIHRoZSBjb3JyZWN0IFRPVFAgY29kZSBjb3JyZXNwb25kaW5nIHRvIHRoZVxuICAgICAqIGNoYWxsZW5nZSBnZW5lcmF0ZWQgYnkgdGhlIFBPU1QgbWV0aG9kIG9mIHRoaXMgZW5kcG9pbnQuXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJyZXNldFRvdHBDb21wbGV0ZUxlZ2FjeVwiXTtcbiAgfTtcbiAgXCIvdjAvdXNlci9tZS90b3RwL3ZlcmlmeVwiOiB7XG4gICAgLyoqXG4gICAgICogVmVyaWZ5IFRPVFBcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBkZXNjcmlwdGlvbiBWZXJpZnkgVE9UUFxuICAgICAqXG4gICAgICogQ2hlY2tzIGlmIGEgZ2l2ZW4gY29kZSBtYXRjaGVzIHRoZSBjdXJyZW50IFRPVFAgY29kZSBmb3IgdGhlIGN1cnJlbnQgdXNlci5cbiAgICAgKiBFcnJvcnMgd2l0aCA0MDMgaWYgdGhlIGN1cnJlbnQgdXNlciBoYXMgbm90IHNldCB1cCBUT1RQIG9yIHRoZSBjb2RlIGZhaWxzIHZlcmlmaWNhdGlvbi5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1widmVyaWZ5VG90cExlZ2FjeVwiXTtcbiAgfTtcbiAgXCIvdjEvb3JnL3tvcmdfaWR9L2Jsb2Ivc2lnbi97a2V5X2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBSYXcgQmxvYlxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIFJhdyBCbG9iXG4gICAgICpcbiAgICAgKiBTaWducyBhbiBhcmJpdHJhcnkgYmxvYiB3aXRoIGEgZ2l2ZW4ga2V5LlxuICAgICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgICAqXG4gICAgICogLSBFQ0RTQSBzaWduYXR1cmVzIGFyZSBzZXJpYWxpemVkIGFzIGJpZy1lbmRpYW4gciBhbmQgcyBwbHVzIHJlY292ZXJ5LWlkXG4gICAgICogYnl0ZSB2LCB3aGljaCBjYW4gaW4gZ2VuZXJhbCB0YWtlIGFueSBvZiB0aGUgdmFsdWVzIDAsIDEsIDIsIG9yIDMuXG4gICAgICpcbiAgICAgKiAtIEVkRFNBIHNpZ25hdHVyZXMgYXJlIHNlcmlhbGl6ZWQgaW4gdGhlIHN0YW5kYXJkIGZvcm1hdC5cbiAgICAgKlxuICAgICAqIC0gQkxTIHNpZ25hdHVyZXMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdGhlIGJsb2Itc2lnbiBlbmRwb2ludC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiYmxvYlNpZ25cIl07XG4gIH07XG4gIFwiL3YxL29yZy97b3JnX2lkfS9jdWJlM3NpZ25lci9oZWFydGJlYXRcIjoge1xuICAgIC8qKlxuICAgICAqIFJlY29yZCBoZWFydGJlYXRcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVjb3JkIGhlYXJ0YmVhdFxuICAgICAqXG4gICAgICogVGhpcyBlbmRwb2ludCBpcyBjYWxsZWQgYnkgdGhlIGN1YmUzc2lnbmVyIHByb3h5IHRvIHJlY29yZCB2YXJpb3VzIG1ldHJpY3MgdG8gQ2xvdWRXYXRjaC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiY3ViZTNzaWduZXJIZWFydGJlYXRcIl07XG4gIH07XG4gIFwiL3YxL29yZy97b3JnX2lkfS9ldGgxL3NpZ24ve3B1YmtleX1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gRVZNIFRyYW5zYWN0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gRVZNIFRyYW5zYWN0aW9uXG4gICAgICpcbiAgICAgKiBTaWducyBhbiBFdGhlcmV1bSAoYW5kIG90aGVyIEVWTSkgdHJhbnNhY3Rpb24gd2l0aCBhIGdpdmVuIFNlY3AyNTZrMSBrZXkuXG4gICAgICogUmV0dXJucyBhbiBSTFAtZW5jb2RlZCB0cmFuc2FjdGlvbiB3aXRoIEVJUC0xNTUgc2lnbmF0dXJlLlxuICAgICAqXG4gICAgICogVGhlIGtleSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZSBhbmQgb3JnYW5pemF0aW9uIG9uIHdob3NlIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImV0aDFTaWduXCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vZXRoMi9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIFZhbGlkYXRvciBSZXF1ZXN0XG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gVmFsaWRhdG9yIFJlcXVlc3RcbiAgICAgKlxuICAgICAqIFNpZ25zIGFuIGV0aDIgdmFsaWRhdG9yIHJlcXVlc3Qgd2l0aCBhIGdpdmVuIEJMUyBrZXkuXG4gICAgICpcbiAgICAgKiBUaGUga2V5IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSByb2xlIGFuZCBvcmdhbml6YXRpb24gb24gd2hvc2UgYmVoYWxmIHRoaXMgYWN0aW9uIGlzIGNhbGxlZC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiZXRoMlNpZ25cIl07XG4gIH07XG4gIFwiL3YxL29yZy97b3JnX2lkfS9ldGgyL3N0YWtlXCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIFN0YWtlIERlcG9zaXRcbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBTdGFrZSBEZXBvc2l0XG4gICAgICpcbiAgICAgKiBTaWducyBhIGRlcG9zaXQgdHJhbnNhY3Rpb24gd2l0aCBhIGB2YWxpZGF0b3Jfa2V5YC4gSWYgYHZhbGlkYXRvcl9rZXlgIGlzIHNldCB0byBhIHByZWdlbmVyYXRlZCBrZXksIHdlIHVzZSB0aGVcbiAgICAgKiBwcm92aWRlZCB2YWxpZGF0b3Iga2V5LiBPdGhlcndpc2UsIHdlIGdlbmVyYXRlIGEgbmV3IEJMUyBrZXkuXG4gICAgICpcbiAgICAgKiBXaGVuIHVzaW5nIGEgcHJlZ2VuZXJhdGVkIGtleSwgdGhlIGtleSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZSBhbmQgb3JnYW5pemF0aW9uIG9uIHdob3NlXG4gICAgICogYmVoYWxmIHRoaXMgYWN0aW9uIGlzIGNhbGxlZC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wic3Rha2VcIl07XG4gIH07XG4gIFwiL3YxL29yZy97b3JnX2lkfS9ldGgyL3Vuc3Rha2Uve3B1YmtleX1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gVW5zdGFrZSBSZXF1ZXN0XG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gVW5zdGFrZSBSZXF1ZXN0XG4gICAgICpcbiAgICAgKiBIYW5kbGUgdW5zdGFraW5nIHJlcXVlc3QsIHByb2R1Y2luZyBhIHNpZ25lZCB2b2x1bnRhcnkgZXhpdCBtZXNzYWdlXG4gICAgICogdGhhdCBjYW4gYmUgcG9zdGVkIGRpcmVjdGx5IHRvIHRoZSBCZWFjb24gY2hhaW4uXG4gICAgICpcbiAgICAgKiBUaGUga2V5IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSByb2xlIGFuZCBvcmdhbml6YXRpb24gb24gd2hvc2UgYmVoYWxmIHRoaXMgYWN0aW9uIGlzIGNhbGxlZC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1widW5zdGFrZVwiXTtcbiAgfTtcbiAgXCIvdjEvb3JnL3tvcmdfaWR9L3Rva2VuL3JlZnJlc2hcIjoge1xuICAgIC8qKlxuICAgICAqIFJlZnJlc2ggU2lnbmVyIFNlc3Npb25cbiAgICAgKiBAZGVzY3JpcHRpb24gUmVmcmVzaCBTaWduZXIgU2Vzc2lvblxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wic2lnbmVyU2Vzc2lvblJlZnJlc2hcIl07XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIHdlYmhvb2tzID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG5leHBvcnQgaW50ZXJmYWNlIGNvbXBvbmVudHMge1xuICBzY2hlbWFzOiB7XG4gICAgQWNjZXB0ZWRSZXNwb25zZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdICYgUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEaWZmZXJlbnQgcmVzcG9uc2VzIHdlIHJldHVybiBmb3Igc3RhdHVzIGNvZGUgXCIyMDIgQWNjZXB0ZWRcIi5cbiAgICAgKlxuICAgICAqIEV2ZW4gdGhvdWdoIFwiMjAyIEFjY2VwdGVkXCIgaXMgYSBzdWNjZXNzZnVsIHJlc3BvbnNlLCB3ZSByZXByZXNlbnRcbiAgICAgKiBpdCBhcyBhIFJ1c3QgZXJyb3IgYmVjYXVzZSB0aGF0IG1ha2VzIGl0IGVhc3kgdG8gaGF2ZSByb3V0ZSBoYW5kbGVyc1xuICAgICAqIHJldHVybiBgUmVzdWx0PFQsIFNpZ25lckVycm9yPmAgd2hlcmUgYFRgIGlzIHRoZSB0eXBlIG9mIHRoZVxuICAgICAqIHJlc3BvbnNlIGZvciB0aGUgc3RhdHVzIGNvZGUgXCIyMDAgT2tcIi5cbiAgICAgKi9cbiAgICBBY2NlcHRlZFZhbHVlOiB7XG4gICAgICBNZmFSZXF1aXJlZDoge1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIE1GQSByZXF1ZXN0IGlkICovXG4gICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3JnYW5pemF0aW9uIGlkICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICBzZXNzaW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJOZXdTZXNzaW9uUmVzcG9uc2VcIl0gfCBudWxsO1xuICAgICAgfTtcbiAgICB9O1xuICAgIEFkZEtleXNUb1JvbGVSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGxpc3Qgb2Yga2V5cyB0byBhZGQgdG8gYSByb2xlXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwiS2V5IzYzMDIzYTI3LTFlNzAtNDMwYS1iMjkzLWZmYmM5ZDZjNDQ4NFwiXG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIGtleV9pZHM6IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcG9saWNpZXMgdG8gYXBwbHkgZm9yIGVhY2gga2V5XG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlR4UmVjZWl2ZXJcIjogXCIweDhjNTk0NjkxYzBlNTkyZmZhMjFmMTUzYTE2YWU0MWRiNWJlZmNhYWFcIlxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJUeERlcG9zaXRcIjoge1xuICAgICAgICogICAgICAgXCJraW5kXCI6IFwiQ2Fub25pY2FsXCJcbiAgICAgICAqICAgICB9XG4gICAgICAgKiAgIH0sXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlJlcXVpcmVNZmFcIjoge1xuICAgICAgICogICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAqICAgICAgICAgXCJSZXF1aXJlZEFwcHJvdmVyc1wiOiB7XG4gICAgICAgKiAgICAgICAgICAgXCJjb3VudFwiOiAxXG4gICAgICAgKiAgICAgICAgIH1cbiAgICAgICAqICAgICAgIH0sXG4gICAgICAgKiAgICAgICBcInJlc3RyaWN0ZWRfb3BlcmF0aW9uc1wiOiBbXG4gICAgICAgKiAgICAgICAgIFwiRXRoMVNpZ25cIixcbiAgICAgICAqICAgICAgICAgXCJCbG9iU2lnblwiXG4gICAgICAgKiAgICAgICBdXG4gICAgICAgKiAgICAgfVxuICAgICAgICogICB9XG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHBvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdIHwgbnVsbDtcbiAgICB9O1xuICAgIEFkZFRoaXJkUGFydHlVc2VyUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVXNlciBlbWFpbFxuICAgICAgICogQGV4YW1wbGUgYWxpY2VAZXhhbXBsZS5jb21cbiAgICAgICAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgIGlkZW50aXR5OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9JRENJZGVudGl0eVwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbG9naW4gTUZBIHBvbGljeSAqL1xuICAgICAgbWZhX3BvbGljeT86IHVua25vd247XG4gICAgICByb2xlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1lbWJlclJvbGVcIl07XG4gICAgfTtcbiAgICBBZGRUaGlyZFBhcnR5VXNlclJlc3BvbnNlOiB7XG4gICAgICAvKiogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGYgKi9cbiAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIEFwcHJvdmFsSW5mbzoge1xuICAgICAgdGltZXN0YW1wOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2ViQXV0aG4gUmVseWluZyBQYXJ0aWVzIG1heSB1c2UgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZSB0byBzcGVjaWZ5XG4gICAgICogdGhlaXIgcHJlZmVyZW5jZSByZWdhcmRpbmcgYXR0ZXN0YXRpb24gY29udmV5YW5jZSBkdXJpbmcgY3JlZGVudGlhbFxuICAgICAqIGdlbmVyYXRpb24uXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZW51bWRlZi1hdHRlc3RhdGlvbmNvbnZleWFuY2VwcmVmZXJlbmNlXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOiBcIm5vbmVcIiB8IFwiaW5kaXJlY3RcIiB8IFwiZGlyZWN0XCIgfCBcImVudGVycHJpc2VcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERhdGEgcmVxdWlyZWQgZm9yIGJvdGggYGF1dGhlbnRpY2F0ZWAgYW5kIGByZWZyZXNoYC4gKi9cbiAgICBBdXRoRGF0YToge1xuICAgICAgLyoqIEZvcm1hdDogaW50MzIgKi9cbiAgICAgIGVwb2NoX251bTogbnVtYmVyO1xuICAgICAgZXBvY2hfdG9rZW46IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQjMyXCJdO1xuICAgICAgb3RoZXJfdG9rZW46IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRzIHRoZSBhc3NlcnRpb24gcmVzcG9uc2UgdXNlZCBieSBjbGllbnRzIHdoZW4gYXR0ZW1wdGluZyB0byBsb2cgaW4gd2l0aCBhIGtub3duIGNyZWRlbnRpYWxcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jYXV0aGVudGljYXRvcmFzc2VydGlvbnJlc3BvbnNlXG4gICAgICovXG4gICAgQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBDb250YWlucyB0aGUgc3RhbmRhcmQgQ1RBUDIgYXV0aGVudGljYXRvciBkYXRhLiBNdXN0IGJlIGEgdmFsaWQgW2BBdXRoZW50aWNhdG9yRGF0YWBdLlxuICAgICAgICogVGhpcyBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBob3cga2V5IHdhcyBpbnZva2VkLlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1hdXRoZW50aWNhdG9yYXNzZXJ0aW9ucmVzcG9uc2UtYXV0aGVudGljYXRvcmRhdGFcbiAgICAgICAqL1xuICAgICAgYXV0aGVudGljYXRvckRhdGE6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIENvbnRhaW5zIFVURjggZW5jb2RlZCBKU09OIHdoaWNoIG11c3QgYmUgYSB2YWxpZCBbYENsaWVudERhdGFgXVxuICAgICAgICogVGhpcyBkYXRhIGlzIGNvbWJpbmVkIHdpdGggYGF1dGhlbnRpY2F0b3JfZGF0YWAgdG8gcHJvZHVjZSB0aGUgc2lnbmF0dXJlXG4gICAgICAgKiBtZWFuaW5nIHRoZSBjbGllbnQgYXR0ZXN0cyB0byB0aGUgY29ycmVjdG5lc3Mgb2YgdGhpcyBkYXRhLlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1hdXRoZW50aWNhdG9ycmVzcG9uc2UtY2xpZW50ZGF0YWpzb25cbiAgICAgICAqL1xuICAgICAgY2xpZW50RGF0YUpTT046IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzaWduYXR1cmUgb2YgdGhlIGNvbmNhdGVuYXRlZCBgYXV0aGVudGljYXRvckRhdGEgfHwgaGFzaGAgd2hlcmVcbiAgICAgICAqIGBoYXNoYCBpcyB0aGUgU0hBMjU2IGhhc2ggb2YgdGhlIGBjbGllbnREYXRhSlNPTmAgYnVmZmVyOlxuICAgICAgICpcbiAgICAgICAqIEZpZWxkIERlZmluaXRpb246IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tYXV0aGVudGljYXRvcmFzc2VydGlvbnJlc3BvbnNlLXNpZ25hdHVyZVxuICAgICAgICogU3RlcCAxMSBvZiBgZ2V0QXNzZXJ0aW9uYCBzcGVjaWZpZXMgdGhlIGNvbmNhdGVuYXRpb246IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNzY3RuLW9wLWdldC1hc3NlcnRpb25cbiAgICAgICAqIFJlcXVpcmVtZW50IGZvciBTSEEtMjU2OiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jY29sbGVjdGVkY2xpZW50ZGF0YS1oYXNoLW9mLXRoZS1zZXJpYWxpemVkLWNsaWVudC1kYXRhXG4gICAgICAgKi9cbiAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWxsb3dzIHRoZSBhdXRoZW50aWNhdG9yIHRvIG9wdGlvbmFsbHkgZGVjbGFyZSB0aGUgY3JlZGVudGlhbCBpZGVudGlmaWVyIHRoZXkgdXNlZC5cbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tYXV0aGVudGljYXRvcmFzc2VydGlvbnJlc3BvbnNlLXVzZXJoYW5kbGVcbiAgICAgICAqL1xuICAgICAgdXNlckhhbmRsZT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBlbnVtZXJhdGlvbuKAmXMgdmFsdWVzIGRlc2NyaWJlIGF1dGhlbnRpY2F0b3JzJyBhdHRhY2htZW50IG1vZGFsaXRpZXMuXG4gICAgICogUmVseWluZyBQYXJ0aWVzIHVzZSB0aGlzIHRvIGV4cHJlc3MgYSBwcmVmZXJyZWQgYXV0aGVudGljYXRvciBhdHRhY2htZW50XG4gICAgICogbW9kYWxpdHkgd2hlbiBjYWxsaW5nIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUoKSB0byBjcmVhdGUgYSBjcmVkZW50aWFsLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2VudW1kZWYtYXV0aGVudGljYXRvcmF0dGFjaG1lbnRcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OiBcInBsYXRmb3JtXCIgfCBcImNyb3NzLXBsYXRmb3JtXCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSBpbnRlcmZhY2UgcmVwcmVzZW50cyB0aGUgYXV0aGVudGljYXRvcidzXG4gICAgICogcmVzcG9uc2UgdG8gYSBjbGllbnTigJlzIHJlcXVlc3QgZm9yIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBwdWJsaWMga2V5XG4gICAgICogY3JlZGVudGlhbC4gSXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG5ldyBjcmVkZW50aWFsIHRoYXQgY2FuIGJlXG4gICAgICogdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgbGF0ZXIgdXNlLCBhbmQgbWV0YWRhdGEgdGhhdCBjYW4gYmUgdXNlZCBieSB0aGVcbiAgICAgKiBXZWJBdXRobiBSZWx5aW5nIFBhcnR5IHRvIGFzc2VzcyB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBjcmVkZW50aWFsXG4gICAgICogZHVyaW5nIHJlZ2lzdHJhdGlvbi5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNpZmFjZS1hdXRoZW50aWNhdG9yYXR0ZXN0YXRpb25yZXNwb25zZVxuICAgICAqL1xuICAgIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGF0dHJpYnV0ZSBjb250YWlucyBhbiBhdHRlc3RhdGlvbiBvYmplY3QsIHdoaWNoIGlzIG9wYXF1ZSB0bywgYW5kXG4gICAgICAgKiBjcnlwdG9ncmFwaGljYWxseSBwcm90ZWN0ZWQgYWdhaW5zdCB0YW1wZXJpbmcgYnksIHRoZSBjbGllbnQuIFRoZVxuICAgICAgICogYXR0ZXN0YXRpb24gb2JqZWN0IGNvbnRhaW5zIGJvdGggYXV0aGVudGljYXRvciBkYXRhIGFuZCBhbiBhdHRlc3RhdGlvblxuICAgICAgICogc3RhdGVtZW50LiBUaGUgZm9ybWVyIGNvbnRhaW5zIHRoZSBBQUdVSUQsIGEgdW5pcXVlIGNyZWRlbnRpYWwgSUQsIGFuZFxuICAgICAgICogdGhlIGNyZWRlbnRpYWwgcHVibGljIGtleS4gVGhlIGNvbnRlbnRzIG9mIHRoZSBhdHRlc3RhdGlvbiBzdGF0ZW1lbnQgYXJlXG4gICAgICAgKiBkZXRlcm1pbmVkIGJ5IHRoZSBhdHRlc3RhdGlvbiBzdGF0ZW1lbnQgZm9ybWF0IHVzZWQgYnkgdGhlXG4gICAgICAgKiBhdXRoZW50aWNhdG9yLiBJdCBhbHNvIGNvbnRhaW5zIGFueSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRoYXQgdGhlXG4gICAgICAgKiBSZWx5aW5nIFBhcnR5J3Mgc2VydmVyIHJlcXVpcmVzIHRvIHZhbGlkYXRlIHRoZSBhdHRlc3RhdGlvbiBzdGF0ZW1lbnQsXG4gICAgICAgKiBhcyB3ZWxsIGFzIHRvIGRlY29kZSBhbmQgdmFsaWRhdGUgdGhlIGF1dGhlbnRpY2F0b3IgZGF0YSBhbG9uZyB3aXRoIHRoZVxuICAgICAgICogSlNPTi1jb21wYXRpYmxlIHNlcmlhbGl6YXRpb24gb2YgY2xpZW50IGRhdGEuIEZvciBtb3JlIGRldGFpbHMsIHNlZVxuICAgICAgICogwqfigK82LjUgQXR0ZXN0YXRpb24sIMKn4oCvNi41LjQgR2VuZXJhdGluZyBhbiBBdHRlc3RhdGlvbiBPYmplY3QsIGFuZCBGaWd1cmVcbiAgICAgICAqIDYuXG4gICAgICAgKi9cbiAgICAgIGF0dGVzdGF0aW9uT2JqZWN0OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGF0dHJpYnV0ZSwgaW5oZXJpdGVkIGZyb20gQXV0aGVudGljYXRvclJlc3BvbnNlLCBjb250YWlucyB0aGVcbiAgICAgICAqIEpTT04tY29tcGF0aWJsZSBzZXJpYWxpemF0aW9uIG9mIGNsaWVudCBkYXRhIChzZWUgwqfigK82LjUgQXR0ZXN0YXRpb24pXG4gICAgICAgKiBwYXNzZWQgdG8gdGhlIGF1dGhlbnRpY2F0b3IgYnkgdGhlIGNsaWVudCBpbiBvcmRlciB0byBnZW5lcmF0ZSB0aGlzXG4gICAgICAgKiBjcmVkZW50aWFsLiBUaGUgZXhhY3QgSlNPTiBzZXJpYWxpemF0aW9uIE1VU1QgYmUgcHJlc2VydmVkLCBhcyB0aGUgaGFzaFxuICAgICAgICogb2YgdGhlIHNlcmlhbGl6ZWQgY2xpZW50IGRhdGEgaGFzIGJlZW4gY29tcHV0ZWQgb3ZlciBpdC5cbiAgICAgICAqL1xuICAgICAgY2xpZW50RGF0YUpTT046IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXZWJBdXRobiBSZWx5aW5nIFBhcnRpZXMgbWF5IHVzZSB0aGUgQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhXG4gICAgICogZGljdGlvbmFyeSB0byBzcGVjaWZ5IHRoZWlyIHJlcXVpcmVtZW50cyByZWdhcmRpbmcgYXV0aGVudGljYXRvclxuICAgICAqIGF0dHJpYnV0ZXMuXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZGljdGRlZi1hdXRoZW50aWNhdG9yc2VsZWN0aW9uY3JpdGVyaWFcbiAgICAgKi9cbiAgICBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6IHtcbiAgICAgIGF1dGhlbnRpY2F0b3JBdHRhY2htZW50PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBdXRoZW50aWNhdG9yQXR0YWNobWVudFwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1lbWJlciBpcyByZXRhaW5lZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBXZWJBdXRobiBMZXZlbFxuICAgICAgICogMSBhbmQsIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGl0cyBuYW1pbmcgcmV0YWlucyB0aGUgZGVwcmVjYXRlZFxuICAgICAgICog4oCccmVzaWRlbnTigJ0gdGVybWlub2xvZ3kgZm9yIGRpc2NvdmVyYWJsZSBjcmVkZW50aWFscy4gUmVseWluZyBQYXJ0aWVzXG4gICAgICAgKiBTSE9VTEQgc2V0IGl0IHRvIHRydWUgaWYsIGFuZCBvbmx5IGlmLCByZXNpZGVudEtleSBpcyBzZXQgdG8gcmVxdWlyZWQuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1hdXRoZW50aWNhdG9yc2VsZWN0aW9uY3JpdGVyaWEtcmVxdWlyZXJlc2lkZW50a2V5XG4gICAgICAgKi9cbiAgICAgIHJlcXVpcmVSZXNpZGVudEtleT86IGJvb2xlYW47XG4gICAgICByZXNpZGVudEtleT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUmVzaWRlbnRLZXlSZXF1aXJlbWVudFwiXSB8IG51bGw7XG4gICAgICB1c2VyVmVyaWZpY2F0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnRcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXV0aGVudGljYXRvcnMgbWF5IGltcGxlbWVudCB2YXJpb3VzIHRyYW5zcG9ydHMgZm9yIGNvbW11bmljYXRpbmcgd2l0aFxuICAgICAqIGNsaWVudHMuIFRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBoaW50cyBhcyB0byBob3cgY2xpZW50cyBtaWdodCBjb21tdW5pY2F0ZVxuICAgICAqIHdpdGggYSBwYXJ0aWN1bGFyIGF1dGhlbnRpY2F0b3IgaW4gb3JkZXIgdG8gb2J0YWluIGFuIGFzc2VydGlvbiBmb3IgYVxuICAgICAqIHNwZWNpZmljIGNyZWRlbnRpYWwuIE5vdGUgdGhhdCB0aGVzZSBoaW50cyByZXByZXNlbnQgdGhlIFdlYkF1dGhuIFJlbHlpbmdcbiAgICAgKiBQYXJ0eSdzIGJlc3QgYmVsaWVmIGFzIHRvIGhvdyBhbiBhdXRoZW50aWNhdG9yIG1heSBiZSByZWFjaGVkLiBBIFJlbHlpbmdcbiAgICAgKiBQYXJ0eSB3aWxsIHR5cGljYWxseSBsZWFybiBvZiB0aGUgc3VwcG9ydGVkIHRyYW5zcG9ydHMgZm9yIGEgcHVibGljIGtleVxuICAgICAqIGNyZWRlbnRpYWwgdmlhIGdldFRyYW5zcG9ydHMoKS5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNlbnVtZGVmLWF1dGhlbnRpY2F0b3J0cmFuc3BvcnRcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6IFwidXNiXCIgfCBcIm5mY1wiIHwgXCJibGVcIiB8IFwiaW50ZXJuYWxcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlcXVlc3QgdG8gc2lnbiBhbiBBdmFsYW5jaGUgdHJhbnNhY3Rpb25zICovXG4gICAgQXZhU2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRyYW5zYWN0aW9uIHRvIHNpZ24uXG4gICAgICAgKlxuICAgICAgICogRXhhbXBsZXM6XG4gICAgICAgKiAtIHtcIlBcIjogeyBcIkFkZFBlcm1pc3Npb25sZXNzVmFsaWRhdG9yXCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL3BsYXRmb3Jtdm0vdHhzL2FkZF9wZXJtaXNzaW9ubGVzc192YWxpZGF0b3IucnMjTDE0KSB9fVxuICAgICAgICogLSB7XCJQXCI6IHsgXCJBZGRTdWJuZXRWYWxpZGF0b3JcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvcGxhdGZvcm12bS90eHMvYWRkX3N1Ym5ldF92YWxpZGF0b3IucnMjTDI5KSB9fVxuICAgICAgICogLSB7XCJQXCI6IHsgXCJBZGRWYWxpZGF0b3JcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvcGxhdGZvcm12bS90eHMvYWRkX3ZhbGlkYXRvci5ycyNMMTIpIH19XG4gICAgICAgKiAtIHtcIlBcIjogeyBcIkNyZWF0ZUNoYWluXCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL3BsYXRmb3Jtdm0vdHhzL2NyZWF0ZV9jaGFpbi5ycyNMOCkgfX1cbiAgICAgICAqIC0ge1wiUFwiOiB7IFwiQ3JlYXRlU3VibmV0XCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL3BsYXRmb3Jtdm0vdHhzL2NyZWF0ZV9zdWJuZXQucnMjTDgpIH19XG4gICAgICAgKiAtIHtcIlBcIjogeyBcIkV4cG9ydFwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9wbGF0Zm9ybXZtL3R4cy9leHBvcnQucnMjTDEyKSB9fVxuICAgICAgICogLSB7XCJQXCI6IHsgXCJJbXBvcnRcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvcGxhdGZvcm12bS90eHMvaW1wb3J0LnJzI0wxMikgfX1cbiAgICAgICAqIC0ge1wiWFwiOiB7IFwiQmFzZVwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9hdm0vdHhzL21vZC5ycyNMMjEpIH19XG4gICAgICAgKiAtIHtcIlhcIjogeyBcIkV4cG9ydFwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9hdm0vdHhzL2V4cG9ydC5ycyNMMTYpIH19XG4gICAgICAgKiAtIHtcIlhcIjogeyBcIkltcG9ydFwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9hdm0vdHhzL2ltcG9ydC5ycyNMMTQpIH19XG4gICAgICAgKi9cbiAgICAgIHR4OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgfTtcbiAgICBBdmFTaWduUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGhleC1lbmNvZGVkIHNpZ25hdHVyZS4gKi9cbiAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBXcmFwcGVyIGFyb3VuZCBhIHplcm9pemluZyAzMi1ieXRlIGZpeGVkLXNpemUgYXJyYXkgKi9cbiAgICBCMzI6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcIm1lc3NhZ2VfYmFzZTY0XCI6IFwiWVdKalpHVm1aMmhwYW10c2JXNXZjSEZ5YzNSMWRuZDRlWG94TWpNME5UWUtcIlxuICAgICAqIH1cbiAgICAgKi9cbiAgICBCbG9iU2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBibG9iIHRvIHNpZ24sIGVuY29kZWQgYXMgYSBiYXNlNjQgc3RyaW5nLlxuICAgICAgICpcbiAgICAgICAqIE5vdGUgdGhhdCBjZXJ0YWluIHNpZ25pbmcga2V5cyBpbXBvc2UgYWRkaXRpb25hbCByZXF1aXJlbWVudHMgb24gdGhlIGNvbnRlbnRzIG9mXG4gICAgICAgKiB0aGUgbWVzc2FnZS4gRm9yIGV4YW1wbGUsIFNlY3AyNTZrMSBrZXlzIHJlcXVpcmUgdGhhdCB0aGUgbWVzc2FnZSBpcyAzMiBieXRlcyBsb25nLlxuICAgICAgICovXG4gICAgICBtZXNzYWdlX2Jhc2U2NDogc3RyaW5nO1xuICAgIH07XG4gICAgQmxvYlNpZ25SZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgc2lnbmF0dXJlLiAqL1xuICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICBCdGNTaWdoYXNoVHlwZTpcbiAgICAgIHwgXCJBbGxcIlxuICAgICAgfCBcIk5vbmVcIlxuICAgICAgfCBcIlNpbmdsZVwiXG4gICAgICB8IFwiQWxsUGx1c0FueW9uZUNhblBheVwiXG4gICAgICB8IFwiTm9uZVBsdXNBbnlvbmVDYW5QYXlcIlxuICAgICAgfCBcIlNpbmdsZVBsdXNBbnlvbmVDYW5QYXlcIjtcbiAgICBCdGNTaWduUmVxdWVzdDoge1xuICAgICAgc2lnX2tpbmQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjU2lnbmF0dXJlS2luZFwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGJpdGNvaW4gdHJhbnNhY3Rpb24gdG8gc2lnbiAqL1xuICAgICAgdHg6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICB9O1xuICAgIEJ0Y1NpZ25SZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGhleC1lbmNvZGVkIHNpZ25hdHVyZSBpbiBjb21wYWN0IGZvcm1hdC5cbiAgICAgICAqIEBleGFtcGxlIDB4NDU0YWVmMjdjMjFkZjdkZDhmNTM3ZGM4NjlmNGNkNjUyODZjZTIzOWE1MmQzNjQ3MGY0ZDg1YmU4NWE4OTFiMDI3ODllNWZmZDg1NjBiMzJhOTgxMTBlNWQwMDk2ODAyZTRjMTQxNDVjZjZjNDRmMTBhNzY4Yzg3NzU1ZWFhNDgwMFxuICAgICAgICovXG4gICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICB9O1xuICAgIEJ0Y1NpZ25hdHVyZUtpbmQ6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU2VncmVnYXRlZCBXaXRuZXNzICovXG4gICAgICBTZWd3aXQ6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUcmFuc2FjdGlvbiBpbnB1dCBpbmRleFxuICAgICAgICAgKiBAZXhhbXBsZSAwXG4gICAgICAgICAqL1xuICAgICAgICBpbnB1dF9pbmRleDogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFNjcmlwdFxuICAgICAgICAgKiBAZXhhbXBsZSAweDc2YTkxNDc5MDkxOTcyMTg2YzQ0OWViMWRlZDIyYjc4ZTQwZDAwOWJkZjAwODk4OGFjXG4gICAgICAgICAqL1xuICAgICAgICBzY3JpcHRfY29kZTogc3RyaW5nO1xuICAgICAgICBzaWdoYXNoX3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjU2lnaGFzaFR5cGVcIl07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBBbW91bnQgaW4gc2F0b3NoaXNcbiAgICAgICAgICogQGV4YW1wbGUgMTAwMDAwMFxuICAgICAgICAgKi9cbiAgICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERlc2NyaWJlcyBob3cgdG8gZGVyaXZlIGEgV2ViQXV0aG4gY2hhbGxlbmdlIHZhbHVlLiAqL1xuICAgIENoYWxsZW5nZVBpZWNlczoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBiYXNlNjR1cmwgZW5jb2Rpbmcgb2YgVVRGOCBKU09OLiBUaGUgZGF0YSBpbiB0aGF0IEpTT04gaXMgZW5kcG9pbnQgc3BlY2lmaWMsIGFuZCBkZXNjcmliZXMgd2hhdCB0aGlzIEZJRE8gY2hhbGxlbmdlIHdpbGwgYmUgdXNlZCBmb3IuXG4gICAgICAgKlxuICAgICAgICogQ2xpZW50cyBjYW4gdXNlIGBwcmVpbWFnZWAgYWxvbmcgd2l0aCBgcmFuZG9tX3NlZWRgIHRvIHJlY29uc3RydWN0IHRoZSBjaGFsbGVuZ2UgbGlrZSBzbzpcbiAgICAgICAqXG4gICAgICAgKiBgY2hhbGxlbmdlID0gSE1BQy1TSEEyNTYoa2V5PXJhbmRvbV9zZWVkLCBtZXNzYWdlPXByZWltYWdlKWBcbiAgICAgICAqL1xuICAgICAgcHJlaW1hZ2U6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSByYW5kb20gc2VlZCB0aGF0IHByZXZlbnRzIHJlcGxheSBhdHRhY2tzICovXG4gICAgICByYW5kb21fc2VlZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNlc3Npb24gaW5mb3JtYXRpb24gc2VudCB0byB0aGUgY2xpZW50LlxuICAgICAqIFRoaXMgc3RydWN0IHdvcmtzIGluIHRhbmRlbSB3aXRoIGl0cyBzZXJ2ZXItc2lkZSBjb3VudGVycGFydCBbYFNlc3Npb25EYXRhYF0uXG4gICAgICovXG4gICAgQ2xpZW50U2Vzc2lvbkluZm86IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVG9rZW4gdG8gdXNlIGZvciBhdXRob3JpemF0aW9uLiAqL1xuICAgICAgYXV0aF90b2tlbjogc3RyaW5nO1xuICAgICAgYXV0aF90b2tlbl9leHA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIEVwb2NoIGF0IHdoaWNoIHRoZSB0b2tlbiB3YXMgbGFzdCByZWZyZXNoZWRcbiAgICAgICAqL1xuICAgICAgZXBvY2g6IG51bWJlcjtcbiAgICAgIGVwb2NoX3Rva2VuOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkIzMlwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVG9rZW4gdG8gdXNlIGZvciByZWZyZXNoaW5nIHRoZSBgKGF1dGgsIHJlZnJlc2gpYCB0b2tlbiBwYWlyICovXG4gICAgICByZWZyZXNoX3Rva2VuOiBzdHJpbmc7XG4gICAgICByZWZyZXNoX3Rva2VuX2V4cDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTZXNzaW9uIElEICovXG4gICAgICBzZXNzaW9uX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBDb25maWd1cmVkTWZhOlxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgdHlwZTogXCJ0b3RwXCI7XG4gICAgICAgIH1cbiAgICAgIHwge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSB1bmlxdWUgY3JlZGVudGlhbCBpZCAqL1xuICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIG5hbWUgZ2l2ZW4gdG8gdGhlIGtleSAqL1xuICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICB0eXBlOiBcImZpZG9cIjtcbiAgICAgICAgfTtcbiAgICBDcmVhdGVLZXlJbXBvcnRLZXlSZXNwb25zZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJbXBvcnRLZXlcIl0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBhdHRlc3RhdGlvbiBkb2N1bWVudCBmcm9tIGEgc2VjdXJlIGVuY2xhdmUsIGluY2x1ZGluZyBhblxuICAgICAgICogUlNBIHNpZ25pbmcga2V5IHVzZWQgdG8gc2lnbiB0aGUgY29udGVudHMgb2YgdGhpcyBtZXNzYWdlLlxuICAgICAgICovXG4gICAgICBlbmNsYXZlX2F0dGVzdGF0aW9uOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBSU0EtUFNTLVNIQTI1NiBzaWduYXR1cmUgb24gdGhlIHB1YmxpYyBrZXkgYW5kIGVuY3J5cHRlZFxuICAgICAgICogc2VjcmV0cyBhdHRlc3RpbmcgdG8gdGhlaXIgZ2VuZXJhdGlvbiBpbnNpZGUgYSBzZWN1cmUgZW5jbGF2ZS5cbiAgICAgICAqL1xuICAgICAgZW5jbGF2ZV9zaWduYXR1cmU6IHN0cmluZztcbiAgICB9O1xuICAgIENyZWF0ZUtleVJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIENoYWluIGlkIGZvciB3aGljaCB0aGUga2V5IGlzIGFsbG93ZWQgdG8gc2lnbiBtZXNzYWdlc1xuICAgICAgICogQGV4YW1wbGUgNVxuICAgICAgICovXG4gICAgICBjaGFpbl9pZD86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2Yga2V5cyB0byBjcmVhdGVcbiAgICAgICAqIEBleGFtcGxlIDFcbiAgICAgICAqL1xuICAgICAgY291bnQ6IG51bWJlcjtcbiAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbGxvd3MgdXNlcnMgdG8gc3BlY2lmeSBhIHVzZXIgb3RoZXIgdGhhbiB0aGVtc2VsdmVzIHRvIHJlY2VpdmUgdGhlIGtleVxuICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAqL1xuICAgICAgb3duZXI/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgQ3JlYXRlS2V5UmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGluZm8gYWJvdXQgdGhlIGNyZWF0ZWQga2V5cyAqL1xuICAgICAga2V5czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJbmZvXCJdW107XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGNyZWF0ZSByb2xlIHJlcXVlc3QgYm9keSAqL1xuICAgIENyZWF0ZVJvbGVSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSByb2xlLlxuICAgICAgICogQGV4YW1wbGUgbXlfcm9sZVxuICAgICAgICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuZXdseSBjcmVhdGVkIHJvbGUgaW5mb3JtYXRpb24gKi9cbiAgICBDcmVhdGVSb2xlUmVzcG9uc2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHJvbGUuXG4gICAgICAgKiBAZXhhbXBsZSBteV9yb2xlXG4gICAgICAgKi9cbiAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBuZXdseSBjcmVhdGVkIHJvbGVcbiAgICAgICAqIEBleGFtcGxlIFJvbGUjYmZlM2VjY2ItNzMxZS00MzBkLWIxZTUtYWMxMzYzZTZiMDZiXG4gICAgICAgKi9cbiAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIENyZWF0ZVNlc3Npb25SZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJhdGNoZXRDb25maWdcIl0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuIHJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSBzZXNzaW9uJ3MgcHVycG9zZVxuICAgICAgICogQGV4YW1wbGUgTWFuYWdlIGtleXMgb24gc2VydmVyIGZvby5iYXJcbiAgICAgICAqL1xuICAgICAgcHVycG9zZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ29udHJvbHMgd2hhdCBjYXBhYmlsaXRpZXMgdGhpcyBzZXNzaW9uIHdpbGwgaGF2ZS5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJtYW5hZ2U6a2V5OipcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBzY29wZXM6IHN0cmluZ1tdO1xuICAgIH07XG4gICAgQ3JlYXRlVG9rZW5SZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJhdGNoZXRDb25maWdcIl0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuIHJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSBwdXJwb3NlIG9mIHRoZSBrZXlcbiAgICAgICAqIEBleGFtcGxlIFZhbGlkYXRvciBTaWduaW5nXG4gICAgICAgKi9cbiAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIENvbnRyb2xzIHdoYXQgY2FwYWJpbGl0aWVzIHRoaXMgc2Vzc2lvbiB3aWxsIGhhdmUuIEJ5IGRlZmF1bHQsIGl0IGhhcyBhbGxcbiAgICAgICAqIHNpZ25pbmcgY2FwYWJpbGl0aWVzLCBpLmUuLCBqdXN0IHRoZSAnc2lnbjoqJyBzY29wZS5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJzaWduOipcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBzY29wZXM/OiBzdHJpbmdbXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQW4gZXh0ZW5kZWQgZm9ybSBvZiBgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uc2AgdGhhdCBhbGxvd3MgY2xpZW50cyB0byBkZXJpdmUgdGhlIFdlYkF1dGhuIGNoYWxsZW5nZVxuICAgICAqIGZyb20gYSBzdHJ1Y3R1cmVkIHByZWltYWdlLlxuICAgICAqXG4gICAgICogVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHdlYnVhdGhuIHNpZ25hdHVyZSBjYW4gb25seSBiZSB1c2VkIGZvciBhIHNwZWNpZmljIHB1cnBvc2VcbiAgICAgKi9cbiAgICBDcmVhdGlvbk9wdGlvbnNXaXRoSGFzaDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDaGFsbGVuZ2VQaWVjZXNcIl0gJiB7XG4gICAgICBvcHRpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnNcIl07XG4gICAgfTtcbiAgICBDdWJlU2lnbmVyVXNlckluZm86IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIG11bHRpLWZhY3RvciBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGNvbmZpZ3VyZWQgZm9yIHRoaXMgdXNlciAqL1xuICAgICAgY29uZmlndXJlZF9tZmE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29uZmlndXJlZE1mYVwiXVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTZXQgb25jZSB0aGUgdXNlciBzdWNjZXNzZnVsbHkgbG9ncyBpbnRvIEN1YmVTaWduZXIgKi9cbiAgICAgIGluaXRpYWxpemVkOiBib29sZWFuO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBDdWJlU2lnbmVyJ3MgdXNlciBpZGVudGlmaWVyICovXG4gICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gcHJvZHVjZWQgYnkgYSBzdWNjZXNzZnVsIGRlcG9zaXRcbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcImNoYWluX2lkXCI6IDUsXG4gICAgICogICBcImRlcG9zaXRfdHhuXCI6IHtcbiAgICAgKiAgICAgXCJkYXRhXCI6IFwiMHguLi5cIixcbiAgICAgKiAgICAgXCJ0b1wiOiBcIjB4ZmY1MGVkM2QwZWMwM2FjMDFkNGM3OWFhZDc0OTI4YmZmNDhhN2IyYlwiLFxuICAgICAqICAgICBcInZhbHVlXCI6IFwiMHgxYmMxNmQ2NzRlYzgwMDAwMFwiXG4gICAgICogICB9LFxuICAgICAqICAgXCJuZXdfdmFsaWRhdG9yX3BrXCI6IFwiOTcwMGZiYjhjOTA2OTQyNDQyYzJhNWIzYWQ3NDk4ZjI3YWVkZGEyNTM3ODZhNmZiYWE4ZmVmNDdmYjdhZjIzNGU1MGNmMmNjZTgxNWE1NTMwODc5OTJhZTU2NWQ0OGRhXCJcbiAgICAgKiB9XG4gICAgICovXG4gICAgRGVwb3NpdFR4bjoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ2hhaW4gSUQgZm9yIHdoaWNoIHRoZSBkZXBvc2l0IHRyYW5zYWN0aW9uIHdhcyBjcmVhdGVkXG4gICAgICAgKi9cbiAgICAgIGNoYWluX2lkOiBudW1iZXI7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBkZXBvc2l0IHRyYW5zYWN0aW9uLiBJbmNsdWRlcyBvbmx5IGB0b2AsIGB2YWx1ZWAsIGFuZCBgZGF0YWAgZmllbGRzLiAqL1xuICAgICAgZGVwb3NpdF90eG46IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGhleC1lbmNvZGVkIGNvbXByZXNzZWQgZm9ybSBvZiB0aGUgbmV3IHZhbGlkYXRvciBCTFMgcHVibGljIGtleSAqL1xuICAgICAgbmV3X3ZhbGlkYXRvcl9wazogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSB0eXBlIG9mIGRlcG9zaXQgdG8gcGVyZm9ybVxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgRGVwb3NpdFR5cGU6IFwiQ2Fub25pY2FsXCIgfCBcIldyYXBwZXJcIjtcbiAgICBEZXJpdmVLZXlSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPbmUgb3IgbW9yZSBkZXJpdmF0aW9uIHBhdGhzIGZyb20gd2hpY2ggdG8gZGVyaXZlIGtleXMuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwibS80NCcvNjAnLzAnLzAvMFwiLFxuICAgICAgICogICBcIm0vNDQnLzkwMDAnLzAnLzAvMFwiXG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIGRlcml2YXRpb25fcGF0aDogc3RyaW5nW107XG4gICAgICBrZXlfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlUeXBlXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gTWF0ZXJpYWwtaWQgb2YgdGhlIG1uZW1vbmljIHRvIHVzZSBmb3IgZGVyaXZhdGlvblxuICAgICAgICogQGV4YW1wbGUgMHg5ZjA3YmU4MmQ5MzRmY2I1ZDBmNzVkZDI0YzJkZmVhOGE4NWE0ZDBjMjg5ZDU4ODI4YjM1MzdmYWUyNGQzMmI4XG4gICAgICAgKi9cbiAgICAgIG1uZW1vbmljX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBFaXAxOTFPcjcxMlNpZ25SZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgc2lnbmF0dXJlIGNvbXByaXNpbmcgNjUgYnl0ZXMgaW4gdGhlIGZvcm1hdCByZXF1aXJlZFxuICAgICAgICogYnkgZWNyZWNvdmVyOiAzMi1ieXRlIHIsIDMyLWJ5dGUgcywgYW5kIG9uZS1ieXRlIHJlY292ZXJ5LWlkIHZcbiAgICAgICAqIHdoaWNoIGlzIGVpdGhlciAyNyBvciAyOC5cbiAgICAgICAqIEBleGFtcGxlIDB4NDM1NWM0N2Q2MzkyNGU4YTcyZTUwOWI2NTAyOTA1MmViNmMyOTlkNTNhMDRlMTY3YzU3NzVmZDQ2Njc1MWM5ZDA3Mjk5OTM2ZDMwNGMxNTNmNjQ0M2RmYTA1ZjQwZmYwMDdkNzI5MTFiNmY3MjMwN2Y5OTYyMzE2MDViOTE1NjIxY1xuICAgICAgICovXG4gICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICB9O1xuICAgIEVpcDE5MVNpZ25SZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBFSVAtMTkxIGRhdGEgdG8gc2lnbiBhcyBoZXgtZW5jb2RlZCBieXRlcy5cbiAgICAgICAqIEBleGFtcGxlIDB4ZGVhZGJlZWYxM2MwZmZlZVxuICAgICAgICovXG4gICAgICBkYXRhOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcImNoYWluX2lkXCI6IDEzMzcsXG4gICAgICogICBcInR5cGVkX2RhdGFcIjoge1xuICAgICAqICAgICBcImRvbWFpblwiOiB7XG4gICAgICogICAgICAgXCJjaGFpbklkXCI6IDEzMzcsXG4gICAgICogICAgICAgXCJuYW1lXCI6IFwiRXRoZXIgTWFpbFwiLFxuICAgICAqICAgICAgIFwidmVyaWZ5aW5nQ29udHJhY3RcIjogXCIweENjQ0NjY2NjQ0NDQ2NDQ0NDQ0NjQ2NDY2NDY0NDQ2NDY2NjY2NjY0NcIixcbiAgICAgKiAgICAgICBcInZlcnNpb25cIjogXCIxXCJcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgXCJtZXNzYWdlXCI6IHtcbiAgICAgKiAgICAgICBcImNvbnRlbnRzXCI6IFwiSGVsbG8sIEJvYiFcIixcbiAgICAgKiAgICAgICBcImZyb21cIjoge1xuICAgICAqICAgICAgICAgXCJuYW1lXCI6IFwiQ293XCIsXG4gICAgICogICAgICAgICBcIndhbGxldHNcIjogW1xuICAgICAqICAgICAgICAgICBcIjB4Q0QyYTNkOUY5MzhFMTNDRDk0N0VjMDVBYkM3RkU3MzREZjhERDgyNlwiLFxuICAgICAqICAgICAgICAgICBcIjB4RGVhRGJlZWZkRUFkYmVlZmRFYWRiRUVGZGVhZGJlRUZkRWFEYmVlRlwiXG4gICAgICogICAgICAgICBdXG4gICAgICogICAgICAgfSxcbiAgICAgKiAgICAgICBcInRvXCI6IHtcbiAgICAgKiAgICAgICAgIFwibmFtZVwiOiBcIkJvYlwiLFxuICAgICAqICAgICAgICAgXCJ3YWxsZXRzXCI6IFtcbiAgICAgKiAgICAgICAgICAgXCIweGJCYkJCQkJiYkJCQmJiYkJiYkJiYmJiQkJiQmJiYmJCYkJiYkJCYkJcIixcbiAgICAgKiAgICAgICAgICAgXCIweEIwQmRhQmVhNTdCMEJEQUJlQTU3YjBiZEFCRUE1N2IwQkRhYkVhNTdcIixcbiAgICAgKiAgICAgICAgICAgXCIweEIwQjBiMGIwYjBiMEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIlxuICAgICAqICAgICAgICAgXVxuICAgICAqICAgICAgIH1cbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgXCJwcmltYXJ5VHlwZVwiOiBcIk1haWxcIixcbiAgICAgKiAgICAgXCJ0eXBlc1wiOiB7XG4gICAgICogICAgICAgXCJFSVA3MTJEb21haW5cIjogW1xuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJuYW1lXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICogICAgICAgICB9LFxuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJ2ZXJzaW9uXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICogICAgICAgICB9LFxuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJjaGFpbklkXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcInVpbnQyNTZcIlxuICAgICAqICAgICAgICAgfSxcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwidmVyaWZ5aW5nQ29udHJhY3RcIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwiYWRkcmVzc1wiXG4gICAgICogICAgICAgICB9XG4gICAgICogICAgICAgXSxcbiAgICAgKiAgICAgICBcIkdyb3VwXCI6IFtcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwibmFtZVwiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAqICAgICAgICAgfSxcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwibWVtYmVyc1wiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJQZXJzb25bXVwiXG4gICAgICogICAgICAgICB9XG4gICAgICogICAgICAgXSxcbiAgICAgKiAgICAgICBcIk1haWxcIjogW1xuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJmcm9tXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcIlBlcnNvblwiXG4gICAgICogICAgICAgICB9LFxuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJ0b1wiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJQZXJzb25cIlxuICAgICAqICAgICAgICAgfSxcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwiY29udGVudHNcIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgKiAgICAgICAgIH1cbiAgICAgKiAgICAgICBdLFxuICAgICAqICAgICAgIFwiUGVyc29uXCI6IFtcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwibmFtZVwiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAqICAgICAgICAgfSxcbiAgICAgKiAgICAgICAgIHtcbiAgICAgKiAgICAgICAgICAgXCJuYW1lXCI6IFwid2FsbGV0c1wiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJhZGRyZXNzW11cIlxuICAgICAqICAgICAgICAgfVxuICAgICAqICAgICAgIF1cbiAgICAgKiAgICAgfVxuICAgICAqICAgfVxuICAgICAqIH1cbiAgICAgKi9cbiAgICBFaXA3MTJTaWduUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGNoYWluLWlkIHRvIHdoaWNoIHRoaXMgdHlwZWQgZGF0YSB3aWxsIGJlIHNlbnRcbiAgICAgICAqL1xuICAgICAgY2hhaW5faWQ6IG51bWJlcjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRUlQLTcxMiB0eXBlZCBkYXRhLiBSZWZlciB0byB0aGUgSlNPTiBzY2hlbWEgZGVmaW5lZCBpbiBFSVAtNzEyLiAqL1xuICAgICAgdHlwZWRfZGF0YTogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIH07XG4gICAgLyoqIEBkZWZhdWx0IG51bGwgKi9cbiAgICBFbXB0eTogdW5rbm93bjtcbiAgICBFbXB0eUltcGw6IHtcbiAgICAgIHN0YXR1czogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEVwb2NoIGlzIGEgcXVvdGVkIGB1aW50NjRgLlxuICAgICAqIEBleGFtcGxlIDI1NlxuICAgICAqL1xuICAgIEVwb2NoOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAqIEBkZXNjcmlwdGlvbiBEYXRlVGltZSBtZWFzdXJlZCBpbiBzZWNvbmRzIHNpbmNlIHVuaXggZXBvY2guXG4gICAgICogQSB3cmFwcGVyIHR5cGUgZm9yIHNlcmlhbGl6YXRpb24gdGhhdCBlbmNvZGVzIGEgW2BTeXN0ZW1UaW1lYF0gYXMgYSBbYHU2NGBdXG4gICAgICogcmVwcmVzZW50aW5nIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSBbYFN5c3RlbVRpbWU6OlVOSVhfRVBPQ0hgXS5cbiAgICAgKi9cbiAgICBFcG9jaERhdGVUaW1lOiBudW1iZXI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgc3RydWN0dXJlIG9mIEVycm9yUmVzcG9uc2UgbXVzdCBtYXRjaCB0aGUgcmVzcG9uc2UgdGVtcGxhdGUgdGhhdCBBV1MgdXNlcyAqL1xuICAgIEVycm9yUmVzcG9uc2U6IHtcbiAgICAgIGFjY2VwdGVkPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFZhbHVlXCJdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRXJyb3IgbWVzc2FnZSAqL1xuICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCByZXF1ZXN0IGlkZW50aWZpZXIgKi9cbiAgICAgIHJlcXVlc3RfaWQ/OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcImNoYWluX2lkXCI6IDQzMTEzLFxuICAgICAqICAgXCJ0eFwiOiB7XG4gICAgICogICAgIFwiY2hhaW5faWRcIjogXCIweGE4NjlcIixcbiAgICAgKiAgICAgXCJnYXNcIjogXCIweDYxYTgwXCIsXG4gICAgICogICAgIFwibWF4RmVlUGVyR2FzXCI6IFwiMHg5NTAyRjkwMFwiLFxuICAgICAqICAgICBcIm1heFByaW9yaXR5RmVlUGVyR2FzXCI6IFwiMHg1MFwiLFxuICAgICAqICAgICBcIm5vbmNlXCI6IFwiMHhiXCIsXG4gICAgICogICAgIFwidG9cIjogXCIweGYwMGJhMTJmMDAwMDAwMDBiNDEyMTIwMDAwMGYwMGMwZmZlZWYwMGRcIixcbiAgICAgKiAgICAgXCJ0eXBlXCI6IFwiMHgwMlwiLFxuICAgICAqICAgICBcInZhbHVlXCI6IFwiMHgxMDAwMDAwMDAwMFwiXG4gICAgICogICB9XG4gICAgICogfVxuICAgICAqL1xuICAgIEV0aDFTaWduUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGNoYWluIGlkIHRvIHNldCBpbiB0aGUgZ2l2ZW4gdHJhbnNhY3Rpb24uXG4gICAgICAgKi9cbiAgICAgIGNoYWluX2lkOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBFSVAtMjcxOCB0eXBlZCB0cmFuc2FjdGlvbiAoc2VlIHRoZSBbZXRoZXJzLXJzXG4gICAgICAgKiBpbnRlcmZhY2VdKGh0dHBzOi8vZG9jcy5ycy9ldGhlcnMvbGF0ZXN0L2V0aGVycy90eXBlcy9zdHJ1Y3QuRWlwMTU1OVRyYW5zYWN0aW9uUmVxdWVzdC5odG1sKSkgdHlwZXMsIGluY2x1ZGluZyBFSVAtMTU1OSB0cmFuc2FjdGlvbnMgKGB7IFwidHlwZVwiOiBcIjB4MDJcIiAuLi4gfWApLCBhbmQgbGVnYWN5XG4gICAgICAgKiB0cmFuc2FjdGlvbnMgKGB7IFwidHlwZVwiOiBcIjB4MDBcIiAuLi4gfWApLiBBbGwgdmFsdWVzIGluIHRoZSB0cmFuc2FjdGlvbiBhcmUgZXhwZWN0ZWRcbiAgICAgICAqIHRvIGJlICgweC1wcmVmaXhlZCBvciBub3QpIGhleCBzdHJpbmdzIG9yIGJ5dGUgYXJyYXlzLlxuICAgICAgICovXG4gICAgICB0eDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIH07XG4gICAgRXRoMVNpZ25SZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgUkxQIGVuY29kaW5nIG9mIHRoZSB0cmFuc2FjdGlvbiBhbmQgaXRzIHNpZ25hdHVyZVxuICAgICAgICogQGV4YW1wbGUgMHgyMjg5NTExODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyMDFkNTg2NTZiMGUyMmFhYTY4ZmRjNjkyZGI0MTk3OTA5OGMzODg2ZWQzMzAxNWQ3NDY3ZGU5MjExNjA5Y2RhYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwOGIwYzI5MDAzMjRkM2ZmOWFkZmJhN2ZkZmU1YWYzZjliMmNkYmVlZjdiMjgwNDM3YmJmMWIxYzU5YTA5M2Q2MTVhZmUzZTVkZmVkOTYyMmI1NDBjZGQ5YjQ5YjNjNWFkMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDkwMTFhZGJjYzNiYzljMDMwN2JiMDdmMzdkZGExYTFhOWM2OWQyZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjA5MDNkYjg1MjU2NzRiOGU3OTA0ZjliN2Q3ZDllYzU1YTBhNDJkMzNjZjU4YmUyNTQ2OWIwYzIxYmJiNmQwNjE3MmJjNWJiNWZkMWFlZDhlNGYzNTkzNjk2ODk1ODExNmIwNjE5NTUzYzJjYjFjNTJlNzMyMzA3NGM2ZjhlYjNkNWE3MDc0ZmM2NTgwMTQ4ZGY5MDc4MzdmYTNiMTY0YWQ3ZmJjMjI4OGRhZDFlOGE1YjAyMTA5NWI1N2M4YTM2ZDRcbiAgICAgICAqL1xuICAgICAgcmxwX3NpZ25lZF90eDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJldGgyX3NpZ25fcmVxdWVzdFwiOiB7XG4gICAgICogICAgIFwiYWdncmVnYXRpb25fc2xvdFwiOiB7XG4gICAgICogICAgICAgXCJzbG90XCI6IFwiMzZcIlxuICAgICAqICAgICB9LFxuICAgICAqICAgICBcImZvcmtfaW5mb1wiOiB7XG4gICAgICogICAgICAgXCJmb3JrXCI6IHtcbiAgICAgKiAgICAgICAgIFwiY3VycmVudF92ZXJzaW9uXCI6IFwiMHg0MjQyNDI0MlwiLFxuICAgICAqICAgICAgICAgXCJlcG9jaFwiOiBcIjBcIixcbiAgICAgKiAgICAgICAgIFwicHJldmlvdXNfdmVyc2lvblwiOiBcIjB4NDI0MjQyNDJcIlxuICAgICAqICAgICAgIH0sXG4gICAgICogICAgICAgXCJnZW5lc2lzX3ZhbGlkYXRvcnNfcm9vdFwiOiBcIjB4OWQxM2Q2MTIxMmMwNjdlMDJjZThlNjA4YTcwMDdlMmMzYjAyNTcxZTllNmYyN2ZmNDVkZmE5MWJmMjdjODcwYlwiXG4gICAgICogICAgIH0sXG4gICAgICogICAgIFwic2lnbmluZ1Jvb3RcIjogXCIweDljNTdlNzdjNDk2NTcyNzU0MmI5MzM3ZGY2NzU2Zjk0ODQ2NGJjYTM4NTliZWE2ZWQzYzBlYzY2MDBkODk4MmFcIixcbiAgICAgKiAgICAgXCJ0eXBlXCI6IFwiQUdHUkVHQVRJT05fU0xPVFwiXG4gICAgICogICB9LFxuICAgICAqICAgXCJuZXR3b3JrXCI6IFwibWFpbm5ldFwiXG4gICAgICogfVxuICAgICAqL1xuICAgIEV0aDJTaWduUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gU3Vic2V0IG9mIHRoZSBXZWIzU2lnbmVyIEV0aDIgQkxTIHNpZ25pbmcgcmVxdWVzdCB3aG9zZSBzY2hlbWEgaXMgZGVmaW5lZFxuICAgICAgICogW2hlcmVdKGh0dHBzOi8vY29uc2Vuc3lzLmdpdGh1Yi5pby93ZWIzc2lnbmVyL3dlYjNzaWduZXItZXRoMi5odG1sI3RhZy9TaWduaW5nL29wZXJhdGlvbi9FVEgyX1NJR04pLlxuICAgICAgICogV2UgaGFuZGxlIGRlcG9zaXRzIGFuZCB2b2x1bnRhcnkgZXhpdHMgc2VwYXJhdGVseS5cbiAgICAgICAqL1xuICAgICAgZXRoMl9zaWduX3JlcXVlc3Q6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICAgIG5ldHdvcms6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTmV0d29ya1wiXTtcbiAgICB9O1xuICAgIEV0aDJTaWduUmVzcG9uc2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEhleCBlbmNvZGVkIHNpZ25hdHVyZSBwcmVmaXhlZCB3aXRoIDB4IGUuZy4gXCIweDAwMDAuLi5cIlxuICAgICAgICogQGV4YW1wbGUgMHhiNGYyZWY5ZDEyYTU0ZTFmNTY5NTk2YzA3Yzk3ZDZkNzMwNTM1YjZmZmMwZDI4Nzc2MWRjNzgxMDNhODYzMjY3ODI0NzFhMDRjNzVjZTdhNmZhZWEwOGNhOWE0YTA4MzAwMzFjZGNiODkzZGE4NzExZDU0YWEyMjYxOWYxYTdlNzFiODE4NWRkZjRjNmJmZDliYWJiZDczNTk2MGUzNWU1NmJkNmVlYjg5NjI1YjA0ODUwZTdhOWVmODg0NmU1NDlcbiAgICAgICAqL1xuICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFNlbnQgZnJvbSB0aGUgY2xpZW50IHRvIHRoZSBzZXJ2ZXIgdG8gYW5zd2VyIGEgZmlkbyBjaGFsbGVuZ2UgKi9cbiAgICBGaWRvQXNzZXJ0QW5zd2VyOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgY2hhbGxlbmdlIHRoYXQgd2FzIHJldHVybmVkIGZyb20gdGhlIFBPU1QgZW5kcG9pbnQgKi9cbiAgICAgIGNoYWxsZW5nZV9pZDogc3RyaW5nO1xuICAgICAgY3JlZGVudGlhbDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsXCJdO1xuICAgIH07XG4gICAgRmlkb0Fzc2VydENoYWxsZW5nZTogKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2hhbGxlbmdlUGllY2VzXCJdICYge1xuICAgICAgb3B0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNcIl07XG4gICAgfSkgJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgY2hhbGxlbmdlLiBNdXN0IGJlIHN1cHBsaWVkIHdoZW4gYW5zd2VyaW5nIHRoZSBjaGFsbGVuZ2UuICovXG4gICAgICBjaGFsbGVuZ2VfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gU2VudCBmcm9tIHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlciB0byBhbnN3ZXIgYSBmaWRvIGNoYWxsZW5nZSAqL1xuICAgIEZpZG9DcmVhdGVDaGFsbGVuZ2VBbnN3ZXI6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBjaGFsbGVuZ2UgdGhhdCB3YXMgcmV0dXJuZWQgZnJvbSB0aGUgUE9TVCBlbmRwb2ludCAqL1xuICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgICBjcmVkZW50aWFsOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU2VudCBieSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIENvbnRhaW5zIHRoZSBjaGFsbGVuZ2UgZGF0YSB0aGF0IG11c3QgYmVcbiAgICAgKiB1c2VkIHRvIGdlbmVyYXRlIGEgbmV3IGNyZWRlbnRpYWxcbiAgICAgKi9cbiAgICBGaWRvQ3JlYXRlQ2hhbGxlbmdlUmVzcG9uc2U6IChjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNoYWxsZW5nZVBpZWNlc1wiXSAmIHtcbiAgICAgIG9wdGlvbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uc1wiXTtcbiAgICB9KSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBjaGFsbGVuZ2UuIE11c3QgYmUgc3VwcGxpZWQgd2hlbiBhbnN3ZXJpbmcgdGhlIGNoYWxsZW5nZS4gKi9cbiAgICAgIGNoYWxsZW5nZV9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEZWNsYXJlcyBpbnRlbnQgdG8gcmVnaXN0ZXIgYSBuZXcgRklETyBrZXkgKi9cbiAgICBGaWRvQ3JlYXRlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgbmV3IGZpZG8gY3JlZGVudGlhbFxuICAgICAgICogQGV4YW1wbGUgV29yayBZdWJpa2V5XG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTcGVjaWZpZXMgYSBmb3JrIG9mIHRoZSBgQmVhY29uQ2hhaW5gLCB0byBwcmV2ZW50IHJlcGxheSBhdHRhY2tzLlxuICAgICAqIFRoZSBzY2hlbWEgb2YgYEZvcmtgIGlzIGRlZmluZWQgaW4gdGhlIFtCZWFjb24gY2hhaW5cbiAgICAgKiBzcGVjXShodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW0vY29uc2Vuc3VzLXNwZWNzL2Jsb2IvdjEuMC4xL3NwZWNzL3BoYXNlMC9iZWFjb24tY2hhaW4ubWQjZm9yaykuXG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJjdXJyZW50X3ZlcnNpb25cIjogXCIweDAwMDAxMDIwXCIsXG4gICAgICogICBcImVwb2NoXCI6IFwiMFwiLFxuICAgICAqICAgXCJwcmV2aW91c192ZXJzaW9uXCI6IFwiMHgwMDAwMTAyMFwiXG4gICAgICogfVxuICAgICAqL1xuICAgIEZvcms6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEN1cnJlbnQgZm9yayB2ZXJzaW9uLlxuICAgICAgICogQGV4YW1wbGUgMHg0MzQzNDM0M1xuICAgICAgICovXG4gICAgICBjdXJyZW50X3ZlcnNpb246IHN0cmluZztcbiAgICAgIGVwb2NoOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUHJldmlvdXMgZm9yayB2ZXJzaW9uLlxuICAgICAgICogQGV4YW1wbGUgMHg0MjQyNDI0MlxuICAgICAgICovXG4gICAgICBwcmV2aW91c192ZXJzaW9uOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gR2VuZXNpcyBkYXRhIGFzIGRlZmluZWQgaW4gdGhlIFtCZWFjb24gQVBJXG4gICAgICogc3BlY10oaHR0cHM6Ly9ldGhlcmV1bS5naXRodWIuaW8vYmVhY29uLUFQSXMvIy9CZWFjb24vZ2V0R2VuZXNpcykuXG4gICAgICogWW91IGNhbiBnZXQgdGhlIGdlbmVzaXMgZGF0YSBmcm9tIHRoZSBCZWFjb24gbm9kZSdzIGAvZXRoL3YxL2JlYWNvbi9nZW5lc2lzYCBlbmQtcG9pbnQuXG4gICAgICogVGhpcyBzdHJ1Y3QgZGVmaW5pdGlvbiBpcyBvcmlnaW5hbGx5IGZyb20gbGlnaHRob3VzZSdzIGV0aDIuXG4gICAgICovXG4gICAgR2VuZXNpc0RhdGE6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEdlbmVzaXMgZm9yayB2ZXJzaW9uLlxuICAgICAgICogQGV4YW1wbGUgMHg0MjQyNDI0MlxuICAgICAgICovXG4gICAgICBnZW5lc2lzX2ZvcmtfdmVyc2lvbjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gR2VuZXNpcyB0aW1lXG4gICAgICAgKiBAZXhhbXBsZSAxNjc5MzI2NDQ5XG4gICAgICAgKi9cbiAgICAgIGdlbmVzaXNfdGltZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gR2VuZXNpcyB2YWxpZGF0b3JzIHJvb3QuXG4gICAgICAgKiBAZXhhbXBsZSAweDI3MGQ0M2U3NGNlMzQwZGU0YmNhMmIxOTM2YmVjYTBmNGY1NDA4ZDllNzhhZWM0ODUwOTIwYmFmNjU5ZDViNjlcbiAgICAgICAqL1xuICAgICAgZ2VuZXNpc192YWxpZGF0b3JzX3Jvb3Q6IHN0cmluZztcbiAgICB9O1xuICAgIEdldEtleXNJbk9yZ1JlcXVlc3Q6IHtcbiAgICAgIGtleV90eXBlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlUeXBlXCJdIHwgbnVsbDtcbiAgICB9O1xuICAgIEdldFVzZXJzSW5PcmdSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbGlzdCBvZiB1c2VycyBpbiB0aGUgb3JnICovXG4gICAgICB1c2VyczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VySWRJbmZvXCJdW107XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFN0YXRzIHBlcnRhaW5pbmcgdGhlIHRoZSBzZW5kZXIgYGN1YmUzc2lnbmVyYCBpbnN0YW5jZSAqL1xuICAgIEhlYXJ0YmVhdFJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiByZXF1ZXN0cyBjdXJyZW50bHkgYWN0aXZlIChyZWNlaXZlZCBidXQgbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHByb2Nlc3NlZCB5ZXQpXG4gICAgICAgKi9cbiAgICAgIGN1cnJlbnRfbnVtX3JlcXVlc3RzX2FjdGl2ZTogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIHJlcXVlc3RzIGN1cnJlbnRseSBiZWluZyBwcm9jZXNzZWQgYnkgY3ViZTNzaWduZXJcbiAgICAgICAqL1xuICAgICAgY3VycmVudF9udW1fcmVxdWVzdHNfcHJvY2Vzc2luZzogbnVtYmVyO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEbyBub3QgcmVjb3JkIG1ldHJpYyBkYXRhIGZyb20gdGhpcyBoZWFydGJlYXQgKi9cbiAgICAgIGlnbm9yZT86IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgbmV3IHJlcXVlc3RzIGR1cmluZyB0aGlzIGhlYXJ0YmVhdCBwZXJpb2RcbiAgICAgICAqL1xuICAgICAgbnVtX3JlcXVlc3RzOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgcmVxdWVzdHMgdGhhdCBmYWlsZWQgZHVyaW5nIHRoaXMgaGVhcnRiZWF0IHBlcmlvZFxuICAgICAgICovXG4gICAgICBudW1fcmVxdWVzdHNfZmFpbGVkOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgcmVxdWVzdHMgd2VyZSByZXRyaWVkIGR1cmluZyB0aGlzIGhlYXJ0YmVhdCBwZXJpb2RcbiAgICAgICAqL1xuICAgICAgbnVtX3JlcXVlc3RzX3JldHJpZWQ6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiByZXRyaWVzIGR1cmluZyB0aGlzIGhlYXJ0YmVhdCBwZXJpb2RcbiAgICAgICAqL1xuICAgICAgbnVtX3JldHJpZXM6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiB0aW1lcyBhdXRoIHRva2VuIHdhcyByZWZyZXNoZWQgZHVyaW5nIHRoaXMgaGVhcnRiZWF0IHBlcmlvZFxuICAgICAgICovXG4gICAgICBudW1fdG9rZW5fcmVmcmVzaGVzPzogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIHRpbWVzIGF1dGggdG9rZW4gcmVmcmVzaCBmYWlsZWQgZHVyaW5nIHRoaXMgaGVhcnRiZWF0IHBlcmlvZFxuICAgICAgICovXG4gICAgICBudW1fdG9rZW5fcmVmcmVzaGVzX2ZhaWxlZD86IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFZlcnNpb24gb2YgdGhlIHByb3h5IHNlbmRpbmcgdGhlIGhlYXJ0IGJlYXQgcmVxdWVzdFxuICAgICAgICpcbiAgICAgICAqIFRPRE86IE1ha2Ugbm9uLW9wdGlvbmFsIG9uY2Ugd2UgZG8gbm90IHN1cHBvcnQgcHJveGllcyB3aXRob3V0IHZlcnNpb24gaW5mb3JtYXRpb25cbiAgICAgICAqL1xuICAgICAgcHJveHlfdmVyc2lvbj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBDYXB0dXJlcyBhbGwgdGhlIHJlbGV2YW50IGluZm8gKGluY2x1ZGluZyB0aGUgcmVxdWVzdCBib2R5KSBhYm91dCByZXF1ZXN0cyB0aGF0IHJlcXVpcmUgTUZBLlxuICAgICAqIFdlIHVzZSB0aGlzIHRvIHZlcmlmeSB0aGF0IHdoZW4gYSByZXF1ZXN0IGlzIHJlc3VtZWQgKGFmdGVyIG9idGFpbmluZyBuZWNlc3NhcnkgTUZBIGFwcHJvdmFscylcbiAgICAgKiBpdCBpcyBleGFjdGx5IHRoZSBzYW1lIGFzIGl0IG9yaWdpbmFsbHkgd2FzLlxuICAgICAqL1xuICAgIEh0dHBSZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEhUVFAgcmVxdWVzdCBib2R5ICovXG4gICAgICBib2R5PzogdW5rbm93bjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSFRUUCBtZXRob2Qgb2YgdGhlIHJlcXVlc3QgKi9cbiAgICAgIG1ldGhvZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIVFRQIHBhdGggb2YgdGhlIHJlcXVlc3QgKGluY2x1ZGluZyBob3N0IG9yIG5vdD8pICovXG4gICAgICBwYXRoOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUHJvb2YgdGhhdCBhbiBlbmQtdXNlciBwcm92aWRlZCBDdWJlU2lnbmVyIHdpdGggYSB2YWxpZCBhdXRoIHRva2VuXG4gICAgICogKGVpdGhlciBhbiBPSURDIHRva2VuIG9yIGEgQ3ViZVNpZ25lciBzZXNzaW9uIHRva2VuKVxuICAgICAqL1xuICAgIElkZW50aXR5UHJvb2Y6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9JREMgYXVkaWVuY2U7IHNldCBvbmx5IGlmIHRoZSBwcm9vZiB3YXMgb2J0YWluZWQgYnkgdXNpbmcgT0lEQyB0b2tlbi5cbiAgICAgICAqXG4gICAgICAgKiBJbiBvdGhlciB3b3JkcywgcHJlc2VuY2Ugb2YgdGhpcyBmaWVsZCB0ZXN0aWZpZXMgdGhhdCBhdXRob3JpemF0aW9uIHdhcyBvYnRhaW5lZCB2aWEgT0lEQy5cbiAgICAgICAqL1xuICAgICAgYXVkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBhc3NvY2lhdGVkIHdpdGggdGhlIHVzZXJcbiAgICAgICAqIEBleGFtcGxlIHVzZXJAZW1haWwuY29tXG4gICAgICAgKi9cbiAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICBleHBfZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIGlkZW50aXR5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPSURDSWRlbnRpdHlcIl0gfCBudWxsO1xuICAgICAgdXNlcl9pbmZvPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDdWJlU2lnbmVyVXNlckluZm9cIl0gfCBudWxsO1xuICAgIH0gJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFuIG9wYXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcHJvb2YgKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBJbXBvcnRLZXlSZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUltcG9ydEtleVwiXSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBzZXQgb2YgZW5jcnlwdGVkIGtleXMgdG8gYmUgaW1wb3J0ZWQgKi9cbiAgICAgIGtleV9tYXRlcmlhbDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbXBvcnRLZXlSZXF1ZXN0TWF0ZXJpYWxcIl1bXTtcbiAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgfTtcbiAgICBJbXBvcnRLZXlSZXF1ZXN0TWF0ZXJpYWw6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBjbGllbnQncyBlcGhlbWVyYWwgcHVibGljIGtleSB1c2VkIHRvIGRlcml2ZSBhIHNoYXJlZCBrZXkuXG4gICAgICAgKiBUaGlzIGlzIGEgYmFzZTY0LWVuY29kZWQsIFNFQzEtZW5jb2RlZCBQMzg0IHB1YmxpYyBrZXkuXG4gICAgICAgKi9cbiAgICAgIGNsaWVudF9wdWJsaWNfa2V5OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZW5jcnlwdGVkIGtleWluZyBtYXRlcmlhbCB0byBiZSBpbXBvcnRlZC5cbiAgICAgICAqIFRoaXMgaXMgYSBiYXNlNjQtZW5jb2RlZCBjaXBoZXJ0ZXh0LlxuICAgICAgICovXG4gICAgICBpa21fZW5jOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIHNhbHQgdmFsdWUgdXNlZCB0byBkZXJpdmUgYSBzaGFyZWQga2V5LlxuICAgICAgICogVGhpcyBpcyBhIGJhc2U2NC1lbmNvZGVkIGJ5dGUgc3RyaW5nLlxuICAgICAgICovXG4gICAgICBzYWx0OiBzdHJpbmc7XG4gICAgfTtcbiAgICBJbnZpdGVSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdXNlcidzIGVtYWlsIGFkZHJlc3NcbiAgICAgICAqIEBleGFtcGxlIGFsaWNlQGFjbWUuY29tXG4gICAgICAgKi9cbiAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIGxvZ2luIE1GQSBwb2xpY3kgKi9cbiAgICAgIG1mYV9wb2xpY3k/OiB1bmtub3duO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIncyBmdWxsIG5hbWVcbiAgICAgICAqIEBleGFtcGxlIEFsaWNlIFdvbmRlcmxhbmRcbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgcm9sZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTa2lwIHNlbmRpbmcgYW4gaW52aXRhdGlvbiBlbWFpbCB0byB0aGlzIHVzZXIgaWYgdHJ1ZS5cbiAgICAgICAqXG4gICAgICAgKiBOT1RFOiB0aGlzIGZpZWxkIGlzIGZvciBpbnRlcm5hbCB0ZXN0aW5nIHVzZSBPTkxZLiBJZiB5b3UgZG8gbm90XG4gICAgICAgKiBzZW5kIGFuIGludml0YXRpb24gZW1haWwsIHRoZSB1c2VyIHdpbGwgbmV2ZXIgYmUgYWJsZSB0byBsb2cgaW4uXG4gICAgICAgKiBAZXhhbXBsZSBmYWxzZVxuICAgICAgICovXG4gICAgICBza2lwX2VtYWlsOiBib29sZWFuO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEEgW2BLZXlQYWNrYWdlYF0gc2VyaWFsaXplZCBpbnRvIGEgZm9ybWF0IHRoYXQgZ2l2ZXMgYSB0aWRpZXIgSlNPTlxuICAgICAqIHJlcHJlc2VudGF0aW9uIHN1aXRhYmxlIGZvciBlbmNyeXB0aW9uIGluIHRoZSB1c2VyLWV4cG9ydCBmbG93LlxuICAgICAqXG4gICAgICogV2UgY29uc3RydWN0IHZhbHVlcyBvZiB0aGlzIHR5cGUgcmF0aGVyIHRoYW4gY29uc3RydWN0aW5nIGBzZXJkZV9qc29uOjpWYWx1ZWBzXG4gICAgICogZGlyZWN0bHkgd2l0aCBganNvbiEoKWAgYmVjYXVzZSB0aGlzIGFsbG93cyB1cyB0byB6ZXJvaXplIHZhbHVlcyBvbiBkcm9wLCB3aGljaFxuICAgICAqIGRvZXNuJ3Qgd29yayB3aXRoIGBzZXJkZV9qc29uOjpWYWx1ZWAuXG4gICAgICpcbiAgICAgKiBFeGFtcGxlcyBvZiBzZXJpYWxpemVkIG1hdGVyaWFsOlxuICAgICAqXG4gICAgICogLSBgSnNvbktleU1hdGVyaWFsOjpFbmdsaXNoTW5lbW9uaWNgOlxuICAgICAqXG4gICAgICogYGBgXG4gICAgICogdXNlIGN1YmlzdF9zaWduZXJfdXRpbHM6OntcbiAgICAgKiBEZXJpdmF0aW9uUGF0aCwgS2V5UGFja2FnZSwgTW5lbW9uaWMsIE1uZW1vbmljUGFja2FnZSwgU2VjcDI1NmsxUGtnLFxuICAgICAqIH07XG4gICAgICogdXNlIHNlcmRlX2pzb246Ompzb247XG4gICAgICpcbiAgICAgKiBjb25zdCBNTkVNT05JQzogJnN0ciA9IFwiZGVwb3NpdCBmaXNjYWwgYnJhaW4gc3dhcm0gc3Vycm91bmQgY291c2luIGhvcm4gZ2xhcmUgZml4IGxvdmUgcmVuZGVyIGJlbGlldmUgZ3VpZGUgc2h1ZmZsZSBzdGVtIGNyYW0gYnJvY2NvbGkgcmVzZW1ibGUgYmVhY2ggYXJ0ZWZhY3QgbGFuZ3VhZ2UgZ2lmdCBqYXIgcGVybWl0XCI7XG4gICAgICogY29uc3QgREVSX1BBVEg6ICZzdHIgPSBcIm0vNDQnLzYwJy8wJy8wLzBcIjtcbiAgICAgKiBjb25zdCBLRVlfVFlQRTogJnN0ciA9IFwiZWNkc2E6c2VjcDI1NmsxXCI7XG4gICAgICpcbiAgICAgKiBsZXQgbW5lID0gTW5lbW9uaWM6OnRyeV9mcm9tKE1ORU1PTklDKS5leHBlY3QoXCJnb29kIG1uZW1vbmljXCIpO1xuICAgICAqIGxldCBkZXJwID0gRGVyaXZhdGlvblBhdGg6OnRyeV9mcm9tKERFUl9QQVRIKS5leHBlY3QoXCJnb29kIGRlciBwYXRoXCIpO1xuICAgICAqIGxldCBtbmVfcGtnID0gTW5lbW9uaWNQYWNrYWdlOjpuZXcobW5lLCBcIlwiLCBkZXJwKTtcbiAgICAgKiBsZXQga2V5X3BrZyA9IEtleVBhY2thZ2U6OjxTZWNwMjU2azFQa2c+OjpFbmdsaXNoTW5lbW9uaWMobW5lX3BrZyk7XG4gICAgICogbGV0IGpzb25fcGtnID0ga2V5X3BrZy5pbnRvX2pzb24oS0VZX1RZUEUpO1xuICAgICAqXG4gICAgICogbGV0IGpzb25fZXhwZWN0ID0ganNvbiEoe1xuICAgICAqIFwia2V5X3R5cGVcIjogS0VZX1RZUEUsXG4gICAgICogXCJtYXRlcmlhbF90eXBlXCI6IFwiZW5nbGlzaF9tbmVtb25pY1wiLFxuICAgICAqIFwibW5lbW9uaWNcIjogTU5FTU9OSUMsXG4gICAgICogXCJwYXNzd29yZFwiOiBcIlwiLFxuICAgICAqIFwiZGVyaXZhdGlvbl9wYXRoXCI6IERFUl9QQVRILFxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogYXNzZXJ0X2VxIShcbiAgICAgKiBzZXJkZV9qc29uOjp0b192YWx1ZSgmanNvbl9wa2cpLmV4cGVjdChcImpzb24gc2VyaWFsaXphdGlvblwiKSxcbiAgICAgKiBqc29uX2V4cGVjdCxcbiAgICAgKiApO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogLSBgSnNvbktleU1hdGVyaWFsOjpSYXdTZWNyZXRgOlxuICAgICAqXG4gICAgICogYGBgXG4gICAgICogdXNlIGN1YmlzdF9zaWduZXJfdXRpbHM6OntcbiAgICAgKiBnZXRfcmFuZG9tX2J5dGVfYXJyYXksIGhleF9lbmNvZGUsIEtleVBhY2thZ2UsIFJuZ0NvcmUsIFNlY3AyNTZrMVBrZyxcbiAgICAgKiB9O1xuICAgICAqIHVzZSBzZXJkZV9qc29uOjpqc29uO1xuICAgICAqXG4gICAgICogY29uc3QgS0VZX1RZUEU6ICZzdHIgPSBcImVjZHNhOnNlY3AyNTZrMVwiO1xuICAgICAqXG4gICAgICogLy8gcmFuZG9tIDMyLWJ5dGUgc2VjcmV0XG4gICAgICogbGV0IHNrOiBbdTg7IDMyXSA9ICpnZXRfcmFuZG9tX2J5dGVfYXJyYXkoKTtcbiAgICAgKlxuICAgICAqIGxldCBrZXlfcGtnID0gS2V5UGFja2FnZTo6PFNlY3AyNTZrMVBrZz46OlNlY3JldChzayk7XG4gICAgICogbGV0IGpzb25fcGtnID0ga2V5X3BrZy5pbnRvX2pzb24oS0VZX1RZUEUpO1xuICAgICAqXG4gICAgICogbGV0IGpzb25fZXhwZWN0ID0ganNvbiEoe1xuICAgICAqIFwia2V5X3R5cGVcIjogS0VZX1RZUEUsXG4gICAgICogXCJtYXRlcmlhbF90eXBlXCI6IFwicmF3X3NlY3JldFwiLFxuICAgICAqIFwic2VjcmV0XCI6IGhleF9lbmNvZGUoJnNrKSxcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIGFzc2VydF9lcSEoXG4gICAgICogc2VyZGVfanNvbjo6dG9fdmFsdWUoJmpzb25fcGtnKS5leHBlY3QoXCJqc29uIHNlcmlhbGl6YXRpb25cIiksXG4gICAgICoganNvbl9leHBlY3QsXG4gICAgICogKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBKc29uS2V5UGFja2FnZTogKFxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWF0ZXJpYWxfdHlwZTogXCJyYXdfc2VjcmV0XCI7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgdmFsdWUgb2YgdGhlIHJhdyBzZWNyZXQgKi9cbiAgICAgICAgICBzZWNyZXQ6IHN0cmluZztcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZGVyaXZhdGlvbiBwYXRoICovXG4gICAgICAgICAgZGVyaXZhdGlvbl9wYXRoOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBlbnVtIHtzdHJpbmd9ICovXG4gICAgICAgICAgbWF0ZXJpYWxfdHlwZTogXCJlbmdsaXNoX21uZW1vbmljXCI7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbW5lbW9uaWMgKi9cbiAgICAgICAgICBtbmVtb25pYzogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHBhc3N3b3JkICh3aGljaCBtYXkgYmUgZW1wdHkpICovXG4gICAgICAgICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICAgICAgfVxuICAgICkgJiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB0eXBlIG9mIGtleSB0aGlzIHBhY2thZ2UgcmVwcmVzZW50cyAqL1xuICAgICAga2V5X3R5cGU6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gRGVyaXZhdGlvbi1yZWxhdGVkIG1ldGFkYXRhIGZvciBrZXlzIGRlcml2ZWQgZnJvbSBhIGxvbmctbGl2ZWQgbW5lbW9uaWMgKi9cbiAgICBLZXlEZXJpdmF0aW9uSW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZGVyaXZhdGlvbiBwYXRoIHVzZWQgdG8gZGVyaXZlIHRoaXMga2V5ICovXG4gICAgICBkZXJpdmF0aW9uX3BhdGg6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG1uZW1vbmljLWlkIG9mIHRoZSBrZXkncyBwYXJlbnQgbW5lbW9uaWMgKi9cbiAgICAgIG1uZW1vbmljX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgd3JhcHBlZCBrZXktaW1wb3J0IGtleSAqL1xuICAgIEtleUltcG9ydEtleToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYXNlNjQtZW5jb2RlZCwgZW5jcnlwdGVkIGRhdGEga2V5LiAqL1xuICAgICAgZGtfZW5jOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBFeHBpcmF0aW9uIHRpbWVzdGFtcCBleHByZXNzZWQgYXMgc2Vjb25kcyBzaW5jZSB0aGUgVU5JWCBlcG9jaC5cbiAgICAgICAqL1xuICAgICAgZXhwaXJlczogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVwaGVtZXJhbCBwdWJsaWMga2V5IHRvIHdoaWNoIGFuIGltcG9ydGVkIGtleSBzaG91bGQgYmUgZW5jcnlwdGVkLlxuICAgICAgICogVGhpcyBpcyBhIFAzODQgcHVibGljIGtleSBpbiBiYXNlNjQtZW5jb2RlZCB1bmNvbXByZXNzZWQgU0VDRyBmb3JtYXQuXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXk6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmFzZTY0LWVuY29kZWQsIGVuY3J5cHRlZCBzZWNyZXQga2V5LiAqL1xuICAgICAgc2tfZW5jOiBzdHJpbmc7XG4gICAgfTtcbiAgICBLZXlJblJvbGVJbmZvOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBLZXkgSURcbiAgICAgICAqIEBleGFtcGxlIEtleSMweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAqL1xuICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQb2xpY2llcyB0aGF0IGFyZSBjaGVja2VkIGJlZm9yZSB0aGlzIGtleSBpcyB1c2VkIG9uIGJlaGFsZiBvZiB0aGlzIHJvbGVcbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiVHhSZWNlaXZlclwiOiBcIjB4OGM1OTQ2OTFjMGU1OTJmZmEyMWYxNTNhMTZhZTQxZGI1YmVmY2FhYVwiXG4gICAgICAgKiAgIH0sXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlR4RGVwb3NpdFwiOiB7XG4gICAgICAgKiAgICAgICBcImtpbmRcIjogXCJDYW5vbmljYWxcIlxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICB9O1xuICAgIEtleUluZm86IHtcbiAgICAgIGRlcml2YXRpb25faW5mbz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5RGVyaXZhdGlvbkluZm9cIl0gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSBrZXkgaXMgZW5hYmxlZCAob25seSBlbmFibGVkIGtleXMgbWF5IGJlIHVzZWQgZm9yIHNpZ25pbmcpICovXG4gICAgICBlbmFibGVkOiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBrZXk6IFwiS2V5I1wiIGZvbGxvd2VkIGJ5IGEgdW5pcXVlIGlkZW50aWZpZXIgc3BlY2lmaWMgdG9cbiAgICAgICAqIHRoZSB0eXBlIG9mIGtleSAoc3VjaCBhcyBhIHB1YmxpYyBrZXkgZm9yIEJMUyBvciBhbiBldGhlcmV1bSBhZGRyZXNzIGZvciBTZWNwKVxuICAgICAgICogQGV4YW1wbGUgS2V5IzB4OGUzNDg0Njg3ZTY2Y2RkMjZjZjA0YzM2NDc2MzNhYjRmMzU3MDE0OFxuICAgICAgICovXG4gICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIHVuaXF1ZSBpZGVudGlmaWVyIHNwZWNpZmljIHRvIHRoZSB0eXBlIG9mIGtleSwgc3VjaCBhcyBhIHB1YmxpYyBrZXkgb3IgYW4gZXRoZXJldW0gYWRkcmVzc1xuICAgICAgICogQGV4YW1wbGUgMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAgICAgKi9cbiAgICAgIG1hdGVyaWFsX2lkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBVc2VyLWRlZmluZWQgbWV0YWRhdGEuIFdoZW4gcmVuZGVyaW5nIChlLmcuLCBpbiB0aGUgYnJvd3NlcikgeW91IHNob3VsZCB0cmVhdFxuICAgICAgICogaXQgYXMgdW50cnVzdGVkIHVzZXIgZGF0YSAoYW5kIGF2b2lkIGluamVjdGluZyBtZXRhZGF0YSBpbnRvIEhUTUwgZGlyZWN0bHkpIGlmXG4gICAgICAgKiB1bnRydXN0ZWQgdXNlcnMgY2FuIGNyZWF0ZS91cGRhdGUga2V5cyAob3IgdGhlaXIgbWV0YWRhdGEpLlxuICAgICAgICovXG4gICAgICBtZXRhZGF0YT86IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE93bmVyIG9mIHRoZSBrZXlcbiAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgKi9cbiAgICAgIG93bmVyOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBLZXkgcG9saWN5XG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwiQWxsb3dSYXdCbG9iU2lnbmluZ1wiLFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJSZXF1aXJlTWZhXCI6IHtcbiAgICAgICAqICAgICAgIFwiY291bnRcIjogMVxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k6IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQsIHNlcmlhbGl6ZWQgcHVibGljIGtleS4gVGhlIGZvcm1hdCB1c2VkIGRlcGVuZHMgb24gdGhlIGtleSB0eXBlOlxuICAgICAgICogLSBTZWNwMjU2azEga2V5cyB1c2UgNjUtYnl0ZSB1bmNvbXByZXNzZWQgU0VDRyBmb3JtYXQ7XG4gICAgICAgKiAtIFN0YXJrIGtleXMgdXNlIDMzLWJ5dGUgY29tcHJlc3NlZCBTRUNHIGZvcm1hdDtcbiAgICAgICAqIC0gQkxTIGtleXMgdXNlIDQ4LWJ5dGUgY29tcHJlc3NlZCBCTFMxMi0zODEgKFpDYXNoKSBmb3JtYXQ7XG4gICAgICAgKiAtIEVkMjU1MTkga2V5cyB1c2UgdGhlIGNhbm9uaWNhbCAzMi1ieXRlIGVuY29kaW5nIHNwZWNpZmllZCBpbiBSRkMgODAzMi5cbiAgICAgICAqIEBleGFtcGxlIDB4MDRkMjY4OGI2YmMyY2U3Zjk4NzliOWU3NDVmM2M0ZGMxNzc5MDhjNWNlZjBjMWI2NGNmZjE5YWU3ZmYyN2RlZTYyM2M2NGZlOWQ5YzMyNWM3ZmJiYzc0OGJiZDVmNjA3Y2UxNGRkODNlMjhlYmJiYjdkM2U3ZjJmZmI3MGE3OTQzMVxuICAgICAgICovXG4gICAgICBwdWJsaWNfa2V5OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcHVycG9zZSBmb3Igd2hpY2ggdGhlIGtleSBjYW4gYmUgdXNlZCAoZS5nLiwgY2hhaW4gaWQgZm9yIHdoaWNoIHRoZSBrZXkgaXMgYWxsb3dlZCB0byBzaWduIG1lc3NhZ2VzKVxuICAgICAgICogQGV4YW1wbGUgRXRoMlZhbGlkYXRvcigxKVxuICAgICAgICovXG4gICAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgfTtcbiAgICBLZXlJbmZvczoge1xuICAgICAga2V5czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJbmZvXCJdW107XG4gICAgfTtcbiAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICBLZXlUeXBlOlxuICAgICAgfCBcIlNlY3BFdGhBZGRyXCJcbiAgICAgIHwgXCJTZWNwQnRjXCJcbiAgICAgIHwgXCJTZWNwQnRjVGVzdFwiXG4gICAgICB8IFwiU2VjcEF2YUFkZHJcIlxuICAgICAgfCBcIlNlY3BBdmFUZXN0QWRkclwiXG4gICAgICB8IFwiQmxzUHViXCJcbiAgICAgIHwgXCJCbHNJbmFjdGl2ZVwiXG4gICAgICB8IFwiRWQyNTUxOVNvbGFuYUFkZHJcIlxuICAgICAgfCBcIkVkMjU1MTlTdWlBZGRyXCJcbiAgICAgIHwgXCJFZDI1NTE5QXB0b3NBZGRyXCJcbiAgICAgIHwgXCJFZDI1NTE5Q2FyZGFub0FkZHJWa1wiXG4gICAgICB8IFwiRWQyNTUxOVN0ZWxsYXJBZGRyXCJcbiAgICAgIHwgXCJNbmVtb25pY1wiXG4gICAgICB8IFwiU3RhcmtcIjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV3JhcHBlciBhcm91bmQgZW5jcnlwdGVkIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSBieXRlcy5cbiAgICAgKlxuICAgICAqIFdlIHNlcmlhbGl6ZSB0aGlzIGludG8gYSBiYXNlNjR1cmwtZW5jb2RlZCBzdHJpbmcgYW5kIHJldHVybiB0byB0aGUgdXNlclxuICAgICAqIHNvIHRoYXQgdGhleSBjYW4gcGFzcyB0aGlzIGJhY2sgdG8gdXMgYXMgYSB1cmwgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAqL1xuICAgIExhc3RFdmFsS2V5OiBzdHJpbmc7XG4gICAgTGlzdE1mYVJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBwZW5kaW5nIE1GQSByZXF1ZXN0cyAqL1xuICAgICAgbWZhX3JlcXVlc3RzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdW107XG4gICAgfTtcbiAgICBMaXN0VG9rZW5zUmVzcG9uc2U6IHtcbiAgICAgIHRva2VuczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb2tlbkluZm9cIl1bXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZXNjcmliZXMgd2hldGhlciBhIHVzZXIgaW4gYW4gb3JnIGlzIGFuIE93bmVyIG9yIGp1c3QgYSByZWd1bGFyIG1lbWJlclxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgTWVtYmVyUm9sZTogXCJBbGllblwiIHwgXCJNZW1iZXJcIiB8IFwiT3duZXJcIjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJldHVybmVkIGFzIGEgcmVzcG9uc2UgZnJvbSBtdWx0aXBsZSByb3V0ZXMgKGUuZy4sICdnZXQgbWZhJywgJ2FwcHJvdmUgbWZhJywgJ2FwcHJvdmUgdG90cCcpLiAqL1xuICAgIE1mYVJlcXVlc3RJbmZvOiB7XG4gICAgICBleHBpcmVzX2F0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFwcHJvdmFsIHJlcXVlc3QgSUQuICovXG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgcmVjZWlwdD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUmVjZWlwdFwiXSB8IG51bGw7XG4gICAgICByZXF1ZXN0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkh0dHBSZXF1ZXN0XCJdO1xuICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN0YXR1c1wiXTtcbiAgICB9O1xuICAgIE1mYVR5cGU6IE9uZU9mPFxuICAgICAgW1xuICAgICAgICBcIkN1YmVTaWduZXJcIixcbiAgICAgICAgXCJUb3RwXCIsXG4gICAgICAgIFwiRmlkb1wiLFxuICAgICAgICB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbnN3ZXIgYSBGSURPIGNoYWxsZW5nZSB3aXRoIGEgc3BlY2lmaWMgRklETyBrZXkgKi9cbiAgICAgICAgICBGaWRvS2V5OiB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIEZJRE8ga2V5IHRoYXQgbXVzdCBiZSB1c2UgdG8gYXBwcm92ZSB0aGUgcmVxdWVzdFxuICAgICAgICAgICAgICogQGV4YW1wbGUgRmlkb0tleSNFdERkLi4uWlpjOD1cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICA+O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBOZXR3b3JrIG5hbWUgKCdtYWlubmV0JywgJ3ByYXRlcicsICdnb2VybGknKVxuICAgICAqIEBleGFtcGxlIGdvZXJsaVxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgTmV0d29yazogXCJtYWlubmV0XCIgfCBcInByYXRlclwiIHwgXCJnb2VybGlcIiB8IFwiaG9sZXNreVwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYSBuZXcgc2Vzc2lvbiwgcmV0dXJuZWQgZnJvbSBtdWx0aXBsZSBlbmRwb2ludHMgKGUuZy4sIGxvZ2luLCByZWZyZXNoLCBldGMuKS4gKi9cbiAgICBOZXdTZXNzaW9uUmVzcG9uc2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFNlc3Npb24gZXhwaXJhdGlvbiAoaW4gc2Vjb25kcyBzaW5jZSBVTklYIGVwb2NoKSwgYmV5b25kIHdoaWNoIGl0IGNhbm5vdCBiZSByZWZyZXNoZWQuXG4gICAgICAgKiBAZXhhbXBsZSAxNzAxODc5NjQwXG4gICAgICAgKi9cbiAgICAgIGV4cGlyYXRpb24/OiBudW1iZXI7XG4gICAgICBzZXNzaW9uX2luZm86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2xpZW50U2Vzc2lvbkluZm9cIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOZXcgdG9rZW4gdG8gYmUgdXNlZCBmb3IgYXV0aGVudGljYXRpb24uIFJlcXVlc3RzIHRvIHNpZ25pbmcgZW5kcG9pbnRzXG4gICAgICAgKiBzaG91bGQgaW5jbHVkZSB0aGlzIHZhbHVlIGluIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyXG4gICAgICAgKi9cbiAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyBhIGdsb2JhbGx5IHVuaXF1ZSBPSURDLWF1dGhvcml6ZWQgdXNlciBieSBleHByZXNzaW5nIHRoZSBmdWxsIFwicGF0aFwiIHRvIGEgdXNlci4gVGhhdCBpczpcbiAgICAgKlxuICAgICAqIChpc3MpICAgICAgIChzdWIpXG4gICAgICogSXNzdWVyIC0+IFN1YnJlc291cmNlXG4gICAgICpcbiAgICAgKiBXZSBpbmNsdWRlIGEgbm9uLXN0YW5kYXJkIHRoaXJkLXRpZXIgYGRpc2FtYmlndWF0b3JgIHdoaWNoIGFsbG93cyB1cyB0byBtYXBcbiAgICAgKiBhIHNpbmdsZSBPSURDIHVzZXIgdG8gbXVsdGlwbGUgYFVzZXJgcyBpbiBDdWJlU2lnbmVyXG4gICAgICovXG4gICAgT0lEQ0lkZW50aXR5OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcm9vdC1sZXZlbCBpc3N1ZXIgd2hvIGFkbWluaXN0cmF0ZXMgdGhpcyB1c2VyLiBGcm9tZSB0aGUgT0lEQyBzcGVjOlxuICAgICAgICogSXNzdWVyIElkZW50aWZpZXIgZm9yIHRoZSBJc3N1ZXIgb2YgdGhlIHJlc3BvbnNlLiBUaGUgaXNzXG4gICAgICAgKiB2YWx1ZSBpcyBhIGNhc2Ugc2Vuc2l0aXZlIFVSTCB1c2luZyB0aGUgaHR0cHMgc2NoZW1lIHRoYXQgY29udGFpbnNcbiAgICAgICAqIHNjaGVtZSwgaG9zdCwgYW5kIG9wdGlvbmFsbHksIHBvcnQgbnVtYmVyIGFuZCBwYXRoIGNvbXBvbmVudHMgYW5kXG4gICAgICAgKiBubyBxdWVyeSBvciBmcmFnbWVudCBjb21wb25lbnRzLlxuICAgICAgICogQGV4YW1wbGUgaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tXG4gICAgICAgKi9cbiAgICAgIGlzczogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRnJvbSB0aGUgT0lEQyBzcGVjOlxuICAgICAgICpcbiAgICAgICAqIEEgbG9jYWxseSB1bmlxdWUgYW5kIG5ldmVyIHJlYXNzaWduZWQgaWRlbnRpZmllciB3aXRoaW4gdGhlIElzc3VlciBmb3JcbiAgICAgICAqIHRoZSBFbmQtVXNlciwgd2hpY2ggaXMgaW50ZW5kZWQgdG8gYmUgY29uc3VtZWQgYnkgdGhlIENsaWVudCwgZS5nLixcbiAgICAgICAqIDI0NDAwMzIwIG9yIEFJdE9hd213dFd3Y1QwazUxQmF5ZXdOdnV0ckpVcXN2bDZxczdBNC4gSXQgTVVTVCBOT1QgZXhjZWVkXG4gICAgICAgKiAyNTUgQVNDSUkgY2hhcmFjdGVycyBpbiBsZW5ndGguIFRoZSBzdWIgdmFsdWUgaXMgYSBjYXNlIHNlbnNpdGl2ZVxuICAgICAgICogc3RyaW5nLlxuICAgICAgICogQGV4YW1wbGUgMTA3NjkxNTAzNTAwMDYxNTA3MTUxMTMwODIzNjdcbiAgICAgICAqL1xuICAgICAgc3ViOiBzdHJpbmc7XG4gICAgfTtcbiAgICBPaWRjTG9naW5SZXF1ZXN0OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEEgaHVtYW4gcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgdGhlIHB1cnBvc2Ugb2YgdGhlIHNlc3Npb24gKi9cbiAgICAgIHB1cnBvc2U/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ29udHJvbHMgd2hhdCBjYXBhYmlsaXRpZXMgdGhpcyBzZXNzaW9uIHdpbGwgaGF2ZS5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJzaWduOipcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBzY29wZXM6IHN0cmluZ1tdO1xuICAgICAgdG9rZW5zPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSYXRjaGV0Q29uZmlnXCJdO1xuICAgIH07XG4gICAgT3JnSW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGVuIGZhbHNlLCBhbGwgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb25zIGludm9sdmluZyBrZXlzIGluIHRoaXMgb3JnIGFyZSBkaXNhYmxlZC4gKi9cbiAgICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERlcHJlY2F0ZWQ6IHRoaXMgZmllbGQgc2hvdWxkIGJlIGlnbm9yZWQuICovXG4gICAgICBrZXlfaW1wb3J0X2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgb3JnYW5pemF0aW9uJ3MgdW5pdmVyc2FsbHkgdW5pcXVlIGtleS13cmFwcGluZy1rZXkgaWRlbnRpZmllci5cbiAgICAgICAqIFRoaXMgdmFsdWUgaXMgcmVxdWlyZWQgd2hlbiBzZXR0aW5nIHVwIGtleSBleHBvcnQuXG4gICAgICAgKiBAZXhhbXBsZSBtcmstZmNlMDk1MjVlODE1ODdkMjM1MjBmMTFlMDdlMmU5ZDlcbiAgICAgICAqL1xuICAgICAga3drX2lkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBEYXRlL3RpbWUgKGluIFVUQykgd2hlbiBsYXN0ICd1bnN0YWtlJyB3YXMgcGVyZm9ybWVkLiBVbml4IGVwb2NoIGlmIG5vbmUuXG4gICAgICAgKiBAZXhhbXBsZSBUT0RPXG4gICAgICAgKi9cbiAgICAgIGxhc3RfdW5zdGFrZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSG93IG1hbnkgJ3Vuc3Rha2UnIGNhbGxzIGhhcHBlbmVkIG9uIHRoZSBkYXkgd2hlbiBgbGFzdF91bnN0YWtlYCB3YXMgcGVyZm9ybWVkLlxuICAgICAgICovXG4gICAgICBsYXN0X3Vuc3Rha2VfZGF5X2NvdW50OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIG9yZ1xuICAgICAgICogQGV4YW1wbGUgbXlfb3JnX25hbWVcbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIG9yZ2FuaXphdGlvblxuICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICovXG4gICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9yZy13aWRlIHBvbGljaWVzIHRoYXQgYXJlIGNoZWNrZWQgYmVmb3JlIGEga2V5IGlzIHVzZWQgZm9yIHNpZ25pbmdcbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiTWF4RGFpbHlVbnN0YWtlXCI6IDVcbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmdhbml6YXRpb24ncyBjdXJyZW50bHkgY29uZmlndXJlZCBUT1RQIGZhaWx1cmUgbGltaXQsIGkuZS4sIHRoZSBudW1iZXJcbiAgICAgICAqIG9mIHRpbWVzIGEgdXNlciBjYW4gcHJvdmlkZSBhbiBpbmNvcnJlY3QgVE9UUCBjb2RlIGJlZm9yZSBiZWluZyByYXRlIGxpbWl0ZWQuXG4gICAgICAgKiBUaGlzIHZhbHVlIGNhbiBiZSBiZXR3ZWVuIDEgYW5kIDUgKGluY2x1c2l2ZSkuXG4gICAgICAgKi9cbiAgICAgIHRvdHBfZmFpbHVyZV9saW1pdDogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIGN1cnJlbnRseSBjb25maWd1cmVkIHVzZXItZXhwb3J0IGRlbGF5LCBpLmUuLCB0aGUgbWluaW11bVxuICAgICAgICogYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIGJldHdlZW4gd2hlbiBhIHVzZXItZXhwb3J0IGlzIGluaXRpYXRlZCBhbmQgd2hlblxuICAgICAgICogaXQgbWF5IGJlIGNvbXBsZXRlZC4gKFRoaXMgdmFsdWUgaXMgbWVhbmluZ2xlc3MgZm9yIG9yZ2FuaXphdGlvbnMgdGhhdCB1c2VcbiAgICAgICAqIG9yZy13aWRlIGV4cG9ydC4pXG4gICAgICAgKi9cbiAgICAgIHVzZXJfZXhwb3J0X2RlbGF5OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgb3JnYW5pemF0aW9uJ3MgY3VycmVudGx5IGNvbmZpZ3VyZWQgdXNlci1leHBvcnQgd2luZG93LCBpLmUuLCB0aGUgYW1vdW50XG4gICAgICAgKiBvZiB0aW1lIChpbiBzZWNvbmRzKSBiZXR3ZWVuIHdoZW4gdGhlIHVzZXItZXhwb3J0IGRlbGF5IGlzIGNvbXBsZXRlZCBhbmQgd2hlblxuICAgICAgICogdGhlIHVzZXIgZXhwb3J0IHJlcXVlc3QgaGFzIGV4cGlyZWQgYW5kIGNhbiBubyBsb25nZXIgYmUgY29tcGxldGVkLiAoVGhpcyB2YWx1ZVxuICAgICAgICogaXMgbWVhbmluZ2xlc3MgZm9yIG9yZ2FuaXphdGlvbnMgdGhhdCB1c2Ugb3JnLXdpZGUgZXhwb3J0LilcbiAgICAgICAqL1xuICAgICAgdXNlcl9leHBvcnRfd2luZG93OiBudW1iZXI7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHJvY2tldCBxdWVyeSBwYXJhbWV0ZXIgcmVwcmVzZW50aW5nIHRoZSBwYWdlIGZyb20gd2hpY2ggdG8gc3RhcnQgYSBwYWdpbmF0ZWQgcXVlcnkuXG4gICAgICpcbiAgICAgKiBNVVNUIGJlIG5hbWVkIGA8cGFnZT5gIGluIHJvY2tldCB1cmwgc3BlYyBzbyB0aGF0ICdzZXJkZShyZW5hbWUgPSBcInBhZ2UuKlwiKScgYmVsb3cgY29udGludWVzIHRvIHdvcmtcbiAgICAgKi9cbiAgICBQYWdlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAqXG4gICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgKi9cbiAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAqL1xuICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRMaXN0S2V5c1Jlc3BvbnNlOiB7XG4gICAgICBrZXlzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluZm9cIl1bXTtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAqL1xuICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSB0eXBlIHRoYXQgd3JhcHMgYW5vdGhlciB0eXBlIGFuZCBhZGRzIGJhc2U2NHVybC1lbmNvZGVkIGVuY3J5cHRlZCBgbGFzdF9ldmFsdWF0ZWRfa2V5YFxuICAgICAqIHZhbHVlICh3aGljaCBjYW4gdGhlIHVzZXIgcGFzcyBiYWNrIHRvIHVzZSBhcyBhIHVybCBxdWVyeSBwYXJhbWV0ZXIgdG8gY29udGludWUgcGFnaW5hdGlvbikuXG4gICAgICovXG4gICAgUGFnaW5hdGVkTGlzdFJvbGVLZXlzUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIGtleXMgaW4gYSByb2xlICovXG4gICAgICBrZXlzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluUm9sZUluZm9cIl1bXTtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAqL1xuICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSB0eXBlIHRoYXQgd3JhcHMgYW5vdGhlciB0eXBlIGFuZCBhZGRzIGJhc2U2NHVybC1lbmNvZGVkIGVuY3J5cHRlZCBgbGFzdF9ldmFsdWF0ZWRfa2V5YFxuICAgICAqIHZhbHVlICh3aGljaCBjYW4gdGhlIHVzZXIgcGFzcyBiYWNrIHRvIHVzZSBhcyBhIHVybCBxdWVyeSBwYXJhbWV0ZXIgdG8gY29udGludWUgcGFnaW5hdGlvbikuXG4gICAgICovXG4gICAgUGFnaW5hdGVkTGlzdFJvbGVVc2Vyc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCB1c2VycyBpbiBhIHJvbGUgKi9cbiAgICAgIHVzZXJzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJJblJvbGVJbmZvXCJdW107XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgKi9cbiAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdHlwZSB0aGF0IHdyYXBzIGFub3RoZXIgdHlwZSBhbmQgYWRkcyBiYXNlNjR1cmwtZW5jb2RlZCBlbmNyeXB0ZWQgYGxhc3RfZXZhbHVhdGVkX2tleWBcbiAgICAgKiB2YWx1ZSAod2hpY2ggY2FuIHRoZSB1c2VyIHBhc3MgYmFjayB0byB1c2UgYXMgYSB1cmwgcXVlcnkgcGFyYW1ldGVyIHRvIGNvbnRpbnVlIHBhZ2luYXRpb24pLlxuICAgICAqL1xuICAgIFBhZ2luYXRlZExpc3RSb2xlc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCByb2xlcyBpbiBhbiBvcmdhbml6YXRpb24uICovXG4gICAgICByb2xlczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSb2xlSW5mb1wiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRTZXNzaW9uc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBsaXN0IG9mIHNlc3Npb25zICovXG4gICAgICBzZXNzaW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZXNzaW9uSW5mb1wiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRVc2VyRXhwb3J0TGlzdFJlc3BvbnNlOiB7XG4gICAgICBleHBvcnRfcmVxdWVzdHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckV4cG9ydEluaXRSZXNwb25zZVwiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgdHlwZSByZXByZXNlbnRzIGEgd2lyZS1lbmNvZGFibGUgZm9ybSBvZiB0aGUgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2VcbiAgICAgKiBDbGllbnRzIG1heSBuZWVkIHRvIG1hbnVhbGx5IGVuY29kZSBpbnRvIHRoaXMgZm9ybWF0IHRvIGNvbW11bmljYXRlIHdpdGggdGhlIHNlcnZlclxuICAgICAqXG4gICAgICogVGhlIFB1YmxpY0tleUNyZWRlbnRpYWwgaW50ZXJmYWNlIGluaGVyaXRzIGZyb20gQ3JlZGVudGlhbFxuICAgICAqIFtDUkVERU5USUFMLU1BTkFHRU1FTlQtMV0sIGFuZCBjb250YWlucyB0aGUgYXR0cmlidXRlcyB0aGF0IGFyZSByZXR1cm5lZCB0b1xuICAgICAqIHRoZSBjYWxsZXIgd2hlbiBhIG5ldyBjcmVkZW50aWFsIGlzIGNyZWF0ZWQsIG9yIGEgbmV3IGFzc2VydGlvbiBpc1xuICAgICAqIHJlcXVlc3RlZC5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNpZmFjZS1wa2NyZWRlbnRpYWxcbiAgICAgKi9cbiAgICBQdWJsaWNLZXlDcmVkZW50aWFsOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGludGVybmFsIHNsb3QgY29udGFpbnMgdGhlIHJlc3VsdHMgb2YgcHJvY2Vzc2luZyBjbGllbnQgZXh0ZW5zaW9uc1xuICAgICAgICogcmVxdWVzdGVkIGJ5IHRoZSBSZWx5aW5nIFBhcnR5IHVwb24gdGhlIFJlbHlpbmcgUGFydHkncyBpbnZvY2F0aW9uIG9mXG4gICAgICAgKiBlaXRoZXIgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZSgpIG9yIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQoKS5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWwtY2xpZW50ZXh0ZW5zaW9uc3Jlc3VsdHMtc2xvdFxuICAgICAgICpcbiAgICAgICAqIElNUExFTUVOVEFUSU9OIE5PVEU6IFRoZSB0eXBlIGZvciB0aGlzIGZpZWxkIGNvbWVzIGZyb20gdGhlIHR5cGUgb2YgZ2V0Q2xpZW50RXh0ZW5zaW9uUmVzdWx0cygpIHdoaWNoIGFzIHRoZSBmb2xsb3dpbmcgZG9jOlxuICAgICAgICpcbiAgICAgICAqIFRoaXMgb3BlcmF0aW9uIHJldHVybnMgdGhlIHZhbHVlIG9mIFtbY2xpZW50RXh0ZW5zaW9uc1Jlc3VsdHNdXSwgd2hpY2ggaXMgYSBtYXAgY29udGFpbmluZyBleHRlbnNpb24gaWRlbnRpZmllciDihpIgY2xpZW50IGV4dGVuc2lvbiBvdXRwdXQgZW50cmllcyBwcm9kdWNlZCBieSB0aGUgZXh0ZW5zaW9u4oCZcyBjbGllbnQgZXh0ZW5zaW9uIHByb2Nlc3NpbmcuXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jcmVmLWZvci1kb20tcHVibGlja2V5Y3JlZGVudGlhbC1nZXRjbGllbnRleHRlbnNpb25yZXN1bHRzXG4gICAgICAgKi9cbiAgICAgIGNsaWVudEV4dGVuc2lvblJlc3VsdHM/OiB1bmtub3duO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBpbnRlcm5hbCBzbG90IGNvbnRhaW5zIHRoZSBjcmVkZW50aWFsIElELCBjaG9zZW4gYnkgdGhlXG4gICAgICAgKiBhdXRoZW50aWNhdG9yLiBUaGUgY3JlZGVudGlhbCBJRCBpcyB1c2VkIHRvIGxvb2sgdXAgY3JlZGVudGlhbHMgZm9yIHVzZSxcbiAgICAgICAqIGFuZCBpcyB0aGVyZWZvcmUgZXhwZWN0ZWQgdG8gYmUgZ2xvYmFsbHkgdW5pcXVlIHdpdGggaGlnaCBwcm9iYWJpbGl0eVxuICAgICAgICogYWNyb3NzIGFsbCBjcmVkZW50aWFscyBvZiB0aGUgc2FtZSB0eXBlLCBhY3Jvc3MgYWxsIGF1dGhlbnRpY2F0b3JzLlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbC1pZGVudGlmaWVyLXNsb3RcbiAgICAgICAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXV0aGVudGljYXRvcnMgcmVzcG9uZCB0byBSZWx5aW5nIFBhcnR5IHJlcXVlc3RzIGJ5IHJldHVybmluZyBhbiBvYmplY3QgZGVyaXZlZCBmcm9tIHRoZSBBdXRoZW50aWNhdG9yUmVzcG9uc2UgaW50ZXJmYWNlICovXG4gICAgICByZXNwb25zZTpcbiAgICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlXCJdXG4gICAgICAgIHwgY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2VcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVmaW5lcyB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIGNyZWF0aW9uIG9mIGEgbmV3IHB1YmxpYyBrZXkgY3JlZGVudGlhbFxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RpY3RkZWYtcHVibGlja2V5Y3JlZGVudGlhbGNyZWF0aW9ub3B0aW9uc1xuICAgICAqL1xuICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6IHtcbiAgICAgIGF0dGVzdGF0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlXCJdO1xuICAgICAgYXV0aGVudGljYXRvclNlbGVjdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhXCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIGNvbnRhaW5zIGEgY2hhbGxlbmdlIGludGVuZGVkIHRvIGJlIHVzZWQgZm9yIGdlbmVyYXRpbmcgdGhlXG4gICAgICAgKiBuZXdseSBjcmVhdGVkIGNyZWRlbnRpYWzigJlzIGF0dGVzdGF0aW9uIG9iamVjdC4gU2VlIHRoZSDCp+KArzEzLjQuM1xuICAgICAgICogQ3J5cHRvZ3JhcGhpYyBDaGFsbGVuZ2VzIHNlY3VyaXR5IGNvbnNpZGVyYXRpb24uXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsY3JlYXRpb25vcHRpb25zLWNoYWxsZW5nZVxuICAgICAgICovXG4gICAgICBjaGFsbGVuZ2U6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIGlzIGludGVuZGVkIGZvciB1c2UgYnkgUmVseWluZyBQYXJ0aWVzIHRoYXQgd2lzaCB0byBsaW1pdFxuICAgICAgICogdGhlIGNyZWF0aW9uIG9mIG11bHRpcGxlIGNyZWRlbnRpYWxzIGZvciB0aGUgc2FtZSBhY2NvdW50IG9uIGEgc2luZ2xlXG4gICAgICAgKiBhdXRoZW50aWNhdG9yLiBUaGUgY2xpZW50IGlzIHJlcXVlc3RlZCB0byByZXR1cm4gYW4gZXJyb3IgaWYgdGhlIG5ld1xuICAgICAgICogY3JlZGVudGlhbCB3b3VsZCBiZSBjcmVhdGVkIG9uIGFuIGF1dGhlbnRpY2F0b3IgdGhhdCBhbHNvIGNvbnRhaW5zIG9uZVxuICAgICAgICogb2YgdGhlIGNyZWRlbnRpYWxzIGVudW1lcmF0ZWQgaW4gdGhpcyBwYXJhbWV0ZXIuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsY3JlYXRpb25vcHRpb25zLWV4Y2x1ZGVjcmVkZW50aWFsc1xuICAgICAgICovXG4gICAgICBleGNsdWRlQ3JlZGVudGlhbHM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yXCJdW107XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1lbWJlciBjb250YWlucyBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgcmVxdWVzdGluZyBhZGRpdGlvbmFsXG4gICAgICAgKiBwcm9jZXNzaW5nIGJ5IHRoZSBjbGllbnQgYW5kIGF1dGhlbnRpY2F0b3IuIEZvciBleGFtcGxlLCB0aGUgY2FsbGVyIG1heVxuICAgICAgICogcmVxdWVzdCB0aGF0IG9ubHkgYXV0aGVudGljYXRvcnMgd2l0aCBjZXJ0YWluIGNhcGFiaWxpdGllcyBiZSB1c2VkIHRvXG4gICAgICAgKiBjcmVhdGUgdGhlIGNyZWRlbnRpYWwsIG9yIHRoYXQgcGFydGljdWxhciBpbmZvcm1hdGlvbiBiZSByZXR1cm5lZCBpbiB0aGVcbiAgICAgICAqIGF0dGVzdGF0aW9uIG9iamVjdC4gU29tZSBleHRlbnNpb25zIGFyZSBkZWZpbmVkIGluIMKn4oCvOSBXZWJBdXRoblxuICAgICAgICogRXh0ZW5zaW9uczsgY29uc3VsdCB0aGUgSUFOQSBcIldlYkF1dGhuIEV4dGVuc2lvbiBJZGVudGlmaWVyc1wiIHJlZ2lzdHJ5XG4gICAgICAgKiBbSUFOQS1XZWJBdXRobi1SZWdpc3RyaWVzXSBlc3RhYmxpc2hlZCBieSBbUkZDODgwOV0gZm9yIGFuIHVwLXRvLWRhdGVcbiAgICAgICAqIGxpc3Qgb2YgcmVnaXN0ZXJlZCBXZWJBdXRobiBFeHRlbnNpb25zLlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbGNyZWF0aW9ub3B0aW9ucy1leHRlbnNpb25zXG4gICAgICAgKi9cbiAgICAgIGV4dGVuc2lvbnM/OiB1bmtub3duO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZW1iZXIgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRlc2lyZWQgcHJvcGVydGllcyBvZiB0aGVcbiAgICAgICAqIGNyZWRlbnRpYWwgdG8gYmUgY3JlYXRlZC4gVGhlIHNlcXVlbmNlIGlzIG9yZGVyZWQgZnJvbSBtb3N0IHByZWZlcnJlZCB0b1xuICAgICAgICogbGVhc3QgcHJlZmVycmVkLiBUaGUgY2xpZW50IG1ha2VzIGEgYmVzdC1lZmZvcnQgdG8gY3JlYXRlIHRoZSBtb3N0XG4gICAgICAgKiBwcmVmZXJyZWQgY3JlZGVudGlhbCB0aGF0IGl0IGNhbi5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxjcmVhdGlvbm9wdGlvbnMtcHVia2V5Y3JlZHBhcmFtc1xuICAgICAgICovXG4gICAgICBwdWJLZXlDcmVkUGFyYW1zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxQYXJhbWV0ZXJzXCJdW107XG4gICAgICBycDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsUnBFbnRpdHlcIl07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1lbWJlciBzcGVjaWZpZXMgYSB0aW1lLCBpbiBtaWxsaXNlY29uZHMsIHRoYXQgdGhlIGNhbGxlciBpc1xuICAgICAgICogd2lsbGluZyB0byB3YWl0IGZvciB0aGUgY2FsbCB0byBjb21wbGV0ZS4gVGhpcyBpcyB0cmVhdGVkIGFzIGEgaGludCwgYW5kXG4gICAgICAgKiBNQVkgYmUgb3ZlcnJpZGRlbiBieSB0aGUgY2xpZW50LlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbGNyZWF0aW9ub3B0aW9ucy10aW1lb3V0XG4gICAgICAgKi9cbiAgICAgIHRpbWVvdXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgdXNlcjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eVwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGRpY3Rpb25hcnkgY29udGFpbnMgdGhlIGF0dHJpYnV0ZXMgdGhhdCBhcmUgc3BlY2lmaWVkIGJ5IGEgY2FsbGVyIHdoZW5cbiAgICAgKiByZWZlcnJpbmcgdG8gYSBwdWJsaWMga2V5IGNyZWRlbnRpYWwgYXMgYW4gaW5wdXQgcGFyYW1ldGVyIHRvIHRoZSBjcmVhdGUoKVxuICAgICAqIG9yIGdldCgpIG1ldGhvZHMuIEl0IG1pcnJvcnMgdGhlIGZpZWxkcyBvZiB0aGUgUHVibGljS2V5Q3JlZGVudGlhbCBvYmplY3RcbiAgICAgKiByZXR1cm5lZCBieSB0aGUgbGF0dGVyIG1ldGhvZHMuXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZGljdGlvbmFyeS1jcmVkZW50aWFsLWRlc2NyaXB0b3JcbiAgICAgKi9cbiAgICBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvcjoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZW1iZXIgY29udGFpbnMgdGhlIGNyZWRlbnRpYWwgSUQgb2YgdGhlIHB1YmxpYyBrZXkgY3JlZGVudGlhbCB0aGUgY2FsbGVyIGlzIHJlZmVycmluZyB0by5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxkZXNjcmlwdG9yLWlkXG4gICAgICAgKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIE9QVElPTkFMIG1lbWJlciBjb250YWlucyBhIGhpbnQgYXMgdG8gaG93IHRoZSBjbGllbnQgbWlnaHRcbiAgICAgICAqIGNvbW11bmljYXRlIHdpdGggdGhlIG1hbmFnaW5nIGF1dGhlbnRpY2F0b3Igb2YgdGhlIHB1YmxpYyBrZXkgY3JlZGVudGlhbFxuICAgICAgICogdGhlIGNhbGxlciBpcyByZWZlcnJpbmcgdG8uIFRoZSB2YWx1ZXMgU0hPVUxEIGJlIG1lbWJlcnMgb2ZcbiAgICAgICAqIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQgYnV0IGNsaWVudCBwbGF0Zm9ybXMgTVVTVCBpZ25vcmUgdW5rbm93biB2YWx1ZXMuXG4gICAgICAgKlxuICAgICAgICogVGhlIGdldFRyYW5zcG9ydHMoKSBvcGVyYXRpb24gY2FuIHByb3ZpZGUgc3VpdGFibGUgdmFsdWVzIGZvciB0aGlzXG4gICAgICAgKiBtZW1iZXIuIFdoZW4gcmVnaXN0ZXJpbmcgYSBuZXcgY3JlZGVudGlhbCwgdGhlIFJlbHlpbmcgUGFydHkgU0hPVUxEXG4gICAgICAgKiBzdG9yZSB0aGUgdmFsdWUgcmV0dXJuZWQgZnJvbSBnZXRUcmFuc3BvcnRzKCkuIFdoZW4gY3JlYXRpbmcgYVxuICAgICAgICogUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IgZm9yIHRoYXQgY3JlZGVudGlhbCwgdGhlIFJlbHlpbmcgUGFydHlcbiAgICAgICAqIFNIT1VMRCByZXRyaWV2ZSB0aGF0IHN0b3JlZCB2YWx1ZSBhbmQgc2V0IGl0IGFzIHRoZSB2YWx1ZSBvZiB0aGVcbiAgICAgICAqIHRyYW5zcG9ydHMgbWVtYmVyLlxuICAgICAgICovXG4gICAgICB0cmFuc3BvcnRzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBdXRoZW50aWNhdG9yVHJhbnNwb3J0XCJdW10gfCBudWxsO1xuICAgICAgdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsVHlwZVwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGRpY3Rpb25hcnkgaXMgdXNlZCB0byBzdXBwbHkgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIHdoZW4gY3JlYXRpbmcgYSBuZXdcbiAgICAgKiBjcmVkZW50aWFsLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RpY3Rpb25hcnktY3JlZGVudGlhbC1wYXJhbXNcbiAgICAgKi9cbiAgICBQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVyczoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZW1iZXIgc3BlY2lmaWVzIHRoZSBjcnlwdG9ncmFwaGljIHNpZ25hdHVyZSBhbGdvcml0aG0gd2l0aCB3aGljaFxuICAgICAgICogdGhlIG5ld2x5IGdlbmVyYXRlZCBjcmVkZW50aWFsIHdpbGwgYmUgdXNlZCwgYW5kIHRodXMgYWxzbyB0aGUgdHlwZSBvZlxuICAgICAgICogYXN5bW1ldHJpYyBrZXkgcGFpciB0byBiZSBnZW5lcmF0ZWQsIGUuZy4sIFJTQSBvciBFbGxpcHRpYyBDdXJ2ZS5cbiAgICAgICAqL1xuICAgICAgYWxnOiBudW1iZXI7XG4gICAgICB0eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxUeXBlXCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zYCBkaWN0aW9uYXJ5IHN1cHBsaWVzIGdldCgpIHdpdGggdGhlXG4gICAgICogZGF0YSBpdCBuZWVkcyB0byBnZW5lcmF0ZSBhbiBhc3NlcnRpb24uIEl0cyBjaGFsbGVuZ2UgbWVtYmVyIE1VU1QgYmVcbiAgICAgKiBwcmVzZW50LCB3aGlsZSBpdHMgb3RoZXIgbWVtYmVycyBhcmUgT1BUSU9OQUwuXG4gICAgICpcbiAgICAgKiBUaGlzIHN0cnVjdCBpcyBhbHNvIHVzZWQgYXMgcGFydCBvZiB0aGUgdmVyaWZpY2F0aW9uIHByb2NlZHVyZSBmb3IgYXNzZXJ0aW9uc1xuICAgICAqL1xuICAgIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBPUFRJT05BTCBtZW1iZXIgY29udGFpbnMgYSBsaXN0IG9mIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yXG4gICAgICAgKiBvYmplY3RzIHJlcHJlc2VudGluZyBwdWJsaWMga2V5IGNyZWRlbnRpYWxzIGFjY2VwdGFibGUgdG8gdGhlIGNhbGxlciwgaW5cbiAgICAgICAqIGRlc2NlbmRpbmcgb3JkZXIgb2YgdGhlIGNhbGxlcuKAmXMgcHJlZmVyZW5jZSAodGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGxpc3RcbiAgICAgICAqIGlzIHRoZSBtb3N0IHByZWZlcnJlZCBjcmVkZW50aWFsLCBhbmQgc28gb24gZG93biB0aGUgbGlzdCkuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFscmVxdWVzdG9wdGlvbnMtYWxsb3djcmVkZW50aWFsc1xuICAgICAgICovXG4gICAgICBhbGxvd0NyZWRlbnRpYWxzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvclwiXVtdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZW1iZXIgcmVwcmVzZW50cyBhIGNoYWxsZW5nZSB0aGF0IHRoZSBzZWxlY3RlZCBhdXRoZW50aWNhdG9yXG4gICAgICAgKiBzaWducywgYWxvbmcgd2l0aCBvdGhlciBkYXRhLCB3aGVuIHByb2R1Y2luZyBhbiBhdXRoZW50aWNhdGlvblxuICAgICAgICogYXNzZXJ0aW9uLlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbHJlcXVlc3RvcHRpb25zLWNoYWxsZW5nZVxuICAgICAgICovXG4gICAgICBjaGFsbGVuZ2U6IHN0cmluZztcbiAgICAgIGV4dGVuc2lvbnM/OiB1bmtub3duO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBPUFRJT05BTCBtZW1iZXIgc3BlY2lmaWVzIHRoZSByZWx5aW5nIHBhcnR5IGlkZW50aWZpZXIgY2xhaW1lZCBieVxuICAgICAgICogdGhlIGNhbGxlci4gSWYgb21pdHRlZCwgaXRzIHZhbHVlIHdpbGwgYmUgdGhlIENyZWRlbnRpYWxzQ29udGFpbmVyXG4gICAgICAgKiBvYmplY3TigJlzIHJlbGV2YW50IHNldHRpbmdzIG9iamVjdCdzIG9yaWdpbidzIGVmZmVjdGl2ZSBkb21haW4uXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFscmVxdWVzdG9wdGlvbnMtcnBpZFxuICAgICAgICovXG4gICAgICBycElkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgT1BUSU9OQUwgbWVtYmVyIHNwZWNpZmllcyBhIHRpbWUsIGluIG1pbGxpc2Vjb25kcywgdGhhdCB0aGUgY2FsbGVyXG4gICAgICAgKiBpcyB3aWxsaW5nIHRvIHdhaXQgZm9yIHRoZSBjYWxsIHRvIGNvbXBsZXRlLiBUaGUgdmFsdWUgaXMgdHJlYXRlZCBhcyBhXG4gICAgICAgKiBoaW50LCBhbmQgTUFZIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGNsaWVudC5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxyZXF1ZXN0b3B0aW9ucy10aW1lb3V0XG4gICAgICAgKi9cbiAgICAgIHRpbWVvdXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgdXNlclZlcmlmaWNhdGlvbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50XCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBQdWJsaWNLZXlDcmVkZW50aWFsUnBFbnRpdHkgZGljdGlvbmFyeSBpcyB1c2VkIHRvIHN1cHBseSBhZGRpdGlvbmFsXG4gICAgICogUmVseWluZyBQYXJ0eSBhdHRyaWJ1dGVzIHdoZW4gY3JlYXRpbmcgYSBuZXcgY3JlZGVudGlhbC5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkaWN0aW9uYXJ5LXJwLWNyZWRlbnRpYWwtcGFyYW1zXG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbFJwRW50aXR5OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgUmVseWluZyBQYXJ0eSBlbnRpdHksIHdoaWNoIHNldHMgdGhlIFJQIElELlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbHJwZW50aXR5LWlkXG4gICAgICAgKi9cbiAgICAgIGlkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcGFsYXRhYmxlIG5hbWUgZm9yIHRoZSBlbnRpdHkuIEl0cyBmdW5jdGlvbiBkZXBlbmRzIG9uIHdoYXQgdGhlXG4gICAgICAgKiBQdWJsaWNLZXlDcmVkZW50aWFsRW50aXR5IHJlcHJlc2VudHM6IFdoZW4gaW5oZXJpdGVkIGJ5XG4gICAgICAgKiBQdWJsaWNLZXlDcmVkZW50aWFsUnBFbnRpdHkgaXQgaXMgYSBodW1hbi1wYWxhdGFibGUgaWRlbnRpZmllciBmb3IgdGhlXG4gICAgICAgKiBSZWx5aW5nIFBhcnR5LCBpbnRlbmRlZCBvbmx5IGZvciBkaXNwbGF5LiBGb3IgZXhhbXBsZSwgXCJBQ01FXG4gICAgICAgKiBDb3Jwb3JhdGlvblwiLCBcIldvbmRlcmZ1bCBXaWRnZXRzLCBJbmMuXCIgb3IgXCLQntCQ0J4g0J/RgNC40LzQtdGA0YLQtdGFXCIuXG4gICAgICAgKlxuICAgICAgICogUmVseWluZyBQYXJ0aWVzIFNIT1VMRCBwZXJmb3JtIGVuZm9yY2VtZW50LCBhcyBwcmVzY3JpYmVkIGluIFNlY3Rpb24gMi4zXG4gICAgICAgKiBvZiBbUkZDODI2Nl0gZm9yIHRoZSBOaWNrbmFtZSBQcm9maWxlIG9mIHRoZSBQUkVDSVMgRnJlZWZvcm1DbGFzc1xuICAgICAgICogW1JGQzgyNjRdLCB3aGVuIHNldHRpbmcgbmFtZSdzIHZhbHVlLCBvciBkaXNwbGF5aW5nIHRoZSB2YWx1ZSB0byB0aGVcbiAgICAgICAqIHVzZXIuXG4gICAgICAgKlxuICAgICAgICogVGhpcyBzdHJpbmcgTUFZIGNvbnRhaW4gbGFuZ3VhZ2UgYW5kIGRpcmVjdGlvbiBtZXRhZGF0YS4gUmVseWluZyBQYXJ0aWVzXG4gICAgICAgKiBTSE9VTEQgY29uc2lkZXIgcHJvdmlkaW5nIHRoaXMgaW5mb3JtYXRpb24uIFNlZSDCp+KArzYuNC4yIExhbmd1YWdlIGFuZFxuICAgICAgICogRGlyZWN0aW9uIEVuY29kaW5nIGFib3V0IGhvdyB0aGlzIG1ldGFkYXRhIGlzIGVuY29kZWQuXG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGVudW1lcmF0aW9uIGRlZmluZXMgdGhlIHZhbGlkIGNyZWRlbnRpYWwgdHlwZXMuIEl0IGlzIGFuIGV4dGVuc2lvblxuICAgICAqIHBvaW50OyB2YWx1ZXMgY2FuIGJlIGFkZGVkIHRvIGl0IGluIHRoZSBmdXR1cmUsIGFzIG1vcmUgY3JlZGVudGlhbCB0eXBlcyBhcmVcbiAgICAgKiBkZWZpbmVkLiBUaGUgdmFsdWVzIG9mIHRoaXMgZW51bWVyYXRpb24gYXJlIHVzZWQgZm9yIHZlcnNpb25pbmcgdGhlXG4gICAgICogQXV0aGVudGljYXRpb24gQXNzZXJ0aW9uIGFuZCBhdHRlc3RhdGlvbiBzdHJ1Y3R1cmVzIGFjY29yZGluZyB0byB0aGUgdHlwZSBvZlxuICAgICAqIHRoZSBhdXRoZW50aWNhdG9yLiAgQ3VycmVudGx5IG9uZSBjcmVkZW50aWFsIHR5cGUgaXMgZGVmaW5lZCwgbmFtZWx5XG4gICAgICogXCJwdWJsaWMta2V5XCIuXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZW51bWRlZi1wdWJsaWNrZXljcmVkZW50aWFsdHlwZVxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6IFwicHVibGljLWtleVwiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkgZGljdGlvbmFyeSBpcyB1c2VkIHRvIHN1cHBseSBhZGRpdGlvbmFsXG4gICAgICogdXNlciBhY2NvdW50IGF0dHJpYnV0ZXMgd2hlbiBjcmVhdGluZyBhIG5ldyBjcmVkZW50aWFsLlxuICAgICAqL1xuICAgIFB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXBhbGF0YWJsZSBuYW1lIGZvciB0aGUgdXNlciBhY2NvdW50LCBpbnRlbmRlZCBvbmx5IGZvciBkaXNwbGF5LlxuICAgICAgICogRm9yIGV4YW1wbGUsIFwiQWxleCBNw7xsbGVyXCIgb3IgXCLnlLDkuK3lgKtcIi4gVGhlIFJlbHlpbmcgUGFydHkgU0hPVUxEIGxldCB0aGVcbiAgICAgICAqIHVzZXIgY2hvb3NlIHRoaXMsIGFuZCBTSE9VTEQgTk9UIHJlc3RyaWN0IHRoZSBjaG9pY2UgbW9yZSB0aGFuXG4gICAgICAgKiBuZWNlc3NhcnkuXG4gICAgICAgKlxuICAgICAgICogUmVseWluZyBQYXJ0aWVzIFNIT1VMRCBwZXJmb3JtIGVuZm9yY2VtZW50LCBhcyBwcmVzY3JpYmVkIGluIFNlY3Rpb24gMi4zXG4gICAgICAgKiBvZiBbUkZDODI2Nl0gZm9yIHRoZSBOaWNrbmFtZSBQcm9maWxlIG9mIHRoZSBQUkVDSVMgRnJlZWZvcm1DbGFzc1xuICAgICAgICogW1JGQzgyNjRdLCB3aGVuIHNldHRpbmcgZGlzcGxheU5hbWUncyB2YWx1ZSwgb3IgZGlzcGxheWluZyB0aGUgdmFsdWUgdG9cbiAgICAgICAqIHRoZSB1c2VyLlxuICAgICAgICpcbiAgICAgICAqIFRoaXMgc3RyaW5nIE1BWSBjb250YWluIGxhbmd1YWdlIGFuZCBkaXJlY3Rpb24gbWV0YWRhdGEuIFJlbHlpbmcgUGFydGllc1xuICAgICAgICogU0hPVUxEIGNvbnNpZGVyIHByb3ZpZGluZyB0aGlzIGluZm9ybWF0aW9uLiBTZWUgwqfigK82LjQuMiBMYW5ndWFnZSBhbmRcbiAgICAgICAqIERpcmVjdGlvbiBFbmNvZGluZyBhYm91dCBob3cgdGhpcyBtZXRhZGF0YSBpcyBlbmNvZGVkLlxuICAgICAgICpcbiAgICAgICAqIENsaWVudHMgU0hPVUxEIHBlcmZvcm0gZW5mb3JjZW1lbnQsIGFzIHByZXNjcmliZWQgaW4gU2VjdGlvbiAyLjMgb2ZcbiAgICAgICAqIFtSRkM4MjY2XSBmb3IgdGhlIE5pY2tuYW1lIFByb2ZpbGUgb2YgdGhlIFBSRUNJUyBGcmVlZm9ybUNsYXNzXG4gICAgICAgKiBbUkZDODI2NF0sIG9uIGRpc3BsYXlOYW1lJ3MgdmFsdWUgcHJpb3IgdG8gZGlzcGxheWluZyB0aGUgdmFsdWUgdG8gdGhlXG4gICAgICAgKiB1c2VyIG9yIGluY2x1ZGluZyB0aGUgdmFsdWUgYXMgYSBwYXJhbWV0ZXIgb2YgdGhlXG4gICAgICAgKiBhdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRpYWwgb3BlcmF0aW9uLlxuICAgICAgICpcbiAgICAgICAqIFdoZW4gY2xpZW50cywgY2xpZW50IHBsYXRmb3Jtcywgb3IgYXV0aGVudGljYXRvcnMgZGlzcGxheSBhXG4gICAgICAgKiBkaXNwbGF5TmFtZSdzIHZhbHVlLCB0aGV5IHNob3VsZCBhbHdheXMgdXNlIFVJIGVsZW1lbnRzIHRvIHByb3ZpZGUgYVxuICAgICAgICogY2xlYXIgYm91bmRhcnkgYXJvdW5kIHRoZSBkaXNwbGF5ZWQgdmFsdWUsIGFuZCBub3QgYWxsb3cgb3ZlcmZsb3cgaW50b1xuICAgICAgICogb3RoZXIgZWxlbWVudHMgW2Nzcy1vdmVyZmxvdy0zXS5cbiAgICAgICAqXG4gICAgICAgKiBBdXRoZW50aWNhdG9ycyBNVVNUIGFjY2VwdCBhbmQgc3RvcmUgYSA2NC1ieXRlIG1pbmltdW0gbGVuZ3RoIGZvciBhXG4gICAgICAgKiBkaXNwbGF5TmFtZSBtZW1iZXLigJlzIHZhbHVlLiBBdXRoZW50aWNhdG9ycyBNQVkgdHJ1bmNhdGUgYSBkaXNwbGF5TmFtZVxuICAgICAgICogbWVtYmVy4oCZcyB2YWx1ZSBzbyB0aGF0IGl0IGZpdHMgd2l0aGluIDY0IGJ5dGVzLiBTZWUgwqfigK82LjQuMSBTdHJpbmdcbiAgICAgICAqIFRydW5jYXRpb24gYWJvdXQgdHJ1bmNhdGlvbiBhbmQgb3RoZXIgY29uc2lkZXJhdGlvbnMuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsdXNlcmVudGl0eS1kaXNwbGF5bmFtZVxuICAgICAgICovXG4gICAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIgaGFuZGxlIG9mIHRoZSB1c2VyIGFjY291bnQgZW50aXR5LiBBIHVzZXIgaGFuZGxlIGlzIGFuIG9wYXF1ZVxuICAgICAgICogYnl0ZSBzZXF1ZW5jZSB3aXRoIGEgbWF4aW11bSBzaXplIG9mIDY0IGJ5dGVzLCBhbmQgaXMgbm90IG1lYW50IHRvIGJlXG4gICAgICAgKiBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuXG4gICAgICAgKlxuICAgICAgICogVG8gZW5zdXJlIHNlY3VyZSBvcGVyYXRpb24sIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIGRlY2lzaW9uc1xuICAgICAgICogTVVTVCBiZSBtYWRlIG9uIHRoZSBiYXNpcyBvZiB0aGlzIGlkIG1lbWJlciwgbm90IHRoZSBkaXNwbGF5TmFtZSBub3JcbiAgICAgICAqIG5hbWUgbWVtYmVycy4gU2VlIFNlY3Rpb24gNi4xIG9mIFtSRkM4MjY2XS5cbiAgICAgICAqXG4gICAgICAgKiBUaGUgdXNlciBoYW5kbGUgTVVTVCBOT1QgY29udGFpbiBwZXJzb25hbGx5IGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uXG4gICAgICAgKiBhYm91dCB0aGUgdXNlciwgc3VjaCBhcyBhIHVzZXJuYW1lIG9yIGUtbWFpbCBhZGRyZXNzOyBzZWUgwqfigK8xNC42LjEgVXNlclxuICAgICAgICogSGFuZGxlIENvbnRlbnRzIGZvciBkZXRhaWxzLiBUaGUgdXNlciBoYW5kbGUgTVVTVCBOT1QgYmUgZW1wdHksIHRob3VnaFxuICAgICAgICogaXQgTUFZIGJlIG51bGwuXG4gICAgICAgKlxuICAgICAgICogTm90ZTogdGhlIHVzZXIgaGFuZGxlIG91Z2h0IG5vdCBiZSBhIGNvbnN0YW50IHZhbHVlIGFjcm9zcyBkaWZmZXJlbnRcbiAgICAgICAqIGFjY291bnRzLCBldmVuIGZvciBub24tZGlzY292ZXJhYmxlIGNyZWRlbnRpYWxzLCBiZWNhdXNlIHNvbWVcbiAgICAgICAqIGF1dGhlbnRpY2F0b3JzIGFsd2F5cyBjcmVhdGUgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWxzLiBUaHVzIGEgY29uc3RhbnRcbiAgICAgICAqIHVzZXIgaGFuZGxlIHdvdWxkIHByZXZlbnQgYSB1c2VyIGZyb20gdXNpbmcgc3VjaCBhbiBhdXRoZW50aWNhdG9yIHdpdGhcbiAgICAgICAqIG1vcmUgdGhhbiBvbmUgYWNjb3VudCBhdCB0aGUgUmVseWluZyBQYXJ0eS5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWx1c2VyZW50aXR5LWlkXG4gICAgICAgKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGVuIGluaGVyaXRlZCBieSBQdWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eSwgaXQgaXMgYSBodW1hbi1wYWxhdGFibGVcbiAgICAgICAqIGlkZW50aWZpZXIgZm9yIGEgdXNlciBhY2NvdW50LiBJdCBpcyBpbnRlbmRlZCBvbmx5IGZvciBkaXNwbGF5LCBpLmUuLFxuICAgICAgICogYWlkaW5nIHRoZSB1c2VyIGluIGRldGVybWluaW5nIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdXNlciBhY2NvdW50cyB3aXRoXG4gICAgICAgKiBzaW1pbGFyIGRpc3BsYXlOYW1lcy4gRm9yIGV4YW1wbGUsIFwiYWxleG1cIiwgXCJhbGV4Lm11ZWxsZXJAZXhhbXBsZS5jb21cIlxuICAgICAgICogb3IgXCIrMTQyNTU1NTEyMzRcIi5cbiAgICAgICAqXG4gICAgICAgKiBUaGUgUmVseWluZyBQYXJ0eSBNQVkgbGV0IHRoZSB1c2VyIGNob29zZSB0aGlzIHZhbHVlLiBUaGUgUmVseWluZyBQYXJ0eVxuICAgICAgICogU0hPVUxEIHBlcmZvcm0gZW5mb3JjZW1lbnQsIGFzIHByZXNjcmliZWQgaW4gU2VjdGlvbiAzLjQuMyBvZiBbUkZDODI2NV1cbiAgICAgICAqIGZvciB0aGUgVXNlcm5hbWVDYXNlUHJlc2VydmVkIFByb2ZpbGUgb2YgdGhlIFBSRUNJUyBJZGVudGlmaWVyQ2xhc3NcbiAgICAgICAqIFtSRkM4MjY0XSwgd2hlbiBzZXR0aW5nIG5hbWUncyB2YWx1ZSwgb3IgZGlzcGxheWluZyB0aGUgdmFsdWUgdG8gdGhlXG4gICAgICAgKiB1c2VyLlxuICAgICAgICpcbiAgICAgICAqIFRoaXMgc3RyaW5nIE1BWSBjb250YWluIGxhbmd1YWdlIGFuZCBkaXJlY3Rpb24gbWV0YWRhdGEuIFJlbHlpbmcgUGFydGllc1xuICAgICAgICogU0hPVUxEIGNvbnNpZGVyIHByb3ZpZGluZyB0aGlzIGluZm9ybWF0aW9uLiBTZWUgwqfigK82LjQuMiBMYW5ndWFnZSBhbmRcbiAgICAgICAqIERpcmVjdGlvbiBFbmNvZGluZyBhYm91dCBob3cgdGhpcyBtZXRhZGF0YSBpcyBlbmNvZGVkLlxuICAgICAgICpcbiAgICAgICAqIENsaWVudHMgU0hPVUxEIHBlcmZvcm0gZW5mb3JjZW1lbnQsIGFzIHByZXNjcmliZWQgaW4gU2VjdGlvbiAzLjQuMyBvZiBbUkZDODI2NV0gZm9yIHRoZSBVc2VybmFtZUNhc2VQcmVzZXJ2ZWQgUHJvZmlsZSBvZiB0aGUgUFJFQ0lTIElkZW50aWZpZXJDbGFzcyBbUkZDODI2NF0sIG9uIG5hbWUncyB2YWx1ZSBwcmlvciB0byBkaXNwbGF5aW5nIHRoZSB2YWx1ZSB0byB0aGUgdXNlciBvciBpbmNsdWRpbmcgdGhlIHZhbHVlIGFzIGEgcGFyYW1ldGVyIG9mIHRoZSBhdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRpYWwgb3BlcmF0aW9uLlxuICAgICAgICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgfTtcbiAgICBSYXRjaGV0Q29uZmlnOiB7XG4gICAgICAvKiogQGRlZmF1bHQgZGVmYXVsdF9hdXRoX2xpZmV0aW1lICovXG4gICAgICBhdXRoX2xpZmV0aW1lPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNvbmRzXCJdO1xuICAgICAgLyoqIEBkZWZhdWx0IGRlZmF1bHRfZ3JhY2VfbGlmZXRpbWUgKi9cbiAgICAgIGdyYWNlX2xpZmV0aW1lPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNvbmRzXCJdO1xuICAgICAgLyoqIEBkZWZhdWx0IGRlZmF1bHRfcmVmcmVzaF9saWZldGltZSAqL1xuICAgICAgcmVmcmVzaF9saWZldGltZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kc1wiXTtcbiAgICAgIC8qKiBAZGVmYXVsdCBkZWZhdWx0X3Nlc3Npb25fbGlmZXRpbWUgKi9cbiAgICAgIHNlc3Npb25fbGlmZXRpbWU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZHNcIl07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJlY2VpcHQgdGhhdCBhbiBNRkEgcmVxdWVzdCB3YXMgYXBwcm92ZWQuICovXG4gICAgUmVjZWlwdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ29uZmlybWF0aW9uIGNvZGUgdGhlIHVzZXIgbmVlZHMgdG8gcHJlc2VudCB3aGVuIHJlc3VtaW5nIHRoZSBvcmlnaW5hbCByZXF1ZXN0LlxuICAgICAgICogQGV4YW1wbGUgYmExZDc1ZGQtZDk5OS00YzFiLTk0NGQtMjVjMjU0NDBjOGFmXG4gICAgICAgKi9cbiAgICAgIGNvbmZpcm1hdGlvbjogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIGxvZ2dlZC1pbiB1c2VyIHdob3NlIGFjdGlvbiBjcmVhdGVkIHRoaXMgYXBwcm92YWwuICovXG4gICAgICBmaW5hbF9hcHByb3Zlcjogc3RyaW5nO1xuICAgICAgdGltZXN0YW1wOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQW4gZXh0ZW5kZWQgZm9ybSBvZiBgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zYCB0aGF0IGFsbG93cyBjbGllbnRzIHRvIGRlcml2ZSB0aGUgV2ViQXV0aG4gY2hhbGxlbmdlXG4gICAgICogZnJvbSBhIHN0cnVjdHVyZWQgcHJlaW1hZ2UuXG4gICAgICpcbiAgICAgKiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgd2VidWF0aG4gc2lnbmF0dXJlIGNhbiBvbmx5IGJlIHVzZWQgZm9yIGEgc3BlY2lmaWMgcHVycG9zZVxuICAgICAqL1xuICAgIFJlcXVlc3RPcHRpb25zV2l0aEhhc2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2hhbGxlbmdlUGllY2VzXCJdICYge1xuICAgICAgb3B0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBlbnVtZXJhdGlvbuKAmXMgdmFsdWVzIGRlc2NyaWJlIHRoZSBSZWx5aW5nIFBhcnR5J3MgcmVxdWlyZW1lbnRzIGZvclxuICAgICAqIGNsaWVudC1zaWRlIGRpc2NvdmVyYWJsZSBjcmVkZW50aWFscyAoZm9ybWVybHkga25vd24gYXMgcmVzaWRlbnQgY3JlZGVudGlhbHNcbiAgICAgKiBvciByZXNpZGVudCBrZXlzKTpcbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNlbnVtZGVmLXJlc2lkZW50a2V5cmVxdWlyZW1lbnRcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIFJlc2lkZW50S2V5UmVxdWlyZW1lbnQ6IFwiZGlzY291cmFnZWRcIiB8IFwicHJlZmVycmVkXCIgfCBcInJlcXVpcmVkXCI7XG4gICAgUmV2b2tlVG9rZW5SZXNwb25zZToge1xuICAgICAgdG9rZW4/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRva2VuSW5mb1wiXSB8IG51bGw7XG4gICAgfTtcbiAgICBSZXZva2VUb2tlbnNSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUb2tlbnMgdGhhdCB3ZXJlIHJldm9rZWQuICovXG4gICAgICByZXZva2VkOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRva2VuSW5mb1wiXVtdO1xuICAgIH07XG4gICAgUm9sZUluZm86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIHJvbGUgaXMgZW5hYmxlZFxuICAgICAgICogQGV4YW1wbGUgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVkOiBib29sZWFuO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXByZWNhdGVkIFRoZSBDdWJlU2lnbmVyIElEcyBvZiBhdCBtb3N0IDEwMCBrZXlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJvbGUgKi9cbiAgICAgIGtleXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluUm9sZUluZm9cIl1bXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHJvbGUgKG11c3QgYmUgYWxwaGFudW1lcmljKVxuICAgICAgICogQGV4YW1wbGUgbXlfcm9sZVxuICAgICAgICovXG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFBvbGljeSB0aGF0IGlzIGNoZWNrZWQgd2hlbmV2ZXIgYSBrZXkgaXMgYWNjZXNzZWQgZm9yIHNpZ25pbmcgdmlhIHRoaXMgcm9sZS5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiU291cmNlSXBBbGxvd2xpc3RcIjogW1xuICAgICAgICogICAgICAgXCIxMjMuNDU2Ljc4LjkvMTZcIlxuICAgICAgICogICAgIF1cbiAgICAgICAqICAgfSxcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiUmVxdWlyZU1mYVwiOiB7XG4gICAgICAgKiAgICAgICBcImNvdW50XCI6IDFcbiAgICAgICAqICAgICB9XG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W107XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHJvbGVcbiAgICAgICAqIEBleGFtcGxlIFJvbGUjYmZlM2VjY2ItNzMxZS00MzBkLWIxZTUtYWMxMzYzZTZiMDZiXG4gICAgICAgKi9cbiAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGVwcmVjYXRlZC4gVGhlIGxpc3Qgb2YgYXQgbW9zdCAxMDAgdXNlcnMgd2l0aCBhY2Nlc3MgdG8gdGhlIHJvbGUuICovXG4gICAgICB1c2Vycz86IHN0cmluZ1tdIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgKiBAZGVzY3JpcHRpb24gRHVyYXRpb24gbWVhc3VyZWQgaW4gc2Vjb25kc1xuICAgICAqIEEgd3JhcHBlciB0eXBlIGZvciBzZXJpYWxpemF0aW9uIHRoYXQgZW5jb2RlcyBhIGBEdXJhdGlvbmAgYXMgYSBgdTY0YCByZXByZXNlbnRpbmcgdGhlIG51bWJlciBvZiBzZWNvbmRzLlxuICAgICAqL1xuICAgIFNlY29uZHM6IG51bWJlcjtcbiAgICBTZXNzaW9uSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBmb3IgdGhlIHNlc3Npb25cbiAgICAgICAqIEBleGFtcGxlIE9JREMgbG9naW4gc2Vzc2lvblxuICAgICAgICovXG4gICAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTZXNzaW9uIElELiBVbmlxdWVseSBpZGVudGlmaWVzIHRoZSBzZXNzaW9uLCBidXQgY2Fubm90IGJlIHVzZWQgZm9yIGF1dGguXG4gICAgICAgKiBAZXhhbXBsZSA3N2FhZDIxMDBjMzYxZjQ5NzYzNWRkMDA1YzRkMTU3ODFlMmU1ZGY0YjlmNDVkOGU3NGYzNzQyNWNiYzMwYjllXG4gICAgICAgKi9cbiAgICAgIHNlc3Npb25faWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIGZyb20gYW55IG9wZXJhdGlvbiBvcGVyYXRpbmcgb24gbXVsdGlwbGUgc2Vzc2lvbnMgKi9cbiAgICBTZXNzaW9uc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBsaXN0IG9mIHNlc3Npb25zICovXG4gICAgICBzZXNzaW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZXNzaW9uSW5mb1wiXVtdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJtZXNzYWdlX2Jhc2U2NFwiOiBcIkFRQUJBOE9LVnpMRWpzdHN0TjR4WHIzOWtMS0hUOGQ1OGVRWTFRRXM2TWVYd0VGQnJ4VEFsVUxYMXRyb0xiV3h1QVhRcWdiUW9mR2k2ejhmSmk3S0FBSWY3WU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFKSzB0bjM5azI4cytYODZXNDdFdmJSUktuWUJWUThRL2wybTFFYmZUNyt2QVFJQ0FBRU1BZ0FBQUdRQUFBQUFBQUFBXCJcbiAgICAgKiB9XG4gICAgICovXG4gICAgU29sYW5hU2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gU29sYW5hIGJhc2U2NC1lbmNvZGVkIHNlcmlhbGl6ZWQgTWVzc2FnZSAqL1xuICAgICAgbWVzc2FnZV9iYXNlNjQ6IHN0cmluZztcbiAgICB9O1xuICAgIFNvbGFuYVNpZ25SZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgc2lnbmF0dXJlLiAqL1xuICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgfTtcbiAgICBTdGFrZVJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBjaGFpbiBvbiB3aGljaCB3ZSB3aWxsIGRlcG9zaXRcbiAgICAgICAqIEBleGFtcGxlIDVcbiAgICAgICAqL1xuICAgICAgY2hhaW5faWQ6IG51bWJlcjtcbiAgICAgIGRlcG9zaXRfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJEZXBvc2l0VHlwZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHN0YWtpbmcgYW1vdW50IGluIEdXRUkuXG4gICAgICAgKiBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byAzMl8wMDBfMDAwXzAwMCAoMzIgRVRIKS5cbiAgICAgICAqIE11c3QgYmUgYmV0d2VlbiAxIEVUSCBhbmQgMzIgRVRILlxuICAgICAgICogTXVzdCBub3QgYmUgZGlmZmVyZW50IGZyb20gdGhlIGRlZmF1bHQgdmFsdWUgd2hlbiAnZGVwb3NpdF90eXBlJyBpcyBcIldyYXBwZXJcIi5cbiAgICAgICAqL1xuICAgICAgc3Rha2luZ19hbW91bnRfZ3dlaT86IG51bWJlcjtcbiAgICAgIHVuc2FmZV9jb25mPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVbnNhZmVDb25mXCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB2YWxpZGF0b3IgQkxTIHB1YmxpYyBrZXkgdG8gdXNlLCBvciBgTm9uZWAgdG8gZ2VuZXJhdGUgYSBmcmVzaCBvbmUuXG4gICAgICAgKiBAZXhhbXBsZSAweGE5OWE3NmVkNzc5NmY3YmUyMmQ1YjdlODVkZWViN2M1Njc3ZTg4ZTUxMWUwYjMzNzYxOGY4YzRlYjYxMzQ5YjRiZjJkMTUzZjY0OWY3YjUzMzU5ZmU4Yjk0YTM4ZTQ0Y1xuICAgICAgICovXG4gICAgICB2YWxpZGF0b3Jfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBldGhlcmV1bSBhZGRyZXNzIHRvIHdoaWNoIHdpdGhkcmF3biBmdW5kcyBnb1xuICAgICAgICogQGV4YW1wbGUgMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAgICAgKi9cbiAgICAgIHdpdGhkcmF3YWxfYWRkcjogc3RyaW5nO1xuICAgIH07XG4gICAgU3Rha2VSZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHZhbGlkYXRvciBrZXkgaWQgKFwiS2V5Iy4uLlwiKVxuICAgICAgICogQGV4YW1wbGUgS2V5I2RiMTczMWY4LTM2NTktNDVjMC04ODViLWUxMWUxZjViN2JlMlxuICAgICAgICovXG4gICAgICBjcmVhdGVkX3ZhbGlkYXRvcl9rZXlfaWQ6IHN0cmluZztcbiAgICAgIGRlcG9zaXRfdHg6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRGVwb3NpdFR4blwiXTtcbiAgICB9O1xuICAgIFN0YXR1czoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBVc2VycyB3aG8gYXJlIGFsbG93ZWQgdG8gYXBwcm92ZS4gTXVzdCBiZSBub24tZW1wdHkuICovXG4gICAgICBhbGxvd2VkX2FwcHJvdmVyczogc3RyaW5nW107XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbG93ZWQgYXBwcm92YWwgdHlwZXMuIFdoZW4gb21pdHRlZCwgZGVmYXVsdHMgdG8gYW55LiAqL1xuICAgICAgYWxsb3dlZF9tZmFfdHlwZXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVR5cGVcIl1bXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFVzZXJzIHdobyBoYXZlIGFscmVhZHkgYXBwcm92ZWQgKi9cbiAgICAgIGFwcHJvdmVkX2J5OiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IHtcbiAgICAgICAgICBba2V5OiBzdHJpbmddOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFwcHJvdmFsSW5mb1wiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBIb3cgbWFueSB1c2VycyBtdXN0IGFwcHJvdmVcbiAgICAgICAqL1xuICAgICAgY291bnQ6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIEhvdyBtYW55IGF1dGggZmFjdG9ycyB0byByZXF1aXJlIHBlciB1c2VyXG4gICAgICAgKi9cbiAgICAgIG51bV9hdXRoX2ZhY3RvcnM6IG51bWJlcjtcbiAgICB9O1xuICAgIFRva2VuSW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTZXNzaW9uIElELiBVc2UgaXQgdG8gcmV2b2tlIGEgc2Vzc2lvbi4gQ2Fubm90IGJlIHVzZWQgZm9yIGF1dGguICovXG4gICAgICBoYXNoOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRva2VucyBwdXJwb3NlICovXG4gICAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgfTtcbiAgICBUb3RwQXBwcm92ZVJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVE9UUCB2ZXJpZmljYXRpb24gY29kZSAqL1xuICAgICAgY29kZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBTZW50IGZyb20gdGhlIGNsaWVudCB0byB0aGUgc2VydmVyIHRvIGFuc3dlciBhIFRPVFAgY2hhbGxlbmdlICovXG4gICAgVG90cENoYWxsZW5nZUFuc3dlcjoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgY3VycmVudCBUT1RQIGNvZGUgKi9cbiAgICAgIGNvZGU6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBjaGFsbGVuZ2UgdGhhdCB3YXMgcmV0dXJuZWQgZnJvbSB0aGUgUE9TVCBlbmRwb2ludCAqL1xuICAgICAgdG90cF9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgVG90cEluZm86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgVE9UUCBjaGFsbGVuZ2UuXG4gICAgICAgKiBAZXhhbXBsZSBUb3RwQ2hhbGxlbmdlIzc4OTJlYmJhLTU2M2UtNDg1Yi1iYjdkLWUyNjI2NzM2MzI4NlxuICAgICAgICovXG4gICAgICB0b3RwX2lkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTdGFuZGFyZCBUT1RQIHVybCB3aGljaCBpbmNsdWRlcyBldmVyeXRoaW5nIG5lZWRlZCB0byBpbml0aWFsaXplIFRPVFAuXG4gICAgICAgKiBAZXhhbXBsZSBvdHBhdXRoOi8vdG90cC9DdWJpc3Q6YWxpY2UtJTQwZXhhbXBsZS5jb20/c2VjcmV0PURBSEY3S0NPVFFXU09NSzRYRkVNTkhYTzRKNDMzT0Q3Jmlzc3Vlcj1DdWJpc3RcbiAgICAgICAqL1xuICAgICAgdG90cF91cmw6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVxdWVzdCB0byByZXNldCBUT1RQLiAqL1xuICAgIFRvdHBSZXNldFJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5hbWUgb2YgdGhlIGlzc3VlcjsgZGVmYXVsdHMgdG8gXCJDdWJpc3RcIi4gKi9cbiAgICAgIGlzc3Vlcj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbnMgdGhhdCBzaG91bGQgYmUgc2V0IG9ubHkgZm9yIGxvY2FsIGRldm5ldCB0ZXN0aW5nLiAqL1xuICAgIFVuc2FmZUNvbmY6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBoZXgtZW5jb2RlZCBhZGRyZXNzIG9mIHRoZSBkZXBvc2l0IGNvbnRyYWN0LiBJZiBvbWl0dGVkLCBpbmZlcnJlZCBmcm9tIGBjaGFpbl9pZGBcbiAgICAgICAqIEBleGFtcGxlIDB4ZmY1MGVkM2QwZWMwM2FjMDFkNGM3OWFhZDc0OTI4YmZmNDhhN2IyYlxuICAgICAgICovXG4gICAgICBkZXBvc2l0X2NvbnRyYWN0X2FkZHI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGhleC1lbmNvZGVkIDQtYnl0ZSBmb3JrIHZlcnNpb25cbiAgICAgICAqIEBleGFtcGxlIDB4MDAwMDEwMjBcbiAgICAgICAqL1xuICAgICAgZ2VuZXNpc19mb3JrX3ZlcnNpb24/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFVuc3Rha2UgbWVzc2FnZSByZXF1ZXN0LlxuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgIFwiZXBvY2hcIjogXCIyNTZcIixcbiAgICAgKiAgIFwiZm9ya1wiOiB7XG4gICAgICogICAgIFwiY3VycmVudF92ZXJzaW9uXCI6IFwiMHgwMDAwMTAyMFwiLFxuICAgICAqICAgICBcImVwb2NoXCI6IFwiMFwiLFxuICAgICAqICAgICBcInByZXZpb3VzX3ZlcnNpb25cIjogXCIweDAwMDAxMDIwXCJcbiAgICAgKiAgIH0sXG4gICAgICogICBcImdlbmVzaXNfZGF0YVwiOiB7XG4gICAgICogICAgIFwiZ2VuZXNpc19mb3JrX3ZlcnNpb25cIjogXCIweDAwMDAxMDIwXCIsXG4gICAgICogICAgIFwiZ2VuZXNpc190aW1lXCI6IFwiMTY3OTU0MTY0MlwiLFxuICAgICAqICAgICBcImdlbmVzaXNfdmFsaWRhdG9yc19yb290XCI6IFwiMHgyNzBkNDNlNzRjZTM0MGRlNGJjYTJiMTkzNmJlY2EwZjRmNTQwOGQ5ZTc4YWVjNDg1MDkyMGJhZjY1OWQ1YjY5XCJcbiAgICAgKiAgIH0sXG4gICAgICogICBcIm5ldHdvcmtcIjogXCJnb2VybGlcIixcbiAgICAgKiAgIFwidmFsaWRhdG9yX2luZGV4XCI6IFwiMFwiXG4gICAgICogfVxuICAgICAqL1xuICAgIFVuc3Rha2VSZXF1ZXN0OiB7XG4gICAgICBlcG9jaD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hcIl0gfCBudWxsO1xuICAgICAgZm9yazogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJGb3JrXCJdO1xuICAgICAgZ2VuZXNpc19kYXRhOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkdlbmVzaXNEYXRhXCJdO1xuICAgICAgbmV0d29yazogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJOZXR3b3JrXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVmFsaWRhdG9yIGluZGV4IChgdWludDY0YCkgdG8gZXhpdC4gWW91IGNhbiBnZXQgdGhlIHZhbGlkYXRvciBpbmRleCBmcm9tIHRoZSBCZWFjb24gbm9kZSdzXG4gICAgICAgKiBgL2V0aC92MS9iZWFjb24vc3RhdGVzL2hlYWQvdmFsaWRhdG9ycy97cHVia2V5fWAgZW5kLXBvaW50LiBUaGlzIGVuZCBwb2ludCByZXR1cm5zIGFuXG4gICAgICAgKiBvYmplY3QgdGhhdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdmFsaWRhdG9yICh3aG9zZSBwdWJsaWMga2V5IGlzIGB7cHVia2V5fWApLFxuICAgICAgICogaW5jbHVkaW5nIHRoZSB2YWxpZGF0b3IgaW5kZXguIFRoZSBzY2hlbWEgb2YgdGhpcyBlbmQtcG9pbnQgaXMgZGVmaW5lZFxuICAgICAgICogW2hlcmVdKGh0dHBzOi8vZXRoZXJldW0uZ2l0aHViLmlvL2JlYWNvbi1BUElzLyMvQmVhY29uL2dldFN0YXRlVmFsaWRhdG9yKS5cbiAgICAgICAqIEBleGFtcGxlIDMxMzM3XG4gICAgICAgKi9cbiAgICAgIHZhbGlkYXRvcl9pbmRleDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFVuc3Rha2UgcmVzcG9uc2VzIGFyZSBzaWduZWQgdm9sdW50YXJ5IGV4aXQgbWVzc2FnZXMuXG4gICAgICogVGhlIHNjaGVtYSBmb3IgdGhpcyBtZXNzYWdlIGlzIGRlZmluZWRcbiAgICAgKiBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2V0aGVyZXVtL2NvbnNlbnN1cy1zcGVjcy9ibG9iL3YxLjAuMS9zcGVjcy9waGFzZTAvYmVhY29uLWNoYWluLm1kI3NpZ25lZHZvbHVudGFyeWV4aXQpLlxuICAgICAqIFRoaXMgbWVzc2FnZSBjYW4gYmUgZGlyZWN0bHkgUE9TVGVkIHRvIHRoZSBCZWFjb24gbm9kZSdzXG4gICAgICogYC9ldGgvdjEvYmVhY29uL3Bvb2wvdm9sdW50YXJ5X2V4aXRzYCBlbmQtcG9pbnQgKHNlZSBleHBlY3RlZCBzY2hlbWFcbiAgICAgKiBbaGVyZV0oaHR0cHM6Ly9ldGhlcmV1bS5naXRodWIuaW8vYmVhY29uLUFQSXMvIy9CZWFjb24vc3VibWl0UG9vbFZvbHVudGFyeUV4aXQpKS5cbiAgICAgKi9cbiAgICBVbnN0YWtlUmVzcG9uc2U6IHtcbiAgICAgIG1lc3NhZ2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVm9sdW50YXJ5RXhpdFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEJMUyBzaWduYXR1cmUuXG4gICAgICAgKiBAZXhhbXBsZSAweDkxMGM3Y2Q1MzdlZDkxY2M4YzRhODJmM2NiZDgzMmU5YmU4YzI0YTIyZTljODZkZjQ3OWY3Y2U0MjAyNWVhNmEwOTYxOWI0MThiNjY2YTA2MGUyNjBkMmFhZTMxYjhlNTBlOWQwNWNhMzQ0MmM3ZWVkM2I1MDdlNTIwN2UxNDY3NDI3NWY2OGMyYmE4NGM0YmY2YjhkZDM2NGEzMDRhY2FjOGNmYWIzNjgxZTI1MTRiNDQwMGY5MjQyYmM2MTE2NFxuICAgICAgICovXG4gICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICB9O1xuICAgIFVwZGF0ZUtleVJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdXBkYXRlcyB0aGUga2V5cydzIGBlbmFibGVkYCBwcm9wZXJ0eSB0byB0aGlzIHZhbHVlLlxuICAgICAgICogT25jZSBkaXNhYmxlZCwgYSBrZXkgY2Fubm90IGJlIHVzZWQgZm9yIHNpZ25pbmcuXG4gICAgICAgKi9cbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdXBkYXRlIHRoaXMga2V5J3MgbWV0YWRhdGEuIFZhbGlkYXRpb24gcmVnZXg6IF5bQS1aYS16MC05Xz0rLyBcXC1cXC5cXCxdezAsMTAyNH0kXG4gICAgICAgKiBAZXhhbXBsZSBDb250cmFjdCBhZG1pbiBrZXlcbiAgICAgICAqL1xuICAgICAgbWV0YWRhdGE/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGVzIGtleSdzIG93bmVyIHRvIHRoaXMgdmFsdWUuXG4gICAgICAgKiBUaGUgbmV3IG93bmVyIG11c3QgYmUgYW4gZXhpc3RpbmcgdXNlciB3aG8gaXMgYSBtZW1iZXIgb2YgdGhlIHNhbWUgb3JnLlxuICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAqL1xuICAgICAgb3duZXI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBrZXkncyBwb2xpY2llcyAob2xkIHBvbGljaWVzIHdpbGwgYmUgb3ZlcndyaXR0ZW4hKS5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJBbGxvd1Jhd0Jsb2JTaWduaW5nXCIsXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlJlcXVpcmVNZmFcIjoge1xuICAgICAgICogICAgICAgXCJjb3VudFwiOiAxXG4gICAgICAgKiAgICAgfVxuICAgICAgICogICB9XG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHBvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdIHwgbnVsbDtcbiAgICB9O1xuICAgIFVwZGF0ZU9yZ1JlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyBgZW5hYmxlZGAgZmllbGQgdG8gdGhpcyB2YWx1ZS4gKi9cbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdXBkYXRlIHRoaXMgb3JnJ3MgYWxpYXMuICBPcmcgYWxpYXNlcyBhcmUgZ2xvYmFsbHkgdW5pcXVlLlxuICAgICAgICogQGV4YW1wbGUgbXlfb3JnXG4gICAgICAgKi9cbiAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyBwb2xpY2llcyAob2xkIHBvbGljaWVzIHdpbGwgYmUgb3ZlcndyaXR0ZW4hKS5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiTWF4RGFpbHlVbnN0YWtlXCI6IDVcbiAgICAgICAqICAgfSxcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiT3JpZ2luQWxsb3dsaXN0XCI6IFtcbiAgICAgICAqICAgICAgIFwiaHR0cHM6Ly9leGFtcGxlLmNvbVwiXG4gICAgICAgKiAgICAgXVxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJTb3VyY2VJcEFsbG93bGlzdFwiOiBbXG4gICAgICAgKiAgICAgICBcIjEwLjEuMi4zLzhcIixcbiAgICAgICAqICAgICAgIFwiMTY5LjI1NC4xNy4xLzE2XCJcbiAgICAgICAqICAgICBdXG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W10gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyBUT1RQIGZhaWx1cmUgbGltaXQuIEFmdGVyIHRoaXMgbWFueSBmYWlsdXJlcyxcbiAgICAgICAqIHRoZSB1c2VyIGlzIHJhdGUgbGltaXRlZCB1bnRpbCB0aGUgbmV4dCAzMC1zZWNvbmQgVE9UUCB3aW5kb3cuXG4gICAgICAgKi9cbiAgICAgIHRvdHBfZmFpbHVyZV9saW1pdD86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIG9yZydzIHVzZXItZXhwb3J0IGRlbGF5LCBpLmUuLCB0aGUgYW1vdW50IG9mIHRpbWVcbiAgICAgICAqIChpbiBzZWNvbmRzKSBiZXR3ZWVuIGEgdXNlcidzIGluaXRpYXRpbmcgYW4gZXhwb3J0IGFuZCB0aGUgdGltZSB3aGVuXG4gICAgICAgKiBleHBvcnQgaXMgYWxsb3dlZC4gRm9yIHNlY3VyaXR5LCB0aGlzIGRlbGF5IGNhbm5vdCBiZSBzZXQgdG8gbGVzcyB0aGFuXG4gICAgICAgKiAxNzI4MDAsIGkuZS4sIDIgZGF5cy5cbiAgICAgICAqL1xuICAgICAgdXNlcl9leHBvcnRfZGVsYXk/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyB1c2VyLWV4cG9ydCB3aW5kb3csIGkuZS4sIHRoZSBhbW91bnQgb2YgdGltZVxuICAgICAgICogKGluIHNlY29uZHMpIHRoYXQgZXhwb3J0IGlzIGFsbG93ZWQgYWZ0ZXIgdGhlIHVzZXItZXhwb3J0IGRlbGF5LiBBZnRlclxuICAgICAgICogdGhpcyBhbW91bnQgb2YgdGltZSwgdGhlIGV4cG9ydCBpcyBjYW5jZWxlZCBhbmQgbXVzdCBiZSByZS1pbml0aWF0ZWQuXG4gICAgICAgKiBGb3Igc2VjdXJpdHksIHRoaXMgd2luZG93IGNhbm5vdCBiZSBzZXQgdG8gZ3JlYXRlciB0aGFuIDI1OTIwMCwgaS5lLixcbiAgICAgICAqIDMgZGF5cy5cbiAgICAgICAqL1xuICAgICAgdXNlcl9leHBvcnRfd2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIFVwZGF0ZU9yZ1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgb3JnIChtdXN0IGJlIGFscGhhbnVtZXJpYylcbiAgICAgICAqIEBleGFtcGxlIG15X29yZ19uYW1lXG4gICAgICAgKi9cbiAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBvcmdhbml6YXRpb25cbiAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAqL1xuICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IHZhbHVlIG9mIG9yZy13aWRlIHBvbGljaWVzXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIk1heERhaWx5VW5zdGFrZVwiOiA1XG4gICAgICAgKiAgIH0sXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIk9yaWdpbkFsbG93bGlzdFwiOiBbXG4gICAgICAgKiAgICAgICBcImh0dHBzOi8vZXhhbXBsZS5jb21cIlxuICAgICAgICogICAgIF1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IHZhbHVlIG9mIHRoZSBUT1RQIGZhaWx1cmUgbGltaXRcbiAgICAgICAqL1xuICAgICAgdG90cF9mYWlsdXJlX2xpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdXNlci1leHBvcnQgZGVsYXlcbiAgICAgICAqL1xuICAgICAgdXNlcl9leHBvcnRfZGVsYXk/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiB1c2VyLWV4cG9ydCB3aW5kb3dcbiAgICAgICAqL1xuICAgICAgdXNlcl9leHBvcnRfd2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICB9O1xuICAgIFVwZGF0ZVJvbGVSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZXMgdGhlIHJvbGUncyBgZW5hYmxlZGAgcHJvcGVydHkgdG8gdGhpcyB2YWx1ZS5cbiAgICAgICAqIE9uY2UgZGlzYWJsZWQsIGEgcm9sZSBjYW5ub3QgYmUgdXNlZDsgYW5kIGl0J3MgdG9rZW5zIGNhbm5vdCBiZSB1c2VkIGZvciBzaWduaW5nLlxuICAgICAgICovXG4gICAgICBlbmFibGVkPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIHJvbGUncyBrZXkgcG9saWNpZXMgKG9sZCBwb2xpY2llcyB3aWxsIGJlIG92ZXJ3cml0dGVuISkuXG4gICAgICAgKiBPbmx5IFwiZGVueVwiIHN0eWxlIHBvbGljaWVzIG1heSBiZSBzZXQuXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlNvdXJjZUlwQWxsb3dsaXN0XCI6IFtcbiAgICAgICAqICAgICAgIFwiMTIzLjQ1Ni43OC45LzE2XCJcbiAgICAgICAqICAgICBdXG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W10gfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHJlcXVlc3QgdG8gY29tcGxldGUgYSB1c2VyIGV4cG9ydCAqL1xuICAgIFVzZXJFeHBvcnRDb21wbGV0ZVJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUga2V5IHRvIGJlIGV4cG9ydGVkLiBUaGUga2V5LWlkIG11c3QgY29ycmVzcG9uZCB0byB0aGUgb25lIGluXG4gICAgICAgKiB0aGUgc3BlY2lmaWVkIGV4cG9ydCByZXF1ZXN0LCBhbmQgdGhlIGNhbGxlciBtdXN0IG93biB0aGlzIGtleS5cbiAgICAgICAqIEBleGFtcGxlIEtleSMweDNjNGQ5MENjNUFmMTY0NEMzQTNCMDEzQmFhNTQ4ODk5NzM4MUQ3QzhcbiAgICAgICAqL1xuICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgTklTVCBQLTI1NiBwdWJsaWMga2V5IChiYXNlNjQtZW5jb2RlZCBTRUMxIHdpdGggb3Igd2l0aG91dCBjb21wcmVzc2lvbilcbiAgICAgICAqIHRvIHdoaWNoIHRoZSBleHBvcnQgd2lsbCBiZSBlbmNyeXB0ZWQuIElmIGEgcHVibGljIGtleSB3YXMgcHJvdmlkZWQgd2hlblxuICAgICAgICogYHVzZXJfZXhwb3J0X2luaXRgIHdhcyBjYWxsZWQsIHRoaXMga2V5IG11c3QgbWF0Y2ggdGhhdCBvbmUuXG4gICAgICAgKiBAZXhhbXBsZSBBa3BMVC8zZFhBcEp6WFNkdWFQUTdhcHlUMEFEQndxa3QxZXMvYVQwaVdXZlxuICAgICAgICovXG4gICAgICBwdWJsaWNfa2V5OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEFuIGVuY3J5cHRlZCB1c2VyLWV4cG9ydCAqL1xuICAgIFVzZXJFeHBvcnRDb21wbGV0ZVJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZXhwb3J0ZWQga2V5IG1hdGVyaWFsLCBlbmNyeXB0ZWQgd2l0aCBBRVMtMjU2LUdDTSB1bmRlciBhIGtleVxuICAgICAgICogZGVyaXZlZCBmcm9tIHRoZSBwdWJsaWMga2V5IHN1cHBsaWVkIGluIHRoZSByZXF1ZXN0IHZpYSBIUEtFIChSRkM5MTgwKVxuICAgICAgICogd2l0aCBESEtFTShQLTI1NiwgSEtERi1TSEEyNTYpIGFuZCBiYXNlNjQgZW5jb2RlZC5cbiAgICAgICAqL1xuICAgICAgZW5jcnlwdGVkX2tleV9tYXRlcmlhbDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVwaGVtZXJhbCBwdWJsaWMga2V5IHVzZWQgZm9yIEhQS0Uga2V5IGRlcml2YXRpb24gYXMgYmFzZTY0LWVuY29kZWRcbiAgICAgICAqIHVuY29tcHJlc3NlZCBTRUMxIHNlcmlhbGl6YXRpb24uXG4gICAgICAgKi9cbiAgICAgIGVwaGVtZXJhbF9wdWJsaWNfa2V5OiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB1c2VyLWlkIHRvIHdoaWNoIHRoaXMga2V5IGJlbG9uZ3MuICovXG4gICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgcmVxdWVzdCB0byBpbml0aWF0ZSBhIHVzZXIgZXhwb3J0ICovXG4gICAgVXNlckV4cG9ydEluaXRSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGtleSB0byBiZSBleHBvcnRlZC4gVGhpcyBrZXkgbXVzdCBiZSBvd25lZCBieSB0aGUgY2FsbGVyLlxuICAgICAgICogQGV4YW1wbGUgS2V5IzB4M2M0ZDkwQ2M1QWYxNjQ0QzNBM0IwMTNCYWE1NDg4OTk3MzgxRDdDOFxuICAgICAgICovXG4gICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFuIG9wdGlvbmFsIE5JU1QgUC0yNTYgcHVibGljIGtleSAoYmFzZTY0LWVuY29kZWQgU0VDMSB3aXRoIG9yIHdpdGhvdXRcbiAgICAgICAqIGNvbXByZXNzaW9uKSB0byB3aGljaCB0aGUgZXhwb3J0IHdpbGwgYmUgZW5jcnlwdGVkLiBJZiBwcm92aWRlZCwgdGhpc1xuICAgICAgICogcHVibGljIGtleSBNVVNUIGJlIHRoZSBvbmUgdXNlZCB0byBlbmNyeXB0IHRoZSBleHBvcnQgb25jZSB0aGUgZGVsYXkgaGFzXG4gICAgICAgKiBleHBpcmVkLiBPdGhlcndpc2UsIHRoZSB1c2VyIGNhbiBwcm92aWRlIGFueSBwdWJsaWMga2V5IHdoZW4gY29tcGxldGluZ1xuICAgICAgICogdGhlIGV4cG9ydCByZXF1ZXN0IHBvc3QgZGVsYXkuXG4gICAgICAgKlxuICAgICAgICogVGhpcyBvcHRpb24gbWF5IHByb3ZpZGUgZXh0cmEgc2VjdXJpdHkgd2hlbiB0aGUgdXNlciBoYXMgYSBzZWN1cmUgaGFyZHdhcmVcbiAgICAgICAqIGRldmljZSAoZS5nLiwgYSBwaG9uZSdzIHNlY3VyZSBlbGVtZW50IG9yIGEgWXViaUtleSkgaW4gd2hpY2ggYSBOSVNUIFAtMjU2XG4gICAgICAgKiBzZWNyZXQga2V5IGNhbiBiZSBnZW5lcmF0ZWQuIFByb3ZpZGluZyB0aGUgY29ycmVzcG9uZGluZyBwdWJsaWMga2V5IGhlcmVcbiAgICAgICAqIGVuc3VyZXMgdGhhdCBvbmx5IHRoYXQgc3BlY2lmaWMgZGV2aWNlIHdpbGwgYmUgY2FwYWJsZSBvZiBkZWNyeXB0aW5nXG4gICAgICAgKiB0aGUgZXhwb3J0IGNpcGhlcnRleHQuXG4gICAgICAgKlxuICAgICAgICogSWYgbm8gc2VjdXJlIGhhcmR3YXJlIGRldmljZSBpcyBhdmFpbGFibGUgdG8gc3RvcmUgdGhlIHNlY3JldCBrZXksIHRoaXNcbiAgICAgICAqIG9wdGlvbiBTSE9VTEQgTk9UIGJlIHVzZWQgYmVjYXVzZSBvZiB0aGUgcmlzayBvZiBzZWNyZXQga2V5IHRoZWZ0IGR1cmluZ1xuICAgICAgICogdGhlIGV4cG9ydCBkZWxheSBwZXJpb2QuXG4gICAgICAgKiBAZXhhbXBsZSBBa3BMVC8zZFhBcEp6WFNkdWFQUTdhcHlUMEFEQndxa3QxZXMvYVQwaVdXZlxuICAgICAgICovXG4gICAgICBwdWJsaWNfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIHRvIGEgc3VjY2Vzc2Z1bCB1c2VyLWV4cG9ydCBpbml0IHJlcXVlc3QgKi9cbiAgICBVc2VyRXhwb3J0SW5pdFJlc3BvbnNlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJFeHBvcnRSZXF1ZXN0XCJdICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGtleS1pZCBiZWluZyByZXF1ZXN0ZWQuXG4gICAgICAgKiBAZXhhbXBsZSBLZXkjMHgzYzRkOTBDYzVBZjE2NDRDM0EzQjAxM0JhYTU0ODg5OTczODFEN0M4XG4gICAgICAgKi9cbiAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQZW5kaW5nIHVzZXItZXhwb3J0IHJlcXVlc3QgYXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS4gKi9cbiAgICBVc2VyRXhwb3J0UmVxdWVzdDoge1xuICAgICAgZXhwX2Vwb2NoOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgb3JnLWlkIGluIHdoaWNoIHRoZSBrZXkgaXMgaG91c2VkLlxuICAgICAgICogQGV4YW1wbGUgT3JnI2YzNjFlZDZiLTVkMTktNGNjZi1hNGQ1LWViYTkzNWRjMGI5MFxuICAgICAgICovXG4gICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBTSEEtMjU2IGhhc2ggb2YgdGhlIHB1YmxpYyBrZXkgcHJvdmlkZWQgYXQgZXhwb3J0IGluaXRpYXRpb24sXG4gICAgICAgKiBpZiBhbnkuIElmIGEga2V5IHdhcyBwcm92aWRlZCwgb25seSB0aGF0IGtleSBjYW4gYmUgdXNlZCB0byBjb21wbGV0ZVxuICAgICAgICogdGhlIGV4cG9ydCBwcm9jZWR1cmUuIE90aGVyd2lzZSwgYW55IGtleSBjYW4gYmUgdXNlZC5cbiAgICAgICAqXG4gICAgICAgKiBJTVBPUlRBTlQ6IGlmIGEgcHVibGljIGtleSBpcyBzdXBwbGllZCBhdCBleHBvcnQgaW5pdGlhdGlvbiwgaXQgaXNcbiAgICAgICAqIFNUUk9OR0xZIFJFQ09NTUVOREVEIHRoYXQgdGhlIGNvcnJlc3BvbmRpbmcgc2VjcmV0IGtleSBiZSBzdG9yZWQgaW5cbiAgICAgICAqIGEgc2VjdXJlIGhhcmR3YXJlIGRldmljZSwgZS5nLiwgYSBZdWJpS2V5IG9yIGEgcGhvbmUncyBzZWN1cmUgZWxlbWVudC5cbiAgICAgICAqIElmIG5vIHN1Y2ggaGFyZHdhcmUgaXMgYXZhaWxhYmxlLCBzdXBwbHlpbmcgYSBwdWJsaWMga2V5IGF0IGV4cG9ydFxuICAgICAgICogaW5pdGlhdGlvbiBpcyBTVFJPTkdMWSBESVNDT1VSQUdFRCBiZWNhdXNlIG9mIHRoZSByaXNrIG9mIHRoZWZ0IGR1cmluZ1xuICAgICAgICogdGhlIGV4cG9ydCBkZWxheSBwZXJpb2QuXG4gICAgICAgKlxuICAgICAgICogKFNlZSBhbHNvIHRoZSBjb21tZW50IGluIHRoZSBgcHVibGljX2tleWAgZmllbGQgb2YgYFVzZXJJbml0UmVxdWVzdGAuKVxuICAgICAgICogQGV4YW1wbGUgZGY0NTdhOThkNTUzODU0MGY1NGQxMzE2YjU5N2EwZjM5YjhkOTZmNDg4ZjEwYTJlMzFhOTU1YzE0NmZkZjFkM1xuICAgICAgICovXG4gICAgICBwdWJsaWNfa2V5X2hhc2g/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgdmFsaWRfZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICB9O1xuICAgIFVzZXJJZEluZm86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB1c2VyJ3MgZW1haWxcbiAgICAgICAqIEBleGFtcGxlIGFsaWNlQGV4YW1wbGUuY29tXG4gICAgICAgKi9cbiAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIHVzZXJcbiAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBVc2VySW5Sb2xlSW5mbzoge1xuICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgVXNlckluZm86IHtcbiAgICAgIC8qKiBAZXhhbXBsZSBhbGljZUBleGFtcGxlLmNvbSAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIG11bHRpLWZhY3RvciBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGNvbmZpZ3VyZWQgZm9yIHRoaXMgdXNlciAqL1xuICAgICAgbWZhOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNvbmZpZ3VyZWRNZmFcIl1bXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gTUZBIHBvbGljeSwgYXBwbGllcyBiZWZvcmUgbG9nZ2luZyBpbiBhbmQgb3RoZXIgc2Vuc2l0aXZlIG9wZXJhdGlvbnMgKi9cbiAgICAgIG1mYV9wb2xpY3k/OiB1bmtub3duO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQWxsIG9yZ2FuaXphdGlvbnMgdGhlIHVzZXIgYmVsb25ncyB0b1xuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcIk9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcIlxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBvcmdfaWRzOiBzdHJpbmdbXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyXG4gICAgICAgKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlxuICAgICAgICovXG4gICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQSBXZWJBdXRobiBSZWx5aW5nIFBhcnR5IG1heSByZXF1aXJlIHVzZXIgdmVyaWZpY2F0aW9uIGZvciBzb21lIG9mIGl0c1xuICAgICAqIG9wZXJhdGlvbnMgYnV0IG5vdCBmb3Igb3RoZXJzLCBhbmQgbWF5IHVzZSB0aGlzIHR5cGUgdG8gZXhwcmVzcyBpdHMgbmVlZHMuXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZW51bS11c2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnRcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDogXCJyZXF1aXJlZFwiIHwgXCJkaXNjb3VyYWdlZFwiIHwgXCJwcmVmZXJyZWRcIjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQW4gZXhpdCB2b2x1bnRhcmlseSBzdWJtaXR0ZWQgYSB2YWxpZGF0b3Igd2hvIHdpc2hlcyB0byB3aXRoZHJhdy5cbiAgICAgKiBUaGUgc2NoZW1hIGZvciB0aGlzIG1lc3NhZ2UgaXMgZGVmaW5lZFxuICAgICAqIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW0vY29uc2Vuc3VzLXNwZWNzL2Jsb2IvdjEuMC4xL3NwZWNzL3BoYXNlMC9iZWFjb24tY2hhaW4ubWQjc2lnbmVkdm9sdW50YXJ5ZXhpdCkuXG4gICAgICovXG4gICAgVm9sdW50YXJ5RXhpdDoge1xuICAgICAgZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJbmRleCBvZiB0aGUgZXhpdGluZyB2YWxpZGF0b3IuXG4gICAgICAgKiBAZXhhbXBsZSAyNTZcbiAgICAgICAqL1xuICAgICAgdmFsaWRhdG9yX2luZGV4OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgcmVzcG9uc2VzOiB7XG4gICAgQWRkVGhpcmRQYXJ0eVVzZXJSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZiAqL1xuICAgICAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBBdmFTaWduUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBoZXgtZW5jb2RlZCBzaWduYXR1cmUuICovXG4gICAgICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgQmxvYlNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGhleC1lbmNvZGVkIHNpZ25hdHVyZS4gKi9cbiAgICAgICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBCdGNTaWduUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGhleC1lbmNvZGVkIHNpZ25hdHVyZSBpbiBjb21wYWN0IGZvcm1hdC5cbiAgICAgICAgICAgKiBAZXhhbXBsZSAweDQ1NGFlZjI3YzIxZGY3ZGQ4ZjUzN2RjODY5ZjRjZDY1Mjg2Y2UyMzlhNTJkMzY0NzBmNGQ4NWJlODVhODkxYjAyNzg5ZTVmZmQ4NTYwYjMyYTk4MTEwZTVkMDA5NjgwMmU0YzE0MTQ1Y2Y2YzQ0ZjEwYTc2OGM4Nzc1NWVhYTQ4MDBcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBDcmVhdGVLZXlJbXBvcnRLZXlSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJbXBvcnRLZXlcIl0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEFuIGF0dGVzdGF0aW9uIGRvY3VtZW50IGZyb20gYSBzZWN1cmUgZW5jbGF2ZSwgaW5jbHVkaW5nIGFuXG4gICAgICAgICAgICogUlNBIHNpZ25pbmcga2V5IHVzZWQgdG8gc2lnbiB0aGUgY29udGVudHMgb2YgdGhpcyBtZXNzYWdlLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGVuY2xhdmVfYXR0ZXN0YXRpb246IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQW4gUlNBLVBTUy1TSEEyNTYgc2lnbmF0dXJlIG9uIHRoZSBwdWJsaWMga2V5IGFuZCBlbmNyeXB0ZWRcbiAgICAgICAgICAgKiBzZWNyZXRzIGF0dGVzdGluZyB0byB0aGVpciBnZW5lcmF0aW9uIGluc2lkZSBhIHNlY3VyZSBlbmNsYXZlLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGVuY2xhdmVfc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgQ3JlYXRlS2V5UmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBpbmZvIGFib3V0IHRoZSBjcmVhdGVkIGtleXMgKi9cbiAgICAgICAgICBrZXlzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuZXdseSBjcmVhdGVkIHJvbGUgaW5mb3JtYXRpb24gKi9cbiAgICBDcmVhdGVSb2xlUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcm9sZS5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBteV9yb2xlXG4gICAgICAgICAgICovXG4gICAgICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgbmV3bHkgY3JlYXRlZCByb2xlXG4gICAgICAgICAgICogQGV4YW1wbGUgUm9sZSNiZmUzZWNjYi03MzFlLTQzMGQtYjFlNS1hYzEzNjNlNmIwNmJcbiAgICAgICAgICAgKi9cbiAgICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgRWlwMTkxT3I3MTJTaWduUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgc2lnbmF0dXJlIGNvbXByaXNpbmcgNjUgYnl0ZXMgaW4gdGhlIGZvcm1hdCByZXF1aXJlZFxuICAgICAgICAgICAqIGJ5IGVjcmVjb3ZlcjogMzItYnl0ZSByLCAzMi1ieXRlIHMsIGFuZCBvbmUtYnl0ZSByZWNvdmVyeS1pZCB2XG4gICAgICAgICAgICogd2hpY2ggaXMgZWl0aGVyIDI3IG9yIDI4LlxuICAgICAgICAgICAqIEBleGFtcGxlIDB4NDM1NWM0N2Q2MzkyNGU4YTcyZTUwOWI2NTAyOTA1MmViNmMyOTlkNTNhMDRlMTY3YzU3NzVmZDQ2Njc1MWM5ZDA3Mjk5OTM2ZDMwNGMxNTNmNjQ0M2RmYTA1ZjQwZmYwMDdkNzI5MTFiNmY3MjMwN2Y5OTYyMzE2MDViOTE1NjIxY1xuICAgICAgICAgICAqL1xuICAgICAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEVtcHR5SW1wbDoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHN0YXR1czogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEV0aDFTaWduUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgUkxQIGVuY29kaW5nIG9mIHRoZSB0cmFuc2FjdGlvbiBhbmQgaXRzIHNpZ25hdHVyZVxuICAgICAgICAgICAqIEBleGFtcGxlIDB4MjI4OTUxMTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBlMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMjAxZDU4NjU2YjBlMjJhYWE2OGZkYzY5MmRiNDE5NzkwOThjMzg4NmVkMzMwMTVkNzQ2N2RlOTIxMTYwOWNkYWMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMDhiMGMyOTAwMzI0ZDNmZjlhZGZiYTdmZGZlNWFmM2Y5YjJjZGJlZWY3YjI4MDQzN2JiZjFiMWM1OWEwOTNkNjE1YWZlM2U1ZGZlZDk2MjJiNTQwY2RkOWI0OWIzYzVhZDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ5MDExYWRiY2MzYmM5YzAzMDdiYjA3ZjM3ZGRhMWExYTljNjlkMmUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwOTAzZGI4NTI1Njc0YjhlNzkwNGY5YjdkN2Q5ZWM1NWEwYTQyZDMzY2Y1OGJlMjU0NjliMGMyMWJiYjZkMDYxNzJiYzViYjVmZDFhZWQ4ZTRmMzU5MzY5Njg5NTgxMTZiMDYxOTU1M2MyY2IxYzUyZTczMjMwNzRjNmY4ZWIzZDVhNzA3NGZjNjU4MDE0OGRmOTA3ODM3ZmEzYjE2NGFkN2ZiYzIyODhkYWQxZThhNWIwMjEwOTViNTdjOGEzNmQ0XG4gICAgICAgICAgICovXG4gICAgICAgICAgcmxwX3NpZ25lZF90eDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEV0aDJTaWduUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4IGVuY29kZWQgc2lnbmF0dXJlIHByZWZpeGVkIHdpdGggMHggZS5nLiBcIjB4MDAwMC4uLlwiXG4gICAgICAgICAgICogQGV4YW1wbGUgMHhiNGYyZWY5ZDEyYTU0ZTFmNTY5NTk2YzA3Yzk3ZDZkNzMwNTM1YjZmZmMwZDI4Nzc2MWRjNzgxMDNhODYzMjY3ODI0NzFhMDRjNzVjZTdhNmZhZWEwOGNhOWE0YTA4MzAwMzFjZGNiODkzZGE4NzExZDU0YWEyMjYxOWYxYTdlNzFiODE4NWRkZjRjNmJmZDliYWJiZDczNTk2MGUzNWU1NmJkNmVlYjg5NjI1YjA0ODUwZTdhOWVmODg0NmU1NDlcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBGaWRvQXNzZXJ0Q2hhbGxlbmdlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiAoY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDaGFsbGVuZ2VQaWVjZXNcIl0gJiB7XG4gICAgICAgICAgb3B0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNcIl07XG4gICAgICAgIH0pICYge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBjaGFsbGVuZ2UuIE11c3QgYmUgc3VwcGxpZWQgd2hlbiBhbnN3ZXJpbmcgdGhlIGNoYWxsZW5nZS4gKi9cbiAgICAgICAgICBjaGFsbGVuZ2VfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU2VudCBieSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIENvbnRhaW5zIHRoZSBjaGFsbGVuZ2UgZGF0YSB0aGF0IG11c3QgYmVcbiAgICAgKiB1c2VkIHRvIGdlbmVyYXRlIGEgbmV3IGNyZWRlbnRpYWxcbiAgICAgKi9cbiAgICBGaWRvQ3JlYXRlQ2hhbGxlbmdlUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IChjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNoYWxsZW5nZVBpZWNlc1wiXSAmIHtcbiAgICAgICAgICBvcHRpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnNcIl07XG4gICAgICAgIH0pICYge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBjaGFsbGVuZ2UuIE11c3QgYmUgc3VwcGxpZWQgd2hlbiBhbnN3ZXJpbmcgdGhlIGNoYWxsZW5nZS4gKi9cbiAgICAgICAgICBjaGFsbGVuZ2VfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBHZXRVc2Vyc0luT3JnUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBsaXN0IG9mIHVzZXJzIGluIHRoZSBvcmcgKi9cbiAgICAgICAgICB1c2VyczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VySWRJbmZvXCJdW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByb29mIHRoYXQgYW4gZW5kLXVzZXIgcHJvdmlkZWQgQ3ViZVNpZ25lciB3aXRoIGEgdmFsaWQgYXV0aCB0b2tlblxuICAgICAqIChlaXRoZXIgYW4gT0lEQyB0b2tlbiBvciBhIEN1YmVTaWduZXIgc2Vzc2lvbiB0b2tlbilcbiAgICAgKi9cbiAgICBJZGVudGl0eVByb29mOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIE9JREMgYXVkaWVuY2U7IHNldCBvbmx5IGlmIHRoZSBwcm9vZiB3YXMgb2J0YWluZWQgYnkgdXNpbmcgT0lEQyB0b2tlbi5cbiAgICAgICAgICAgKlxuICAgICAgICAgICAqIEluIG90aGVyIHdvcmRzLCBwcmVzZW5jZSBvZiB0aGlzIGZpZWxkIHRlc3RpZmllcyB0aGF0IGF1dGhvcml6YXRpb24gd2FzIG9idGFpbmVkIHZpYSBPSURDLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGF1ZD86IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlbWFpbCBhc3NvY2lhdGVkIHdpdGggdGhlIHVzZXJcbiAgICAgICAgICAgKiBAZXhhbXBsZSB1c2VyQGVtYWlsLmNvbVxuICAgICAgICAgICAqL1xuICAgICAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICAgICAgZXhwX2Vwb2NoOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAgICAgaWRlbnRpdHk/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9JRENJZGVudGl0eVwiXSB8IG51bGw7XG4gICAgICAgICAgdXNlcl9pbmZvPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDdWJlU2lnbmVyVXNlckluZm9cIl0gfCBudWxsO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gb3BhcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBwcm9vZiAqL1xuICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEZXJpdmF0aW9uLXJlbGF0ZWQgbWV0YWRhdGEgZm9yIGtleXMgZGVyaXZlZCBmcm9tIGEgbG9uZy1saXZlZCBtbmVtb25pYyAqL1xuICAgIEtleURlcml2YXRpb25JbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgZGVyaXZhdGlvbiBwYXRoIHVzZWQgdG8gZGVyaXZlIHRoaXMga2V5ICovXG4gICAgICAgICAgZGVyaXZhdGlvbl9wYXRoOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbW5lbW9uaWMtaWQgb2YgdGhlIGtleSdzIHBhcmVudCBtbmVtb25pYyAqL1xuICAgICAgICAgIG1uZW1vbmljX2lkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBIHdyYXBwZWQga2V5LWltcG9ydCBrZXkgKi9cbiAgICBLZXlJbXBvcnRLZXk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEJhc2U2NC1lbmNvZGVkLCBlbmNyeXB0ZWQgZGF0YSBrZXkuICovXG4gICAgICAgICAgZGtfZW5jOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBFeHBpcmF0aW9uIHRpbWVzdGFtcCBleHByZXNzZWQgYXMgc2Vjb25kcyBzaW5jZSB0aGUgVU5JWCBlcG9jaC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBleHBpcmVzOiBudW1iZXI7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlcGhlbWVyYWwgcHVibGljIGtleSB0byB3aGljaCBhbiBpbXBvcnRlZCBrZXkgc2hvdWxkIGJlIGVuY3J5cHRlZC5cbiAgICAgICAgICAgKiBUaGlzIGlzIGEgUDM4NCBwdWJsaWMga2V5IGluIGJhc2U2NC1lbmNvZGVkIHVuY29tcHJlc3NlZCBTRUNHIGZvcm1hdC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwdWJsaWNfa2V5OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYXNlNjQtZW5jb2RlZCwgZW5jcnlwdGVkIHNlY3JldCBrZXkuICovXG4gICAgICAgICAgc2tfZW5jOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgS2V5SW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIGRlcml2YXRpb25faW5mbz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5RGVyaXZhdGlvbkluZm9cIl0gfCBudWxsO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUga2V5IGlzIGVuYWJsZWQgKG9ubHkgZW5hYmxlZCBrZXlzIG1heSBiZSB1c2VkIGZvciBzaWduaW5nKSAqL1xuICAgICAgICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUga2V5OiBcIktleSNcIiBmb2xsb3dlZCBieSBhIHVuaXF1ZSBpZGVudGlmaWVyIHNwZWNpZmljIHRvXG4gICAgICAgICAgICogdGhlIHR5cGUgb2Yga2V5IChzdWNoIGFzIGEgcHVibGljIGtleSBmb3IgQkxTIG9yIGFuIGV0aGVyZXVtIGFkZHJlc3MgZm9yIFNlY3ApXG4gICAgICAgICAgICogQGV4YW1wbGUgS2V5IzB4OGUzNDg0Njg3ZTY2Y2RkMjZjZjA0YzM2NDc2MzNhYjRmMzU3MDE0OFxuICAgICAgICAgICAqL1xuICAgICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEEgdW5pcXVlIGlkZW50aWZpZXIgc3BlY2lmaWMgdG8gdGhlIHR5cGUgb2Yga2V5LCBzdWNoIGFzIGEgcHVibGljIGtleSBvciBhbiBldGhlcmV1bSBhZGRyZXNzXG4gICAgICAgICAgICogQGV4YW1wbGUgMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAgICAgICAgICovXG4gICAgICAgICAgbWF0ZXJpYWxfaWQ6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVXNlci1kZWZpbmVkIG1ldGFkYXRhLiBXaGVuIHJlbmRlcmluZyAoZS5nLiwgaW4gdGhlIGJyb3dzZXIpIHlvdSBzaG91bGQgdHJlYXRcbiAgICAgICAgICAgKiBpdCBhcyB1bnRydXN0ZWQgdXNlciBkYXRhIChhbmQgYXZvaWQgaW5qZWN0aW5nIG1ldGFkYXRhIGludG8gSFRNTCBkaXJlY3RseSkgaWZcbiAgICAgICAgICAgKiB1bnRydXN0ZWQgdXNlcnMgY2FuIGNyZWF0ZS91cGRhdGUga2V5cyAob3IgdGhlaXIgbWV0YWRhdGEpLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIG1ldGFkYXRhPzogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBPd25lciBvZiB0aGUga2V5XG4gICAgICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBvd25lcjogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBLZXkgcG9saWN5XG4gICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAqICAgXCJBbGxvd1Jhd0Jsb2JTaWduaW5nXCIsXG4gICAgICAgICAgICogICB7XG4gICAgICAgICAgICogICAgIFwiUmVxdWlyZU1mYVwiOiB7XG4gICAgICAgICAgICogICAgICAgXCJjb3VudFwiOiAxXG4gICAgICAgICAgICogICAgIH1cbiAgICAgICAgICAgKiAgIH1cbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgcG9saWN5OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQsIHNlcmlhbGl6ZWQgcHVibGljIGtleS4gVGhlIGZvcm1hdCB1c2VkIGRlcGVuZHMgb24gdGhlIGtleSB0eXBlOlxuICAgICAgICAgICAqIC0gU2VjcDI1NmsxIGtleXMgdXNlIDY1LWJ5dGUgdW5jb21wcmVzc2VkIFNFQ0cgZm9ybWF0O1xuICAgICAgICAgICAqIC0gU3Rhcmsga2V5cyB1c2UgMzMtYnl0ZSBjb21wcmVzc2VkIFNFQ0cgZm9ybWF0O1xuICAgICAgICAgICAqIC0gQkxTIGtleXMgdXNlIDQ4LWJ5dGUgY29tcHJlc3NlZCBCTFMxMi0zODEgKFpDYXNoKSBmb3JtYXQ7XG4gICAgICAgICAgICogLSBFZDI1NTE5IGtleXMgdXNlIHRoZSBjYW5vbmljYWwgMzItYnl0ZSBlbmNvZGluZyBzcGVjaWZpZWQgaW4gUkZDIDgwMzIuXG4gICAgICAgICAgICogQGV4YW1wbGUgMHgwNGQyNjg4YjZiYzJjZTdmOTg3OWI5ZTc0NWYzYzRkYzE3NzkwOGM1Y2VmMGMxYjY0Y2ZmMTlhZTdmZjI3ZGVlNjIzYzY0ZmU5ZDljMzI1YzdmYmJjNzQ4YmJkNWY2MDdjZTE0ZGQ4M2UyOGViYmJiN2QzZTdmMmZmYjcwYTc5NDMxXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHVibGljX2tleTogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcHVycG9zZSBmb3Igd2hpY2ggdGhlIGtleSBjYW4gYmUgdXNlZCAoZS5nLiwgY2hhaW4gaWQgZm9yIHdoaWNoIHRoZSBrZXkgaXMgYWxsb3dlZCB0byBzaWduIG1lc3NhZ2VzKVxuICAgICAgICAgICAqIEBleGFtcGxlIEV0aDJWYWxpZGF0b3IoMSlcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgS2V5SW5mb3M6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBrZXlzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBMaXN0TWZhUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBwZW5kaW5nIE1GQSByZXF1ZXN0cyAqL1xuICAgICAgICAgIG1mYV9yZXF1ZXN0czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZmFSZXF1ZXN0SW5mb1wiXVtdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIExpc3RUb2tlbnNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHRva2VuczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb2tlbkluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFJldHVybmVkIGFzIGEgcmVzcG9uc2UgZnJvbSBtdWx0aXBsZSByb3V0ZXMgKGUuZy4sICdnZXQgbWZhJywgJ2FwcHJvdmUgbWZhJywgJ2FwcHJvdmUgdG90cCcpLiAqL1xuICAgIE1mYVJlcXVlc3RJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgZXhwaXJlc19hdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXBwcm92YWwgcmVxdWVzdCBJRC4gKi9cbiAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgIHJlY2VpcHQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJlY2VpcHRcIl0gfCBudWxsO1xuICAgICAgICAgIHJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSHR0cFJlcXVlc3RcIl07XG4gICAgICAgICAgc3RhdHVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN0YXR1c1wiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEluZm9ybWF0aW9uIGFib3V0IGEgbmV3IHNlc3Npb24sIHJldHVybmVkIGZyb20gbXVsdGlwbGUgZW5kcG9pbnRzIChlLmcuLCBsb2dpbiwgcmVmcmVzaCwgZXRjLikuICovXG4gICAgTmV3U2Vzc2lvblJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBTZXNzaW9uIGV4cGlyYXRpb24gKGluIHNlY29uZHMgc2luY2UgVU5JWCBlcG9jaCksIGJleW9uZCB3aGljaCBpdCBjYW5ub3QgYmUgcmVmcmVzaGVkLlxuICAgICAgICAgICAqIEBleGFtcGxlIDE3MDE4Nzk2NDBcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBleHBpcmF0aW9uPzogbnVtYmVyO1xuICAgICAgICAgIHNlc3Npb25faW5mbzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDbGllbnRTZXNzaW9uSW5mb1wiXTtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmV3IHRva2VuIHRvIGJlIHVzZWQgZm9yIGF1dGhlbnRpY2F0aW9uLiBSZXF1ZXN0cyB0byBzaWduaW5nIGVuZHBvaW50c1xuICAgICAgICAgICAqIHNob3VsZCBpbmNsdWRlIHRoaXMgdmFsdWUgaW4gdGhlIGBBdXRob3JpemF0aW9uYCBoZWFkZXJcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB0b2tlbjogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIE9yZ0luZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZW4gZmFsc2UsIGFsbCBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbnMgaW52b2x2aW5nIGtleXMgaW4gdGhpcyBvcmcgYXJlIGRpc2FibGVkLiAqL1xuICAgICAgICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXByZWNhdGVkOiB0aGlzIGZpZWxkIHNob3VsZCBiZSBpZ25vcmVkLiAqL1xuICAgICAgICAgIGtleV9pbXBvcnRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIHVuaXZlcnNhbGx5IHVuaXF1ZSBrZXktd3JhcHBpbmcta2V5IGlkZW50aWZpZXIuXG4gICAgICAgICAgICogVGhpcyB2YWx1ZSBpcyByZXF1aXJlZCB3aGVuIHNldHRpbmcgdXAga2V5IGV4cG9ydC5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBtcmstZmNlMDk1MjVlODE1ODdkMjM1MjBmMTFlMDdlMmU5ZDlcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBrd2tfaWQ6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gRGF0ZS90aW1lIChpbiBVVEMpIHdoZW4gbGFzdCAndW5zdGFrZScgd2FzIHBlcmZvcm1lZC4gVW5peCBlcG9jaCBpZiBub25lLlxuICAgICAgICAgICAqIEBleGFtcGxlIFRPRE9cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X3Vuc3Rha2U6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEhvdyBtYW55ICd1bnN0YWtlJyBjYWxscyBoYXBwZW5lZCBvbiB0aGUgZGF5IHdoZW4gYGxhc3RfdW5zdGFrZWAgd2FzIHBlcmZvcm1lZC5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X3Vuc3Rha2VfZGF5X2NvdW50OiBudW1iZXI7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgb3JnXG4gICAgICAgICAgICogQGV4YW1wbGUgbXlfb3JnX25hbWVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBvcmdhbml6YXRpb25cbiAgICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAgICovXG4gICAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIE9yZy13aWRlIHBvbGljaWVzIHRoYXQgYXJlIGNoZWNrZWQgYmVmb3JlIGEga2V5IGlzIHVzZWQgZm9yIHNpZ25pbmdcbiAgICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAgICogICB7XG4gICAgICAgICAgICogICAgIFwiTWF4RGFpbHlVbnN0YWtlXCI6IDVcbiAgICAgICAgICAgKiAgIH1cbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W107XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgb3JnYW5pemF0aW9uJ3MgY3VycmVudGx5IGNvbmZpZ3VyZWQgVE9UUCBmYWlsdXJlIGxpbWl0LCBpLmUuLCB0aGUgbnVtYmVyXG4gICAgICAgICAgICogb2YgdGltZXMgYSB1c2VyIGNhbiBwcm92aWRlIGFuIGluY29ycmVjdCBUT1RQIGNvZGUgYmVmb3JlIGJlaW5nIHJhdGUgbGltaXRlZC5cbiAgICAgICAgICAgKiBUaGlzIHZhbHVlIGNhbiBiZSBiZXR3ZWVuIDEgYW5kIDUgKGluY2x1c2l2ZSkuXG4gICAgICAgICAgICovXG4gICAgICAgICAgdG90cF9mYWlsdXJlX2xpbWl0OiBudW1iZXI7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgb3JnYW5pemF0aW9uJ3MgY3VycmVudGx5IGNvbmZpZ3VyZWQgdXNlci1leHBvcnQgZGVsYXksIGkuZS4sIHRoZSBtaW5pbXVtXG4gICAgICAgICAgICogYW1vdW50IG9mIHRpbWUgKGluIHNlY29uZHMpIGJldHdlZW4gd2hlbiBhIHVzZXItZXhwb3J0IGlzIGluaXRpYXRlZCBhbmQgd2hlblxuICAgICAgICAgICAqIGl0IG1heSBiZSBjb21wbGV0ZWQuIChUaGlzIHZhbHVlIGlzIG1lYW5pbmdsZXNzIGZvciBvcmdhbml6YXRpb25zIHRoYXQgdXNlXG4gICAgICAgICAgICogb3JnLXdpZGUgZXhwb3J0LilcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB1c2VyX2V4cG9ydF9kZWxheTogbnVtYmVyO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIGN1cnJlbnRseSBjb25maWd1cmVkIHVzZXItZXhwb3J0IHdpbmRvdywgaS5lLiwgdGhlIGFtb3VudFxuICAgICAgICAgICAqIG9mIHRpbWUgKGluIHNlY29uZHMpIGJldHdlZW4gd2hlbiB0aGUgdXNlci1leHBvcnQgZGVsYXkgaXMgY29tcGxldGVkIGFuZCB3aGVuXG4gICAgICAgICAgICogdGhlIHVzZXIgZXhwb3J0IHJlcXVlc3QgaGFzIGV4cGlyZWQgYW5kIGNhbiBubyBsb25nZXIgYmUgY29tcGxldGVkLiAoVGhpcyB2YWx1ZVxuICAgICAgICAgICAqIGlzIG1lYW5pbmdsZXNzIGZvciBvcmdhbml6YXRpb25zIHRoYXQgdXNlIG9yZy13aWRlIGV4cG9ydC4pXG4gICAgICAgICAgICovXG4gICAgICAgICAgdXNlcl9leHBvcnRfd2luZG93OiBudW1iZXI7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUGFnaW5hdGVkTGlzdEtleXNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIGtleXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5mb1wiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRMaXN0Um9sZUtleXNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIGtleXMgaW4gYSByb2xlICovXG4gICAgICAgICAga2V5czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJblJvbGVJbmZvXCJdW107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZExpc3RSb2xlVXNlcnNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIHVzZXJzIGluIGEgcm9sZSAqL1xuICAgICAgICAgIHVzZXJzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJJblJvbGVJbmZvXCJdW107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZExpc3RSb2xlc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgcm9sZXMgaW4gYW4gb3JnYW5pemF0aW9uLiAqL1xuICAgICAgICAgIHJvbGVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJvbGVJbmZvXCJdW107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZFNlc3Npb25zUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBsaXN0IG9mIHNlc3Npb25zICovXG4gICAgICAgICAgc2Vzc2lvbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vzc2lvbkluZm9cIl1bXTtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUGFnaW5hdGVkVXNlckV4cG9ydExpc3RSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIGV4cG9ydF9yZXF1ZXN0czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VyRXhwb3J0SW5pdFJlc3BvbnNlXCJdW107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFJldm9rZVRva2VuUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICB0b2tlbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG9rZW5JbmZvXCJdIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBSZXZva2VUb2tlbnNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVG9rZW5zIHRoYXQgd2VyZSByZXZva2VkLiAqL1xuICAgICAgICAgIHJldm9rZWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG9rZW5JbmZvXCJdW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUm9sZUluZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgcm9sZSBpcyBlbmFibGVkXG4gICAgICAgICAgICogQGV4YW1wbGUgdHJ1ZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXByZWNhdGVkIFRoZSBDdWJlU2lnbmVyIElEcyBvZiBhdCBtb3N0IDEwMCBrZXlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJvbGUgKi9cbiAgICAgICAgICBrZXlzPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJblJvbGVJbmZvXCJdW10gfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHJvbGUgKG11c3QgYmUgYWxwaGFudW1lcmljKVxuICAgICAgICAgICAqIEBleGFtcGxlIG15X3JvbGVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gUG9saWN5IHRoYXQgaXMgY2hlY2tlZCB3aGVuZXZlciBhIGtleSBpcyBhY2Nlc3NlZCBmb3Igc2lnbmluZyB2aWEgdGhpcyByb2xlLlxuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJTb3VyY2VJcEFsbG93bGlzdFwiOiBbXG4gICAgICAgICAgICogICAgICAgXCIxMjMuNDU2Ljc4LjkvMTZcIlxuICAgICAgICAgICAqICAgICBdXG4gICAgICAgICAgICogICB9LFxuICAgICAgICAgICAqICAge1xuICAgICAgICAgICAqICAgICBcIlJlcXVpcmVNZmFcIjoge1xuICAgICAgICAgICAqICAgICAgIFwiY291bnRcIjogMVxuICAgICAgICAgICAqICAgICB9XG4gICAgICAgICAgICogICB9XG4gICAgICAgICAgICogXVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHBvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHJvbGVcbiAgICAgICAgICAgKiBAZXhhbXBsZSBSb2xlI2JmZTNlY2NiLTczMWUtNDMwZC1iMWU1LWFjMTM2M2U2YjA2YlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIERlcHJlY2F0ZWQuIFRoZSBsaXN0IG9mIGF0IG1vc3QgMTAwIHVzZXJzIHdpdGggYWNjZXNzIHRvIHRoZSByb2xlLiAqL1xuICAgICAgICAgIHVzZXJzPzogc3RyaW5nW10gfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFNlc3Npb25JbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gZm9yIHRoZSBzZXNzaW9uXG4gICAgICAgICAgICogQGV4YW1wbGUgT0lEQyBsb2dpbiBzZXNzaW9uXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHVycG9zZTogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBTZXNzaW9uIElELiBVbmlxdWVseSBpZGVudGlmaWVzIHRoZSBzZXNzaW9uLCBidXQgY2Fubm90IGJlIHVzZWQgZm9yIGF1dGguXG4gICAgICAgICAgICogQGV4YW1wbGUgNzdhYWQyMTAwYzM2MWY0OTc2MzVkZDAwNWM0ZDE1NzgxZTJlNWRmNGI5ZjQ1ZDhlNzRmMzc0MjVjYmMzMGI5ZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNlc3Npb25faWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXNwb25zZSBmcm9tIGFueSBvcGVyYXRpb24gb3BlcmF0aW5nIG9uIG11bHRpcGxlIHNlc3Npb25zICovXG4gICAgU2Vzc2lvbnNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2Ygc2Vzc2lvbnMgKi9cbiAgICAgICAgICBzZXNzaW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZXNzaW9uSW5mb1wiXVtdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFNvbGFuYVNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGhleC1lbmNvZGVkIHNpZ25hdHVyZS4gKi9cbiAgICAgICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBTdGFrZVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB2YWxpZGF0b3Iga2V5IGlkIChcIktleSMuLi5cIilcbiAgICAgICAgICAgKiBAZXhhbXBsZSBLZXkjZGIxNzMxZjgtMzY1OS00NWMwLTg4NWItZTExZTFmNWI3YmUyXG4gICAgICAgICAgICovXG4gICAgICAgICAgY3JlYXRlZF92YWxpZGF0b3Jfa2V5X2lkOiBzdHJpbmc7XG4gICAgICAgICAgZGVwb3NpdF90eDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJEZXBvc2l0VHhuXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFRva2VuSW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gU2Vzc2lvbiBJRC4gVXNlIGl0IHRvIHJldm9rZSBhIHNlc3Npb24uIENhbm5vdCBiZSB1c2VkIGZvciBhdXRoLiAqL1xuICAgICAgICAgIGhhc2g6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRva2VucyBwdXJwb3NlICovXG4gICAgICAgICAgcHVycG9zZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFRvdHBJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgVE9UUCBjaGFsbGVuZ2UuXG4gICAgICAgICAgICogQGV4YW1wbGUgVG90cENoYWxsZW5nZSM3ODkyZWJiYS01NjNlLTQ4NWItYmI3ZC1lMjYyNjczNjMyODZcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB0b3RwX2lkOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFN0YW5kYXJkIFRPVFAgdXJsIHdoaWNoIGluY2x1ZGVzIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvIGluaXRpYWxpemUgVE9UUC5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBvdHBhdXRoOi8vdG90cC9DdWJpc3Q6YWxpY2UtJTQwZXhhbXBsZS5jb20/c2VjcmV0PURBSEY3S0NPVFFXU09NSzRYRkVNTkhYTzRKNDMzT0Q3Jmlzc3Vlcj1DdWJpc3RcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB0b3RwX3VybDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBVbnN0YWtlIHJlc3BvbnNlcyBhcmUgc2lnbmVkIHZvbHVudGFyeSBleGl0IG1lc3NhZ2VzLlxuICAgICAqIFRoZSBzY2hlbWEgZm9yIHRoaXMgbWVzc2FnZSBpcyBkZWZpbmVkXG4gICAgICogW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9jb25zZW5zdXMtc3BlY3MvYmxvYi92MS4wLjEvc3BlY3MvcGhhc2UwL2JlYWNvbi1jaGFpbi5tZCNzaWduZWR2b2x1bnRhcnlleGl0KS5cbiAgICAgKiBUaGlzIG1lc3NhZ2UgY2FuIGJlIGRpcmVjdGx5IFBPU1RlZCB0byB0aGUgQmVhY29uIG5vZGUnc1xuICAgICAqIGAvZXRoL3YxL2JlYWNvbi9wb29sL3ZvbHVudGFyeV9leGl0c2AgZW5kLXBvaW50IChzZWUgZXhwZWN0ZWQgc2NoZW1hXG4gICAgICogW2hlcmVdKGh0dHBzOi8vZXRoZXJldW0uZ2l0aHViLmlvL2JlYWNvbi1BUElzLyMvQmVhY29uL3N1Ym1pdFBvb2xWb2x1bnRhcnlFeGl0KSkuXG4gICAgICovXG4gICAgVW5zdGFrZVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgbWVzc2FnZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJWb2x1bnRhcnlFeGl0XCJdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBCTFMgc2lnbmF0dXJlLlxuICAgICAgICAgICAqIEBleGFtcGxlIDB4OTEwYzdjZDUzN2VkOTFjYzhjNGE4MmYzY2JkODMyZTliZThjMjRhMjJlOWM4NmRmNDc5ZjdjZTQyMDI1ZWE2YTA5NjE5YjQxOGI2NjZhMDYwZTI2MGQyYWFlMzFiOGU1MGU5ZDA1Y2EzNDQyYzdlZWQzYjUwN2U1MjA3ZTE0Njc0Mjc1ZjY4YzJiYTg0YzRiZjZiOGRkMzY0YTMwNGFjYWM4Y2ZhYjM2ODFlMjUxNGI0NDAwZjkyNDJiYzYxMTY0XG4gICAgICAgICAgICovXG4gICAgICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgVXBkYXRlT3JnUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSAqL1xuICAgICAgICAgIGVuYWJsZWQ/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgb3JnIChtdXN0IGJlIGFscGhhbnVtZXJpYylcbiAgICAgICAgICAgKiBAZXhhbXBsZSBteV9vcmdfbmFtZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIG9yZ2FuaXphdGlvblxuICAgICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiBvcmctd2lkZSBwb2xpY2llc1xuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJNYXhEYWlseVVuc3Rha2VcIjogNVxuICAgICAgICAgICAqICAgfSxcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJPcmlnaW5BbGxvd2xpc3RcIjogW1xuICAgICAgICAgICAqICAgICAgIFwiaHR0cHM6Ly9leGFtcGxlLmNvbVwiXG4gICAgICAgICAgICogICAgIF1cbiAgICAgICAgICAgKiAgIH1cbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W10gfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiB0aGUgVE9UUCBmYWlsdXJlIGxpbWl0XG4gICAgICAgICAgICovXG4gICAgICAgICAgdG90cF9mYWlsdXJlX2xpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdXNlci1leHBvcnQgZGVsYXlcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB1c2VyX2V4cG9ydF9kZWxheT86IG51bWJlciB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IHZhbHVlIG9mIHVzZXItZXhwb3J0IHdpbmRvd1xuICAgICAgICAgICAqL1xuICAgICAgICAgIHVzZXJfZXhwb3J0X3dpbmRvdz86IG51bWJlciB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBlbmNyeXB0ZWQgdXNlci1leHBvcnQgKi9cbiAgICBVc2VyRXhwb3J0Q29tcGxldGVSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZXhwb3J0ZWQga2V5IG1hdGVyaWFsLCBlbmNyeXB0ZWQgd2l0aCBBRVMtMjU2LUdDTSB1bmRlciBhIGtleVxuICAgICAgICAgICAqIGRlcml2ZWQgZnJvbSB0aGUgcHVibGljIGtleSBzdXBwbGllZCBpbiB0aGUgcmVxdWVzdCB2aWEgSFBLRSAoUkZDOTE4MClcbiAgICAgICAgICAgKiB3aXRoIERIS0VNKFAtMjU2LCBIS0RGLVNIQTI1NikgYW5kIGJhc2U2NCBlbmNvZGVkLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGVuY3J5cHRlZF9rZXlfbWF0ZXJpYWw6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVwaGVtZXJhbCBwdWJsaWMga2V5IHVzZWQgZm9yIEhQS0Uga2V5IGRlcml2YXRpb24gYXMgYmFzZTY0LWVuY29kZWRcbiAgICAgICAgICAgKiB1bmNvbXByZXNzZWQgU0VDMSBzZXJpYWxpemF0aW9uLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGVwaGVtZXJhbF9wdWJsaWNfa2V5OiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgdXNlci1pZCB0byB3aGljaCB0aGlzIGtleSBiZWxvbmdzLiAqL1xuICAgICAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSByZXNwb25zZSB0byBhIHN1Y2Nlc3NmdWwgdXNlci1leHBvcnQgaW5pdCByZXF1ZXN0ICovXG4gICAgVXNlckV4cG9ydEluaXRSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VyRXhwb3J0UmVxdWVzdFwiXSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGtleS1pZCBiZWluZyByZXF1ZXN0ZWQuXG4gICAgICAgICAgICogQGV4YW1wbGUgS2V5IzB4M2M0ZDkwQ2M1QWYxNjQ0QzNBM0IwMTNCYWE1NDg4OTk3MzgxRDdDOFxuICAgICAgICAgICAqL1xuICAgICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFVzZXJJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIGFsaWNlQGV4YW1wbGUuY29tICovXG4gICAgICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCBtdWx0aS1mYWN0b3IgYXV0aGVudGljYXRpb24gbWV0aG9kcyBjb25maWd1cmVkIGZvciB0aGlzIHVzZXIgKi9cbiAgICAgICAgICBtZmE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29uZmlndXJlZE1mYVwiXVtdO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gTUZBIHBvbGljeSwgYXBwbGllcyBiZWZvcmUgbG9nZ2luZyBpbiBhbmQgb3RoZXIgc2Vuc2l0aXZlIG9wZXJhdGlvbnMgKi9cbiAgICAgICAgICBtZmFfcG9saWN5PzogdW5rbm93bjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQWxsIG9yZ2FuaXphdGlvbnMgdGhlIHVzZXIgYmVsb25ncyB0b1xuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIFwiT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVwiXG4gICAgICAgICAgICogXVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG9yZ19pZHM6IHN0cmluZ1tdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlclxuICAgICAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgICAgICovXG4gICAgICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICBwYXJhbWV0ZXJzOiBuZXZlcjtcbiAgcmVxdWVzdEJvZGllczogbmV2ZXI7XG4gIGhlYWRlcnM6IG5ldmVyO1xuICBwYXRoSXRlbXM6IG5ldmVyO1xufVxuXG5leHBvcnQgdHlwZSAkZGVmcyA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuZXhwb3J0IHR5cGUgZXh0ZXJuYWwgPSBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5cbmV4cG9ydCBpbnRlcmZhY2Ugb3BlcmF0aW9ucyB7XG4gIC8qKlxuICAgKiBVc2VyIEluZm9cbiAgICogQGRlc2NyaXB0aW9uIFVzZXIgSW5mb1xuICAgKlxuICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgdXNlci5cbiAgICovXG4gIGFib3V0TWVMZWdhY3k6IHtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlVzZXJJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBPcmdcbiAgICogQGRlc2NyaXB0aW9uIEdldCBPcmdcbiAgICpcbiAgICogUmV0cmlldmVzIGluZm9ybWF0aW9uIGFib3V0IGFuIG9yZ2FuaXphdGlvbi5cbiAgICovXG4gIGdldE9yZzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk9yZ0luZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVXBkYXRlIE9yZ1xuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIE9yZ1xuICAgKlxuICAgKiBVcGRhdGUgb3JnYW5pemF0aW9uIGF0dHJpYnV0ZXMgKGVuYWJsZWQgZmxhZywgbmFtZSwgYW5kIHBvbGljaWVzKS5cbiAgICovXG4gIHVwZGF0ZU9yZzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVcGRhdGVPcmdSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVXBkYXRlT3JnUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBBdmFsYW5jaGUgWC0gb3IgUC1DaGFpbiBNZXNzYWdlXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIEF2YWxhbmNoZSBYLSBvciBQLUNoYWluIE1lc3NhZ2VcbiAgICpcbiAgICogU2lnbnMgYW4gQXZhbGFuY2hlIG1lc3NhZ2Ugd2l0aCBhIGdpdmVuIFNlY3BBdmEga2V5LlxuICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICovXG4gIGF2YVNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gQXZhbGFuY2hlIGJlY2gzMiBhZGRyZXNzIGZvcm1hdCB3aXRob3V0IHRoZSBjaGFpbiBwcmVmaXhcbiAgICAgICAgICogQGV4YW1wbGUgYXZheDFhbTR3NmhmcnZtaDNha2R1emtqdGhydGd0cWFmYWxjZTZhbjhjclxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXZhU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJBdmFTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gQml0Y29pbiBUcmFuc2FjdGlvblxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBCaXRjb2luIFRyYW5zYWN0aW9uXG4gICAqXG4gICAqIFNpZ25zIGEgQml0Y29pbiB0cmFuc2FjdGlvbiB3aXRoIGEgZ2l2ZW4ga2V5LlxuICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICovXG4gIGJ0Y1NpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gYmVjaDMyIGVuY29kaW5nIG9mIHRoZSBwdWJsaWMga2V5XG4gICAgICAgICAqIEBleGFtcGxlIGJjMXE1cDVxa2FlNzdseTgwa3I0cHlmeXRkcW03cmYwOGRkaGRlamw5Z1xuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQnRjU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJCdGNTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIERlcml2ZSBLZXkgRnJvbSBMb25nLUxpdmVkIE1uZW1vbmljXG4gICAqIEBkZXNjcmlwdGlvbiBEZXJpdmUgS2V5IEZyb20gTG9uZy1MaXZlZCBNbmVtb25pY1xuICAgKlxuICAgKiBEZXJpdmVzIGEga2V5IG9mIGEgc3BlY2lmaWVkIHR5cGUgdXNpbmcgYSBzdXBwbGllZCBkZXJpdmF0aW9uIHBhdGggYW5kIGFuXG4gICAqIGV4aXN0aW5nIGxvbmctbGl2ZWQgbW5lbW9uaWMuXG4gICAqL1xuICBkZXJpdmVLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRGVyaXZlS2V5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNyZWF0ZUtleVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gRUlQLTE5MSBEYXRhXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIEVJUC0xOTEgRGF0YVxuICAgKlxuICAgKiBTaWducyBhIG1lc3NhZ2UgdXNpbmcgRUlQLTE5MSBwZXJzb25hbF9zaWduIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgKi9cbiAgZWlwMTkxU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBFVk0gYWRkcmVzcyBvZiB0aGUgU2VjcDI1NmsxIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSAweDQ5MDExYWRiQ0MzYkM5YzAzMDdCQjA3RjM3RGRhMWExYTljNjlkMkVcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVpcDE5MVNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRWlwMTkxT3I3MTJTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gRUlQLTcxMiBUeXBlZCBEYXRhXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIEVJUC03MTIgVHlwZWQgRGF0YVxuICAgKlxuICAgKiBTaWducyB0eXBlZCBkYXRhIGFjY29yZGluZyB0byBFSVAtNzEyIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgKi9cbiAgZWlwNzEyU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBFVk0gYWRkcmVzcyBvZiB0aGUgU2VjcDI1NmsxIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSAweDQ5MDExYWRiQ0MzYkM5YzAzMDdCQjA3RjM3RGRhMWExYTljNjlkMkVcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVpcDcxMlNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRWlwMTkxT3I3MTJTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBDdWJlU2lnbmVyIHVzZXIgc2Vzc2lvblxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFtJZGVudGl0eVByb29mXSBmcm9tIEN1YmVTaWduZXIgdXNlciBzZXNzaW9uXG4gICAqXG4gICAqIFRoaXMgcm91dGUgY2FuIGJlIHVzZWQgdG8gcHJvdmUgdG8gYW5vdGhlciBwYXJ0eSB0aGF0IGEgdXNlciBoYXMgYVxuICAgKiB2YWxpZCBDdWJlU2lnbmVyIHNlc3Npb24uXG4gICAqXG4gICAqIENsaWVudHMgYXJlIGludGVuZGVkIHRvIGNhbGwgdGhpcyByb3V0ZSBhbmQgcGFzcyB0aGUgcmV0dXJuZWQgZXZpZGVuY2VcbiAgICogdG8gYW5vdGhlciBzZXJ2aWNlIHdoaWNoIHdpbGwgdmVyaWZ5IGl0IGJ5IG1ha2luZyBhIHJlcXVlc3QgdG8gYC92MC9vcmcvPG9yZ19pZD4vaWRlbnRpdHkvdmVyaWZ5YC5cbiAgICovXG4gIGNyZWF0ZVByb29mQ3ViZVNpZ25lcjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIklkZW50aXR5UHJvb2ZcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlIFtJZGVudGl0eVByb29mXSBmcm9tIE9JREMgdG9rZW5cbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBPSURDIHRva2VuXG4gICAqXG4gICAqIEV4Y2hhbmdlIGFuIE9JREMgSUQgdG9rZW4gKHBhc3NlZCB2aWEgdGhlIGBBdXRob3JpemF0aW9uYCBoZWFkZXIpIGZvciBhIHByb29mIG9mIGF1dGhlbnRpY2F0aW9uLlxuICAgKlxuICAgKiBUaGlzIHJvdXRlIGNhbiBiZSB1c2VkIHRvIHByb3ZlIHRvIGFub3RoZXIgcGFydHkgdGhhdCBhIHVzZXIgaGFzIG1ldCB0aGVcbiAgICogYXV0aGVudGljYXRpb24gcmVxdWlyZW1lbnRzIChhbGxvd2VkIGlzc3VlcnMgJiBhdWRpZW5jZXMpIGZvciBDdWJlU2lnbmVyXG4gICAqIHdpdGhvdXQgbGVha2luZyB0aGVpciBjcmVkZW50aWFscy5cbiAgICpcbiAgICogQ2xpZW50cyBhcmUgaW50ZW5kZWQgdG8gY2FsbCB0aGlzIHJvdXRlIGFuZCBwYXNzIHRoZSByZXR1cm5lZCBldmlkZW5jZSB0byBhbm90aGVyIHNlcnZpY2VcbiAgICogd2hpY2ggd2lsbCB2ZXJpZnkgaXQgYnkgbWFraW5nIGEgcmVxdWVzdCB0byBgL3YwL29yZy88b3JnX2lkPi9pZGVudGl0eS92ZXJpZnlgLlxuICAgKi9cbiAgY3JlYXRlUHJvb2ZPaWRjOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiSWRlbnRpdHlQcm9vZlwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBWZXJpZnkgaWRlbnRpdHkgcHJvb2ZcbiAgICogQGRlc2NyaXB0aW9uIFZlcmlmeSBpZGVudGl0eSBwcm9vZlxuICAgKlxuICAgKiBBbGxvd3MgYSB0aGlyZC1wYXJ0eSB0byB2YWxpZGF0ZSBwcm9vZiBvZiBhdXRoZW50aWNhdGlvbi5cbiAgICpcbiAgICogV2hlbiBhIHRoaXJkLXBhcnR5IGlzIHByb3ZpZGVkIGFuIFtJZGVudGl0eVByb29mXSBvYmplY3QsIHRoZXkgbXVzdCBjaGVjayBpdHNcbiAgICogdmVyYWNpdHkgYnkgY2FsbGluZyB0aGlzIGVuZHBvaW50XG4gICAqL1xuICB2ZXJpZnlQcm9vZjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJZGVudGl0eVByb29mXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge307XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgS2V5LUltcG9ydCBLZXlcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBLZXktSW1wb3J0IEtleVxuICAgKlxuICAgKiBHZW5lcmF0ZSBhbiBlcGhlbWVyYWwga2V5IHRoYXQgYSBjbGllbnQgY2FuIHVzZSBmb3Iga2V5LWltcG9ydCBlbmNyeXB0aW9uLlxuICAgKi9cbiAgY3JlYXRlS2V5SW1wb3J0S2V5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQ3JlYXRlS2V5SW1wb3J0S2V5UmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW1wb3J0IEtleVxuICAgKiBAZGVzY3JpcHRpb24gSW1wb3J0IEtleVxuICAgKlxuICAgKiBTZWN1cmVseSBpbXBvcnRzIGFuIGV4aXN0aW5nIGtleSB1c2luZyBhIHByZXZpb3VzbHkgZ2VuZXJhdGVkIGtleS1pbXBvcnQga2V5LlxuICAgKi9cbiAgaW1wb3J0S2V5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkltcG9ydEtleVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJDcmVhdGVLZXlSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbnZpdGUgVXNlclxuICAgKiBAZGVzY3JpcHRpb24gSW52aXRlIFVzZXJcbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyB1c2VyIGluIGFuIGV4aXN0aW5nIG9yZyBhbmQgc2VuZHMgdGhhdCB1c2VyIGFuIGludml0ZSBlbWFpbC5cbiAgICovXG4gIGludml0ZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJJbnZpdGVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgS2V5c1xuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBLZXlzXG4gICAqXG4gICAqIEdldHMgdGhlIGxpc3Qgb2Ygb3duZWQga2V5cyBpbiBhIGdpdmVuIG9yZy5cbiAgICovXG4gIGxpc3RLZXlzSW5Pcmc6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJMYXN0RXZhbEtleVwiXSB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gRmlsdGVyIGJ5IGtleSB0eXBlXG4gICAgICAgICAqIEBleGFtcGxlIFNlY3BFdGhBZGRyXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfdHlwZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXSB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkTGlzdEtleXNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgS2V5XG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgS2V5XG4gICAqXG4gICAqIENyZWF0ZXMgb25lIG9yIG1vcmUgbmV3IGtleXMgb2YgdGhlIHNwZWNpZmllZCB0eXBlLlxuICAgKi9cbiAgY3JlYXRlS2V5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZUtleVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJDcmVhdGVLZXlSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgS2V5XG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgS2V5XG4gICAqXG4gICAqIFJldHVybnMgdGhlIHByb3BlcnRpZXMgb2YgYSBrZXkuXG4gICAqL1xuICBnZXRLZXlJbk9yZzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBLZXlcbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJLZXlJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIERlbGV0ZSBLZXlcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBLZXlcbiAgICpcbiAgICogRGVsZXRlcyBhIGtleSBzcGVjaWZpZWQgYnkgaXRzIElELlxuICAgKiBPbmx5IHRoZSBrZXkgb3duZXIgYW5kIG9yZyBvd25lcnMgYXJlIGFsbG93ZWQgdG8gZGVsZXRlIGtleXMuXG4gICAqL1xuICBkZWxldGVLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIGRlc2lyZWQgS2V5XG4gICAgICAgICAqIEBleGFtcGxlIEtleSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFVwZGF0ZSBLZXlcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBLZXlcbiAgICpcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgYSBrZXkuICBUaGUgdXNlciBtdXN0IGJlIHRoZSBvd25lciBvZiB0aGUga2V5IG9yIG9yZ2FuaXphdGlvbiB0byBwZXJmb3JtIHRoaXMgYWN0aW9uLlxuICAgKi9cbiAgdXBkYXRlS2V5OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIEtleVxuICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVcGRhdGVLZXlSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiS2V5SW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IFBlbmRpbmcgTUZBIFJlcXVlc3RzXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IFBlbmRpbmcgTUZBIFJlcXVlc3RzXG4gICAqXG4gICAqIFJldHJpZXZlcyBhbmQgcmV0dXJucyBhbGwgcGVuZGluZyBNRkEgcmVxdWVzdHMgdGhhdCBhcmUgYWNjZXNzaWJsZSB0byB0aGUgY3VycmVudCB1c2VyLFxuICAgKiBpLmUuLCB0aG9zZSBpbiB3aGljaCB0aGUgY3VycmVudCB1c2VyIGlzIGxpc3RlZCBhcyBhbiBhcHByb3ZlclxuICAgKi9cbiAgbWZhTGlzdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkxpc3RNZmFSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgUGVuZGluZyBNRkEgUmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gR2V0IFBlbmRpbmcgTUZBIFJlcXVlc3RcbiAgICpcbiAgICogUmV0cmlldmVzIGFuZCByZXR1cm5zIGEgcGVuZGluZyBNRkEgcmVxdWVzdCBieSBpdHMgaWQuXG4gICAqL1xuICBtZmFHZXQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBNZmFSZXF1ZXN0XG4gICAgICAgICAqIEBleGFtcGxlIE1mYVJlcXVlc3QjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBtZmFfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEFwcHJvdmUgTUZBIFJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIEFwcHJvdmUgTUZBIFJlcXVlc3RcbiAgICpcbiAgICogQXBwcm92ZSByZXF1ZXN0IGFmdGVyIGxvZ2dpbmcgaW4gd2l0aCBDdWJlU2lnbmVyLiBBZGRzIHRoZSBjdXJyZW50bHktbG9nZ2VkIHVzZXIgYXMgYW4gYXBwcm92ZXJcbiAgICogb2YgYSBwZW5kaW5nIE1GQSByZXF1ZXN0IG9mIHRoZSBbU3RhdHVzOjpSZXF1aXJlZEFwcHJvdmVyc10ga2luZC4gSWYgdGhlIHJlcXVpcmVkIG51bWJlciBvZlxuICAgKiBhcHByb3ZlcnMgaXMgcmVhY2hlZCwgdGhlIE1GQSByZXF1ZXN0IGlzIGFwcHJvdmVkOyB0aGUgY29uZmlybWF0aW9uIHJlY2VpcHQgY2FuIGJlIHVzZWQgdG9cbiAgICogcmVzdW1lIHRoZSBvcmlnaW5hbCBIVFRQIHJlcXVlc3QuXG4gICAqL1xuICBtZmFBcHByb3ZlQ3M6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBNZmFSZXF1ZXN0XG4gICAgICAgICAqIEBleGFtcGxlIE1mYVJlcXVlc3QjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBtZmFfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYXRlIEFwcHJvdmluZyBhbiBNRkEgUmVxdWVzdCB3aXRoIEZJRE9cbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIEFwcHJvdmluZyBhbiBNRkEgUmVxdWVzdCB3aXRoIEZJRE9cbiAgICpcbiAgICogSW5pdGlhdGVzIHRoZSBhcHByb3ZhbCBwcm9jZXNzIG9mIGFuIE1GQSBSZXF1ZXN0IHVzaW5nIEZJRE8uXG4gICAqL1xuICBtZmFBcHByb3ZlRmlkbzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE1mYVJlcXVlc3RcbiAgICAgICAgICogQGV4YW1wbGUgTWZhUmVxdWVzdCMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG1mYV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRmlkb0Fzc2VydENoYWxsZW5nZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBGaW5hbGl6ZSBhIEZJRE8gTUZBIEFwcHJvdmFsXG4gICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSBhIEZJRE8gTUZBIEFwcHJvdmFsXG4gICAqXG4gICAqIEFkZHMgYW4gYXBwcm92ZXIgdG8gYSBwZW5kaW5nIE1GQSByZXF1ZXN0LlxuICAgKlxuICAgKiBJZiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7XG4gICAqIHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0byByZXN1bWUgdGhlIG9yaWdpbmFsIEhUVFAgcmVxdWVzdC5cbiAgICovXG4gIG1mYUFwcHJvdmVGaWRvQ29tcGxldGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBNZmFSZXF1ZXN0XG4gICAgICAgICAqIEBleGFtcGxlIE1mYVJlcXVlc3QjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBtZmFfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJGaWRvQXNzZXJ0QW5zd2VyXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTWZhUmVxdWVzdEluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQXBwcm92ZSBhIFRPVFAgTUZBIFJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIEFwcHJvdmUgYSBUT1RQIE1GQSBSZXF1ZXN0XG4gICAqXG4gICAqIEFkZHMgdGhlIGN1cnJlbnQgdXNlciBhcyBhcHByb3ZlciB0byBhIHBlbmRpbmcgTUZBIHJlcXVlc3QgYnkgcHJvdmlkaW5nIFRPVFAgY29kZS5cbiAgICpcbiAgICogSWYgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBhcHByb3ZlcnMgaXMgcmVhY2hlZCwgdGhlIE1GQSByZXF1ZXN0IGlzIGFwcHJvdmVkO1xuICAgKiB0aGUgY29uZmlybWF0aW9uIHJlY2VpcHQgY2FuIGJlIHVzZWQgdG8gcmVzdW1lIHRoZSBvcmlnaW5hbCBIVFRQIHJlcXVlc3QuXG4gICAqL1xuICBtZmFBcHByb3ZlVG90cDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE1mYVJlcXVlc3RcbiAgICAgICAgICogQGV4YW1wbGUgTWZhUmVxdWVzdCMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG1mYV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRvdHBBcHByb3ZlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExvZ2luIHdpdGggT0lEQ1xuICAgKiBAZGVzY3JpcHRpb24gTG9naW4gd2l0aCBPSURDXG4gICAqXG4gICAqIEV4Y2hhbmdlIGFuIE9JREMgSUQgdG9rZW4gKHBhc3NlZCB2aWEgdGhlIGBBdXRob3JpemF0aW9uYCBoZWFkZXIpIGZvciBhIHNpZ25lciBzZXNzaW9uXG4gICAqL1xuICBvaWRjQXV0aDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJPaWRjTG9naW5SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IFJvbGVzXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IFJvbGVzXG4gICAqXG4gICAqIFJldHJpZXZlcyBhbGwgcm9sZXMgaW4gYW4gb3JnYW5pemF0aW9uIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBpcyBhbGxvd2VkIHRvIGFjY2Vzcy5cbiAgICovXG4gIGxpc3RSb2xlczoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkxhc3RFdmFsS2V5XCJdIHwgbnVsbDtcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEb24ndCBpbmNsdWRlIGtleXMgYW5kIHVzZXJzIGZvciBlYWNoIHJvbGUgKi9cbiAgICAgICAgc3VtbWFyaXplPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkTGlzdFJvbGVzUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlIFJvbGVcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBSb2xlXG4gICAqXG4gICAqIENyZWF0ZXMgYSBuZXcgcm9sZSBpbiBhbiBvcmdhbml6YXRpb24uIFVubGVzcyB0aGUgbG9nZ2VkLWluIHVzZXJcbiAgICogaXMgdGhlIG93bmVyLCB0aGV5IGFyZSBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBuZXdseSBjcmVhdGVkIHJvbGUuXG4gICAqL1xuICBjcmVhdGVSb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgcmVxdWVzdCBib2R5IHRvIHNldCB0aGUgcm9sZSBuYW1lICovXG4gICAgcmVxdWVzdEJvZHk/OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZVJvbGVSZXF1ZXN0XCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNyZWF0ZVJvbGVSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgUm9sZVxuICAgKiBAZGVzY3JpcHRpb24gR2V0IFJvbGVcbiAgICpcbiAgICogUmV0cmlldmVzIGluZm9ybWF0aW9uIGFib3V0IGEgcm9sZSBpbiBhbiBvcmdhbml6YXRpb25cbiAgICovXG4gIGdldFJvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJSb2xlSW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBEZWxldGUgUm9sZVxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIFJvbGVcbiAgICpcbiAgICogRGVsZXRlcyBhIHJvbGUgaW4gYW4gb3JnYW5pemF0aW9uLlxuICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLlxuICAgKi9cbiAgZGVsZXRlUm9sZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBVcGRhdGUgUm9sZVxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIFJvbGVcbiAgICpcbiAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBhIHJvbGUgKHRoaXMgcmVxdWlyZXMgdGhlIGBtYW5hZ2U6cm9sZTp1cGRhdGU6ZW5hYmxlYCBzY29wZSkuXG4gICAqIFVwZGF0ZXMgdGhlIHJvbGUncyBwb2xpY2llcyAodGhpcyByZXF1aXJlcyB0aGUgYG1hbmFnZTpyb2xlOnVwZGF0ZTpwb2xpY3lgIHNjb3BlKS5cbiAgICogVGhlIHVzZXIgbXVzdCBiZSBpbiB0aGUgcm9sZSBvciBhbiBvd25lciBvZiB0aGUgb3JnYW5pemF0aW9uLlxuICAgKi9cbiAgdXBkYXRlUm9sZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVcGRhdGVSb2xlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlJvbGVJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEFkZCBLZXlzXG4gICAqIEBkZXNjcmlwdGlvbiBBZGQgS2V5c1xuICAgKlxuICAgKiBBZGRzIGEgbGlzdCBvZiBleGlzdGluZyBrZXlzIHRvIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAqL1xuICBhZGRLZXlzVG9Sb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFkZEtleXNUb1JvbGVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge307XG4gIH07XG4gIC8qKlxuICAgKiBBZGQgVXNlclxuICAgKiBAZGVzY3JpcHRpb24gQWRkIFVzZXJcbiAgICpcbiAgICogQWRkcyBhbiBleGlzdGluZyB1c2VyIHRvIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgb3Igb3duZXJzIGNhbiBhZGQgdXNlcnMgdG8gYSByb2xlLlxuICAgKi9cbiAgYWRkVXNlclRvUm9sZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBVc2VyXG4gICAgICAgICAqIEBleGFtcGxlIFVzZXIjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7fTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgUm9sZSBLZXlzXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IFJvbGUgS2V5c1xuICAgKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGFsbCBrZXlzIGluIGEgcm9sZS5cbiAgICovXG4gIGxpc3RSb2xlS2V5czoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkxhc3RFdmFsS2V5XCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0Um9sZUtleXNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZW1vdmUgS2V5XG4gICAqIEBkZXNjcmlwdGlvbiBSZW1vdmUgS2V5XG4gICAqXG4gICAqIFJlbW92ZXMgYSBnaXZlbiBrZXkgZnJvbSBhIHJvbGVcbiAgICovXG4gIHJlbW92ZUtleUZyb21Sb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIEtleVxuICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHt9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBhIHNpbmdsZSBwYWdlIG9mIFRva2VucyAoRGVwcmVjYXRlZClcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgYSBzaW5nbGUgcGFnZSBvZiBUb2tlbnMgKERlcHJlY2F0ZWQpXG4gICAqXG4gICAqICoqRGVwcmVjYXRlZCoqOiBVc2UgYEdFVCAvb3JnL3tvcmdfaWR9L3Nlc3Npb24/cm9sZT1gXG4gICAqXG4gICAqIFJldHVybnMgYWxsIGFjY2VzcyB0b2tlbnMgZm9yIGEgZ2l2ZW4gcm9sZS5cbiAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIGNyZWF0ZSBhIHRva2VuIGZvciBpdC5cbiAgICovXG4gIGxpc3RSb2xlVG9rZW5zOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTGlzdFRva2Vuc1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBUb2tlblxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFRva2VuXG4gICAqXG4gICAqIENyZWF0ZXMgYSBuZXcgYWNjZXNzIHRva2VuIGZvciBhIGdpdmVuIHJvbGUgKHRvIGJlIHVzZWQgYXMgXCJBUEkgS2V5XCIgZm9yIGFsbCBzaWduaW5nIGFjdGlvbnMpLlxuICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG93bmVycyBjYW4gY3JlYXRlIGEgdG9rZW4gZm9yIGl0LlxuICAgKi9cbiAgY3JlYXRlUm9sZVRva2VuOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZVRva2VuUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk5ld1Nlc3Npb25SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZXZva2UgQWxsIFRva2VucyAoRGVwcmVjYXRlZClcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQGRlc2NyaXB0aW9uIFJldm9rZSBBbGwgVG9rZW5zIChEZXByZWNhdGVkKVxuICAgKlxuICAgKiAqKkRlcHJlY2F0ZWQqKjogVXNlIGBERUxFVEUgL29yZy97b3JnX2lkfS9zZXNzaW9uP3JvbGU9YCBpbnN0ZWFkXG4gICAqXG4gICAqIFJldm9rZXMgYWxsIGFjY2VzcyB0b2tlbnMgYXNzb2NpYXRlZCB3aXRoIGEgcm9sZS5cbiAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uXG4gICAqL1xuICByZXZva2VBbGxSb2xlVG9rZW5zOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUmV2b2tlVG9rZW5zUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUmV2b2tlIFRva2VuIChEZXByZWNhdGVkKVxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAZGVzY3JpcHRpb24gUmV2b2tlIFRva2VuIChEZXByZWNhdGVkKVxuICAgKlxuICAgKiAqKkRlcHJlY2F0ZWQqKjogVXNlIGBERUxFVEUgL29yZy97b3JnX2lkfS9zZXNzaW9uL3tzZXNzaW9uX2lkfWBcbiAgICpcbiAgICogUmV2b2tlcyBhbiBhY2Nlc3MgdG9rZW4gYXNzb2NpYXRlZCB3aXRoIGEgcm9sZS5cbiAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uXG4gICAqL1xuICByZXZva2VSb2xlVG9rZW46IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBzZXNzaW9uIHRvIHJldm9rZVxuICAgICAgICAgKiBAZXhhbXBsZSA3N2FhZDIxMDBjMzYxZjQ5NzYzNWRkMDA1YzRkMTU3ODFlMmU1ZGY0YjlmNDVkOGU3NGYzNzQyNWNiYzMwYjllXG4gICAgICAgICAqL1xuICAgICAgICBzZXNzaW9uX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJSZXZva2VUb2tlblJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgUm9sZSBVc2Vycy5cbiAgICogQGRlc2NyaXB0aW9uIExpc3QgUm9sZSBVc2Vycy5cbiAgICpcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBhbGwgdXNlcnMgd2hvIGhhdmUgYWNjZXNzIHRvIGEgcm9sZS5cbiAgICovXG4gIGxpc3RSb2xlVXNlcnM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJMYXN0RXZhbEtleVwiXSB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkTGlzdFJvbGVVc2Vyc1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3Qgc2Vzc2lvbnNcbiAgICogQGRlc2NyaXB0aW9uIExpc3Qgc2Vzc2lvbnNcbiAgICpcbiAgICogSWYgbm8gcXVlcnkgcGFyYW1ldGVycyBhcmUgcHJvdmlkZWQsIGluZm9ybWF0aW9uIGZvciB0aGUgY3VycmVudCBzZXNzaW9uIGlzIHJldHVybmVkXG4gICAqL1xuICBsaXN0U2Vzc2lvbnM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJMYXN0RXZhbEtleVwiXSB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgcHJvdmlkZWQsIHRoZSBuYW1lIG9yIElEIG9mIGEgcm9sZSB0byBvcGVyYXRlIG9uXG4gICAgICAgICAqIEBleGFtcGxlIG15LXJvbGVcbiAgICAgICAgICovXG4gICAgICAgIHJvbGU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBhZ2luYXRlZFNlc3Npb25zUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlIG5ldyB1c2VyIHNlc3Npb24gKG1hbmFnZW1lbnQgYW5kL29yIHNpZ25pbmcpXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgbmV3IHVzZXIgc2Vzc2lvbiAobWFuYWdlbWVudCBhbmQvb3Igc2lnbmluZylcbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyB1c2VyIHNlc3Npb24sIHNpbGVudGx5IHRydW5jYXRpbmcgcmVxdWVzdGVkIHNlc3Npb24gYW5kIGF1dGggbGlmZXRpbWVzXG4gICAqIHRvIGJlIGF0IG1vc3QgcmVxdWVzdG9yJ3Mgc2Vzc2lvbiBhbmQgYXV0aCBsaWZldGltZSwgcmVzcGVjdGl2ZWx5LlxuICAgKi9cbiAgY3JlYXRlU2Vzc2lvbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDcmVhdGVTZXNzaW9uUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIk5ld1Nlc3Npb25SZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZXZva2UgZXhpc3Rpbmcgc2Vzc2lvbihzKVxuICAgKiBAZGVzY3JpcHRpb24gUmV2b2tlIGV4aXN0aW5nIHNlc3Npb24ocylcbiAgICpcbiAgICogSW1tZWRpYXRlbHkgcmV2b2tlcyBleGlzdGluZyBzZXNzaW9ucywgcHJldmVudGluZyB0aGVtIGZyb20gYmVpbmcgdXNlZCBvciByZWZyZXNoZWQuXG4gICAqIElmIG5vIHF1ZXJ5IHBhcmFtcyBhcmUgcHJvdmlkZWQsIHRoZSBjdXJyZW50IHNlc3Npb24gaXMgcmV2b2tlZC5cbiAgICovXG4gIHJldm9rZVNlc3Npb25zOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgcHJvdmlkZWQsIHRoZSBuYW1lIG9yIElEIG9mIGEgcm9sZSB0byBvcGVyYXRlIG9uXG4gICAgICAgICAqIEBleGFtcGxlIG15LXJvbGVcbiAgICAgICAgICovXG4gICAgICAgIHJvbGU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNlc3Npb25zUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUmV2b2tlIGN1cnJlbnQgc2Vzc2lvblxuICAgKiBAZGVzY3JpcHRpb24gUmV2b2tlIGN1cnJlbnQgc2Vzc2lvblxuICAgKlxuICAgKiBJbW1lZGlhdGVseSByZXZva2VzIHRoZSBjdXJyZW50IHNlc3Npb24sIHByZXZlbnRpbmcgaXQgZnJvbSBiZWluZyB1c2VkIG9yIHJlZnJlc2hlZFxuICAgKi9cbiAgcmV2b2tlQ3VycmVudFNlc3Npb246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IHNlc3Npb24gaW5mb3JtYXRpb25cbiAgICogQGRlc2NyaXB0aW9uIEdldCBzZXNzaW9uIGluZm9ybWF0aW9uXG4gICAqL1xuICBnZXRTZXNzaW9uOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgc2Vzc2lvbiB0byBnZXRcbiAgICAgICAgICogQGV4YW1wbGUgNzdhYWQyMTAwYzM2MWY0OTc2MzVkZDAwNWM0ZDE1NzgxZTJlNWRmNGI5ZjQ1ZDhlNzRmMzc0MjVjYmMzMGI5ZVxuICAgICAgICAgKi9cbiAgICAgICAgc2Vzc2lvbl9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU2Vzc2lvbkluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUmV2b2tlIGEgc2Vzc2lvblxuICAgKiBAZGVzY3JpcHRpb24gUmV2b2tlIGEgc2Vzc2lvblxuICAgKlxuICAgKiBJbW1lZGlhdGVseSByZXZva2VzIGFuIGV4aXN0aW5nIHNlc3Npb24sIHByZXZlbnRpbmcgaXQgZnJvbSBiZWluZyB1c2VkIG9yIHJlZnJlc2hlZFxuICAgKi9cbiAgcmV2b2tlU2Vzc2lvbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHNlc3Npb24gdG8gcmV2b2tlXG4gICAgICAgICAqIEBleGFtcGxlIDc3YWFkMjEwMGMzNjFmNDk3NjM1ZGQwMDVjNGQxNTc4MWUyZTVkZjRiOWY0NWQ4ZTc0ZjM3NDI1Y2JjMzBiOWVcbiAgICAgICAgICovXG4gICAgICAgIHNlc3Npb25faWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlNlc3Npb25JbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gU29sYW5hIE1lc3NhZ2VcbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gU29sYW5hIE1lc3NhZ2VcbiAgICpcbiAgICogU2lnbnMgYSBTb2xhbmEgbWVzc2FnZSB3aXRoIGEgZ2l2ZW4ga2V5LlxuICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICovXG4gIHNvbGFuYVNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGJhc2U1OC1lbmNvZGVkIHB1YmxpYyBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgODZaUlBzekJwNUVvUGo3d1IzYkhuN3duQVo1aVlmcGFzUmM3REtGUFRVYVpcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNvbGFuYVNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU29sYW5hU2lnblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgVG9rZW4tQWNjZXNzaWJsZSBLZXlzXG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgVG9rZW4tQWNjZXNzaWJsZSBLZXlzXG4gICAqXG4gICAqIFJldHJpZXZlcyB0aGUga2V5cyB0aGF0IHRoZSByb2xlIHRva2VuIGNhbiBhY2Nlc3MuXG4gICAqL1xuICBsaXN0VG9rZW5LZXlzOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiS2V5SW5mb3NcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVXNlciBJbmZvXG4gICAqIEBkZXNjcmlwdGlvbiBVc2VyIEluZm9cbiAgICpcbiAgICogUmV0cmlldmVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IHVzZXIuXG4gICAqL1xuICBhYm91dE1lOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVXNlckluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBvdXRzdGFuZGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0c1xuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBvdXRzdGFuZGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0c1xuICAgKi9cbiAgdXNlckV4cG9ydExpc3Q6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXggbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVybiBwZXIgcGFnZS5cbiAgICAgICAgICpcbiAgICAgICAgICogSWYgdGhlIGFjdHVhbCBudW1iZXIgb2YgcmV0dXJuZWQgaXRlbXMgbWF5IGJlIGxlc3MgdGhhdCB0aGlzLCBldmVuIGlmIHRoZXJlIGV4aXN0IG1vcmVcbiAgICAgICAgICogZGF0YSBpbiB0aGUgcmVzdWx0IHNldC4gVG8gcmVsaWFibHkgZGV0ZXJtaW5lIGlmIG1vcmUgZGF0YSBpcyBsZWZ0IGluIHRoZSByZXN1bHQgc2V0LFxuICAgICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zaXplXCI/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHN0YXJ0IG9mIHRoZSBwYWdlLiAgT21pdCB0byBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmc7IG90aGVyd2lzZSwgb25seSBzcGVjaWZ5IGFcbiAgICAgICAgICogdGhlIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgcmV0dXJuZWQgYXMgJ2xhc3RfZXZhbHVhdGVkX2tleScgZnJvbSB0aGUgc2FtZSBlbmRwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIFwicGFnZS5zdGFydFwiPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJMYXN0RXZhbEtleVwiXSB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgcHJvdmlkZWQsIHRoZSB1c2VyLWlkIHdob3NlIHVzZXItZXhwb3J0IHJlcXVlc3RzIHRvIGxpc3QuIERlZmF1bHRzIHRvIHRoZVxuICAgICAgICAgKiBjdXJyZW50IHVzZXIuICBPbmx5IHRoZSBvcmcgb3duZXIgbWF5IGxpc3QgcmVxdWVzdHMgZm9yIGFub3RoZXIgdXNlci5cbiAgICAgICAgICogQGV4YW1wbGUgVXNlciM4MDZjOTU0NC1mMWZhLTRiYWQtOGQ0ZC0xMDk3YTE4NDQ3MjZcbiAgICAgICAgICovXG4gICAgICAgIHVzZXJfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHByb3ZpZGVkLCB0aGUga2V5LWlkIGZvciB3aGljaCB0byBsaXN0IGFuIGV4aXN0aW5nIHVzZXItZXhwb3J0IHJlcXVlc3QuXG4gICAgICAgICAqIEBleGFtcGxlIEtleSMweDNjNGQ5MENjNUFmMTY0NEMzQTNCMDEzQmFhNTQ4ODk5NzM4MUQ3QzhcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZD86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkVXNlckV4cG9ydExpc3RSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbml0aWF0ZSBhIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIGEgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgKlxuICAgKiBUaGlzIHN0YXJ0cyBhIGRlbGF5ICh3aG9zZSBsZW5ndGggaXMgZGV0ZXJtaW5lZCBieSBPcmctd2lkZSBzZXR0aW5ncylcbiAgICogYmVmb3JlIGV4cG9ydCBjYW4gYmUgY29tcGxldGVkLCBhbmQgcmV0dXJucyBhIHRpY2tldCB0aGF0IGNhbiBiZSB1c2VkXG4gICAqIHRvIGNvbXBsZXRlIHRoZSBleHBvcnQgb25jZSB0aGUgdGltZXIgaGFzIGV4cGlyZWQuXG4gICAqXG4gICAqIE9ubHkgb25lIHVzZXItZXhwb3J0IHJlcXVlc3QgY2FuIGJlIGFjdGl2ZSBmb3IgYSBnaXZlbiBrZXkuIElmIHRoZXJlXG4gICAqIGlzIGFscmVhZHkgYW4gYWN0aXZlIGV4cG9ydCwgdGhpcyBlbmRwb2ludCB3aWxsIHJldHVybiBhbiBlcnJvci4gVG9cbiAgICogY3JlYXRlIGEgbmV3IHJlcXVlc3QsIGZpcnN0IGRlbGV0ZSB0aGUgZXhpc3Rpbmcgb25lLlxuICAgKi9cbiAgdXNlckV4cG9ydEluaXQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckV4cG9ydEluaXRSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVXNlckV4cG9ydEluaXRSZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVsZXRlIGFuIGV4aXN0aW5nIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBhbiBleGlzdGluZyB1c2VyLWV4cG9ydCByZXF1ZXN0XG4gICAqL1xuICB1c2VyRXhwb3J0RGVsZXRlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUga2V5LWlkIHdob3NlIGV4cG9ydCByZXF1ZXN0IHNob3VsZCBiZSBkZWxldGVkXG4gICAgICAgICAqIEBleGFtcGxlIEtleSMweDNjNGQ5MENjNUFmMTY0NEMzQTNCMDEzQmFhNTQ4ODk5NzM4MUQ3QzhcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB1c2VyLWlkIHdobyBvd25zIHRoaXMgcmVxdWVzdC4gSWYgb21pdHRlZCwgZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgdXNlci5cbiAgICAgICAgICogT25seSB0aGUgb3JnIG93bmVyIG1heSBkZWxldGUgdXNlci1leHBvcnQgcmVxdWVzdHMgZm9yIGFub3RoZXIgdXNlci5cbiAgICAgICAgICogQGV4YW1wbGUgVXNlciM4MDZjOTU0NC1mMWZhLTRiYWQtOGQ0ZC0xMDk3YTE4NDQ3MjZcbiAgICAgICAgICovXG4gICAgICAgIHVzZXJfaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDb21wbGV0ZSBhIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIENvbXBsZXRlIGEgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgKlxuICAgKiBUaGlzIGVuZHBvaW50IGNhbiBiZSBjYWxsZWQgb25seSBhZnRlciBpbml0aWF0aW5nIGEgdXNlci1leHBvcnQgcmVxdWVzdCB2aWFcbiAgICogdGhlIGB1c2VyX2V4cG9ydF9pbml0YCBBUEksIGFuZCBvbmx5IHdpdGhpbiB0aGUgc3Vic2VxdWVudCBleHBvcnQgd2luZG93XG4gICAqIChpLmUuLCBhZnRlciB0aGUgZXhwb3J0IGRlbGF5IGhhcyBwYXNzZWQgYW5kIGJlZm9yZSB0aGUgcmVxdWVzdCBoYXMgZXhwaXJlZCkuXG4gICAqXG4gICAqIFRvIGNoZWNrIG9uIHRoZSBzdGF0dXMgb2YgYW4gZXhwb3J0IHJlcXVlc3QsIHNlZSB0aGUgYHVzZXJfZXhwb3J0X2xpc3RgIEFQSS5cbiAgICovXG4gIHVzZXJFeHBvcnRDb21wbGV0ZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VyRXhwb3J0Q29tcGxldGVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVXNlckV4cG9ydENvbXBsZXRlUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYXRlIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgKlxuICAgKiBHZW5lcmF0ZXMgYSBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIG93bmVyc2hpcCBvZiBhIGtleVxuICAgKi9cbiAgdXNlclJlZ2lzdGVyRmlkb0luaXQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRmlkb0NyZWF0ZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJGaWRvQ3JlYXRlQ2hhbGxlbmdlUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEZpbmFsaXplIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgKlxuICAgKiBBY2NlcHRzIHRoZSByZXNwb25zZSB0byB0aGUgY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCB0byB0aGlzIGVuZHBvaW50LlxuICAgKi9cbiAgdXNlclJlZ2lzdGVyRmlkb0NvbXBsZXRlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZpZG9DcmVhdGVDaGFsbGVuZ2VBbnN3ZXJcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVsZXRlIEZJRE8ga2V5XG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgRklETyBrZXlcbiAgICpcbiAgICogRGVsZXRlcyBhIEZJRE8ga2V5IGZyb20gdGhlIHVzZXIncyBhY2NvdW50IChpZiB0aGUga2V5IGlzIG5vdCB0aGUgc29sZSBNRkEgZmFjdG9yKS4gTUZBIGlzIGFsd2F5cyByZXF1aXJlZC5cbiAgICovXG4gIHVzZXJEZWxldGVGaWRvOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgRmlkb0tleVxuICAgICAgICAgKiBAZXhhbXBsZSBGaWRvS2V5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgZmlkb19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVtcHR5XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYWxpemUgVE9UUCBSZXNldFxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZSBUT1RQIFJlc2V0XG4gICAqXG4gICAqIENyZWF0ZXMgYSBuZXcgVE9UUCBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIHRoYXQgdGhlIG5ldyBUT1RQXG4gICAqIHdhcyBzdWNjZXNzZnVsbHkgaW1wb3J0ZWQgaW50byBhbiBhdXRoZW50aWNhdG9yIGFwcC5cbiAgICpcbiAgICogVGhpcyBvcGVyYXRpb24gaXMgYWxsb3dlZCBpZiBFSVRIRVJcbiAgICogLSB0aGUgdXNlciBhY2NvdW50IGlzIG5vdCB5ZXQgaW5pdGlhbGl6ZWQgYW5kIG5vIFRPVFAgaXMgYWxyZWFkeSBzZXQsIE9SXG4gICAqIC0gdGhlIHVzZXIgaGFzIG5vdCBjb25maWd1cmVkIGFueSBhdXRoIGZhY3RvcnM7XG4gICAqIG90aGVyd2lzZSwgTUZBIGlzIHJlcXVpcmVkLlxuICAgKi9cbiAgdXNlclJlc2V0VG90cEluaXQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk/OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRvdHBSZXNldFJlcXVlc3RcIl0gfCBudWxsO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVG90cEluZm9cIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIERlbGV0ZSBUT1RQXG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgVE9UUFxuICAgKlxuICAgKiBEZWxldGVzIFRPVFAgZnJvbSB0aGUgdXNlcidzIGFjY291bnQgKGlmIFRPVFAgaXMgbm90IHRoZSBzb2xlIE1GQSBmYWN0b3IpLiBNRkEgaXMgYWx3YXlzIHJlcXVpcmVkLlxuICAgKi9cbiAgdXNlckRlbGV0ZVRvdHA6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1wdHlcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRmluYWxpemUgcmVzZXR0aW5nIFRPVFBcbiAgICogQGRlc2NyaXB0aW9uIEZpbmFsaXplIHJlc2V0dGluZyBUT1RQXG4gICAqXG4gICAqIENoZWNrcyBpZiB0aGUgcmVzcG9uc2UgY29udGFpbnMgdGhlIGNvcnJlY3QgVE9UUCBjb2RlIGNvcnJlc3BvbmRpbmcgdG8gdGhlXG4gICAqIGNoYWxsZW5nZSBnZW5lcmF0ZWQgYnkgdGhlIFBPU1QgbWV0aG9kIG9mIHRoaXMgZW5kcG9pbnQuXG4gICAqL1xuICB1c2VyUmVzZXRUb3RwQ29tcGxldGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG90cENoYWxsZW5nZUFuc3dlclwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBWZXJpZnkgVE9UUFxuICAgKiBAZGVzY3JpcHRpb24gVmVyaWZ5IFRPVFBcbiAgICpcbiAgICogQ2hlY2tzIGlmIGEgZ2l2ZW4gY29kZSBtYXRjaGVzIHRoZSBjdXJyZW50IFRPVFAgY29kZSBmb3IgdGhlIGN1cnJlbnQgdXNlci5cbiAgICogRXJyb3JzIHdpdGggNDAzIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIG5vdCBzZXQgdXAgVE9UUCBvciB0aGUgY29kZSBmYWlscyB2ZXJpZmljYXRpb24uXG4gICAqL1xuICB1c2VyVmVyaWZ5VG90cDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb3RwQXBwcm92ZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCB1c2VycyBpbiBvcmdhbml6YXRpb25cbiAgICogQGRlc2NyaXB0aW9uIExpc3QgdXNlcnMgaW4gb3JnYW5pemF0aW9uXG4gICAqL1xuICBsaXN0VXNlcnNJbk9yZzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkdldFVzZXJzSW5PcmdSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBBZGQgYSB0aGlyZC1wYXJ0eSB1c2VyIHRvIHRoZSBvcmdcbiAgICogQGRlc2NyaXB0aW9uIEFkZCBhIHRoaXJkLXBhcnR5IHVzZXIgdG8gdGhlIG9yZ1xuICAgKi9cbiAgY3JlYXRlT2lkY1VzZXI6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWRkVGhpcmRQYXJ0eVVzZXJSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQWRkVGhpcmRQYXJ0eVVzZXJSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZW1vdmUgYSB0aGlyZC1wYXJ0eSB1c2VyIGZyb20gdGhlIG9yZ1xuICAgKiBAZGVzY3JpcHRpb24gUmVtb3ZlIGEgdGhpcmQtcGFydHkgdXNlciBmcm9tIHRoZSBvcmdcbiAgICovXG4gIGRlbGV0ZU9pZGNVc2VyOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9JRENJZGVudGl0eVwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbml0aWF0ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICpcbiAgICogR2VuZXJhdGVzIGEgY2hhbGxlbmdlIHRoYXQgbXVzdCBiZSBhbnN3ZXJlZCB0byBwcm92ZSBvd25lcnNoaXAgb2YgYSBrZXlcbiAgICovXG4gIHJlZ2lzdGVyRmlkb0luaXRMZWdhY3k6IHtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJGaWRvQ3JlYXRlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkZpZG9DcmVhdGVDaGFsbGVuZ2VSZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRmluYWxpemUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQGRlc2NyaXB0aW9uIEZpbmFsaXplIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAqXG4gICAqIEFjY2VwdHMgdGhlIHJlc3BvbnNlIHRvIHRoZSBjaGFsbGVuZ2UgZ2VuZXJhdGVkIGJ5IHRoZSBQT1NUIHRvIHRoaXMgZW5kcG9pbnQuXG4gICAqL1xuICByZWdpc3RlckZpZG9Db21wbGV0ZUxlZ2FjeToge1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZpZG9DcmVhdGVDaGFsbGVuZ2VBbnN3ZXJcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW5pdGlhbGl6ZSBUT1RQIFJlc2V0XG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplIFRPVFAgUmVzZXRcbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyBUT1RQIGNoYWxsZW5nZSB0aGF0IG11c3QgYmUgYW5zd2VyZWQgdG8gcHJvdmUgdGhhdCB0aGUgbmV3IFRPVFBcbiAgICogd2FzIHN1Y2Nlc3NmdWxseSBpbXBvcnRlZCBpbnRvIGFuIGF1dGhlbnRpY2F0b3IgYXBwLlxuICAgKlxuICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBhbGxvd2VkIGlmIEVJVEhFUlxuICAgKiAtIHRoZSB1c2VyIGFjY291bnQgaXMgbm90IHlldCBpbml0aWFsaXplZCBhbmQgbm8gVE9UUCBpcyBhbHJlYWR5IHNldCwgT1JcbiAgICogLSB0aGUgdXNlciBoYXMgbm90IGNvbmZpZ3VyZWQgYW55IGF1dGggZmFjdG9ycztcbiAgICogb3RoZXJ3aXNlLCBNRkEgaXMgcmVxdWlyZWQuXG4gICAqL1xuICByZXNldFRvdHBJbml0TGVnYWN5OiB7XG4gICAgcmVxdWVzdEJvZHk/OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRvdHBSZXNldFJlcXVlc3RcIl0gfCBudWxsO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVG90cEluZm9cIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEZpbmFsaXplIHJlc2V0dGluZyBUT1RQXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgKlxuICAgKiBDaGVja3MgaWYgdGhlIHJlc3BvbnNlIGNvbnRhaW5zIHRoZSBjb3JyZWN0IFRPVFAgY29kZSBjb3JyZXNwb25kaW5nIHRvIHRoZVxuICAgKiBjaGFsbGVuZ2UgZ2VuZXJhdGVkIGJ5IHRoZSBQT1NUIG1ldGhvZCBvZiB0aGlzIGVuZHBvaW50LlxuICAgKi9cbiAgcmVzZXRUb3RwQ29tcGxldGVMZWdhY3k6IHtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb3RwQ2hhbGxlbmdlQW5zd2VyXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFZlcmlmeSBUT1RQXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEBkZXNjcmlwdGlvbiBWZXJpZnkgVE9UUFxuICAgKlxuICAgKiBDaGVja3MgaWYgYSBnaXZlbiBjb2RlIG1hdGNoZXMgdGhlIGN1cnJlbnQgVE9UUCBjb2RlIGZvciB0aGUgY3VycmVudCB1c2VyLlxuICAgKiBFcnJvcnMgd2l0aCA0MDMgaWYgdGhlIGN1cnJlbnQgdXNlciBoYXMgbm90IHNldCB1cCBUT1RQIG9yIHRoZSBjb2RlIGZhaWxzIHZlcmlmaWNhdGlvbi5cbiAgICovXG4gIHZlcmlmeVRvdHBMZWdhY3k6IHtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb3RwQXBwcm92ZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBSYXcgQmxvYlxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBSYXcgQmxvYlxuICAgKlxuICAgKiBTaWducyBhbiBhcmJpdHJhcnkgYmxvYiB3aXRoIGEgZ2l2ZW4ga2V5LlxuICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICpcbiAgICogLSBFQ0RTQSBzaWduYXR1cmVzIGFyZSBzZXJpYWxpemVkIGFzIGJpZy1lbmRpYW4gciBhbmQgcyBwbHVzIHJlY292ZXJ5LWlkXG4gICAqIGJ5dGUgdiwgd2hpY2ggY2FuIGluIGdlbmVyYWwgdGFrZSBhbnkgb2YgdGhlIHZhbHVlcyAwLCAxLCAyLCBvciAzLlxuICAgKlxuICAgKiAtIEVkRFNBIHNpZ25hdHVyZXMgYXJlIHNlcmlhbGl6ZWQgaW4gdGhlIHN0YW5kYXJkIGZvcm1hdC5cbiAgICpcbiAgICogLSBCTFMgc2lnbmF0dXJlcyBhcmUgbm90IHN1cHBvcnRlZCBvbiB0aGUgYmxvYi1zaWduIGVuZHBvaW50LlxuICAgKi9cbiAgYmxvYlNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIGRlc2lyZWQgS2V5XG4gICAgICAgICAqIEBleGFtcGxlIEtleSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkJsb2JTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkJsb2JTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJlY29yZCBoZWFydGJlYXRcbiAgICogQGRlc2NyaXB0aW9uIFJlY29yZCBoZWFydGJlYXRcbiAgICpcbiAgICogVGhpcyBlbmRwb2ludCBpcyBjYWxsZWQgYnkgdGhlIGN1YmUzc2lnbmVyIHByb3h5IHRvIHJlY29yZCB2YXJpb3VzIG1ldHJpY3MgdG8gQ2xvdWRXYXRjaC5cbiAgICovXG4gIGN1YmUzc2lnbmVySGVhcnRiZWF0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5Pzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJIZWFydGJlYXRSZXF1ZXN0XCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIEVWTSBUcmFuc2FjdGlvblxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBFVk0gVHJhbnNhY3Rpb25cbiAgICpcbiAgICogU2lnbnMgYW4gRXRoZXJldW0gKGFuZCBvdGhlciBFVk0pIHRyYW5zYWN0aW9uIHdpdGggYSBnaXZlbiBTZWNwMjU2azEga2V5LlxuICAgKiBSZXR1cm5zIGFuIFJMUC1lbmNvZGVkIHRyYW5zYWN0aW9uIHdpdGggRUlQLTE1NSBzaWduYXR1cmUuXG4gICAqXG4gICAqIFRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZSBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgKi9cbiAgZXRoMVNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgZXRoZXJldW0gYWRkcmVzcyBvZiB0aGUgc2VjcCBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgMHg0OTAxMWFkYkNDM2JDOWMwMzA3QkIwN0YzN0RkYTFhMWE5YzY5ZDJFXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFdGgxU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFdGgxU2lnblJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIFZhbGlkYXRvciBSZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIFZhbGlkYXRvciBSZXF1ZXN0XG4gICAqXG4gICAqIFNpZ25zIGFuIGV0aDIgdmFsaWRhdG9yIHJlcXVlc3Qgd2l0aCBhIGdpdmVuIEJMUyBrZXkuXG4gICAqXG4gICAqIFRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZSBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgKi9cbiAgZXRoMlNpZ246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgdmFsaWRhdG9yIChCTFMpIHB1YmxpYyBrZXkgd2l0aCAweCBwcmVmaXhcbiAgICAgICAgICogQGV4YW1wbGUgMHg5NzAwZmJiOGM5MDY5NDI0NDJjMmE1YjNhZDc0OThmMjdhZWRkYTI1Mzc4NmE2ZmJhYThmZWY0N2ZiN2FmMjM0ZTUwY2YyY2NlODE1YTU1MzA4Nzk5MmFlNTY1ZDQ4ZGFcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkV0aDJTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkV0aDJTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gU3Rha2UgRGVwb3NpdFxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBTdGFrZSBEZXBvc2l0XG4gICAqXG4gICAqIFNpZ25zIGEgZGVwb3NpdCB0cmFuc2FjdGlvbiB3aXRoIGEgYHZhbGlkYXRvcl9rZXlgLiBJZiBgdmFsaWRhdG9yX2tleWAgaXMgc2V0IHRvIGEgcHJlZ2VuZXJhdGVkIGtleSwgd2UgdXNlIHRoZVxuICAgKiBwcm92aWRlZCB2YWxpZGF0b3Iga2V5LiBPdGhlcndpc2UsIHdlIGdlbmVyYXRlIGEgbmV3IEJMUyBrZXkuXG4gICAqXG4gICAqIFdoZW4gdXNpbmcgYSBwcmVnZW5lcmF0ZWQga2V5LCB0aGUga2V5IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSByb2xlIGFuZCBvcmdhbml6YXRpb24gb24gd2hvc2VcbiAgICogYmVoYWxmIHRoaXMgYWN0aW9uIGlzIGNhbGxlZC5cbiAgICovXG4gIHN0YWtlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlN0YWtlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlN0YWtlUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gVW5zdGFrZSBSZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIFVuc3Rha2UgUmVxdWVzdFxuICAgKlxuICAgKiBIYW5kbGUgdW5zdGFraW5nIHJlcXVlc3QsIHByb2R1Y2luZyBhIHNpZ25lZCB2b2x1bnRhcnkgZXhpdCBtZXNzYWdlXG4gICAqIHRoYXQgY2FuIGJlIHBvc3RlZCBkaXJlY3RseSB0byB0aGUgQmVhY29uIGNoYWluLlxuICAgKlxuICAgKiBUaGUga2V5IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSByb2xlIGFuZCBvcmdhbml6YXRpb24gb24gd2hvc2UgYmVoYWxmIHRoaXMgYWN0aW9uIGlzIGNhbGxlZC5cbiAgICovXG4gIHVuc3Rha2U6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGV4LWVuY29kZWQgdmFsaWRhdG9yIChCTFMpIHB1YmxpYyBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgMHhhOTlhNzZlZDc3OTZmN2JlMjJkNWI3ZTg1ZGVlYjdjNTY3N2U4OGU1MTFlMGIzMzc2MThmOGM0ZWI2MTM0OWI0YmYyZDE1M2Y2NDlmN2I1MzM1OWZlOGI5NGEzOGU0NGNcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVuc3Rha2VSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVW5zdGFrZVJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZWZyZXNoIFNpZ25lciBTZXNzaW9uXG4gICAqIEBkZXNjcmlwdGlvbiBSZWZyZXNoIFNpZ25lciBTZXNzaW9uXG4gICAqL1xuICBzaWduZXJTZXNzaW9uUmVmcmVzaDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgb3JnYW5pemF0aW9uIG93bmluZyB0aGUga2V5XG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1dGhEYXRhXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==