@cubist-labs/cubesigner-sdk 0.2.28 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -28
- package/dist/cjs/package.json +41 -0
- package/dist/cjs/spec/env/beta.json +9 -0
- package/dist/cjs/spec/env/gamma.json +9 -0
- package/dist/cjs/spec/env/prod.json +9 -0
- package/dist/cjs/src/api.d.ts +634 -0
- package/dist/cjs/src/api.js +1309 -0
- package/dist/cjs/src/client.d.ts +575 -0
- package/dist/cjs/src/client.js +378 -0
- package/dist/cjs/src/env.d.ts +15 -0
- package/dist/cjs/src/env.js +35 -0
- package/dist/cjs/src/error.d.ts +29 -0
- package/dist/cjs/src/error.js +36 -0
- package/dist/cjs/src/events.d.ts +84 -0
- package/dist/cjs/src/events.js +195 -0
- package/dist/cjs/src/index.d.ts +203 -0
- package/dist/cjs/src/index.js +298 -0
- package/dist/cjs/src/key.d.ts +152 -0
- package/dist/cjs/src/key.js +242 -0
- package/dist/{src/fido.d.ts → cjs/src/mfa.d.ts} +33 -15
- package/dist/cjs/src/mfa.js +169 -0
- package/dist/cjs/src/org.d.ts +99 -0
- package/dist/cjs/src/org.js +95 -0
- package/dist/cjs/src/paginator.d.ts +76 -0
- package/dist/cjs/src/paginator.js +99 -0
- package/dist/cjs/src/response.d.ts +101 -0
- package/dist/cjs/src/response.js +164 -0
- package/dist/cjs/src/role.d.ts +283 -0
- package/dist/cjs/src/role.js +253 -0
- package/dist/cjs/src/schema.d.ts +6209 -0
- package/dist/cjs/src/schema.js +7 -0
- package/dist/cjs/src/schema_types.d.ts +113 -0
- package/dist/cjs/src/schema_types.js +3 -0
- package/dist/cjs/src/session/session_storage.d.ts +27 -0
- package/dist/cjs/src/session/session_storage.js +47 -0
- package/dist/cjs/src/session/signer_session_manager.d.ts +125 -0
- package/dist/cjs/src/session/signer_session_manager.js +239 -0
- package/dist/cjs/src/signer_session.d.ts +41 -0
- package/dist/cjs/src/signer_session.js +77 -0
- package/dist/cjs/src/user_export.d.ts +52 -0
- package/dist/cjs/src/user_export.js +129 -0
- package/dist/cjs/src/util.d.ts +56 -0
- package/dist/cjs/src/util.js +86 -0
- package/dist/esm/package.json +41 -0
- package/dist/esm/spec/env/beta.json +9 -0
- package/dist/esm/spec/env/gamma.json +9 -0
- package/dist/esm/spec/env/prod.json +9 -0
- package/dist/esm/src/api.d.ts +634 -0
- package/dist/esm/src/api.js +1299 -0
- package/dist/esm/src/client.d.ts +575 -0
- package/dist/esm/src/client.js +374 -0
- package/dist/esm/src/env.d.ts +15 -0
- package/dist/esm/src/env.js +9 -0
- package/dist/esm/src/error.d.ts +29 -0
- package/dist/esm/src/error.js +31 -0
- package/dist/esm/src/events.d.ts +84 -0
- package/dist/esm/src/events.js +189 -0
- package/dist/esm/src/index.d.ts +203 -0
- package/dist/esm/src/index.js +276 -0
- package/dist/esm/src/key.d.ts +152 -0
- package/dist/esm/src/key.js +236 -0
- package/dist/esm/src/mfa.d.ts +94 -0
- package/dist/esm/src/mfa.js +163 -0
- package/dist/esm/src/org.d.ts +99 -0
- package/dist/esm/src/org.js +91 -0
- package/dist/esm/src/paginator.d.ts +76 -0
- package/dist/esm/src/paginator.js +94 -0
- package/dist/esm/src/response.d.ts +101 -0
- package/dist/esm/src/response.js +159 -0
- package/dist/esm/src/role.d.ts +283 -0
- package/dist/esm/src/role.js +248 -0
- package/dist/esm/src/schema.d.ts +6209 -0
- package/dist/esm/src/schema.js +6 -0
- package/dist/esm/src/schema_types.d.ts +113 -0
- package/dist/esm/src/schema_types.js +2 -0
- package/dist/esm/src/session/session_storage.d.ts +27 -0
- package/dist/esm/src/session/session_storage.js +43 -0
- package/dist/esm/src/session/signer_session_manager.d.ts +125 -0
- package/dist/esm/src/session/signer_session_manager.js +235 -0
- package/dist/esm/src/signer_session.d.ts +41 -0
- package/dist/esm/src/signer_session.js +72 -0
- package/dist/esm/src/user_export.d.ts +52 -0
- package/dist/esm/src/user_export.js +99 -0
- package/dist/esm/src/util.d.ts +56 -0
- package/dist/esm/src/util.js +76 -0
- package/dist/package.json +13 -45
- package/dist/src/api.d.ts +29 -1
- package/dist/src/api.js +66 -1
- package/dist/src/client.d.ts +35 -14
- package/dist/src/client.js +12 -8
- package/dist/src/events.js +1 -1
- package/dist/src/index.d.ts +6 -11
- package/dist/src/index.js +9 -25
- package/dist/src/key.d.ts +18 -7
- package/dist/src/key.js +52 -19
- package/dist/src/role.d.ts +46 -3
- package/dist/src/role.js +60 -8
- package/dist/src/schema.d.ts +206 -72
- package/dist/src/schema.js +1 -1
- package/dist/src/schema_types.d.ts +3 -0
- package/dist/src/schema_types.js +1 -1
- package/dist/src/session/signer_session_manager.d.ts +38 -14
- package/dist/src/session/signer_session_manager.js +93 -33
- package/dist/src/util.d.ts +14 -0
- package/dist/src/util.js +24 -27
- package/package.json +19 -46
- package/src/api.ts +79 -0
- package/src/client.ts +12 -8
- package/src/events.ts +2 -0
- package/src/index.ts +10 -24
- package/src/key.ts +36 -18
- package/src/role.ts +78 -7
- package/src/schema.ts +269 -110
- package/src/schema_types.ts +3 -0
- package/src/session/session_storage.ts +0 -32
- package/src/session/signer_session_manager.ts +124 -36
- package/src/util.ts +19 -10
- package/tsconfig.json +1 -21
- package/LICENSE-APACHE +0 -177
- package/LICENSE-MIT +0 -25
- package/NOTICE +0 -13
- package/dist/examples/ethers.d.ts +0 -1
- package/dist/examples/ethers.js +0 -142
- package/dist/src/ethers/index.d.ts +0 -95
- package/dist/src/ethers/index.js +0 -215
- package/dist/src/fido.js +0 -148
- package/dist/src/session/cognito_manager.d.ts +0 -71
- package/dist/src/session/cognito_manager.js +0 -129
- package/dist/src/session/generic.d.ts +0 -47
- package/dist/src/session/generic.js +0 -3
- package/dist/src/session/management_session_manager.d.ts +0 -59
- package/dist/src/session/management_session_manager.js +0 -111
- package/dist/src/session/oidc_session_manager.d.ts +0 -78
- package/dist/src/session/oidc_session_manager.js +0 -142
- package/dist/src/session/session_manager.d.ts +0 -99
- package/dist/src/session/session_manager.js +0 -136
- package/dist/src/sign.d.ts +0 -114
- package/dist/src/sign.js +0 -248
- package/dist/test/sessions.d.ts +0 -35
- package/dist/test/sessions.js +0 -56
- package/src/ethers/index.ts +0 -253
- package/src/session/cognito_manager.ts +0 -161
- package/src/session/session_manager.ts +0 -165
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was auto-generated by openapi-typescript.
|
|
3
|
+
* Do not make direct changes to the file.
|
|
4
|
+
*/
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgZmlsZSB3YXMgYXV0by1nZW5lcmF0ZWQgYnkgb3BlbmFwaS10eXBlc2NyaXB0LlxuICogRG8gbm90IG1ha2UgZGlyZWN0IGNoYW5nZXMgdG8gdGhlIGZpbGUuXG4gKi9cblxuLyoqIE9uZU9mIHR5cGUgaGVscGVycyAqL1xudHlwZSBXaXRob3V0PFQsIFU+ID0geyBbUCBpbiBFeGNsdWRlPGtleW9mIFQsIGtleW9mIFU+XT86IG5ldmVyIH07XG50eXBlIFhPUjxULCBVPiA9IFQgfCBVIGV4dGVuZHMgb2JqZWN0ID8gKFdpdGhvdXQ8VCwgVT4gJiBVKSB8IChXaXRob3V0PFUsIFQ+ICYgVCkgOiBUIHwgVTtcbnR5cGUgT25lT2Y8VCBleHRlbmRzIGFueVtdPiA9IFQgZXh0ZW5kcyBbaW5mZXIgT25seV1cbiAgPyBPbmx5XG4gIDogVCBleHRlbmRzIFtpbmZlciBBLCBpbmZlciBCLCAuLi5pbmZlciBSZXN0XVxuICAgID8gT25lT2Y8W1hPUjxBLCBCPiwgLi4uUmVzdF0+XG4gICAgOiBuZXZlcjtcblxuZXhwb3J0IGludGVyZmFjZSBwYXRocyB7XG4gIFwiL3YwL2Fib3V0X21lXCI6IHtcbiAgICAvKipcbiAgICAgKiBVc2VyIEluZm9cbiAgICAgKiBAZGVzY3JpcHRpb24gVXNlciBJbmZvXG4gICAgICpcbiAgICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgdXNlci5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJhYm91dE1lTGVnYWN5XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBPcmdcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IE9yZ1xuICAgICAqXG4gICAgICogUmV0cmlldmVzIGluZm9ybWF0aW9uIGFib3V0IGFuIG9yZ2FuaXphdGlvbi5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJnZXRPcmdcIl07XG4gICAgLyoqXG4gICAgICogVXBkYXRlIE9yZ1xuICAgICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgT3JnXG4gICAgICpcbiAgICAgKiBVcGRhdGUgb3JnYW5pemF0aW9uIGF0dHJpYnV0ZXMgKGVuYWJsZWQgZmxhZywgbmFtZSwgYW5kIHBvbGljaWVzKS5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInVwZGF0ZU9yZ1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2F2YS9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIEF2YWxhbmNoZSBYLSBvciBQLUNoYWluIE1lc3NhZ2VcbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBBdmFsYW5jaGUgWC0gb3IgUC1DaGFpbiBNZXNzYWdlXG4gICAgICpcbiAgICAgKiBTaWducyBhbiBBdmFsYW5jaGUgbWVzc2FnZSB3aXRoIGEgZ2l2ZW4gU2VjcEF2YSBrZXkuXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImF2YVNpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9idGMvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBCaXRjb2luIFRyYW5zYWN0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gQml0Y29pbiBUcmFuc2FjdGlvblxuICAgICAqXG4gICAgICogU2lnbnMgYSBCaXRjb2luIHRyYW5zYWN0aW9uIHdpdGggYSBnaXZlbiBrZXkuXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImJ0Y1NpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9kZXJpdmVfa2V5XCI6IHtcbiAgICAvKipcbiAgICAgKiBEZXJpdmUgS2V5IEZyb20gTG9uZy1MaXZlZCBNbmVtb25pY1xuICAgICAqIEBkZXNjcmlwdGlvbiBEZXJpdmUgS2V5IEZyb20gTG9uZy1MaXZlZCBNbmVtb25pY1xuICAgICAqXG4gICAgICogRGVyaXZlcyBhIGtleSBvZiBhIHNwZWNpZmllZCB0eXBlIHVzaW5nIGEgc3VwcGxpZWQgZGVyaXZhdGlvbiBwYXRoIGFuZCBhblxuICAgICAqIGV4aXN0aW5nIGxvbmctbGl2ZWQgbW5lbW9uaWMuXG4gICAgICovXG4gICAgcHV0OiBvcGVyYXRpb25zW1wiZGVyaXZlS2V5XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vZXZtL2VpcDE5MS9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIEVJUC0xOTEgRGF0YVxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIEVJUC0xOTEgRGF0YVxuICAgICAqXG4gICAgICogU2lnbnMgYSBtZXNzYWdlIHVzaW5nIEVJUC0xOTEgcGVyc29uYWxfc2lnbiB3aXRoIGEgZ2l2ZW4gU2VjcDI1NmsxIGtleS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiZWlwMTkxU2lnblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2V2bS9laXA3MTIvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBFSVAtNzEyIFR5cGVkIERhdGFcbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBFSVAtNzEyIFR5cGVkIERhdGFcbiAgICAgKlxuICAgICAqIFNpZ25zIHR5cGVkIGRhdGEgYWNjb3JkaW5nIHRvIEVJUC03MTIgd2l0aCBhIGdpdmVuIFNlY3AyNTZrMSBrZXkuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImVpcDcxMlNpZ25cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pZGVudGl0eS9wcm92ZVwiOiB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIFtJZGVudGl0eVByb29mXSBmcm9tIEN1YmVTaWduZXIgdXNlciBzZXNzaW9uXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBDdWJlU2lnbmVyIHVzZXIgc2Vzc2lvblxuICAgICAqXG4gICAgICogVGhpcyByb3V0ZSBjYW4gYmUgdXNlZCB0byBwcm92ZSB0byBhbm90aGVyIHBhcnR5IHRoYXQgYSB1c2VyIGhhcyBhXG4gICAgICogdmFsaWQgQ3ViZVNpZ25lciBzZXNzaW9uLlxuICAgICAqXG4gICAgICogQ2xpZW50cyBhcmUgaW50ZW5kZWQgdG8gY2FsbCB0aGlzIHJvdXRlIGFuZCBwYXNzIHRoZSByZXR1cm5lZCBldmlkZW5jZVxuICAgICAqIHRvIGFub3RoZXIgc2VydmljZSB3aGljaCB3aWxsIHZlcmlmeSBpdCBieSBtYWtpbmcgYSByZXF1ZXN0IHRvIGAvdjAvb3JnLzxvcmdfaWQ+L2lkZW50aXR5L3ZlcmlmeWAuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZVByb29mQ3ViZVNpZ25lclwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L2lkZW50aXR5L3Byb3ZlL29pZGNcIjoge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBPSURDIHRva2VuXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBbSWRlbnRpdHlQcm9vZl0gZnJvbSBPSURDIHRva2VuXG4gICAgICpcbiAgICAgKiBFeGNoYW5nZSBhbiBPSURDIElEIHRva2VuIChwYXNzZWQgdmlhIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyKSBmb3IgYSBwcm9vZiBvZiBhdXRoZW50aWNhdGlvbi5cbiAgICAgKlxuICAgICAqIFRoaXMgcm91dGUgY2FuIGJlIHVzZWQgdG8gcHJvdmUgdG8gYW5vdGhlciBwYXJ0eSB0aGF0IGEgdXNlciBoYXMgbWV0IHRoZVxuICAgICAqIGF1dGhlbnRpY2F0aW9uIHJlcXVpcmVtZW50cyAoYWxsb3dlZCBpc3N1ZXJzICYgYXVkaWVuY2VzKSBmb3IgQ3ViZVNpZ25lclxuICAgICAqIHdpdGhvdXQgbGVha2luZyB0aGVpciBjcmVkZW50aWFscy5cbiAgICAgKlxuICAgICAqIENsaWVudHMgYXJlIGludGVuZGVkIHRvIGNhbGwgdGhpcyByb3V0ZSBhbmQgcGFzcyB0aGUgcmV0dXJuZWQgZXZpZGVuY2UgdG8gYW5vdGhlciBzZXJ2aWNlXG4gICAgICogd2hpY2ggd2lsbCB2ZXJpZnkgaXQgYnkgbWFraW5nIGEgcmVxdWVzdCB0byBgL3YwL29yZy88b3JnX2lkPi9pZGVudGl0eS92ZXJpZnlgLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjcmVhdGVQcm9vZk9pZGNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pZGVudGl0eS92ZXJpZnlcIjoge1xuICAgIC8qKlxuICAgICAqIFZlcmlmeSBpZGVudGl0eSBwcm9vZlxuICAgICAqIEBkZXNjcmlwdGlvbiBWZXJpZnkgaWRlbnRpdHkgcHJvb2ZcbiAgICAgKlxuICAgICAqIEFsbG93cyBhIHRoaXJkLXBhcnR5IHRvIHZhbGlkYXRlIHByb29mIG9mIGF1dGhlbnRpY2F0aW9uLlxuICAgICAqXG4gICAgICogV2hlbiBhIHRoaXJkLXBhcnR5IGlzIHByb3ZpZGVkIGFuIFtJZGVudGl0eVByb29mXSBvYmplY3QsIHRoZXkgbXVzdCBjaGVjayBpdHNcbiAgICAgKiB2ZXJhY2l0eSBieSBjYWxsaW5nIHRoaXMgZW5kcG9pbnRcbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1widmVyaWZ5UHJvb2ZcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9pbXBvcnRfa2V5XCI6IHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGUgS2V5LUltcG9ydCBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIEtleS1JbXBvcnQgS2V5XG4gICAgICpcbiAgICAgKiBHZW5lcmF0ZSBhbiBlcGhlbWVyYWwga2V5IHRoYXQgYSBjbGllbnQgY2FuIHVzZSBmb3Iga2V5LWltcG9ydCBlbmNyeXB0aW9uLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImNyZWF0ZUtleUltcG9ydEtleVwiXTtcbiAgICAvKipcbiAgICAgKiBJbXBvcnQgS2V5XG4gICAgICogQGRlc2NyaXB0aW9uIEltcG9ydCBLZXlcbiAgICAgKlxuICAgICAqIFNlY3VyZWx5IGltcG9ydHMgYW4gZXhpc3Rpbmcga2V5IHVzaW5nIGEgcHJldmlvdXNseSBnZW5lcmF0ZWQga2V5LWltcG9ydCBrZXkuXG4gICAgICovXG4gICAgcHV0OiBvcGVyYXRpb25zW1wiaW1wb3J0S2V5XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vaW52aXRlXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbnZpdGUgVXNlclxuICAgICAqIEBkZXNjcmlwdGlvbiBJbnZpdGUgVXNlclxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhIG5ldyB1c2VyIGluIGFuIGV4aXN0aW5nIG9yZyBhbmQgc2VuZHMgdGhhdCB1c2VyIGFuIGludml0ZSBlbWFpbC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiaW52aXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0va2V5c1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBLZXlzXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgS2V5c1xuICAgICAqXG4gICAgICogR2V0cyB0aGUgbGlzdCBvZiBvd25lZCBrZXlzIGluIGEgZ2l2ZW4gb3JnLlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImxpc3RLZXlzSW5PcmdcIl07XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIEtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgS2V5XG4gICAgICpcbiAgICAgKiBDcmVhdGVzIG9uZSBvciBtb3JlIG5ldyBrZXlzIG9mIHRoZSBzcGVjaWZpZWQgdHlwZS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiY3JlYXRlS2V5XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0va2V5cy97a2V5X2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IEtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgS2V5XG4gICAgICpcbiAgICAgKiBSZXR1cm5zIHRoZSBwcm9wZXJ0aWVzIG9mIGEga2V5LlxuICAgICAqL1xuICAgIGdldDogb3BlcmF0aW9uc1tcImdldEtleUluT3JnXCJdO1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSBLZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIEtleVxuICAgICAqXG4gICAgICogRGVsZXRlcyBhIGtleSBzcGVjaWZpZWQgYnkgaXRzIElELlxuICAgICAqIE9ubHkgdGhlIGtleSBvd25lciBhbmQgb3JnIG93bmVycyBhcmUgYWxsb3dlZCB0byBkZWxldGUga2V5cy5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJkZWxldGVLZXlcIl07XG4gICAgLyoqXG4gICAgICogVXBkYXRlIEtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgS2V5XG4gICAgICpcbiAgICAgKiBFbmFibGUgb3IgZGlzYWJsZSBhIGtleS4gIFRoZSB1c2VyIG11c3QgYmUgdGhlIG93bmVyIG9mIHRoZSBrZXkgb3Igb3JnYW5pemF0aW9uIHRvIHBlcmZvcm0gdGhpcyBhY3Rpb24uXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJ1cGRhdGVLZXlcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9tZmFcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgUGVuZGluZyBNRkEgUmVxdWVzdHNcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBQZW5kaW5nIE1GQSBSZXF1ZXN0c1xuICAgICAqXG4gICAgICogUmV0cmlldmVzIGFuZCByZXR1cm5zIGFsbCBwZW5kaW5nIE1GQSByZXF1ZXN0cyB0aGF0IGFyZSBhY2Nlc3NpYmxlIHRvIHRoZSBjdXJyZW50IHVzZXIsXG4gICAgICogaS5lLiwgdGhvc2UgaW4gd2hpY2ggdGhlIGN1cnJlbnQgdXNlciBpcyBsaXN0ZWQgYXMgYW4gYXBwcm92ZXJcbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJtZmFMaXN0XCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbWZhL3ttZmFfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBHZXQgUGVuZGluZyBNRkEgUmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgUGVuZGluZyBNRkEgUmVxdWVzdFxuICAgICAqXG4gICAgICogUmV0cmlldmVzIGFuZCByZXR1cm5zIGEgcGVuZGluZyBNRkEgcmVxdWVzdCBieSBpdHMgaWQuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibWZhR2V0XCJdO1xuICAgIC8qKlxuICAgICAqIEFwcHJvdmUgTUZBIFJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gQXBwcm92ZSBNRkEgUmVxdWVzdFxuICAgICAqXG4gICAgICogQXBwcm92ZSByZXF1ZXN0IGFmdGVyIGxvZ2dpbmcgaW4gd2l0aCBDdWJlU2lnbmVyLiBBZGRzIHRoZSBjdXJyZW50bHktbG9nZ2VkIHVzZXIgYXMgYW4gYXBwcm92ZXJcbiAgICAgKiBvZiBhIHBlbmRpbmcgTUZBIHJlcXVlc3Qgb2YgdGhlIFtTdGF0dXM6OlJlcXVpcmVkQXBwcm92ZXJzXSBraW5kLiBJZiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mXG4gICAgICogYXBwcm92ZXJzIGlzIHJlYWNoZWQsIHRoZSBNRkEgcmVxdWVzdCBpcyBhcHByb3ZlZDsgdGhlIGNvbmZpcm1hdGlvbiByZWNlaXB0IGNhbiBiZSB1c2VkIHRvXG4gICAgICogcmVzdW1lIHRoZSBvcmlnaW5hbCBIVFRQIHJlcXVlc3QuXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJtZmFBcHByb3ZlQ3NcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9tZmEve21mYV9pZH0vZmlkb1wiOiB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhdGUgQXBwcm92aW5nIGFuIE1GQSBSZXF1ZXN0IHdpdGggRklET1xuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSBBcHByb3ZpbmcgYW4gTUZBIFJlcXVlc3Qgd2l0aCBGSURPXG4gICAgICpcbiAgICAgKiBJbml0aWF0ZXMgdGhlIGFwcHJvdmFsIHByb2Nlc3Mgb2YgYW4gTUZBIFJlcXVlc3QgdXNpbmcgRklETy5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wibWZhQXBwcm92ZUZpZG9cIl07XG4gICAgLyoqXG4gICAgICogRmluYWxpemUgYSBGSURPIE1GQSBBcHByb3ZhbFxuICAgICAqIEBkZXNjcmlwdGlvbiBGaW5hbGl6ZSBhIEZJRE8gTUZBIEFwcHJvdmFsXG4gICAgICpcbiAgICAgKiBBZGRzIGFuIGFwcHJvdmVyIHRvIGEgcGVuZGluZyBNRkEgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIElmIHRoZSByZXF1aXJlZCBudW1iZXIgb2YgYXBwcm92ZXJzIGlzIHJlYWNoZWQsIHRoZSBNRkEgcmVxdWVzdCBpcyBhcHByb3ZlZDtcbiAgICAgKiB0aGUgY29uZmlybWF0aW9uIHJlY2VpcHQgY2FuIGJlIHVzZWQgdG8gcmVzdW1lIHRoZSBvcmlnaW5hbCBIVFRQIHJlcXVlc3QuXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJtZmFBcHByb3ZlRmlkb0NvbXBsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vbWZhL3ttZmFfaWR9L3RvdHBcIjoge1xuICAgIC8qKlxuICAgICAqIEFwcHJvdmUgYSBUT1RQIE1GQSBSZXF1ZXN0XG4gICAgICogQGRlc2NyaXB0aW9uIEFwcHJvdmUgYSBUT1RQIE1GQSBSZXF1ZXN0XG4gICAgICpcbiAgICAgKiBBZGRzIHRoZSBjdXJyZW50IHVzZXIgYXMgYXBwcm92ZXIgdG8gYSBwZW5kaW5nIE1GQSByZXF1ZXN0IGJ5IHByb3ZpZGluZyBUT1RQIGNvZGUuXG4gICAgICpcbiAgICAgKiBJZiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7XG4gICAgICogdGhlIGNvbmZpcm1hdGlvbiByZWNlaXB0IGNhbiBiZSB1c2VkIHRvIHJlc3VtZSB0aGUgb3JpZ2luYWwgSFRUUCByZXF1ZXN0LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1wibWZhQXBwcm92ZVRvdHBcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9vaWRjXCI6IHtcbiAgICAvKipcbiAgICAgKiBMb2dpbiB3aXRoIE9JRENcbiAgICAgKiBAZGVzY3JpcHRpb24gTG9naW4gd2l0aCBPSURDXG4gICAgICpcbiAgICAgKiBFeGNoYW5nZSBhbiBPSURDIElEIHRva2VuIChwYXNzZWQgdmlhIHRoZSBgQXV0aG9yaXphdGlvbmAgaGVhZGVyKSBmb3IgYSBzaWduZXIgc2Vzc2lvblxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJvaWRjQXV0aFwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzXCI6IHtcbiAgICAvKipcbiAgICAgKiBMaXN0IFJvbGVzXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgUm9sZXNcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBhbGwgcm9sZXMgaW4gYW4gb3JnYW5pemF0aW9uIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBpcyBhbGxvd2VkIHRvIGFjY2Vzcy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0Um9sZXNcIl07XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIFJvbGVcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFJvbGVcbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgcm9sZSBpbiBhbiBvcmdhbml6YXRpb24uIFVubGVzcyB0aGUgbG9nZ2VkLWluIHVzZXJcbiAgICAgKiBpcyB0aGUgb3duZXIsIHRoZXkgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgcm9sZS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiY3JlYXRlUm9sZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogR2V0IFJvbGVcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IFJvbGVcbiAgICAgKlxuICAgICAqIFJldHJpZXZlcyBpbmZvcm1hdGlvbiBhYm91dCBhIHJvbGUgaW4gYW4gb3JnYW5pemF0aW9uXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0Um9sZVwiXTtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgUm9sZVxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgUm9sZVxuICAgICAqXG4gICAgICogRGVsZXRlcyBhIHJvbGUgaW4gYW4gb3JnYW5pemF0aW9uLlxuICAgICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wiZGVsZXRlUm9sZVwiXTtcbiAgICAvKipcbiAgICAgKiBVcGRhdGUgUm9sZVxuICAgICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgUm9sZVxuICAgICAqXG4gICAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBhIHJvbGUgKHRoaXMgcmVxdWlyZXMgdGhlIGBtYW5hZ2U6cm9sZTp1cGRhdGU6ZW5hYmxlYCBzY29wZSkuXG4gICAgICogVXBkYXRlcyB0aGUgcm9sZSdzIHBvbGljaWVzICh0aGlzIHJlcXVpcmVzIHRoZSBgbWFuYWdlOnJvbGU6dXBkYXRlOnBvbGljeWAgc2NvcGUpLlxuICAgICAqIFRoZSB1c2VyIG11c3QgYmUgaW4gdGhlIHJvbGUgb3IgYW4gb3duZXIgb2YgdGhlIG9yZ2FuaXphdGlvbi5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInVwZGF0ZVJvbGVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH0vYWRkX2tleXNcIjoge1xuICAgIC8qKlxuICAgICAqIEFkZCBLZXlzXG4gICAgICogQGRlc2NyaXB0aW9uIEFkZCBLZXlzXG4gICAgICpcbiAgICAgKiBBZGRzIGEgbGlzdCBvZiBleGlzdGluZyBrZXlzIHRvIGFuIGV4aXN0aW5nIHJvbGUuXG4gICAgICovXG4gICAgcHV0OiBvcGVyYXRpb25zW1wiYWRkS2V5c1RvUm9sZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3JvbGVzL3tyb2xlX2lkfS9hZGRfdXNlci97dXNlcl9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEFkZCBVc2VyXG4gICAgICogQGRlc2NyaXB0aW9uIEFkZCBVc2VyXG4gICAgICpcbiAgICAgKiBBZGRzIGFuIGV4aXN0aW5nIHVzZXIgdG8gYW4gZXhpc3Rpbmcgcm9sZS5cbiAgICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG93bmVycyBjYW4gYWRkIHVzZXJzIHRvIGEgcm9sZS5cbiAgICAgKi9cbiAgICBwdXQ6IG9wZXJhdGlvbnNbXCJhZGRVc2VyVG9Sb2xlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vcm9sZXMve3JvbGVfaWR9L2tleXNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgUm9sZSBLZXlzXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgUm9sZSBLZXlzXG4gICAgICpcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGFsbCBrZXlzIGluIGEgcm9sZS5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0Um9sZUtleXNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH0va2V5cy97a2V5X2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogUmVtb3ZlIEtleVxuICAgICAqIEBkZXNjcmlwdGlvbiBSZW1vdmUgS2V5XG4gICAgICpcbiAgICAgKiBSZW1vdmVzIGEgZ2l2ZW4ga2V5IGZyb20gYSByb2xlXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wicmVtb3ZlS2V5RnJvbVJvbGVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH0vdG9rZW5zXCI6IHtcbiAgICAvKipcbiAgICAgKiBMaXN0IGEgc2luZ2xlIHBhZ2Ugb2YgVG9rZW5zIChEZXByZWNhdGVkKVxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3QgYSBzaW5nbGUgcGFnZSBvZiBUb2tlbnMgKERlcHJlY2F0ZWQpXG4gICAgICpcbiAgICAgKiAqKkRlcHJlY2F0ZWQqKjogVXNlIGBHRVQgL29yZy97b3JnX2lkfS9zZXNzaW9uP3JvbGU9YFxuICAgICAqXG4gICAgICogUmV0dXJucyBhbGwgYWNjZXNzIHRva2VucyBmb3IgYSBnaXZlbiByb2xlLlxuICAgICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgb3Igb3duZXJzIGNhbiBjcmVhdGUgYSB0b2tlbiBmb3IgaXQuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wibGlzdFJvbGVUb2tlbnNcIl07XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIFRva2VuXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBUb2tlblxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBhY2Nlc3MgdG9rZW4gZm9yIGEgZ2l2ZW4gcm9sZSAodG8gYmUgdXNlZCBhcyBcIkFQSSBLZXlcIiBmb3IgYWxsIHNpZ25pbmcgYWN0aW9ucykuXG4gICAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIGNyZWF0ZSBhIHRva2VuIGZvciBpdC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiY3JlYXRlUm9sZVRva2VuXCJdO1xuICAgIC8qKlxuICAgICAqIFJldm9rZSBBbGwgVG9rZW5zIChEZXByZWNhdGVkKVxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQGRlc2NyaXB0aW9uIFJldm9rZSBBbGwgVG9rZW5zIChEZXByZWNhdGVkKVxuICAgICAqXG4gICAgICogKipEZXByZWNhdGVkKio6IFVzZSBgREVMRVRFIC9vcmcve29yZ19pZH0vc2Vzc2lvbj9yb2xlPWAgaW5zdGVhZFxuICAgICAqXG4gICAgICogUmV2b2tlcyBhbGwgYWNjZXNzIHRva2VucyBhc3NvY2lhdGVkIHdpdGggYSByb2xlLlxuICAgICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgb3Igb3duZXJzIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLlxuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcInJldm9rZUFsbFJvbGVUb2tlbnNcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH0vdG9rZW5zL3tzZXNzaW9uX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogUmV2b2tlIFRva2VuIChEZXByZWNhdGVkKVxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQGRlc2NyaXB0aW9uIFJldm9rZSBUb2tlbiAoRGVwcmVjYXRlZClcbiAgICAgKlxuICAgICAqICoqRGVwcmVjYXRlZCoqOiBVc2UgYERFTEVURSAvb3JnL3tvcmdfaWR9L3Nlc3Npb24ve3Nlc3Npb25faWR9YFxuICAgICAqXG4gICAgICogUmV2b2tlcyBhbiBhY2Nlc3MgdG9rZW4gYXNzb2NpYXRlZCB3aXRoIGEgcm9sZS5cbiAgICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG93bmVycyBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJyZXZva2VSb2xlVG9rZW5cIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS9yb2xlcy97cm9sZV9pZH0vdXNlcnNcIjoge1xuICAgIC8qKlxuICAgICAqIExpc3QgUm9sZSBVc2Vycy5cbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCBSb2xlIFVzZXJzLlxuICAgICAqXG4gICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBhbGwgdXNlcnMgd2hvIGhhdmUgYWNjZXNzIHRvIGEgcm9sZS5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0Um9sZVVzZXJzXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vc2Vzc2lvblwiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBzZXNzaW9uc1xuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0IHNlc3Npb25zXG4gICAgICpcbiAgICAgKiBJZiBubyBxdWVyeSBwYXJhbWV0ZXJzIGFyZSBwcm92aWRlZCwgaW5mb3JtYXRpb24gZm9yIHRoZSBjdXJyZW50IHNlc3Npb24gaXMgcmV0dXJuZWRcbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0U2Vzc2lvbnNcIl07XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIG5ldyB1c2VyIHNlc3Npb24gKG1hbmFnZW1lbnQgYW5kL29yIHNpZ25pbmcpXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBuZXcgdXNlciBzZXNzaW9uIChtYW5hZ2VtZW50IGFuZC9vciBzaWduaW5nKVxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhIG5ldyB1c2VyIHNlc3Npb24sIHNpbGVudGx5IHRydW5jYXRpbmcgcmVxdWVzdGVkIHNlc3Npb24gYW5kIGF1dGggbGlmZXRpbWVzXG4gICAgICogdG8gYmUgYXQgbW9zdCByZXF1ZXN0b3IncyBzZXNzaW9uIGFuZCBhdXRoIGxpZmV0aW1lLCByZXNwZWN0aXZlbHkuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZVNlc3Npb25cIl07XG4gICAgLyoqXG4gICAgICogUmV2b2tlIGV4aXN0aW5nIHNlc3Npb24ocylcbiAgICAgKiBAZGVzY3JpcHRpb24gUmV2b2tlIGV4aXN0aW5nIHNlc3Npb24ocylcbiAgICAgKlxuICAgICAqIEltbWVkaWF0ZWx5IHJldm9rZXMgZXhpc3Rpbmcgc2Vzc2lvbnMsIHByZXZlbnRpbmcgdGhlbSBmcm9tIGJlaW5nIHVzZWQgb3IgcmVmcmVzaGVkLlxuICAgICAqIElmIG5vIHF1ZXJ5IHBhcmFtcyBhcmUgcHJvdmlkZWQsIHRoZSBjdXJyZW50IHNlc3Npb24gaXMgcmV2b2tlZC5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJyZXZva2VTZXNzaW9uc1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3Nlc3Npb24vc2VsZlwiOiB7XG4gICAgLyoqXG4gICAgICogUmV2b2tlIGN1cnJlbnQgc2Vzc2lvblxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXZva2UgY3VycmVudCBzZXNzaW9uXG4gICAgICpcbiAgICAgKiBJbW1lZGlhdGVseSByZXZva2VzIHRoZSBjdXJyZW50IHNlc3Npb24sIHByZXZlbnRpbmcgaXQgZnJvbSBiZWluZyB1c2VkIG9yIHJlZnJlc2hlZFxuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcInJldm9rZUN1cnJlbnRTZXNzaW9uXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vc2Vzc2lvbi97c2Vzc2lvbl9pZH1cIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBzZXNzaW9uIGluZm9ybWF0aW9uXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBzZXNzaW9uIGluZm9ybWF0aW9uXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiZ2V0U2Vzc2lvblwiXTtcbiAgICAvKipcbiAgICAgKiBSZXZva2UgYSBzZXNzaW9uXG4gICAgICogQGRlc2NyaXB0aW9uIFJldm9rZSBhIHNlc3Npb25cbiAgICAgKlxuICAgICAqIEltbWVkaWF0ZWx5IHJldm9rZXMgYW4gZXhpc3Rpbmcgc2Vzc2lvbiwgcHJldmVudGluZyBpdCBmcm9tIGJlaW5nIHVzZWQgb3IgcmVmcmVzaGVkXG4gICAgICovXG4gICAgZGVsZXRlOiBvcGVyYXRpb25zW1wicmV2b2tlU2Vzc2lvblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3NvbGFuYS9zaWduL3twdWJrZXl9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIFNvbGFuYSBNZXNzYWdlXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gU29sYW5hIE1lc3NhZ2VcbiAgICAgKlxuICAgICAqIFNpZ25zIGEgU29sYW5hIG1lc3NhZ2Ugd2l0aCBhIGdpdmVuIGtleS5cbiAgICAgKiBUaGlzIGlzIGEgcHJlLXJlbGVhc2UgZmVhdHVyZS5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wic29sYW5hU2lnblwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3Rva2VuL2tleXNcIjoge1xuICAgIC8qKlxuICAgICAqIEdldCBUb2tlbi1BY2Nlc3NpYmxlIEtleXNcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IFRva2VuLUFjY2Vzc2libGUgS2V5c1xuICAgICAqXG4gICAgICogUmV0cmlldmVzIHRoZSBrZXlzIHRoYXQgdGhlIHJvbGUgdG9rZW4gY2FuIGFjY2Vzcy5cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0VG9rZW5LZXlzXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlci9tZVwiOiB7XG4gICAgLyoqXG4gICAgICogVXNlciBJbmZvXG4gICAgICogQGRlc2NyaXB0aW9uIFVzZXIgSW5mb1xuICAgICAqXG4gICAgICogUmV0cmlldmVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICovXG4gICAgZ2V0OiBvcGVyYXRpb25zW1wiYWJvdXRNZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3VzZXIvbWUvZXhwb3J0XCI6IHtcbiAgICAvKipcbiAgICAgKiBMaXN0IG91dHN0YW5kaW5nIHVzZXItZXhwb3J0IHJlcXVlc3RzXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3Qgb3V0c3RhbmRpbmcgdXNlci1leHBvcnQgcmVxdWVzdHNcbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJ1c2VyRXhwb3J0TGlzdFwiXTtcbiAgICAvKipcbiAgICAgKiBJbml0aWF0ZSBhIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgYSB1c2VyLWV4cG9ydCByZXF1ZXN0XG4gICAgICpcbiAgICAgKiBUaGlzIHN0YXJ0cyBhIGRlbGF5ICh3aG9zZSBsZW5ndGggaXMgZGV0ZXJtaW5lZCBieSBPcmctd2lkZSBzZXR0aW5ncylcbiAgICAgKiBiZWZvcmUgZXhwb3J0IGNhbiBiZSBjb21wbGV0ZWQsIGFuZCByZXR1cm5zIGEgdGlja2V0IHRoYXQgY2FuIGJlIHVzZWRcbiAgICAgKiB0byBjb21wbGV0ZSB0aGUgZXhwb3J0IG9uY2UgdGhlIHRpbWVyIGhhcyBleHBpcmVkLlxuICAgICAqXG4gICAgICogT25seSBvbmUgdXNlci1leHBvcnQgcmVxdWVzdCBjYW4gYmUgYWN0aXZlIGZvciBhIGdpdmVuIGtleS4gSWYgdGhlcmVcbiAgICAgKiBpcyBhbHJlYWR5IGFuIGFjdGl2ZSBleHBvcnQsIHRoaXMgZW5kcG9pbnQgd2lsbCByZXR1cm4gYW4gZXJyb3IuIFRvXG4gICAgICogY3JlYXRlIGEgbmV3IHJlcXVlc3QsIGZpcnN0IGRlbGV0ZSB0aGUgZXhpc3Rpbmcgb25lLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJ1c2VyRXhwb3J0SW5pdFwiXTtcbiAgICAvKipcbiAgICAgKiBEZWxldGUgYW4gZXhpc3RpbmcgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgYW4gZXhpc3RpbmcgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcInVzZXJFeHBvcnREZWxldGVcIl07XG4gICAgLyoqXG4gICAgICogQ29tcGxldGUgYSB1c2VyLWV4cG9ydCByZXF1ZXN0XG4gICAgICogQGRlc2NyaXB0aW9uIENvbXBsZXRlIGEgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgICAqXG4gICAgICogVGhpcyBlbmRwb2ludCBjYW4gYmUgY2FsbGVkIG9ubHkgYWZ0ZXIgaW5pdGlhdGluZyBhIHVzZXItZXhwb3J0IHJlcXVlc3QgdmlhXG4gICAgICogdGhlIGB1c2VyX2V4cG9ydF9pbml0YCBBUEksIGFuZCBvbmx5IHdpdGhpbiB0aGUgc3Vic2VxdWVudCBleHBvcnQgd2luZG93XG4gICAgICogKGkuZS4sIGFmdGVyIHRoZSBleHBvcnQgZGVsYXkgaGFzIHBhc3NlZCBhbmQgYmVmb3JlIHRoZSByZXF1ZXN0IGhhcyBleHBpcmVkKS5cbiAgICAgKlxuICAgICAqIFRvIGNoZWNrIG9uIHRoZSBzdGF0dXMgb2YgYW4gZXhwb3J0IHJlcXVlc3QsIHNlZSB0aGUgYHVzZXJfZXhwb3J0X2xpc3RgIEFQSS5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInVzZXJFeHBvcnRDb21wbGV0ZVwiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3VzZXIvbWUvZmlkb1wiOiB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhdGUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICAgKlxuICAgICAqIEdlbmVyYXRlcyBhIGNoYWxsZW5nZSB0aGF0IG11c3QgYmUgYW5zd2VyZWQgdG8gcHJvdmUgb3duZXJzaGlwIG9mIGEga2V5XG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInVzZXJSZWdpc3RlckZpZG9Jbml0XCJdO1xuICAgIC8qKlxuICAgICAqIEZpbmFsaXplIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAgICogQGRlc2NyaXB0aW9uIEZpbmFsaXplIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAgICpcbiAgICAgKiBBY2NlcHRzIHRoZSByZXNwb25zZSB0byB0aGUgY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCB0byB0aGlzIGVuZHBvaW50LlxuICAgICAqL1xuICAgIHBhdGNoOiBvcGVyYXRpb25zW1widXNlclJlZ2lzdGVyRmlkb0NvbXBsZXRlXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlci9tZS9maWRvL3tmaWRvX2lkfVwiOiB7XG4gICAgLyoqXG4gICAgICogRGVsZXRlIEZJRE8ga2V5XG4gICAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBGSURPIGtleVxuICAgICAqXG4gICAgICogRGVsZXRlcyBhIEZJRE8ga2V5IGZyb20gdGhlIHVzZXIncyBhY2NvdW50IChpZiB0aGUga2V5IGlzIG5vdCB0aGUgc29sZSBNRkEgZmFjdG9yKS4gTUZBIGlzIGFsd2F5cyByZXF1aXJlZC5cbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJ1c2VyRGVsZXRlRmlkb1wiXTtcbiAgfTtcbiAgXCIvdjAvb3JnL3tvcmdfaWR9L3VzZXIvbWUvdG90cFwiOiB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZSBUT1RQIFJlc2V0XG4gICAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemUgVE9UUCBSZXNldFxuICAgICAqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBUT1RQIGNoYWxsZW5nZSB0aGF0IG11c3QgYmUgYW5zd2VyZWQgdG8gcHJvdmUgdGhhdCB0aGUgbmV3IFRPVFBcbiAgICAgKiB3YXMgc3VjY2Vzc2Z1bGx5IGltcG9ydGVkIGludG8gYW4gYXV0aGVudGljYXRvciBhcHAuXG4gICAgICpcbiAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBhbGxvd2VkIGlmIEVJVEhFUlxuICAgICAqIC0gdGhlIHVzZXIgYWNjb3VudCBpcyBub3QgeWV0IGluaXRpYWxpemVkIGFuZCBubyBUT1RQIGlzIGFscmVhZHkgc2V0LCBPUlxuICAgICAqIC0gdGhlIHVzZXIgaGFzIG5vdCBjb25maWd1cmVkIGFueSBhdXRoIGZhY3RvcnM7XG4gICAgICogb3RoZXJ3aXNlLCBNRkEgaXMgcmVxdWlyZWQuXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcInVzZXJSZXNldFRvdHBJbml0XCJdO1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSBUT1RQXG4gICAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBUT1RQXG4gICAgICpcbiAgICAgKiBEZWxldGVzIFRPVFAgZnJvbSB0aGUgdXNlcidzIGFjY291bnQgKGlmIFRPVFAgaXMgbm90IHRoZSBzb2xlIE1GQSBmYWN0b3IpLiBNRkEgaXMgYWx3YXlzIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIGRlbGV0ZTogb3BlcmF0aW9uc1tcInVzZXJEZWxldGVUb3RwXCJdO1xuICAgIC8qKlxuICAgICAqIEZpbmFsaXplIHJlc2V0dGluZyBUT1RQXG4gICAgICogQGRlc2NyaXB0aW9uIEZpbmFsaXplIHJlc2V0dGluZyBUT1RQXG4gICAgICpcbiAgICAgKiBDaGVja3MgaWYgdGhlIHJlc3BvbnNlIGNvbnRhaW5zIHRoZSBjb3JyZWN0IFRPVFAgY29kZSBjb3JyZXNwb25kaW5nIHRvIHRoZVxuICAgICAqIGNoYWxsZW5nZSBnZW5lcmF0ZWQgYnkgdGhlIFBPU1QgbWV0aG9kIG9mIHRoaXMgZW5kcG9pbnQuXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJ1c2VyUmVzZXRUb3RwQ29tcGxldGVcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS91c2VyL21lL3RvdHAvdmVyaWZ5XCI6IHtcbiAgICAvKipcbiAgICAgKiBWZXJpZnkgVE9UUFxuICAgICAqIEBkZXNjcmlwdGlvbiBWZXJpZnkgVE9UUFxuICAgICAqXG4gICAgICogQ2hlY2tzIGlmIGEgZ2l2ZW4gY29kZSBtYXRjaGVzIHRoZSBjdXJyZW50IFRPVFAgY29kZSBmb3IgdGhlIGN1cnJlbnQgdXNlci5cbiAgICAgKiBFcnJvcnMgd2l0aCA0MDMgaWYgdGhlIGN1cnJlbnQgdXNlciBoYXMgbm90IHNldCB1cCBUT1RQIG9yIHRoZSBjb2RlIGZhaWxzIHZlcmlmaWNhdGlvbi5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1widXNlclZlcmlmeVRvdHBcIl07XG4gIH07XG4gIFwiL3YwL29yZy97b3JnX2lkfS91c2Vyc1wiOiB7XG4gICAgLyoqXG4gICAgICogTGlzdCB1c2VycyBpbiBvcmdhbml6YXRpb25cbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdCB1c2VycyBpbiBvcmdhbml6YXRpb25cbiAgICAgKi9cbiAgICBnZXQ6IG9wZXJhdGlvbnNbXCJsaXN0VXNlcnNJbk9yZ1wiXTtcbiAgICAvKipcbiAgICAgKiBBZGQgYSB0aGlyZC1wYXJ0eSB1c2VyIHRvIHRoZSBvcmdcbiAgICAgKiBAZGVzY3JpcHRpb24gQWRkIGEgdGhpcmQtcGFydHkgdXNlciB0byB0aGUgb3JnXG4gICAgICovXG4gICAgcG9zdDogb3BlcmF0aW9uc1tcImNyZWF0ZU9pZGNVc2VyXCJdO1xuICB9O1xuICBcIi92MC9vcmcve29yZ19pZH0vdXNlcnMvb2lkY1wiOiB7XG4gICAgLyoqXG4gICAgICogUmVtb3ZlIGEgdGhpcmQtcGFydHkgdXNlciBmcm9tIHRoZSBvcmdcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVtb3ZlIGEgdGhpcmQtcGFydHkgdXNlciBmcm9tIHRoZSBvcmdcbiAgICAgKi9cbiAgICBkZWxldGU6IG9wZXJhdGlvbnNbXCJkZWxldGVPaWRjVXNlclwiXTtcbiAgfTtcbiAgXCIvdjAvdXNlci9tZS9maWRvXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbml0aWF0ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAgICpcbiAgICAgKiBHZW5lcmF0ZXMgYSBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIG93bmVyc2hpcCBvZiBhIGtleVxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJyZWdpc3RlckZpZG9Jbml0TGVnYWN5XCJdO1xuICAgIC8qKlxuICAgICAqIEZpbmFsaXplIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICAgKlxuICAgICAqIEFjY2VwdHMgdGhlIHJlc3BvbnNlIHRvIHRoZSBjaGFsbGVuZ2UgZ2VuZXJhdGVkIGJ5IHRoZSBQT1NUIHRvIHRoaXMgZW5kcG9pbnQuXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJyZWdpc3RlckZpZG9Db21wbGV0ZUxlZ2FjeVwiXTtcbiAgfTtcbiAgXCIvdjAvdXNlci9tZS90b3RwXCI6IHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplIFRPVFAgUmVzZXRcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplIFRPVFAgUmVzZXRcbiAgICAgKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgVE9UUCBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIHRoYXQgdGhlIG5ldyBUT1RQXG4gICAgICogd2FzIHN1Y2Nlc3NmdWxseSBpbXBvcnRlZCBpbnRvIGFuIGF1dGhlbnRpY2F0b3IgYXBwLlxuICAgICAqXG4gICAgICogVGhpcyBvcGVyYXRpb24gaXMgYWxsb3dlZCBpZiBFSVRIRVJcbiAgICAgKiAtIHRoZSB1c2VyIGFjY291bnQgaXMgbm90IHlldCBpbml0aWFsaXplZCBhbmQgbm8gVE9UUCBpcyBhbHJlYWR5IHNldCwgT1JcbiAgICAgKiAtIHRoZSB1c2VyIGhhcyBub3QgY29uZmlndXJlZCBhbnkgYXV0aCBmYWN0b3JzO1xuICAgICAqIG90aGVyd2lzZSwgTUZBIGlzIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJyZXNldFRvdHBJbml0TGVnYWN5XCJdO1xuICAgIC8qKlxuICAgICAqIEZpbmFsaXplIHJlc2V0dGluZyBUT1RQXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgcmVzZXR0aW5nIFRPVFBcbiAgICAgKlxuICAgICAqIENoZWNrcyBpZiB0aGUgcmVzcG9uc2UgY29udGFpbnMgdGhlIGNvcnJlY3QgVE9UUCBjb2RlIGNvcnJlc3BvbmRpbmcgdG8gdGhlXG4gICAgICogY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCBtZXRob2Qgb2YgdGhpcyBlbmRwb2ludC5cbiAgICAgKi9cbiAgICBwYXRjaDogb3BlcmF0aW9uc1tcInJlc2V0VG90cENvbXBsZXRlTGVnYWN5XCJdO1xuICB9O1xuICBcIi92MC91c2VyL21lL3RvdHAvdmVyaWZ5XCI6IHtcbiAgICAvKipcbiAgICAgKiBWZXJpZnkgVE9UUFxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogQGRlc2NyaXB0aW9uIFZlcmlmeSBUT1RQXG4gICAgICpcbiAgICAgKiBDaGVja3MgaWYgYSBnaXZlbiBjb2RlIG1hdGNoZXMgdGhlIGN1cnJlbnQgVE9UUCBjb2RlIGZvciB0aGUgY3VycmVudCB1c2VyLlxuICAgICAqIEVycm9ycyB3aXRoIDQwMyBpZiB0aGUgY3VycmVudCB1c2VyIGhhcyBub3Qgc2V0IHVwIFRPVFAgb3IgdGhlIGNvZGUgZmFpbHMgdmVyaWZpY2F0aW9uLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJ2ZXJpZnlUb3RwTGVnYWN5XCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vYmxvYi9zaWduL3trZXlfaWR9XCI6IHtcbiAgICAvKipcbiAgICAgKiBTaWduIFJhdyBCbG9iXG4gICAgICogQGRlc2NyaXB0aW9uIFNpZ24gUmF3IEJsb2JcbiAgICAgKlxuICAgICAqIFNpZ25zIGFuIGFyYml0cmFyeSBibG9iIHdpdGggYSBnaXZlbiBrZXkuXG4gICAgICogVGhpcyBpcyBhIHByZS1yZWxlYXNlIGZlYXR1cmUuXG4gICAgICpcbiAgICAgKiAtIEVDRFNBIHNpZ25hdHVyZXMgYXJlIHNlcmlhbGl6ZWQgYXMgYmlnLWVuZGlhbiByIGFuZCBzIHBsdXMgcmVjb3ZlcnktaWRcbiAgICAgKiBieXRlIHYsIHdoaWNoIGNhbiBpbiBnZW5lcmFsIHRha2UgYW55IG9mIHRoZSB2YWx1ZXMgMCwgMSwgMiwgb3IgMy5cbiAgICAgKlxuICAgICAqIC0gRWREU0Egc2lnbmF0dXJlcyBhcmUgc2VyaWFsaXplZCBpbiB0aGUgc3RhbmRhcmQgZm9ybWF0LlxuICAgICAqXG4gICAgICogLSBCTFMgc2lnbmF0dXJlcyBhcmUgbm90IHN1cHBvcnRlZCBvbiB0aGUgYmxvYi1zaWduIGVuZHBvaW50LlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJibG9iU2lnblwiXTtcbiAgfTtcbiAgXCIvdjEvb3JnL3tvcmdfaWR9L2N1YmUzc2lnbmVyL2hlYXJ0YmVhdFwiOiB7XG4gICAgLyoqXG4gICAgICogUmVjb3JkIGhlYXJ0YmVhdFxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWNvcmQgaGVhcnRiZWF0XG4gICAgICpcbiAgICAgKiBUaGlzIGVuZHBvaW50IGlzIGNhbGxlZCBieSB0aGUgY3ViZTNzaWduZXIgcHJveHkgdG8gcmVjb3JkIHZhcmlvdXMgbWV0cmljcyB0byBDbG91ZFdhdGNoLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJjdWJlM3NpZ25lckhlYXJ0YmVhdFwiXTtcbiAgfTtcbiAgXCIvdjEvb3JnL3tvcmdfaWR9L2V0aDEvc2lnbi97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBFVk0gVHJhbnNhY3Rpb25cbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBFVk0gVHJhbnNhY3Rpb25cbiAgICAgKlxuICAgICAqIFNpZ25zIGFuIEV0aGVyZXVtIChhbmQgb3RoZXIgRVZNKSB0cmFuc2FjdGlvbiB3aXRoIGEgZ2l2ZW4gU2VjcDI1NmsxIGtleS5cbiAgICAgKiBSZXR1cm5zIGFuIFJMUC1lbmNvZGVkIHRyYW5zYWN0aW9uIHdpdGggRUlQLTE1NSBzaWduYXR1cmUuXG4gICAgICpcbiAgICAgKiBUaGUga2V5IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSByb2xlIGFuZCBvcmdhbml6YXRpb24gb24gd2hvc2UgYmVoYWxmIHRoaXMgYWN0aW9uIGlzIGNhbGxlZC5cbiAgICAgKi9cbiAgICBwb3N0OiBvcGVyYXRpb25zW1wiZXRoMVNpZ25cIl07XG4gIH07XG4gIFwiL3YxL29yZy97b3JnX2lkfS9ldGgyL3NpZ24ve3B1YmtleX1cIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gVmFsaWRhdG9yIFJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBWYWxpZGF0b3IgUmVxdWVzdFxuICAgICAqXG4gICAgICogU2lnbnMgYW4gZXRoMiB2YWxpZGF0b3IgcmVxdWVzdCB3aXRoIGEgZ2l2ZW4gQkxTIGtleS5cbiAgICAgKlxuICAgICAqIFRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZSBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJldGgyU2lnblwiXTtcbiAgfTtcbiAgXCIvdjEvb3JnL3tvcmdfaWR9L2V0aDIvc3Rha2VcIjoge1xuICAgIC8qKlxuICAgICAqIFNpZ24gU3Rha2UgRGVwb3NpdFxuICAgICAqIEBkZXNjcmlwdGlvbiBTaWduIFN0YWtlIERlcG9zaXRcbiAgICAgKlxuICAgICAqIFNpZ25zIGEgZGVwb3NpdCB0cmFuc2FjdGlvbiB3aXRoIGEgYHZhbGlkYXRvcl9rZXlgLiBJZiBgdmFsaWRhdG9yX2tleWAgaXMgc2V0IHRvIGEgcHJlZ2VuZXJhdGVkIGtleSwgd2UgdXNlIHRoZVxuICAgICAqIHByb3ZpZGVkIHZhbGlkYXRvciBrZXkuIE90aGVyd2lzZSwgd2UgZ2VuZXJhdGUgYSBuZXcgQkxTIGtleS5cbiAgICAgKlxuICAgICAqIFdoZW4gdXNpbmcgYSBwcmVnZW5lcmF0ZWQga2V5LCB0aGUga2V5IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSByb2xlIGFuZCBvcmdhbml6YXRpb24gb24gd2hvc2VcbiAgICAgKiBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJzdGFrZVwiXTtcbiAgfTtcbiAgXCIvdjEvb3JnL3tvcmdfaWR9L2V0aDIvdW5zdGFrZS97cHVia2V5fVwiOiB7XG4gICAgLyoqXG4gICAgICogU2lnbiBVbnN0YWtlIFJlcXVlc3RcbiAgICAgKiBAZGVzY3JpcHRpb24gU2lnbiBVbnN0YWtlIFJlcXVlc3RcbiAgICAgKlxuICAgICAqIEhhbmRsZSB1bnN0YWtpbmcgcmVxdWVzdCwgcHJvZHVjaW5nIGEgc2lnbmVkIHZvbHVudGFyeSBleGl0IG1lc3NhZ2VcbiAgICAgKiB0aGF0IGNhbiBiZSBwb3N0ZWQgZGlyZWN0bHkgdG8gdGhlIEJlYWNvbiBjaGFpbi5cbiAgICAgKlxuICAgICAqIFRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZSBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgICAqL1xuICAgIHBvc3Q6IG9wZXJhdGlvbnNbXCJ1bnN0YWtlXCJdO1xuICB9O1xuICBcIi92MS9vcmcve29yZ19pZH0vdG9rZW4vcmVmcmVzaFwiOiB7XG4gICAgLyoqXG4gICAgICogUmVmcmVzaCBTaWduZXIgU2Vzc2lvblxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWZyZXNoIFNpZ25lciBTZXNzaW9uXG4gICAgICovXG4gICAgcGF0Y2g6IG9wZXJhdGlvbnNbXCJzaWduZXJTZXNzaW9uUmVmcmVzaFwiXTtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgd2ViaG9va3MgPSBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgY29tcG9uZW50cyB7XG4gIHNjaGVtYXM6IHtcbiAgICBBY2NlcHRlZFJlc3BvbnNlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl0gJiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERpZmZlcmVudCByZXNwb25zZXMgd2UgcmV0dXJuIGZvciBzdGF0dXMgY29kZSBcIjIwMiBBY2NlcHRlZFwiLlxuICAgICAqXG4gICAgICogRXZlbiB0aG91Z2ggXCIyMDIgQWNjZXB0ZWRcIiBpcyBhIHN1Y2Nlc3NmdWwgcmVzcG9uc2UsIHdlIHJlcHJlc2VudFxuICAgICAqIGl0IGFzIGEgUnVzdCBlcnJvciBiZWNhdXNlIHRoYXQgbWFrZXMgaXQgZWFzeSB0byBoYXZlIHJvdXRlIGhhbmRsZXJzXG4gICAgICogcmV0dXJuIGBSZXN1bHQ8VCwgU2lnbmVyRXJyb3I+YCB3aGVyZSBgVGAgaXMgdGhlIHR5cGUgb2YgdGhlXG4gICAgICogcmVzcG9uc2UgZm9yIHRoZSBzdGF0dXMgY29kZSBcIjIwMCBPa1wiLlxuICAgICAqL1xuICAgIEFjY2VwdGVkVmFsdWU6IHtcbiAgICAgIE1mYVJlcXVpcmVkOiB7XG4gICAgICAgIC8qKiBAZGVzY3JpcHRpb24gTUZBIHJlcXVlc3QgaWQgKi9cbiAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcmdhbml6YXRpb24gaWQgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIHNlc3Npb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk5ld1Nlc3Npb25SZXNwb25zZVwiXSB8IG51bGw7XG4gICAgICB9O1xuICAgIH07XG4gICAgQWRkS2V5c1RvUm9sZVJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgbGlzdCBvZiBrZXlzIHRvIGFkZCB0byBhIHJvbGVcbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJLZXkjNjMwMjNhMjctMWU3MC00MzBhLWIyOTMtZmZiYzlkNmM0NDg0XCJcbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAga2V5X2lkczogc3RyaW5nW107XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBwb2xpY2llcyB0byBhcHBseSBmb3IgZWFjaCBrZXlcbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiVHhSZWNlaXZlclwiOiBcIjB4OGM1OTQ2OTFjMGU1OTJmZmEyMWYxNTNhMTZhZTQxZGI1YmVmY2FhYVwiXG4gICAgICAgKiAgIH0sXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlR4RGVwb3NpdFwiOiB7XG4gICAgICAgKiAgICAgICBcImtpbmRcIjogXCJDYW5vbmljYWxcIlxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfSxcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiUmVxdWlyZU1mYVwiOiB7XG4gICAgICAgKiAgICAgICBcImtpbmRcIjoge1xuICAgICAgICogICAgICAgICBcIlJlcXVpcmVkQXBwcm92ZXJzXCI6IHtcbiAgICAgICAqICAgICAgICAgICBcImNvdW50XCI6IDFcbiAgICAgICAqICAgICAgICAgfVxuICAgICAgICogICAgICAgfSxcbiAgICAgICAqICAgICAgIFwicmVzdHJpY3RlZF9vcGVyYXRpb25zXCI6IFtcbiAgICAgICAqICAgICAgICAgXCJFdGgxU2lnblwiLFxuICAgICAgICogICAgICAgICBcIkJsb2JTaWduXCJcbiAgICAgICAqICAgICAgIF1cbiAgICAgICAqICAgICB9XG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W10gfCBudWxsO1xuICAgIH07XG4gICAgQWRkVGhpcmRQYXJ0eVVzZXJSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBVc2VyIGVtYWlsXG4gICAgICAgKiBAZXhhbXBsZSBhbGljZUBleGFtcGxlLmNvbVxuICAgICAgICovXG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgaWRlbnRpdHk6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT0lEQ0lkZW50aXR5XCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCBsb2dpbiBNRkEgcG9saWN5ICovXG4gICAgICBtZmFfcG9saWN5PzogdW5rbm93bjtcbiAgICAgIHJvbGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWVtYmVyUm9sZVwiXTtcbiAgICB9O1xuICAgIEFkZFRoaXJkUGFydHlVc2VyUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZiAqL1xuICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgQXBwcm92YWxJbmZvOiB7XG4gICAgICB0aW1lc3RhbXA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXZWJBdXRobiBSZWx5aW5nIFBhcnRpZXMgbWF5IHVzZSBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlIHRvIHNwZWNpZnlcbiAgICAgKiB0aGVpciBwcmVmZXJlbmNlIHJlZ2FyZGluZyBhdHRlc3RhdGlvbiBjb252ZXlhbmNlIGR1cmluZyBjcmVkZW50aWFsXG4gICAgICogZ2VuZXJhdGlvbi5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNlbnVtZGVmLWF0dGVzdGF0aW9uY29udmV5YW5jZXByZWZlcmVuY2VcbiAgICAgKiBAZW51bSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6IFwibm9uZVwiIHwgXCJpbmRpcmVjdFwiIHwgXCJkaXJlY3RcIiB8IFwiZW50ZXJwcmlzZVwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gRGF0YSByZXF1aXJlZCBmb3IgYm90aCBgYXV0aGVudGljYXRlYCBhbmQgYHJlZnJlc2hgLiAqL1xuICAgIEF1dGhEYXRhOiB7XG4gICAgICAvKiogRm9ybWF0OiBpbnQzMiAqL1xuICAgICAgZXBvY2hfbnVtOiBudW1iZXI7XG4gICAgICBlcG9jaF90b2tlbjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCMzJcIl07XG4gICAgICBvdGhlcl90b2tlbjogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgdGhlIGFzc2VydGlvbiByZXNwb25zZSB1c2VkIGJ5IGNsaWVudHMgd2hlbiBhdHRlbXB0aW5nIHRvIGxvZyBpbiB3aXRoIGEga25vd24gY3JlZGVudGlhbFxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNhdXRoZW50aWNhdG9yYXNzZXJ0aW9ucmVzcG9uc2VcbiAgICAgKi9cbiAgICBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIENvbnRhaW5zIHRoZSBzdGFuZGFyZCBDVEFQMiBhdXRoZW50aWNhdG9yIGRhdGEuIE11c3QgYmUgYSB2YWxpZCBbYEF1dGhlbnRpY2F0b3JEYXRhYF0uXG4gICAgICAgKiBUaGlzIGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGhvdyBrZXkgd2FzIGludm9rZWQuXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLWF1dGhlbnRpY2F0b3Jhc3NlcnRpb25yZXNwb25zZS1hdXRoZW50aWNhdG9yZGF0YVxuICAgICAgICovXG4gICAgICBhdXRoZW50aWNhdG9yRGF0YTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ29udGFpbnMgVVRGOCBlbmNvZGVkIEpTT04gd2hpY2ggbXVzdCBiZSBhIHZhbGlkIFtgQ2xpZW50RGF0YWBdXG4gICAgICAgKiBUaGlzIGRhdGEgaXMgY29tYmluZWQgd2l0aCBgYXV0aGVudGljYXRvcl9kYXRhYCB0byBwcm9kdWNlIHRoZSBzaWduYXR1cmVcbiAgICAgICAqIG1lYW5pbmcgdGhlIGNsaWVudCBhdHRlc3RzIHRvIHRoZSBjb3JyZWN0bmVzcyBvZiB0aGlzIGRhdGEuXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLWF1dGhlbnRpY2F0b3JyZXNwb25zZS1jbGllbnRkYXRhanNvblxuICAgICAgICovXG4gICAgICBjbGllbnREYXRhSlNPTjogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHNpZ25hdHVyZSBvZiB0aGUgY29uY2F0ZW5hdGVkIGBhdXRoZW50aWNhdG9yRGF0YSB8fCBoYXNoYCB3aGVyZVxuICAgICAgICogYGhhc2hgIGlzIHRoZSBTSEEyNTYgaGFzaCBvZiB0aGUgYGNsaWVudERhdGFKU09OYCBidWZmZXI6XG4gICAgICAgKlxuICAgICAgICogRmllbGQgRGVmaW5pdGlvbjogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1hdXRoZW50aWNhdG9yYXNzZXJ0aW9ucmVzcG9uc2Utc2lnbmF0dXJlXG4gICAgICAgKiBTdGVwIDExIG9mIGBnZXRBc3NlcnRpb25gIHNwZWNpZmllcyB0aGUgY29uY2F0ZW5hdGlvbjogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI3NjdG4tb3AtZ2V0LWFzc2VydGlvblxuICAgICAgICogUmVxdWlyZW1lbnQgZm9yIFNIQS0yNTY6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNjb2xsZWN0ZWRjbGllbnRkYXRhLWhhc2gtb2YtdGhlLXNlcmlhbGl6ZWQtY2xpZW50LWRhdGFcbiAgICAgICAqL1xuICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbGxvd3MgdGhlIGF1dGhlbnRpY2F0b3IgdG8gb3B0aW9uYWxseSBkZWNsYXJlIHRoZSBjcmVkZW50aWFsIGlkZW50aWZpZXIgdGhleSB1c2VkLlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1hdXRoZW50aWNhdG9yYXNzZXJ0aW9ucmVzcG9uc2UtdXNlcmhhbmRsZVxuICAgICAgICovXG4gICAgICB1c2VySGFuZGxlPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGVudW1lcmF0aW9u4oCZcyB2YWx1ZXMgZGVzY3JpYmUgYXV0aGVudGljYXRvcnMnIGF0dGFjaG1lbnQgbW9kYWxpdGllcy5cbiAgICAgKiBSZWx5aW5nIFBhcnRpZXMgdXNlIHRoaXMgdG8gZXhwcmVzcyBhIHByZWZlcnJlZCBhdXRoZW50aWNhdG9yIGF0dGFjaG1lbnRcbiAgICAgKiBtb2RhbGl0eSB3aGVuIGNhbGxpbmcgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZSgpIHRvIGNyZWF0ZSBhIGNyZWRlbnRpYWwuXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZW51bWRlZi1hdXRoZW50aWNhdG9yYXR0YWNobWVudFxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6IFwicGxhdGZvcm1cIiB8IFwiY3Jvc3MtcGxhdGZvcm1cIjtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlIGludGVyZmFjZSByZXByZXNlbnRzIHRoZSBhdXRoZW50aWNhdG9yJ3NcbiAgICAgKiByZXNwb25zZSB0byBhIGNsaWVudOKAmXMgcmVxdWVzdCBmb3IgdGhlIGNyZWF0aW9uIG9mIGEgbmV3IHB1YmxpYyBrZXlcbiAgICAgKiBjcmVkZW50aWFsLiBJdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbmV3IGNyZWRlbnRpYWwgdGhhdCBjYW4gYmVcbiAgICAgKiB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBsYXRlciB1c2UsIGFuZCBtZXRhZGF0YSB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoZVxuICAgICAqIFdlYkF1dGhuIFJlbHlpbmcgUGFydHkgdG8gYXNzZXNzIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIGNyZWRlbnRpYWxcbiAgICAgKiBkdXJpbmcgcmVnaXN0cmF0aW9uLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2lmYWNlLWF1dGhlbnRpY2F0b3JhdHRlc3RhdGlvbnJlc3BvbnNlXG4gICAgICovXG4gICAgQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgYXR0cmlidXRlIGNvbnRhaW5zIGFuIGF0dGVzdGF0aW9uIG9iamVjdCwgd2hpY2ggaXMgb3BhcXVlIHRvLCBhbmRcbiAgICAgICAqIGNyeXB0b2dyYXBoaWNhbGx5IHByb3RlY3RlZCBhZ2FpbnN0IHRhbXBlcmluZyBieSwgdGhlIGNsaWVudC4gVGhlXG4gICAgICAgKiBhdHRlc3RhdGlvbiBvYmplY3QgY29udGFpbnMgYm90aCBhdXRoZW50aWNhdG9yIGRhdGEgYW5kIGFuIGF0dGVzdGF0aW9uXG4gICAgICAgKiBzdGF0ZW1lbnQuIFRoZSBmb3JtZXIgY29udGFpbnMgdGhlIEFBR1VJRCwgYSB1bmlxdWUgY3JlZGVudGlhbCBJRCwgYW5kXG4gICAgICAgKiB0aGUgY3JlZGVudGlhbCBwdWJsaWMga2V5LiBUaGUgY29udGVudHMgb2YgdGhlIGF0dGVzdGF0aW9uIHN0YXRlbWVudCBhcmVcbiAgICAgICAqIGRldGVybWluZWQgYnkgdGhlIGF0dGVzdGF0aW9uIHN0YXRlbWVudCBmb3JtYXQgdXNlZCBieSB0aGVcbiAgICAgICAqIGF1dGhlbnRpY2F0b3IuIEl0IGFsc28gY29udGFpbnMgYW55IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdGhhdCB0aGVcbiAgICAgICAqIFJlbHlpbmcgUGFydHkncyBzZXJ2ZXIgcmVxdWlyZXMgdG8gdmFsaWRhdGUgdGhlIGF0dGVzdGF0aW9uIHN0YXRlbWVudCxcbiAgICAgICAqIGFzIHdlbGwgYXMgdG8gZGVjb2RlIGFuZCB2YWxpZGF0ZSB0aGUgYXV0aGVudGljYXRvciBkYXRhIGFsb25nIHdpdGggdGhlXG4gICAgICAgKiBKU09OLWNvbXBhdGlibGUgc2VyaWFsaXphdGlvbiBvZiBjbGllbnQgZGF0YS4gRm9yIG1vcmUgZGV0YWlscywgc2VlXG4gICAgICAgKiDCp+KArzYuNSBBdHRlc3RhdGlvbiwgwqfigK82LjUuNCBHZW5lcmF0aW5nIGFuIEF0dGVzdGF0aW9uIE9iamVjdCwgYW5kIEZpZ3VyZVxuICAgICAgICogNi5cbiAgICAgICAqL1xuICAgICAgYXR0ZXN0YXRpb25PYmplY3Q6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgYXR0cmlidXRlLCBpbmhlcml0ZWQgZnJvbSBBdXRoZW50aWNhdG9yUmVzcG9uc2UsIGNvbnRhaW5zIHRoZVxuICAgICAgICogSlNPTi1jb21wYXRpYmxlIHNlcmlhbGl6YXRpb24gb2YgY2xpZW50IGRhdGEgKHNlZSDCp+KArzYuNSBBdHRlc3RhdGlvbilcbiAgICAgICAqIHBhc3NlZCB0byB0aGUgYXV0aGVudGljYXRvciBieSB0aGUgY2xpZW50IGluIG9yZGVyIHRvIGdlbmVyYXRlIHRoaXNcbiAgICAgICAqIGNyZWRlbnRpYWwuIFRoZSBleGFjdCBKU09OIHNlcmlhbGl6YXRpb24gTVVTVCBiZSBwcmVzZXJ2ZWQsIGFzIHRoZSBoYXNoXG4gICAgICAgKiBvZiB0aGUgc2VyaWFsaXplZCBjbGllbnQgZGF0YSBoYXMgYmVlbiBjb21wdXRlZCBvdmVyIGl0LlxuICAgICAgICovXG4gICAgICBjbGllbnREYXRhSlNPTjogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdlYkF1dGhuIFJlbHlpbmcgUGFydGllcyBtYXkgdXNlIHRoZSBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWFcbiAgICAgKiBkaWN0aW9uYXJ5IHRvIHNwZWNpZnkgdGhlaXIgcmVxdWlyZW1lbnRzIHJlZ2FyZGluZyBhdXRoZW50aWNhdG9yXG4gICAgICogYXR0cmlidXRlcy5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkaWN0ZGVmLWF1dGhlbnRpY2F0b3JzZWxlY3Rpb25jcml0ZXJpYVxuICAgICAqL1xuICAgIEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYToge1xuICAgICAgYXV0aGVudGljYXRvckF0dGFjaG1lbnQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1dGhlbnRpY2F0b3JBdHRhY2htZW50XCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIGlzIHJldGFpbmVkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIFdlYkF1dGhuIExldmVsXG4gICAgICAgKiAxIGFuZCwgZm9yIGhpc3RvcmljYWwgcmVhc29ucywgaXRzIG5hbWluZyByZXRhaW5zIHRoZSBkZXByZWNhdGVkXG4gICAgICAgKiDigJxyZXNpZGVudOKAnSB0ZXJtaW5vbG9neSBmb3IgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWxzLiBSZWx5aW5nIFBhcnRpZXNcbiAgICAgICAqIFNIT1VMRCBzZXQgaXQgdG8gdHJ1ZSBpZiwgYW5kIG9ubHkgaWYsIHJlc2lkZW50S2V5IGlzIHNldCB0byByZXF1aXJlZC5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLWF1dGhlbnRpY2F0b3JzZWxlY3Rpb25jcml0ZXJpYS1yZXF1aXJlcmVzaWRlbnRrZXlcbiAgICAgICAqL1xuICAgICAgcmVxdWlyZVJlc2lkZW50S2V5PzogYm9vbGVhbjtcbiAgICAgIHJlc2lkZW50S2V5PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSZXNpZGVudEtleVJlcXVpcmVtZW50XCJdIHwgbnVsbDtcbiAgICAgIHVzZXJWZXJpZmljYXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudFwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBdXRoZW50aWNhdG9ycyBtYXkgaW1wbGVtZW50IHZhcmlvdXMgdHJhbnNwb3J0cyBmb3IgY29tbXVuaWNhdGluZyB3aXRoXG4gICAgICogY2xpZW50cy4gVGhpcyBlbnVtZXJhdGlvbiBkZWZpbmVzIGhpbnRzIGFzIHRvIGhvdyBjbGllbnRzIG1pZ2h0IGNvbW11bmljYXRlXG4gICAgICogd2l0aCBhIHBhcnRpY3VsYXIgYXV0aGVudGljYXRvciBpbiBvcmRlciB0byBvYnRhaW4gYW4gYXNzZXJ0aW9uIGZvciBhXG4gICAgICogc3BlY2lmaWMgY3JlZGVudGlhbC4gTm90ZSB0aGF0IHRoZXNlIGhpbnRzIHJlcHJlc2VudCB0aGUgV2ViQXV0aG4gUmVseWluZ1xuICAgICAqIFBhcnR5J3MgYmVzdCBiZWxpZWYgYXMgdG8gaG93IGFuIGF1dGhlbnRpY2F0b3IgbWF5IGJlIHJlYWNoZWQuIEEgUmVseWluZ1xuICAgICAqIFBhcnR5IHdpbGwgdHlwaWNhbGx5IGxlYXJuIG9mIHRoZSBzdXBwb3J0ZWQgdHJhbnNwb3J0cyBmb3IgYSBwdWJsaWMga2V5XG4gICAgICogY3JlZGVudGlhbCB2aWEgZ2V0VHJhbnNwb3J0cygpLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2VudW1kZWYtYXV0aGVudGljYXRvcnRyYW5zcG9ydFxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgQXV0aGVudGljYXRvclRyYW5zcG9ydDogXCJ1c2JcIiB8IFwibmZjXCIgfCBcImJsZVwiIHwgXCJpbnRlcm5hbFwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVxdWVzdCB0byBzaWduIGFuIEF2YWxhbmNoZSB0cmFuc2FjdGlvbnMgKi9cbiAgICBBdmFTaWduUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVHJhbnNhY3Rpb24gdG8gc2lnbi5cbiAgICAgICAqXG4gICAgICAgKiBFeGFtcGxlczpcbiAgICAgICAqIC0ge1wiUFwiOiB7IFwiQWRkUGVybWlzc2lvbmxlc3NWYWxpZGF0b3JcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvcGxhdGZvcm12bS90eHMvYWRkX3Blcm1pc3Npb25sZXNzX3ZhbGlkYXRvci5ycyNMMTQpIH19XG4gICAgICAgKiAtIHtcIlBcIjogeyBcIkFkZFN1Ym5ldFZhbGlkYXRvclwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9wbGF0Zm9ybXZtL3R4cy9hZGRfc3VibmV0X3ZhbGlkYXRvci5ycyNMMjkpIH19XG4gICAgICAgKiAtIHtcIlBcIjogeyBcIkFkZFZhbGlkYXRvclwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9wbGF0Zm9ybXZtL3R4cy9hZGRfdmFsaWRhdG9yLnJzI0wxMikgfX1cbiAgICAgICAqIC0ge1wiUFwiOiB7IFwiQ3JlYXRlQ2hhaW5cIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvcGxhdGZvcm12bS90eHMvY3JlYXRlX2NoYWluLnJzI0w4KSB9fVxuICAgICAgICogLSB7XCJQXCI6IHsgXCJDcmVhdGVTdWJuZXRcIjogW1R4SnNvbl0oaHR0cHM6Ly9naXRodWIuY29tL2F2YS1sYWJzL2F2YWxhbmNoZS1ycy9ibG9iL2F2YWxhbmNoZS10eXBlcy12MC4xLjMvY3JhdGVzL2F2YWxhbmNoZS10eXBlcy9zcmMvcGxhdGZvcm12bS90eHMvY3JlYXRlX3N1Ym5ldC5ycyNMOCkgfX1cbiAgICAgICAqIC0ge1wiUFwiOiB7IFwiRXhwb3J0XCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL3BsYXRmb3Jtdm0vdHhzL2V4cG9ydC5ycyNMMTIpIH19XG4gICAgICAgKiAtIHtcIlBcIjogeyBcIkltcG9ydFwiOiBbVHhKc29uXShodHRwczovL2dpdGh1Yi5jb20vYXZhLWxhYnMvYXZhbGFuY2hlLXJzL2Jsb2IvYXZhbGFuY2hlLXR5cGVzLXYwLjEuMy9jcmF0ZXMvYXZhbGFuY2hlLXR5cGVzL3NyYy9wbGF0Zm9ybXZtL3R4cy9pbXBvcnQucnMjTDEyKSB9fVxuICAgICAgICogLSB7XCJYXCI6IHsgXCJCYXNlXCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL2F2bS90eHMvbW9kLnJzI0wyMSkgfX1cbiAgICAgICAqIC0ge1wiWFwiOiB7IFwiRXhwb3J0XCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL2F2bS90eHMvZXhwb3J0LnJzI0wxNikgfX1cbiAgICAgICAqIC0ge1wiWFwiOiB7IFwiSW1wb3J0XCI6IFtUeEpzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9hdmEtbGFicy9hdmFsYW5jaGUtcnMvYmxvYi9hdmFsYW5jaGUtdHlwZXMtdjAuMS4zL2NyYXRlcy9hdmFsYW5jaGUtdHlwZXMvc3JjL2F2bS90eHMvaW1wb3J0LnJzI0wxNCkgfX1cbiAgICAgICAqL1xuICAgICAgdHg6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbiAgICB9O1xuICAgIEF2YVNpZ25SZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgc2lnbmF0dXJlLiAqL1xuICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFdyYXBwZXIgYXJvdW5kIGEgemVyb2l6aW5nIDMyLWJ5dGUgZml4ZWQtc2l6ZSBhcnJheSAqL1xuICAgIEIzMjogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgIFwibWVzc2FnZV9iYXNlNjRcIjogXCJZV0pqWkdWbVoyaHBhbXRzYlc1dmNIRnljM1IxZG5kNGVYb3hNak0wTlRZS1wiXG4gICAgICogfVxuICAgICAqL1xuICAgIEJsb2JTaWduUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGJsb2IgdG8gc2lnbiwgZW5jb2RlZCBhcyBhIGJhc2U2NCBzdHJpbmcuXG4gICAgICAgKlxuICAgICAgICogTm90ZSB0aGF0IGNlcnRhaW4gc2lnbmluZyBrZXlzIGltcG9zZSBhZGRpdGlvbmFsIHJlcXVpcmVtZW50cyBvbiB0aGUgY29udGVudHMgb2ZcbiAgICAgICAqIHRoZSBtZXNzYWdlLiBGb3IgZXhhbXBsZSwgU2VjcDI1NmsxIGtleXMgcmVxdWlyZSB0aGF0IHRoZSBtZXNzYWdlIGlzIDMyIGJ5dGVzIGxvbmcuXG4gICAgICAgKi9cbiAgICAgIG1lc3NhZ2VfYmFzZTY0OiBzdHJpbmc7XG4gICAgfTtcbiAgICBCbG9iU2lnblJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBoZXgtZW5jb2RlZCBzaWduYXR1cmUuICovXG4gICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIEJ0Y1NpZ2hhc2hUeXBlOlxuICAgICAgfCBcIkFsbFwiXG4gICAgICB8IFwiTm9uZVwiXG4gICAgICB8IFwiU2luZ2xlXCJcbiAgICAgIHwgXCJBbGxQbHVzQW55b25lQ2FuUGF5XCJcbiAgICAgIHwgXCJOb25lUGx1c0FueW9uZUNhblBheVwiXG4gICAgICB8IFwiU2luZ2xlUGx1c0FueW9uZUNhblBheVwiO1xuICAgIEJ0Y1NpZ25SZXF1ZXN0OiB7XG4gICAgICBzaWdfa2luZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCdGNTaWduYXR1cmVLaW5kXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgYml0Y29pbiB0cmFuc2FjdGlvbiB0byBzaWduICovXG4gICAgICB0eDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgIH07XG4gICAgQnRjU2lnblJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgc2lnbmF0dXJlIGluIGNvbXBhY3QgZm9ybWF0LlxuICAgICAgICogQGV4YW1wbGUgMHg0NTRhZWYyN2MyMWRmN2RkOGY1MzdkYzg2OWY0Y2Q2NTI4NmNlMjM5YTUyZDM2NDcwZjRkODViZTg1YTg5MWIwMjc4OWU1ZmZkODU2MGIzMmE5ODExMGU1ZDAwOTY4MDJlNGMxNDE0NWNmNmM0NGYxMGE3NjhjODc3NTVlYWE0ODAwXG4gICAgICAgKi9cbiAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgIH07XG4gICAgQnRjU2lnbmF0dXJlS2luZDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTZWdyZWdhdGVkIFdpdG5lc3MgKi9cbiAgICAgIFNlZ3dpdDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRyYW5zYWN0aW9uIGlucHV0IGluZGV4XG4gICAgICAgICAqIEBleGFtcGxlIDBcbiAgICAgICAgICovXG4gICAgICAgIGlucHV0X2luZGV4OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gU2NyaXB0XG4gICAgICAgICAqIEBleGFtcGxlIDB4NzZhOTE0NzkwOTE5NzIxODZjNDQ5ZWIxZGVkMjJiNzhlNDBkMDA5YmRmMDA4OTg4YWNcbiAgICAgICAgICovXG4gICAgICAgIHNjcmlwdF9jb2RlOiBzdHJpbmc7XG4gICAgICAgIHNpZ2hhc2hfdHlwZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCdGNTaWdoYXNoVHlwZVwiXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEFtb3VudCBpbiBzYXRvc2hpc1xuICAgICAgICAgKiBAZXhhbXBsZSAxMDAwMDAwXG4gICAgICAgICAqL1xuICAgICAgICB2YWx1ZTogbnVtYmVyO1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gRGVzY3JpYmVzIGhvdyB0byBkZXJpdmUgYSBXZWJBdXRobiBjaGFsbGVuZ2UgdmFsdWUuICovXG4gICAgQ2hhbGxlbmdlUGllY2VzOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGJhc2U2NHVybCBlbmNvZGluZyBvZiBVVEY4IEpTT04uIFRoZSBkYXRhIGluIHRoYXQgSlNPTiBpcyBlbmRwb2ludCBzcGVjaWZpYywgYW5kIGRlc2NyaWJlcyB3aGF0IHRoaXMgRklETyBjaGFsbGVuZ2Ugd2lsbCBiZSB1c2VkIGZvci5cbiAgICAgICAqXG4gICAgICAgKiBDbGllbnRzIGNhbiB1c2UgYHByZWltYWdlYCBhbG9uZyB3aXRoIGByYW5kb21fc2VlZGAgdG8gcmVjb25zdHJ1Y3QgdGhlIGNoYWxsZW5nZSBsaWtlIHNvOlxuICAgICAgICpcbiAgICAgICAqIGBjaGFsbGVuZ2UgPSBITUFDLVNIQTI1NihrZXk9cmFuZG9tX3NlZWQsIG1lc3NhZ2U9cHJlaW1hZ2UpYFxuICAgICAgICovXG4gICAgICBwcmVpbWFnZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIHJhbmRvbSBzZWVkIHRoYXQgcHJldmVudHMgcmVwbGF5IGF0dGFja3MgKi9cbiAgICAgIHJhbmRvbV9zZWVkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU2Vzc2lvbiBpbmZvcm1hdGlvbiBzZW50IHRvIHRoZSBjbGllbnQuXG4gICAgICogVGhpcyBzdHJ1Y3Qgd29ya3MgaW4gdGFuZGVtIHdpdGggaXRzIHNlcnZlci1zaWRlIGNvdW50ZXJwYXJ0IFtgU2Vzc2lvbkRhdGFgXS5cbiAgICAgKi9cbiAgICBDbGllbnRTZXNzaW9uSW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUb2tlbiB0byB1c2UgZm9yIGF1dGhvcml6YXRpb24uICovXG4gICAgICBhdXRoX3Rva2VuOiBzdHJpbmc7XG4gICAgICBhdXRoX3Rva2VuX2V4cDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gRXBvY2ggYXQgd2hpY2ggdGhlIHRva2VuIHdhcyBsYXN0IHJlZnJlc2hlZFxuICAgICAgICovXG4gICAgICBlcG9jaDogbnVtYmVyO1xuICAgICAgZXBvY2hfdG9rZW46IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQjMyXCJdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUb2tlbiB0byB1c2UgZm9yIHJlZnJlc2hpbmcgdGhlIGAoYXV0aCwgcmVmcmVzaClgIHRva2VuIHBhaXIgKi9cbiAgICAgIHJlZnJlc2hfdG9rZW46IHN0cmluZztcbiAgICAgIHJlZnJlc2hfdG9rZW5fZXhwOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFNlc3Npb24gSUQgKi9cbiAgICAgIHNlc3Npb25faWQ6IHN0cmluZztcbiAgICB9O1xuICAgIENvbmZpZ3VyZWRNZmE6XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICB0eXBlOiBcInRvdHBcIjtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIHVuaXF1ZSBjcmVkZW50aWFsIGlkICovXG4gICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcmVhZGFibGUgbmFtZSBnaXZlbiB0byB0aGUga2V5ICovXG4gICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgICAgICAgIHR5cGU6IFwiZmlkb1wiO1xuICAgICAgICB9O1xuICAgIENyZWF0ZUtleUltcG9ydEtleVJlc3BvbnNlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUltcG9ydEtleVwiXSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFuIGF0dGVzdGF0aW9uIGRvY3VtZW50IGZyb20gYSBzZWN1cmUgZW5jbGF2ZSwgaW5jbHVkaW5nIGFuXG4gICAgICAgKiBSU0Egc2lnbmluZyBrZXkgdXNlZCB0byBzaWduIHRoZSBjb250ZW50cyBvZiB0aGlzIG1lc3NhZ2UuXG4gICAgICAgKi9cbiAgICAgIGVuY2xhdmVfYXR0ZXN0YXRpb246IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFuIFJTQS1QU1MtU0hBMjU2IHNpZ25hdHVyZSBvbiB0aGUgcHVibGljIGtleSBhbmQgZW5jcnlwdGVkXG4gICAgICAgKiBzZWNyZXRzIGF0dGVzdGluZyB0byB0aGVpciBnZW5lcmF0aW9uIGluc2lkZSBhIHNlY3VyZSBlbmNsYXZlLlxuICAgICAgICovXG4gICAgICBlbmNsYXZlX3NpZ25hdHVyZTogc3RyaW5nO1xuICAgIH07XG4gICAgQ3JlYXRlS2V5UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ2hhaW4gaWQgZm9yIHdoaWNoIHRoZSBrZXkgaXMgYWxsb3dlZCB0byBzaWduIG1lc3NhZ2VzXG4gICAgICAgKiBAZXhhbXBsZSA1XG4gICAgICAgKi9cbiAgICAgIGNoYWluX2lkPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiBrZXlzIHRvIGNyZWF0ZVxuICAgICAgICogQGV4YW1wbGUgMVxuICAgICAgICovXG4gICAgICBjb3VudDogbnVtYmVyO1xuICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFsbG93cyB1c2VycyB0byBzcGVjaWZ5IGEgdXNlciBvdGhlciB0aGFuIHRoZW1zZWx2ZXMgdG8gcmVjZWl2ZSB0aGUga2V5XG4gICAgICAgKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlxuICAgICAgICovXG4gICAgICBvd25lcj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICBDcmVhdGVLZXlSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaW5mbyBhYm91dCB0aGUgY3JlYXRlZCBrZXlzICovXG4gICAgICBrZXlzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluZm9cIl1bXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgY3JlYXRlIHJvbGUgcmVxdWVzdCBib2R5ICovXG4gICAgQ3JlYXRlUm9sZVJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHJvbGUuXG4gICAgICAgKiBAZXhhbXBsZSBteV9yb2xlXG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5ld2x5IGNyZWF0ZWQgcm9sZSBpbmZvcm1hdGlvbiAqL1xuICAgIENyZWF0ZVJvbGVSZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcm9sZS5cbiAgICAgICAqIEBleGFtcGxlIG15X3JvbGVcbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIG5ld2x5IGNyZWF0ZWQgcm9sZVxuICAgICAgICogQGV4YW1wbGUgUm9sZSNiZmUzZWNjYi03MzFlLTQzMGQtYjFlNS1hYzEzNjNlNmIwNmJcbiAgICAgICAqL1xuICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgQ3JlYXRlU2Vzc2lvblJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUmF0Y2hldENvbmZpZ1wiXSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgaHVtYW4gcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgdGhlIHNlc3Npb24ncyBwdXJwb3NlXG4gICAgICAgKiBAZXhhbXBsZSBNYW5hZ2Uga2V5cyBvbiBzZXJ2ZXIgZm9vLmJhclxuICAgICAgICovXG4gICAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBDb250cm9scyB3aGF0IGNhcGFiaWxpdGllcyB0aGlzIHNlc3Npb24gd2lsbCBoYXZlLlxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcIm1hbmFnZTprZXk6KlwiXG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHNjb3Blczogc3RyaW5nW107XG4gICAgfTtcbiAgICBDcmVhdGVUb2tlblJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUmF0Y2hldENvbmZpZ1wiXSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgaHVtYW4gcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgdGhlIHB1cnBvc2Ugb2YgdGhlIGtleVxuICAgICAgICogQGV4YW1wbGUgVmFsaWRhdG9yIFNpZ25pbmdcbiAgICAgICAqL1xuICAgICAgcHVycG9zZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ29udHJvbHMgd2hhdCBjYXBhYmlsaXRpZXMgdGhpcyBzZXNzaW9uIHdpbGwgaGF2ZS4gQnkgZGVmYXVsdCwgaXQgaGFzIGFsbFxuICAgICAgICogc2lnbmluZyBjYXBhYmlsaXRpZXMsIGkuZS4sIGp1c3QgdGhlICdzaWduOionIHNjb3BlLlxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcInNpZ246KlwiXG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHNjb3Blcz86IHN0cmluZ1tdIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBbiBleHRlbmRlZCBmb3JtIG9mIGBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zYCB0aGF0IGFsbG93cyBjbGllbnRzIHRvIGRlcml2ZSB0aGUgV2ViQXV0aG4gY2hhbGxlbmdlXG4gICAgICogZnJvbSBhIHN0cnVjdHVyZWQgcHJlaW1hZ2UuXG4gICAgICpcbiAgICAgKiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgd2VidWF0aG4gc2lnbmF0dXJlIGNhbiBvbmx5IGJlIHVzZWQgZm9yIGEgc3BlY2lmaWMgcHVycG9zZVxuICAgICAqL1xuICAgIENyZWF0aW9uT3B0aW9uc1dpdGhIYXNoOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNoYWxsZW5nZVBpZWNlc1wiXSAmIHtcbiAgICAgIG9wdGlvbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uc1wiXTtcbiAgICB9O1xuICAgIEN1YmVTaWduZXJVc2VySW5mbzoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgbXVsdGktZmFjdG9yIGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgY29uZmlndXJlZCBmb3IgdGhpcyB1c2VyICovXG4gICAgICBjb25maWd1cmVkX21mYTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb25maWd1cmVkTWZhXCJdW107XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFNldCBvbmNlIHRoZSB1c2VyIHN1Y2Nlc3NmdWxseSBsb2dzIGludG8gQ3ViZVNpZ25lciAqL1xuICAgICAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEN1YmVTaWduZXIncyB1c2VyIGlkZW50aWZpZXIgKi9cbiAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBwcm9kdWNlZCBieSBhIHN1Y2Nlc3NmdWwgZGVwb3NpdFxuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgIFwiY2hhaW5faWRcIjogNSxcbiAgICAgKiAgIFwiZGVwb3NpdF90eG5cIjoge1xuICAgICAqICAgICBcImRhdGFcIjogXCIweC4uLlwiLFxuICAgICAqICAgICBcInRvXCI6IFwiMHhmZjUwZWQzZDBlYzAzYWMwMWQ0Yzc5YWFkNzQ5MjhiZmY0OGE3YjJiXCIsXG4gICAgICogICAgIFwidmFsdWVcIjogXCIweDFiYzE2ZDY3NGVjODAwMDAwXCJcbiAgICAgKiAgIH0sXG4gICAgICogICBcIm5ld192YWxpZGF0b3JfcGtcIjogXCI5NzAwZmJiOGM5MDY5NDI0NDJjMmE1YjNhZDc0OThmMjdhZWRkYTI1Mzc4NmE2ZmJhYThmZWY0N2ZiN2FmMjM0ZTUwY2YyY2NlODE1YTU1MzA4Nzk5MmFlNTY1ZDQ4ZGFcIlxuICAgICAqIH1cbiAgICAgKi9cbiAgICBEZXBvc2l0VHhuOiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBDaGFpbiBJRCBmb3Igd2hpY2ggdGhlIGRlcG9zaXQgdHJhbnNhY3Rpb24gd2FzIGNyZWF0ZWRcbiAgICAgICAqL1xuICAgICAgY2hhaW5faWQ6IG51bWJlcjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGRlcG9zaXQgdHJhbnNhY3Rpb24uIEluY2x1ZGVzIG9ubHkgYHRvYCwgYHZhbHVlYCwgYW5kIGBkYXRhYCBmaWVsZHMuICovXG4gICAgICBkZXBvc2l0X3R4bjogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgY29tcHJlc3NlZCBmb3JtIG9mIHRoZSBuZXcgdmFsaWRhdG9yIEJMUyBwdWJsaWMga2V5ICovXG4gICAgICBuZXdfdmFsaWRhdG9yX3BrOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHR5cGUgb2YgZGVwb3NpdCB0byBwZXJmb3JtXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBEZXBvc2l0VHlwZTogXCJDYW5vbmljYWxcIiB8IFwiV3JhcHBlclwiO1xuICAgIERlcml2ZUtleVJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE9uZSBvciBtb3JlIGRlcml2YXRpb24gcGF0aHMgZnJvbSB3aGljaCB0byBkZXJpdmUga2V5cy5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJtLzQ0Jy82MCcvMCcvMC8wXCIsXG4gICAgICAgKiAgIFwibS80NCcvOTAwMCcvMCcvMC8wXCJcbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgZGVyaXZhdGlvbl9wYXRoOiBzdHJpbmdbXTtcbiAgICAgIGtleV90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBNYXRlcmlhbC1pZCBvZiB0aGUgbW5lbW9uaWMgdG8gdXNlIGZvciBkZXJpdmF0aW9uXG4gICAgICAgKiBAZXhhbXBsZSAweDlmMDdiZTgyZDkzNGZjYjVkMGY3NWRkMjRjMmRmZWE4YTg1YTRkMGMyODlkNTg4MjhiMzUzN2ZhZTI0ZDMyYjhcbiAgICAgICAqL1xuICAgICAgbW5lbW9uaWNfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIEVpcDE5MU9yNzEyU2lnblJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBzaWduYXR1cmUgY29tcHJpc2luZyA2NSBieXRlcyBpbiB0aGUgZm9ybWF0IHJlcXVpcmVkXG4gICAgICAgKiBieSBlY3JlY292ZXI6IDMyLWJ5dGUgciwgMzItYnl0ZSBzLCBhbmQgb25lLWJ5dGUgcmVjb3ZlcnktaWQgdlxuICAgICAgICogd2hpY2ggaXMgZWl0aGVyIDI3IG9yIDI4LlxuICAgICAgICogQGV4YW1wbGUgMHg0MzU1YzQ3ZDYzOTI0ZThhNzJlNTA5YjY1MDI5MDUyZWI2YzI5OWQ1M2EwNGUxNjdjNTc3NWZkNDY2NzUxYzlkMDcyOTk5MzZkMzA0YzE1M2Y2NDQzZGZhMDVmNDBmZjAwN2Q3MjkxMWI2ZjcyMzA3Zjk5NjIzMTYwNWI5MTU2MjFjXG4gICAgICAgKi9cbiAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgIH07XG4gICAgRWlwMTkxU2lnblJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEVJUC0xOTEgZGF0YSB0byBzaWduIGFzIGhleC1lbmNvZGVkIGJ5dGVzLlxuICAgICAgICogQGV4YW1wbGUgMHhkZWFkYmVlZjEzYzBmZmVlXG4gICAgICAgKi9cbiAgICAgIGRhdGE6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgIFwiY2hhaW5faWRcIjogMTMzNyxcbiAgICAgKiAgIFwidHlwZWRfZGF0YVwiOiB7XG4gICAgICogICAgIFwiZG9tYWluXCI6IHtcbiAgICAgKiAgICAgICBcImNoYWluSWRcIjogMTMzNyxcbiAgICAgKiAgICAgICBcIm5hbWVcIjogXCJFdGhlciBNYWlsXCIsXG4gICAgICogICAgICAgXCJ2ZXJpZnlpbmdDb250cmFjdFwiOiBcIjB4Q2NDQ2NjY2NDQ0NDY0NDQ0NDQ2NDY0NjY0NjQ0NDY0NjY2NjY2NjQ1wiLFxuICAgICAqICAgICAgIFwidmVyc2lvblwiOiBcIjFcIlxuICAgICAqICAgICB9LFxuICAgICAqICAgICBcIm1lc3NhZ2VcIjoge1xuICAgICAqICAgICAgIFwiY29udGVudHNcIjogXCJIZWxsbywgQm9iIVwiLFxuICAgICAqICAgICAgIFwiZnJvbVwiOiB7XG4gICAgICogICAgICAgICBcIm5hbWVcIjogXCJDb3dcIixcbiAgICAgKiAgICAgICAgIFwid2FsbGV0c1wiOiBbXG4gICAgICogICAgICAgICAgIFwiMHhDRDJhM2Q5RjkzOEUxM0NEOTQ3RWMwNUFiQzdGRTczNERmOEREODI2XCIsXG4gICAgICogICAgICAgICAgIFwiMHhEZWFEYmVlZmRFQWRiZWVmZEVhZGJFRUZkZWFkYmVFRmRFYURiZWVGXCJcbiAgICAgKiAgICAgICAgIF1cbiAgICAgKiAgICAgICB9LFxuICAgICAqICAgICAgIFwidG9cIjoge1xuICAgICAqICAgICAgICAgXCJuYW1lXCI6IFwiQm9iXCIsXG4gICAgICogICAgICAgICBcIndhbGxldHNcIjogW1xuICAgICAqICAgICAgICAgICBcIjB4YkJiQkJCQmJiQkJCYmJiQmJiQmJiYmJCQmJCYmJiYkJiQmJiQkJiQlwiLFxuICAgICAqICAgICAgICAgICBcIjB4QjBCZGFCZWE1N0IwQkRBQmVBNTdiMGJkQUJFQTU3YjBCRGFiRWE1N1wiLFxuICAgICAqICAgICAgICAgICBcIjB4QjBCMGIwYjBiMGIwQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiXG4gICAgICogICAgICAgICBdXG4gICAgICogICAgICAgfVxuICAgICAqICAgICB9LFxuICAgICAqICAgICBcInByaW1hcnlUeXBlXCI6IFwiTWFpbFwiLFxuICAgICAqICAgICBcInR5cGVzXCI6IHtcbiAgICAgKiAgICAgICBcIkVJUDcxMkRvbWFpblwiOiBbXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcIm5hbWVcIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgKiAgICAgICAgIH0sXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcInZlcnNpb25cIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCJcbiAgICAgKiAgICAgICAgIH0sXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcImNoYWluSWRcIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwidWludDI1NlwiXG4gICAgICogICAgICAgICB9LFxuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJ2ZXJpZnlpbmdDb250cmFjdFwiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJhZGRyZXNzXCJcbiAgICAgKiAgICAgICAgIH1cbiAgICAgKiAgICAgICBdLFxuICAgICAqICAgICAgIFwiR3JvdXBcIjogW1xuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJuYW1lXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICogICAgICAgICB9LFxuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJtZW1iZXJzXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcIlBlcnNvbltdXCJcbiAgICAgKiAgICAgICAgIH1cbiAgICAgKiAgICAgICBdLFxuICAgICAqICAgICAgIFwiTWFpbFwiOiBbXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcImZyb21cIixcbiAgICAgKiAgICAgICAgICAgXCJ0eXBlXCI6IFwiUGVyc29uXCJcbiAgICAgKiAgICAgICAgIH0sXG4gICAgICogICAgICAgICB7XG4gICAgICogICAgICAgICAgIFwibmFtZVwiOiBcInRvXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcIlBlcnNvblwiXG4gICAgICogICAgICAgICB9LFxuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJjb250ZW50c1wiLFxuICAgICAqICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAqICAgICAgICAgfVxuICAgICAqICAgICAgIF0sXG4gICAgICogICAgICAgXCJQZXJzb25cIjogW1xuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJuYW1lXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICogICAgICAgICB9LFxuICAgICAqICAgICAgICAge1xuICAgICAqICAgICAgICAgICBcIm5hbWVcIjogXCJ3YWxsZXRzXCIsXG4gICAgICogICAgICAgICAgIFwidHlwZVwiOiBcImFkZHJlc3NbXVwiXG4gICAgICogICAgICAgICB9XG4gICAgICogICAgICAgXVxuICAgICAqICAgICB9XG4gICAgICogICB9XG4gICAgICogfVxuICAgICAqL1xuICAgIEVpcDcxMlNpZ25SZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgY2hhaW4taWQgdG8gd2hpY2ggdGhpcyB0eXBlZCBkYXRhIHdpbGwgYmUgc2VudFxuICAgICAgICovXG4gICAgICBjaGFpbl9pZDogbnVtYmVyO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBFSVAtNzEyIHR5cGVkIGRhdGEuIFJlZmVyIHRvIHRoZSBKU09OIHNjaGVtYSBkZWZpbmVkIGluIEVJUC03MTIuICovXG4gICAgICB0eXBlZF9kYXRhOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgfTtcbiAgICAvKiogQGRlZmF1bHQgbnVsbCAqL1xuICAgIEVtcHR5OiB1bmtub3duO1xuICAgIEVtcHR5SW1wbDoge1xuICAgICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXBvY2ggaXMgYSBxdW90ZWQgYHVpbnQ2NGAuXG4gICAgICogQGV4YW1wbGUgMjU2XG4gICAgICovXG4gICAgRXBvY2g6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICogQGRlc2NyaXB0aW9uIERhdGVUaW1lIG1lYXN1cmVkIGluIHNlY29uZHMgc2luY2UgdW5peCBlcG9jaC5cbiAgICAgKiBBIHdyYXBwZXIgdHlwZSBmb3Igc2VyaWFsaXphdGlvbiB0aGF0IGVuY29kZXMgYSBbYFN5c3RlbVRpbWVgXSBhcyBhIFtgdTY0YF1cbiAgICAgKiByZXByZXNlbnRpbmcgdGhlIG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIFtgU3lzdGVtVGltZTo6VU5JWF9FUE9DSGBdLlxuICAgICAqL1xuICAgIEVwb2NoRGF0ZVRpbWU6IG51bWJlcjtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBzdHJ1Y3R1cmUgb2YgRXJyb3JSZXNwb25zZSBtdXN0IG1hdGNoIHRoZSByZXNwb25zZSB0ZW1wbGF0ZSB0aGF0IEFXUyB1c2VzICovXG4gICAgRXJyb3JSZXNwb25zZToge1xuICAgICAgYWNjZXB0ZWQ/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkVmFsdWVcIl0gfCBudWxsO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBFcnJvciBtZXNzYWdlICovXG4gICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIHJlcXVlc3QgaWRlbnRpZmllciAqL1xuICAgICAgcmVxdWVzdF9pZD86IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgIFwiY2hhaW5faWRcIjogNDMxMTMsXG4gICAgICogICBcInR4XCI6IHtcbiAgICAgKiAgICAgXCJjaGFpbl9pZFwiOiBcIjB4YTg2OVwiLFxuICAgICAqICAgICBcImdhc1wiOiBcIjB4NjFhODBcIixcbiAgICAgKiAgICAgXCJtYXhGZWVQZXJHYXNcIjogXCIweDk1MDJGOTAwXCIsXG4gICAgICogICAgIFwibWF4UHJpb3JpdHlGZWVQZXJHYXNcIjogXCIweDUwXCIsXG4gICAgICogICAgIFwibm9uY2VcIjogXCIweGJcIixcbiAgICAgKiAgICAgXCJ0b1wiOiBcIjB4ZjAwYmExMmYwMDAwMDAwMGI0MTIxMjAwMDAwZjAwYzBmZmVlZjAwZFwiLFxuICAgICAqICAgICBcInR5cGVcIjogXCIweDAyXCIsXG4gICAgICogICAgIFwidmFsdWVcIjogXCIweDEwMDAwMDAwMDAwXCJcbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICovXG4gICAgRXRoMVNpZ25SZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgY2hhaW4gaWQgdG8gc2V0IGluIHRoZSBnaXZlbiB0cmFuc2FjdGlvbi5cbiAgICAgICAqL1xuICAgICAgY2hhaW5faWQ6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEVJUC0yNzE4IHR5cGVkIHRyYW5zYWN0aW9uIChzZWUgdGhlIFtldGhlcnMtcnNcbiAgICAgICAqIGludGVyZmFjZV0oaHR0cHM6Ly9kb2NzLnJzL2V0aGVycy9sYXRlc3QvZXRoZXJzL3R5cGVzL3N0cnVjdC5FaXAxNTU5VHJhbnNhY3Rpb25SZXF1ZXN0Lmh0bWwpKSB0eXBlcywgaW5jbHVkaW5nIEVJUC0xNTU5IHRyYW5zYWN0aW9ucyAoYHsgXCJ0eXBlXCI6IFwiMHgwMlwiIC4uLiB9YCksIGFuZCBsZWdhY3lcbiAgICAgICAqIHRyYW5zYWN0aW9ucyAoYHsgXCJ0eXBlXCI6IFwiMHgwMFwiIC4uLiB9YCkuIEFsbCB2YWx1ZXMgaW4gdGhlIHRyYW5zYWN0aW9uIGFyZSBleHBlY3RlZFxuICAgICAgICogdG8gYmUgKDB4LXByZWZpeGVkIG9yIG5vdCkgaGV4IHN0cmluZ3Mgb3IgYnl0ZSBhcnJheXMuXG4gICAgICAgKi9cbiAgICAgIHR4OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG4gICAgfTtcbiAgICBFdGgxU2lnblJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBSTFAgZW5jb2Rpbmcgb2YgdGhlIHRyYW5zYWN0aW9uIGFuZCBpdHMgc2lnbmF0dXJlXG4gICAgICAgKiBAZXhhbXBsZSAweDIyODk1MTE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIwMWQ1ODY1NmIwZTIyYWFhNjhmZGM2OTJkYjQxOTc5MDk4YzM4ODZlZDMzMDE1ZDc0NjdkZTkyMTE2MDljZGFjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzA4YjBjMjkwMDMyNGQzZmY5YWRmYmE3ZmRmZTVhZjNmOWIyY2RiZWVmN2IyODA0MzdiYmYxYjFjNTlhMDkzZDYxNWFmZTNlNWRmZWQ5NjIyYjU0MGNkZDliNDliM2M1YWQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OTAxMWFkYmNjM2JjOWMwMzA3YmIwN2YzN2RkYTFhMWE5YzY5ZDJlMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MDkwM2RiODUyNTY3NGI4ZTc5MDRmOWI3ZDdkOWVjNTVhMGE0MmQzM2NmNThiZTI1NDY5YjBjMjFiYmI2ZDA2MTcyYmM1YmI1ZmQxYWVkOGU0ZjM1OTM2OTY4OTU4MTE2YjA2MTk1NTNjMmNiMWM1MmU3MzIzMDc0YzZmOGViM2Q1YTcwNzRmYzY1ODAxNDhkZjkwNzgzN2ZhM2IxNjRhZDdmYmMyMjg4ZGFkMWU4YTViMDIxMDk1YjU3YzhhMzZkNFxuICAgICAgICovXG4gICAgICBybHBfc2lnbmVkX3R4OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcImV0aDJfc2lnbl9yZXF1ZXN0XCI6IHtcbiAgICAgKiAgICAgXCJhZ2dyZWdhdGlvbl9zbG90XCI6IHtcbiAgICAgKiAgICAgICBcInNsb3RcIjogXCIzNlwiXG4gICAgICogICAgIH0sXG4gICAgICogICAgIFwiZm9ya19pbmZvXCI6IHtcbiAgICAgKiAgICAgICBcImZvcmtcIjoge1xuICAgICAqICAgICAgICAgXCJjdXJyZW50X3ZlcnNpb25cIjogXCIweDQyNDI0MjQyXCIsXG4gICAgICogICAgICAgICBcImVwb2NoXCI6IFwiMFwiLFxuICAgICAqICAgICAgICAgXCJwcmV2aW91c192ZXJzaW9uXCI6IFwiMHg0MjQyNDI0MlwiXG4gICAgICogICAgICAgfSxcbiAgICAgKiAgICAgICBcImdlbmVzaXNfdmFsaWRhdG9yc19yb290XCI6IFwiMHg5ZDEzZDYxMjEyYzA2N2UwMmNlOGU2MDhhNzAwN2UyYzNiMDI1NzFlOWU2ZjI3ZmY0NWRmYTkxYmYyN2M4NzBiXCJcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgXCJzaWduaW5nUm9vdFwiOiBcIjB4OWM1N2U3N2M0OTY1NzI3NTQyYjkzMzdkZjY3NTZmOTQ4NDY0YmNhMzg1OWJlYTZlZDNjMGVjNjYwMGQ4OTgyYVwiLFxuICAgICAqICAgICBcInR5cGVcIjogXCJBR0dSRUdBVElPTl9TTE9UXCJcbiAgICAgKiAgIH0sXG4gICAgICogICBcIm5ldHdvcmtcIjogXCJtYWlubmV0XCJcbiAgICAgKiB9XG4gICAgICovXG4gICAgRXRoMlNpZ25SZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTdWJzZXQgb2YgdGhlIFdlYjNTaWduZXIgRXRoMiBCTFMgc2lnbmluZyByZXF1ZXN0IHdob3NlIHNjaGVtYSBpcyBkZWZpbmVkXG4gICAgICAgKiBbaGVyZV0oaHR0cHM6Ly9jb25zZW5zeXMuZ2l0aHViLmlvL3dlYjNzaWduZXIvd2ViM3NpZ25lci1ldGgyLmh0bWwjdGFnL1NpZ25pbmcvb3BlcmF0aW9uL0VUSDJfU0lHTikuXG4gICAgICAgKiBXZSBoYW5kbGUgZGVwb3NpdHMgYW5kIHZvbHVudGFyeSBleGl0cyBzZXBhcmF0ZWx5LlxuICAgICAgICovXG4gICAgICBldGgyX3NpZ25fcmVxdWVzdDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuICAgICAgbmV0d29yazogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJOZXR3b3JrXCJdO1xuICAgIH07XG4gICAgRXRoMlNpZ25SZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSGV4IGVuY29kZWQgc2lnbmF0dXJlIHByZWZpeGVkIHdpdGggMHggZS5nLiBcIjB4MDAwMC4uLlwiXG4gICAgICAgKiBAZXhhbXBsZSAweGI0ZjJlZjlkMTJhNTRlMWY1Njk1OTZjMDdjOTdkNmQ3MzA1MzViNmZmYzBkMjg3NzYxZGM3ODEwM2E4NjMyNjc4MjQ3MWEwNGM3NWNlN2E2ZmFlYTA4Y2E5YTRhMDgzMDAzMWNkY2I4OTNkYTg3MTFkNTRhYTIyNjE5ZjFhN2U3MWI4MTg1ZGRmNGM2YmZkOWJhYmJkNzM1OTYwZTM1ZTU2YmQ2ZWViODk2MjViMDQ4NTBlN2E5ZWY4ODQ2ZTU0OVxuICAgICAgICovXG4gICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gU2VudCBmcm9tIHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlciB0byBhbnN3ZXIgYSBmaWRvIGNoYWxsZW5nZSAqL1xuICAgIEZpZG9Bc3NlcnRBbnN3ZXI6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBjaGFsbGVuZ2UgdGhhdCB3YXMgcmV0dXJuZWQgZnJvbSB0aGUgUE9TVCBlbmRwb2ludCAqL1xuICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgICBjcmVkZW50aWFsOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxcIl07XG4gICAgfTtcbiAgICBGaWRvQXNzZXJ0Q2hhbGxlbmdlOiAoY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDaGFsbGVuZ2VQaWVjZXNcIl0gJiB7XG4gICAgICBvcHRpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uc1wiXTtcbiAgICB9KSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBjaGFsbGVuZ2UuIE11c3QgYmUgc3VwcGxpZWQgd2hlbiBhbnN3ZXJpbmcgdGhlIGNoYWxsZW5nZS4gKi9cbiAgICAgIGNoYWxsZW5nZV9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBTZW50IGZyb20gdGhlIGNsaWVudCB0byB0aGUgc2VydmVyIHRvIGFuc3dlciBhIGZpZG8gY2hhbGxlbmdlICovXG4gICAgRmlkb0NyZWF0ZUNoYWxsZW5nZUFuc3dlcjoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIGNoYWxsZW5nZSB0aGF0IHdhcyByZXR1cm5lZCBmcm9tIHRoZSBQT1NUIGVuZHBvaW50ICovXG4gICAgICBjaGFsbGVuZ2VfaWQ6IHN0cmluZztcbiAgICAgIGNyZWRlbnRpYWw6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTZW50IGJ5IHRoZSBzZXJ2ZXIgdG8gdGhlIGNsaWVudC4gQ29udGFpbnMgdGhlIGNoYWxsZW5nZSBkYXRhIHRoYXQgbXVzdCBiZVxuICAgICAqIHVzZWQgdG8gZ2VuZXJhdGUgYSBuZXcgY3JlZGVudGlhbFxuICAgICAqL1xuICAgIEZpZG9DcmVhdGVDaGFsbGVuZ2VSZXNwb25zZTogKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2hhbGxlbmdlUGllY2VzXCJdICYge1xuICAgICAgb3B0aW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zXCJdO1xuICAgIH0pICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGNoYWxsZW5nZS4gTXVzdCBiZSBzdXBwbGllZCB3aGVuIGFuc3dlcmluZyB0aGUgY2hhbGxlbmdlLiAqL1xuICAgICAgY2hhbGxlbmdlX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERlY2xhcmVzIGludGVudCB0byByZWdpc3RlciBhIG5ldyBGSURPIGtleSAqL1xuICAgIEZpZG9DcmVhdGVSZXF1ZXN0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBuZXcgZmlkbyBjcmVkZW50aWFsXG4gICAgICAgKiBAZXhhbXBsZSBXb3JrIFl1YmlrZXlcbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNwZWNpZmllcyBhIGZvcmsgb2YgdGhlIGBCZWFjb25DaGFpbmAsIHRvIHByZXZlbnQgcmVwbGF5IGF0dGFja3MuXG4gICAgICogVGhlIHNjaGVtYSBvZiBgRm9ya2AgaXMgZGVmaW5lZCBpbiB0aGUgW0JlYWNvbiBjaGFpblxuICAgICAqIHNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9jb25zZW5zdXMtc3BlY3MvYmxvYi92MS4wLjEvc3BlY3MvcGhhc2UwL2JlYWNvbi1jaGFpbi5tZCNmb3JrKS5cbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcImN1cnJlbnRfdmVyc2lvblwiOiBcIjB4MDAwMDEwMjBcIixcbiAgICAgKiAgIFwiZXBvY2hcIjogXCIwXCIsXG4gICAgICogICBcInByZXZpb3VzX3ZlcnNpb25cIjogXCIweDAwMDAxMDIwXCJcbiAgICAgKiB9XG4gICAgICovXG4gICAgRm9yazoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQ3VycmVudCBmb3JrIHZlcnNpb24uXG4gICAgICAgKiBAZXhhbXBsZSAweDQzNDM0MzQzXG4gICAgICAgKi9cbiAgICAgIGN1cnJlbnRfdmVyc2lvbjogc3RyaW5nO1xuICAgICAgZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBQcmV2aW91cyBmb3JrIHZlcnNpb24uXG4gICAgICAgKiBAZXhhbXBsZSAweDQyNDI0MjQyXG4gICAgICAgKi9cbiAgICAgIHByZXZpb3VzX3ZlcnNpb246IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZW5lc2lzIGRhdGEgYXMgZGVmaW5lZCBpbiB0aGUgW0JlYWNvbiBBUElcbiAgICAgKiBzcGVjXShodHRwczovL2V0aGVyZXVtLmdpdGh1Yi5pby9iZWFjb24tQVBJcy8jL0JlYWNvbi9nZXRHZW5lc2lzKS5cbiAgICAgKiBZb3UgY2FuIGdldCB0aGUgZ2VuZXNpcyBkYXRhIGZyb20gdGhlIEJlYWNvbiBub2RlJ3MgYC9ldGgvdjEvYmVhY29uL2dlbmVzaXNgIGVuZC1wb2ludC5cbiAgICAgKiBUaGlzIHN0cnVjdCBkZWZpbml0aW9uIGlzIG9yaWdpbmFsbHkgZnJvbSBsaWdodGhvdXNlJ3MgZXRoMi5cbiAgICAgKi9cbiAgICBHZW5lc2lzRGF0YToge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gR2VuZXNpcyBmb3JrIHZlcnNpb24uXG4gICAgICAgKiBAZXhhbXBsZSAweDQyNDI0MjQyXG4gICAgICAgKi9cbiAgICAgIGdlbmVzaXNfZm9ya192ZXJzaW9uOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBHZW5lc2lzIHRpbWVcbiAgICAgICAqIEBleGFtcGxlIDE2NzkzMjY0NDlcbiAgICAgICAqL1xuICAgICAgZ2VuZXNpc190aW1lOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBHZW5lc2lzIHZhbGlkYXRvcnMgcm9vdC5cbiAgICAgICAqIEBleGFtcGxlIDB4MjcwZDQzZTc0Y2UzNDBkZTRiY2EyYjE5MzZiZWNhMGY0ZjU0MDhkOWU3OGFlYzQ4NTA5MjBiYWY2NTlkNWI2OVxuICAgICAgICovXG4gICAgICBnZW5lc2lzX3ZhbGlkYXRvcnNfcm9vdDogc3RyaW5nO1xuICAgIH07XG4gICAgR2V0S2V5c0luT3JnUmVxdWVzdDoge1xuICAgICAga2V5X3R5cGU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleVR5cGVcIl0gfCBudWxsO1xuICAgIH07XG4gICAgR2V0VXNlcnNJbk9yZ1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBsaXN0IG9mIHVzZXJzIGluIHRoZSBvcmcgKi9cbiAgICAgIHVzZXJzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJJZEluZm9cIl1bXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gU3RhdHMgcGVydGFpbmluZyB0aGUgdGhlIHNlbmRlciBgY3ViZTNzaWduZXJgIGluc3RhbmNlICovXG4gICAgSGVhcnRiZWF0UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIHJlcXVlc3RzIGN1cnJlbnRseSBhY3RpdmUgKHJlY2VpdmVkIGJ1dCBub3QgbmVjZXNzYXJpbHkgYmVpbmcgcHJvY2Vzc2VkIHlldClcbiAgICAgICAqL1xuICAgICAgY3VycmVudF9udW1fcmVxdWVzdHNfYWN0aXZlOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgcmVxdWVzdHMgY3VycmVudGx5IGJlaW5nIHByb2Nlc3NlZCBieSBjdWJlM3NpZ25lclxuICAgICAgICovXG4gICAgICBjdXJyZW50X251bV9yZXF1ZXN0c19wcm9jZXNzaW5nOiBudW1iZXI7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERvIG5vdCByZWNvcmQgbWV0cmljIGRhdGEgZnJvbSB0aGlzIGhlYXJ0YmVhdCAqL1xuICAgICAgaWdub3JlPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiBuZXcgcmVxdWVzdHMgZHVyaW5nIHRoaXMgaGVhcnRiZWF0IHBlcmlvZFxuICAgICAgICovXG4gICAgICBudW1fcmVxdWVzdHM6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiByZXF1ZXN0cyB0aGF0IGZhaWxlZCBkdXJpbmcgdGhpcyBoZWFydGJlYXQgcGVyaW9kXG4gICAgICAgKi9cbiAgICAgIG51bV9yZXF1ZXN0c19mYWlsZWQ6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiByZXF1ZXN0cyB3ZXJlIHJldHJpZWQgZHVyaW5nIHRoaXMgaGVhcnRiZWF0IHBlcmlvZFxuICAgICAgICovXG4gICAgICBudW1fcmVxdWVzdHNfcmV0cmllZDogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIHJldHJpZXMgZHVyaW5nIHRoaXMgaGVhcnRiZWF0IHBlcmlvZFxuICAgICAgICovXG4gICAgICBudW1fcmV0cmllczogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIHRpbWVzIGF1dGggdG9rZW4gd2FzIHJlZnJlc2hlZCBkdXJpbmcgdGhpcyBoZWFydGJlYXQgcGVyaW9kXG4gICAgICAgKi9cbiAgICAgIG51bV90b2tlbl9yZWZyZXNoZXM/OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBOdW1iZXIgb2YgdGltZXMgYXV0aCB0b2tlbiByZWZyZXNoIGZhaWxlZCBkdXJpbmcgdGhpcyBoZWFydGJlYXQgcGVyaW9kXG4gICAgICAgKi9cbiAgICAgIG51bV90b2tlbl9yZWZyZXNoZXNfZmFpbGVkPzogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVmVyc2lvbiBvZiB0aGUgcHJveHkgc2VuZGluZyB0aGUgaGVhcnQgYmVhdCByZXF1ZXN0XG4gICAgICAgKlxuICAgICAgICogVE9ETzogTWFrZSBub24tb3B0aW9uYWwgb25jZSB3ZSBkbyBub3Qgc3VwcG9ydCBwcm94aWVzIHdpdGhvdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuICAgICAgICovXG4gICAgICBwcm94eV92ZXJzaW9uPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIENhcHR1cmVzIGFsbCB0aGUgcmVsZXZhbnQgaW5mbyAoaW5jbHVkaW5nIHRoZSByZXF1ZXN0IGJvZHkpIGFib3V0IHJlcXVlc3RzIHRoYXQgcmVxdWlyZSBNRkEuXG4gICAgICogV2UgdXNlIHRoaXMgdG8gdmVyaWZ5IHRoYXQgd2hlbiBhIHJlcXVlc3QgaXMgcmVzdW1lZCAoYWZ0ZXIgb2J0YWluaW5nIG5lY2Vzc2FyeSBNRkEgYXBwcm92YWxzKVxuICAgICAqIGl0IGlzIGV4YWN0bHkgdGhlIHNhbWUgYXMgaXQgb3JpZ2luYWxseSB3YXMuXG4gICAgICovXG4gICAgSHR0cFJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gSFRUUCByZXF1ZXN0IGJvZHkgKi9cbiAgICAgIGJvZHk/OiB1bmtub3duO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBIVFRQIG1ldGhvZCBvZiB0aGUgcmVxdWVzdCAqL1xuICAgICAgbWV0aG9kOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEhUVFAgcGF0aCBvZiB0aGUgcmVxdWVzdCAoaW5jbHVkaW5nIGhvc3Qgb3Igbm90PykgKi9cbiAgICAgIHBhdGg6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQcm9vZiB0aGF0IGFuIGVuZC11c2VyIHByb3ZpZGVkIEN1YmVTaWduZXIgd2l0aCBhIHZhbGlkIGF1dGggdG9rZW5cbiAgICAgKiAoZWl0aGVyIGFuIE9JREMgdG9rZW4gb3IgYSBDdWJlU2lnbmVyIHNlc3Npb24gdG9rZW4pXG4gICAgICovXG4gICAgSWRlbnRpdHlQcm9vZjoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT0lEQyBhdWRpZW5jZTsgc2V0IG9ubHkgaWYgdGhlIHByb29mIHdhcyBvYnRhaW5lZCBieSB1c2luZyBPSURDIHRva2VuLlxuICAgICAgICpcbiAgICAgICAqIEluIG90aGVyIHdvcmRzLCBwcmVzZW5jZSBvZiB0aGlzIGZpZWxkIHRlc3RpZmllcyB0aGF0IGF1dGhvcml6YXRpb24gd2FzIG9idGFpbmVkIHZpYSBPSURDLlxuICAgICAgICovXG4gICAgICBhdWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVtYWlsIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlclxuICAgICAgICogQGV4YW1wbGUgdXNlckBlbWFpbC5jb21cbiAgICAgICAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgIGV4cF9lcG9jaDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgICAgaWRlbnRpdHk/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9JRENJZGVudGl0eVwiXSB8IG51bGw7XG4gICAgICB1c2VyX2luZm8/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkN1YmVTaWduZXJVc2VySW5mb1wiXSB8IG51bGw7XG4gICAgfSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gb3BhcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBwcm9vZiAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIEltcG9ydEtleVJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW1wb3J0S2V5XCJdICYge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBIHNldCBvZiBlbmNyeXB0ZWQga2V5cyB0byBiZSBpbXBvcnRlZCAqL1xuICAgICAga2V5X21hdGVyaWFsOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkltcG9ydEtleVJlcXVlc3RNYXRlcmlhbFwiXVtdO1xuICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICB9O1xuICAgIEltcG9ydEtleVJlcXVlc3RNYXRlcmlhbDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGNsaWVudCdzIGVwaGVtZXJhbCBwdWJsaWMga2V5IHVzZWQgdG8gZGVyaXZlIGEgc2hhcmVkIGtleS5cbiAgICAgICAqIFRoaXMgaXMgYSBiYXNlNjQtZW5jb2RlZCwgU0VDMS1lbmNvZGVkIFAzODQgcHVibGljIGtleS5cbiAgICAgICAqL1xuICAgICAgY2xpZW50X3B1YmxpY19rZXk6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBlbmNyeXB0ZWQga2V5aW5nIG1hdGVyaWFsIHRvIGJlIGltcG9ydGVkLlxuICAgICAgICogVGhpcyBpcyBhIGJhc2U2NC1lbmNvZGVkIGNpcGhlcnRleHQuXG4gICAgICAgKi9cbiAgICAgIGlrbV9lbmM6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgc2FsdCB2YWx1ZSB1c2VkIHRvIGRlcml2ZSBhIHNoYXJlZCBrZXkuXG4gICAgICAgKiBUaGlzIGlzIGEgYmFzZTY0LWVuY29kZWQgYnl0ZSBzdHJpbmcuXG4gICAgICAgKi9cbiAgICAgIHNhbHQ6IHN0cmluZztcbiAgICB9O1xuICAgIEludml0ZVJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSB1c2VyJ3MgZW1haWwgYWRkcmVzc1xuICAgICAgICogQGV4YW1wbGUgYWxpY2VAYWNtZS5jb21cbiAgICAgICAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgbG9naW4gTUZBIHBvbGljeSAqL1xuICAgICAgbWZhX3BvbGljeT86IHVua25vd247XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdXNlcidzIGZ1bGwgbmFtZVxuICAgICAgICogQGV4YW1wbGUgQWxpY2UgV29uZGVybGFuZFxuICAgICAgICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICByb2xlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJNZW1iZXJSb2xlXCJdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFNraXAgc2VuZGluZyBhbiBpbnZpdGF0aW9uIGVtYWlsIHRvIHRoaXMgdXNlciBpZiB0cnVlLlxuICAgICAgICpcbiAgICAgICAqIE5PVEU6IHRoaXMgZmllbGQgaXMgZm9yIGludGVybmFsIHRlc3RpbmcgdXNlIE9OTFkuIElmIHlvdSBkbyBub3RcbiAgICAgICAqIHNlbmQgYW4gaW52aXRhdGlvbiBlbWFpbCwgdGhlIHVzZXIgd2lsbCBuZXZlciBiZSBhYmxlIHRvIGxvZyBpbi5cbiAgICAgICAqIEBleGFtcGxlIGZhbHNlXG4gICAgICAgKi9cbiAgICAgIHNraXBfZW1haWw6IGJvb2xlYW47XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQSBbYEtleVBhY2thZ2VgXSBzZXJpYWxpemVkIGludG8gYSBmb3JtYXQgdGhhdCBnaXZlcyBhIHRpZGllciBKU09OXG4gICAgICogcmVwcmVzZW50YXRpb24gc3VpdGFibGUgZm9yIGVuY3J5cHRpb24gaW4gdGhlIHVzZXItZXhwb3J0IGZsb3cuXG4gICAgICpcbiAgICAgKiBXZSBjb25zdHJ1Y3QgdmFsdWVzIG9mIHRoaXMgdHlwZSByYXRoZXIgdGhhbiBjb25zdHJ1Y3RpbmcgYHNlcmRlX2pzb246OlZhbHVlYHNcbiAgICAgKiBkaXJlY3RseSB3aXRoIGBqc29uISgpYCBiZWNhdXNlIHRoaXMgYWxsb3dzIHVzIHRvIHplcm9pemUgdmFsdWVzIG9uIGRyb3AsIHdoaWNoXG4gICAgICogZG9lc24ndCB3b3JrIHdpdGggYHNlcmRlX2pzb246OlZhbHVlYC5cbiAgICAgKlxuICAgICAqIEV4YW1wbGVzIG9mIHNlcmlhbGl6ZWQgbWF0ZXJpYWw6XG4gICAgICpcbiAgICAgKiAtIGBKc29uS2V5TWF0ZXJpYWw6OkVuZ2xpc2hNbmVtb25pY2A6XG4gICAgICpcbiAgICAgKiBgYGBcbiAgICAgKiB1c2UgY3ViaXN0X3NpZ25lcl91dGlsczo6e1xuICAgICAqIERlcml2YXRpb25QYXRoLCBLZXlQYWNrYWdlLCBNbmVtb25pYywgTW5lbW9uaWNQYWNrYWdlLCBTZWNwMjU2azFQa2csXG4gICAgICogfTtcbiAgICAgKiB1c2Ugc2VyZGVfanNvbjo6anNvbjtcbiAgICAgKlxuICAgICAqIGNvbnN0IE1ORU1PTklDOiAmc3RyID0gXCJkZXBvc2l0IGZpc2NhbCBicmFpbiBzd2FybSBzdXJyb3VuZCBjb3VzaW4gaG9ybiBnbGFyZSBmaXggbG92ZSByZW5kZXIgYmVsaWV2ZSBndWlkZSBzaHVmZmxlIHN0ZW0gY3JhbSBicm9jY29saSByZXNlbWJsZSBiZWFjaCBhcnRlZmFjdCBsYW5ndWFnZSBnaWZ0IGphciBwZXJtaXRcIjtcbiAgICAgKiBjb25zdCBERVJfUEFUSDogJnN0ciA9IFwibS80NCcvNjAnLzAnLzAvMFwiO1xuICAgICAqIGNvbnN0IEtFWV9UWVBFOiAmc3RyID0gXCJlY2RzYTpzZWNwMjU2azFcIjtcbiAgICAgKlxuICAgICAqIGxldCBtbmUgPSBNbmVtb25pYzo6dHJ5X2Zyb20oTU5FTU9OSUMpLmV4cGVjdChcImdvb2QgbW5lbW9uaWNcIik7XG4gICAgICogbGV0IGRlcnAgPSBEZXJpdmF0aW9uUGF0aDo6dHJ5X2Zyb20oREVSX1BBVEgpLmV4cGVjdChcImdvb2QgZGVyIHBhdGhcIik7XG4gICAgICogbGV0IG1uZV9wa2cgPSBNbmVtb25pY1BhY2thZ2U6Om5ldyhtbmUsIFwiXCIsIGRlcnApO1xuICAgICAqIGxldCBrZXlfcGtnID0gS2V5UGFja2FnZTo6PFNlY3AyNTZrMVBrZz46OkVuZ2xpc2hNbmVtb25pYyhtbmVfcGtnKTtcbiAgICAgKiBsZXQganNvbl9wa2cgPSBrZXlfcGtnLmludG9fanNvbihLRVlfVFlQRSk7XG4gICAgICpcbiAgICAgKiBsZXQganNvbl9leHBlY3QgPSBqc29uISh7XG4gICAgICogXCJrZXlfdHlwZVwiOiBLRVlfVFlQRSxcbiAgICAgKiBcIm1hdGVyaWFsX3R5cGVcIjogXCJlbmdsaXNoX21uZW1vbmljXCIsXG4gICAgICogXCJtbmVtb25pY1wiOiBNTkVNT05JQyxcbiAgICAgKiBcInBhc3N3b3JkXCI6IFwiXCIsXG4gICAgICogXCJkZXJpdmF0aW9uX3BhdGhcIjogREVSX1BBVEgsXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBhc3NlcnRfZXEhKFxuICAgICAqIHNlcmRlX2pzb246OnRvX3ZhbHVlKCZqc29uX3BrZykuZXhwZWN0KFwianNvbiBzZXJpYWxpemF0aW9uXCIpLFxuICAgICAqIGpzb25fZXhwZWN0LFxuICAgICAqICk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiAtIGBKc29uS2V5TWF0ZXJpYWw6OlJhd1NlY3JldGA6XG4gICAgICpcbiAgICAgKiBgYGBcbiAgICAgKiB1c2UgY3ViaXN0X3NpZ25lcl91dGlsczo6e1xuICAgICAqIGdldF9yYW5kb21fYnl0ZV9hcnJheSwgaGV4X2VuY29kZSwgS2V5UGFja2FnZSwgUm5nQ29yZSwgU2VjcDI1NmsxUGtnLFxuICAgICAqIH07XG4gICAgICogdXNlIHNlcmRlX2pzb246Ompzb247XG4gICAgICpcbiAgICAgKiBjb25zdCBLRVlfVFlQRTogJnN0ciA9IFwiZWNkc2E6c2VjcDI1NmsxXCI7XG4gICAgICpcbiAgICAgKiAvLyByYW5kb20gMzItYnl0ZSBzZWNyZXRcbiAgICAgKiBsZXQgc2s6IFt1ODsgMzJdID0gKmdldF9yYW5kb21fYnl0ZV9hcnJheSgpO1xuICAgICAqXG4gICAgICogbGV0IGtleV9wa2cgPSBLZXlQYWNrYWdlOjo8U2VjcDI1NmsxUGtnPjo6U2VjcmV0KHNrKTtcbiAgICAgKiBsZXQganNvbl9wa2cgPSBrZXlfcGtnLmludG9fanNvbihLRVlfVFlQRSk7XG4gICAgICpcbiAgICAgKiBsZXQganNvbl9leHBlY3QgPSBqc29uISh7XG4gICAgICogXCJrZXlfdHlwZVwiOiBLRVlfVFlQRSxcbiAgICAgKiBcIm1hdGVyaWFsX3R5cGVcIjogXCJyYXdfc2VjcmV0XCIsXG4gICAgICogXCJzZWNyZXRcIjogaGV4X2VuY29kZSgmc2spLFxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogYXNzZXJ0X2VxIShcbiAgICAgKiBzZXJkZV9qc29uOjp0b192YWx1ZSgmanNvbl9wa2cpLmV4cGVjdChcImpzb24gc2VyaWFsaXphdGlvblwiKSxcbiAgICAgKiBqc29uX2V4cGVjdCxcbiAgICAgKiApO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEpzb25LZXlQYWNrYWdlOiAoXG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtYXRlcmlhbF90eXBlOiBcInJhd19zZWNyZXRcIjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB2YWx1ZSBvZiB0aGUgcmF3IHNlY3JldCAqL1xuICAgICAgICAgIHNlY3JldDogc3RyaW5nO1xuICAgICAgICB9XG4gICAgICB8IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBkZXJpdmF0aW9uIHBhdGggKi9cbiAgICAgICAgICBkZXJpdmF0aW9uX3BhdGg6IHN0cmluZztcbiAgICAgICAgICAvKiogQGVudW0ge3N0cmluZ30gKi9cbiAgICAgICAgICBtYXRlcmlhbF90eXBlOiBcImVuZ2xpc2hfbW5lbW9uaWNcIjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtbmVtb25pYyAqL1xuICAgICAgICAgIG1uZW1vbmljOiBzdHJpbmc7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcGFzc3dvcmQgKHdoaWNoIG1heSBiZSBlbXB0eSkgKi9cbiAgICAgICAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgICAgICB9XG4gICAgKSAmIHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHR5cGUgb2Yga2V5IHRoaXMgcGFja2FnZSByZXByZXNlbnRzICovXG4gICAgICBrZXlfdHlwZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEZXJpdmF0aW9uLXJlbGF0ZWQgbWV0YWRhdGEgZm9yIGtleXMgZGVyaXZlZCBmcm9tIGEgbG9uZy1saXZlZCBtbmVtb25pYyAqL1xuICAgIEtleURlcml2YXRpb25JbmZvOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBkZXJpdmF0aW9uIHBhdGggdXNlZCB0byBkZXJpdmUgdGhpcyBrZXkgKi9cbiAgICAgIGRlcml2YXRpb25fcGF0aDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbW5lbW9uaWMtaWQgb2YgdGhlIGtleSdzIHBhcmVudCBtbmVtb25pYyAqL1xuICAgICAgbW5lbW9uaWNfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSB3cmFwcGVkIGtleS1pbXBvcnQga2V5ICovXG4gICAgS2V5SW1wb3J0S2V5OiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIEJhc2U2NC1lbmNvZGVkLCBlbmNyeXB0ZWQgZGF0YSBrZXkuICovXG4gICAgICBka19lbmM6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIEV4cGlyYXRpb24gdGltZXN0YW1wIGV4cHJlc3NlZCBhcyBzZWNvbmRzIHNpbmNlIHRoZSBVTklYIGVwb2NoLlxuICAgICAgICovXG4gICAgICBleHBpcmVzOiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZXBoZW1lcmFsIHB1YmxpYyBrZXkgdG8gd2hpY2ggYW4gaW1wb3J0ZWQga2V5IHNob3VsZCBiZSBlbmNyeXB0ZWQuXG4gICAgICAgKiBUaGlzIGlzIGEgUDM4NCBwdWJsaWMga2V5IGluIGJhc2U2NC1lbmNvZGVkIHVuY29tcHJlc3NlZCBTRUNHIGZvcm1hdC5cbiAgICAgICAqL1xuICAgICAgcHVibGljX2tleTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBCYXNlNjQtZW5jb2RlZCwgZW5jcnlwdGVkIHNlY3JldCBrZXkuICovXG4gICAgICBza19lbmM6IHN0cmluZztcbiAgICB9O1xuICAgIEtleUluUm9sZUluZm86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEtleSBJRFxuICAgICAgICogQGV4YW1wbGUgS2V5IzB4OGUzNDg0Njg3ZTY2Y2RkMjZjZjA0YzM2NDc2MzNhYjRmMzU3MDE0OFxuICAgICAgICovXG4gICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFBvbGljaWVzIHRoYXQgYXJlIGNoZWNrZWQgYmVmb3JlIHRoaXMga2V5IGlzIHVzZWQgb24gYmVoYWxmIG9mIHRoaXMgcm9sZVxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJUeFJlY2VpdmVyXCI6IFwiMHg4YzU5NDY5MWMwZTU5MmZmYTIxZjE1M2ExNmFlNDFkYjViZWZjYWFhXCJcbiAgICAgICAqICAgfSxcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiVHhEZXBvc2l0XCI6IHtcbiAgICAgICAqICAgICAgIFwia2luZFwiOiBcIkNhbm9uaWNhbFwiXG4gICAgICAgKiAgICAgfVxuICAgICAgICogICB9XG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHBvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdO1xuICAgIH07XG4gICAgS2V5SW5mbzoge1xuICAgICAgZGVyaXZhdGlvbl9pbmZvPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlEZXJpdmF0aW9uSW5mb1wiXSB8IG51bGw7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIGtleSBpcyBlbmFibGVkIChvbmx5IGVuYWJsZWQga2V5cyBtYXkgYmUgdXNlZCBmb3Igc2lnbmluZykgKi9cbiAgICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGtleTogXCJLZXkjXCIgZm9sbG93ZWQgYnkgYSB1bmlxdWUgaWRlbnRpZmllciBzcGVjaWZpYyB0b1xuICAgICAgICogdGhlIHR5cGUgb2Yga2V5IChzdWNoIGFzIGEgcHVibGljIGtleSBmb3IgQkxTIG9yIGFuIGV0aGVyZXVtIGFkZHJlc3MgZm9yIFNlY3ApXG4gICAgICAgKiBAZXhhbXBsZSBLZXkjMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAgICAgKi9cbiAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgdW5pcXVlIGlkZW50aWZpZXIgc3BlY2lmaWMgdG8gdGhlIHR5cGUgb2Yga2V5LCBzdWNoIGFzIGEgcHVibGljIGtleSBvciBhbiBldGhlcmV1bSBhZGRyZXNzXG4gICAgICAgKiBAZXhhbXBsZSAweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAqL1xuICAgICAgbWF0ZXJpYWxfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFVzZXItZGVmaW5lZCBtZXRhZGF0YS4gV2hlbiByZW5kZXJpbmcgKGUuZy4sIGluIHRoZSBicm93c2VyKSB5b3Ugc2hvdWxkIHRyZWF0XG4gICAgICAgKiBpdCBhcyB1bnRydXN0ZWQgdXNlciBkYXRhIChhbmQgYXZvaWQgaW5qZWN0aW5nIG1ldGFkYXRhIGludG8gSFRNTCBkaXJlY3RseSkgaWZcbiAgICAgICAqIHVudHJ1c3RlZCB1c2VycyBjYW4gY3JlYXRlL3VwZGF0ZSBrZXlzIChvciB0aGVpciBtZXRhZGF0YSkuXG4gICAgICAgKi9cbiAgICAgIG1ldGFkYXRhPzogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3duZXIgb2YgdGhlIGtleVxuICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAqL1xuICAgICAgb3duZXI6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEtleSBwb2xpY3lcbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAgXCJBbGxvd1Jhd0Jsb2JTaWduaW5nXCIsXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlJlcXVpcmVNZmFcIjoge1xuICAgICAgICogICAgICAgXCJjb3VudFwiOiAxXG4gICAgICAgKiAgICAgfVxuICAgICAgICogICB9XG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHBvbGljeTogUmVjb3JkPHN0cmluZywgbmV2ZXI+W107XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCwgc2VyaWFsaXplZCBwdWJsaWMga2V5LiBUaGUgZm9ybWF0IHVzZWQgZGVwZW5kcyBvbiB0aGUga2V5IHR5cGU6XG4gICAgICAgKiAtIFNlY3AyNTZrMSBrZXlzIHVzZSA2NS1ieXRlIHVuY29tcHJlc3NlZCBTRUNHIGZvcm1hdDtcbiAgICAgICAqIC0gU3Rhcmsga2V5cyB1c2UgMzMtYnl0ZSBjb21wcmVzc2VkIFNFQ0cgZm9ybWF0O1xuICAgICAgICogLSBCTFMga2V5cyB1c2UgNDgtYnl0ZSBjb21wcmVzc2VkIEJMUzEyLTM4MSAoWkNhc2gpIGZvcm1hdDtcbiAgICAgICAqIC0gRWQyNTUxOSBrZXlzIHVzZSB0aGUgY2Fub25pY2FsIDMyLWJ5dGUgZW5jb2Rpbmcgc3BlY2lmaWVkIGluIFJGQyA4MDMyLlxuICAgICAgICogQGV4YW1wbGUgMHgwNGQyNjg4YjZiYzJjZTdmOTg3OWI5ZTc0NWYzYzRkYzE3NzkwOGM1Y2VmMGMxYjY0Y2ZmMTlhZTdmZjI3ZGVlNjIzYzY0ZmU5ZDljMzI1YzdmYmJjNzQ4YmJkNWY2MDdjZTE0ZGQ4M2UyOGViYmJiN2QzZTdmMmZmYjcwYTc5NDMxXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXk6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBwdXJwb3NlIGZvciB3aGljaCB0aGUga2V5IGNhbiBiZSB1c2VkIChlLmcuLCBjaGFpbiBpZCBmb3Igd2hpY2ggdGhlIGtleSBpcyBhbGxvd2VkIHRvIHNpZ24gbWVzc2FnZXMpXG4gICAgICAgKiBAZXhhbXBsZSBFdGgyVmFsaWRhdG9yKDEpXG4gICAgICAgKi9cbiAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICB9O1xuICAgIEtleUluZm9zOiB7XG4gICAgICBrZXlzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluZm9cIl1bXTtcbiAgICB9O1xuICAgIC8qKiBAZW51bSB7c3RyaW5nfSAqL1xuICAgIEtleVR5cGU6XG4gICAgICB8IFwiU2VjcEV0aEFkZHJcIlxuICAgICAgfCBcIlNlY3BCdGNcIlxuICAgICAgfCBcIlNlY3BCdGNUZXN0XCJcbiAgICAgIHwgXCJTZWNwQXZhQWRkclwiXG4gICAgICB8IFwiU2VjcEF2YVRlc3RBZGRyXCJcbiAgICAgIHwgXCJCbHNQdWJcIlxuICAgICAgfCBcIkJsc0luYWN0aXZlXCJcbiAgICAgIHwgXCJFZDI1NTE5U29sYW5hQWRkclwiXG4gICAgICB8IFwiRWQyNTUxOVN1aUFkZHJcIlxuICAgICAgfCBcIkVkMjU1MTlBcHRvc0FkZHJcIlxuICAgICAgfCBcIkVkMjU1MTlDYXJkYW5vQWRkclZrXCJcbiAgICAgIHwgXCJFZDI1NTE5U3RlbGxhckFkZHJcIlxuICAgICAgfCBcIk1uZW1vbmljXCJcbiAgICAgIHwgXCJTdGFya1wiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXcmFwcGVyIGFyb3VuZCBlbmNyeXB0ZWQgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIGJ5dGVzLlxuICAgICAqXG4gICAgICogV2Ugc2VyaWFsaXplIHRoaXMgaW50byBhIGJhc2U2NHVybC1lbmNvZGVkIHN0cmluZyBhbmQgcmV0dXJuIHRvIHRoZSB1c2VyXG4gICAgICogc28gdGhhdCB0aGV5IGNhbiBwYXNzIHRoaXMgYmFjayB0byB1cyBhcyBhIHVybCBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICovXG4gICAgTGFzdEV2YWxLZXk6IHN0cmluZztcbiAgICBMaXN0TWZhUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIHBlbmRpbmcgTUZBIHJlcXVlc3RzICovXG4gICAgICBtZmFfcmVxdWVzdHM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhUmVxdWVzdEluZm9cIl1bXTtcbiAgICB9O1xuICAgIExpc3RUb2tlbnNSZXNwb25zZToge1xuICAgICAgdG9rZW5zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRva2VuSW5mb1wiXVtdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERlc2NyaWJlcyB3aGV0aGVyIGEgdXNlciBpbiBhbiBvcmcgaXMgYW4gT3duZXIgb3IganVzdCBhIHJlZ3VsYXIgbWVtYmVyXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBNZW1iZXJSb2xlOiBcIkFsaWVuXCIgfCBcIk1lbWJlclwiIHwgXCJPd25lclwiO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmV0dXJuZWQgYXMgYSByZXNwb25zZSBmcm9tIG11bHRpcGxlIHJvdXRlcyAoZS5nLiwgJ2dldCBtZmEnLCAnYXBwcm92ZSBtZmEnLCAnYXBwcm92ZSB0b3RwJykuICovXG4gICAgTWZhUmVxdWVzdEluZm86IHtcbiAgICAgIGV4cGlyZXNfYXQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQXBwcm92YWwgcmVxdWVzdCBJRC4gKi9cbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICByZWNlaXB0PzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJSZWNlaXB0XCJdIHwgbnVsbDtcbiAgICAgIHJlcXVlc3Q6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSHR0cFJlcXVlc3RcIl07XG4gICAgICBzdGF0dXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3RhdHVzXCJdO1xuICAgIH07XG4gICAgTWZhVHlwZTogT25lT2Y8XG4gICAgICBbXG4gICAgICAgIFwiQ3ViZVNpZ25lclwiLFxuICAgICAgICBcIlRvdHBcIixcbiAgICAgICAgXCJGaWRvXCIsXG4gICAgICAgIHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFuc3dlciBhIEZJRE8gY2hhbGxlbmdlIHdpdGggYSBzcGVjaWZpYyBGSURPIGtleSAqL1xuICAgICAgICAgIEZpZG9LZXk6IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgRklETyBrZXkgdGhhdCBtdXN0IGJlIHVzZSB0byBhcHByb3ZlIHRoZSByZXF1ZXN0XG4gICAgICAgICAgICAgKiBAZXhhbXBsZSBGaWRvS2V5I0V0RGQuLi5aWmM4PVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgXVxuICAgID47XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIE5ldHdvcmsgbmFtZSAoJ21haW5uZXQnLCAncHJhdGVyJywgJ2dvZXJsaScpXG4gICAgICogQGV4YW1wbGUgZ29lcmxpXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBOZXR3b3JrOiBcIm1haW5uZXRcIiB8IFwicHJhdGVyXCIgfCBcImdvZXJsaVwiIHwgXCJob2xlc2t5XCI7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJbmZvcm1hdGlvbiBhYm91dCBhIG5ldyBzZXNzaW9uLCByZXR1cm5lZCBmcm9tIG11bHRpcGxlIGVuZHBvaW50cyAoZS5nLiwgbG9naW4sIHJlZnJlc2gsIGV0Yy4pLiAqL1xuICAgIE5ld1Nlc3Npb25SZXNwb25zZToge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gU2Vzc2lvbiBleHBpcmF0aW9uIChpbiBzZWNvbmRzIHNpbmNlIFVOSVggZXBvY2gpLCBiZXlvbmQgd2hpY2ggaXQgY2Fubm90IGJlIHJlZnJlc2hlZC5cbiAgICAgICAqIEBleGFtcGxlIDE3MDE4Nzk2NDBcbiAgICAgICAqL1xuICAgICAgZXhwaXJhdGlvbj86IG51bWJlcjtcbiAgICAgIHNlc3Npb25faW5mbzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDbGllbnRTZXNzaW9uSW5mb1wiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIE5ldyB0b2tlbiB0byBiZSB1c2VkIGZvciBhdXRoZW50aWNhdGlvbi4gUmVxdWVzdHMgdG8gc2lnbmluZyBlbmRwb2ludHNcbiAgICAgICAqIHNob3VsZCBpbmNsdWRlIHRoaXMgdmFsdWUgaW4gdGhlIGBBdXRob3JpemF0aW9uYCBoZWFkZXJcbiAgICAgICAqL1xuICAgICAgdG9rZW46IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRzIGEgZ2xvYmFsbHkgdW5pcXVlIE9JREMtYXV0aG9yaXplZCB1c2VyIGJ5IGV4cHJlc3NpbmcgdGhlIGZ1bGwgXCJwYXRoXCIgdG8gYSB1c2VyLiBUaGF0IGlzOlxuICAgICAqXG4gICAgICogKGlzcykgICAgICAgKHN1YilcbiAgICAgKiBJc3N1ZXIgLT4gU3VicmVzb3VyY2VcbiAgICAgKlxuICAgICAqIFdlIGluY2x1ZGUgYSBub24tc3RhbmRhcmQgdGhpcmQtdGllciBgZGlzYW1iaWd1YXRvcmAgd2hpY2ggYWxsb3dzIHVzIHRvIG1hcFxuICAgICAqIGEgc2luZ2xlIE9JREMgdXNlciB0byBtdWx0aXBsZSBgVXNlcmBzIGluIEN1YmVTaWduZXJcbiAgICAgKi9cbiAgICBPSURDSWRlbnRpdHk6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSByb290LWxldmVsIGlzc3VlciB3aG8gYWRtaW5pc3RyYXRlcyB0aGlzIHVzZXIuIEZyb21lIHRoZSBPSURDIHNwZWM6XG4gICAgICAgKiBJc3N1ZXIgSWRlbnRpZmllciBmb3IgdGhlIElzc3VlciBvZiB0aGUgcmVzcG9uc2UuIFRoZSBpc3NcbiAgICAgICAqIHZhbHVlIGlzIGEgY2FzZSBzZW5zaXRpdmUgVVJMIHVzaW5nIHRoZSBodHRwcyBzY2hlbWUgdGhhdCBjb250YWluc1xuICAgICAgICogc2NoZW1lLCBob3N0LCBhbmQgb3B0aW9uYWxseSwgcG9ydCBudW1iZXIgYW5kIHBhdGggY29tcG9uZW50cyBhbmRcbiAgICAgICAqIG5vIHF1ZXJ5IG9yIGZyYWdtZW50IGNvbXBvbmVudHMuXG4gICAgICAgKiBAZXhhbXBsZSBodHRwczovL2FjY291bnRzLmdvb2dsZS5jb21cbiAgICAgICAqL1xuICAgICAgaXNzOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBGcm9tIHRoZSBPSURDIHNwZWM6XG4gICAgICAgKlxuICAgICAgICogQSBsb2NhbGx5IHVuaXF1ZSBhbmQgbmV2ZXIgcmVhc3NpZ25lZCBpZGVudGlmaWVyIHdpdGhpbiB0aGUgSXNzdWVyIGZvclxuICAgICAgICogdGhlIEVuZC1Vc2VyLCB3aGljaCBpcyBpbnRlbmRlZCB0byBiZSBjb25zdW1lZCBieSB0aGUgQ2xpZW50LCBlLmcuLFxuICAgICAgICogMjQ0MDAzMjAgb3IgQUl0T2F3bXd0V3djVDBrNTFCYXlld052dXRySlVxc3ZsNnFzN0E0LiBJdCBNVVNUIE5PVCBleGNlZWRcbiAgICAgICAqIDI1NSBBU0NJSSBjaGFyYWN0ZXJzIGluIGxlbmd0aC4gVGhlIHN1YiB2YWx1ZSBpcyBhIGNhc2Ugc2Vuc2l0aXZlXG4gICAgICAgKiBzdHJpbmcuXG4gICAgICAgKiBAZXhhbXBsZSAxMDc2OTE1MDM1MDAwNjE1MDcxNTExMzA4MjM2N1xuICAgICAgICovXG4gICAgICBzdWI6IHN0cmluZztcbiAgICB9O1xuICAgIE9pZGNMb2dpblJlcXVlc3Q6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQSBodW1hbiByZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgcHVycG9zZSBvZiB0aGUgc2Vzc2lvbiAqL1xuICAgICAgcHVycG9zZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBDb250cm9scyB3aGF0IGNhcGFiaWxpdGllcyB0aGlzIHNlc3Npb24gd2lsbCBoYXZlLlxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcInNpZ246KlwiXG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHNjb3Blczogc3RyaW5nW107XG4gICAgICB0b2tlbnM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJhdGNoZXRDb25maWdcIl07XG4gICAgfTtcbiAgICBPcmdJbmZvOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFdoZW4gZmFsc2UsIGFsbCBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbnMgaW52b2x2aW5nIGtleXMgaW4gdGhpcyBvcmcgYXJlIGRpc2FibGVkLiAqL1xuICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGVwcmVjYXRlZDogdGhpcyBmaWVsZCBzaG91bGQgYmUgaWdub3JlZC4gKi9cbiAgICAgIGtleV9pbXBvcnRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmdhbml6YXRpb24ncyB1bml2ZXJzYWxseSB1bmlxdWUga2V5LXdyYXBwaW5nLWtleSBpZGVudGlmaWVyLlxuICAgICAgICogVGhpcyB2YWx1ZSBpcyByZXF1aXJlZCB3aGVuIHNldHRpbmcgdXAga2V5IGV4cG9ydC5cbiAgICAgICAqIEBleGFtcGxlIG1yay1mY2UwOTUyNWU4MTU4N2QyMzUyMGYxMWUwN2UyZTlkOVxuICAgICAgICovXG4gICAgICBrd2tfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIERhdGUvdGltZSAoaW4gVVRDKSB3aGVuIGxhc3QgJ3Vuc3Rha2UnIHdhcyBwZXJmb3JtZWQuIFVuaXggZXBvY2ggaWYgbm9uZS5cbiAgICAgICAqIEBleGFtcGxlIFRPRE9cbiAgICAgICAqL1xuICAgICAgbGFzdF91bnN0YWtlOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBIb3cgbWFueSAndW5zdGFrZScgY2FsbHMgaGFwcGVuZWQgb24gdGhlIGRheSB3aGVuIGBsYXN0X3Vuc3Rha2VgIHdhcyBwZXJmb3JtZWQuXG4gICAgICAgKi9cbiAgICAgIGxhc3RfdW5zdGFrZV9kYXlfY291bnQ6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgb3JnXG4gICAgICAgKiBAZXhhbXBsZSBteV9vcmdfbmFtZVxuICAgICAgICovXG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgb3JnYW5pemF0aW9uXG4gICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgKi9cbiAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3JnLXdpZGUgcG9saWNpZXMgdGhhdCBhcmUgY2hlY2tlZCBiZWZvcmUgYSBrZXkgaXMgdXNlZCBmb3Igc2lnbmluZ1xuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJNYXhEYWlseVVuc3Rha2VcIjogNVxuICAgICAgICogICB9XG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHBvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG9yZ2FuaXphdGlvbidzIGN1cnJlbnRseSBjb25maWd1cmVkIFRPVFAgZmFpbHVyZSBsaW1pdCwgaS5lLiwgdGhlIG51bWJlclxuICAgICAgICogb2YgdGltZXMgYSB1c2VyIGNhbiBwcm92aWRlIGFuIGluY29ycmVjdCBUT1RQIGNvZGUgYmVmb3JlIGJlaW5nIHJhdGUgbGltaXRlZC5cbiAgICAgICAqIFRoaXMgdmFsdWUgY2FuIGJlIGJldHdlZW4gMSBhbmQgNSAoaW5jbHVzaXZlKS5cbiAgICAgICAqL1xuICAgICAgdG90cF9mYWlsdXJlX2xpbWl0OiBudW1iZXI7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgb3JnYW5pemF0aW9uJ3MgY3VycmVudGx5IGNvbmZpZ3VyZWQgdXNlci1leHBvcnQgZGVsYXksIGkuZS4sIHRoZSBtaW5pbXVtXG4gICAgICAgKiBhbW91bnQgb2YgdGltZSAoaW4gc2Vjb25kcykgYmV0d2VlbiB3aGVuIGEgdXNlci1leHBvcnQgaXMgaW5pdGlhdGVkIGFuZCB3aGVuXG4gICAgICAgKiBpdCBtYXkgYmUgY29tcGxldGVkLiAoVGhpcyB2YWx1ZSBpcyBtZWFuaW5nbGVzcyBmb3Igb3JnYW5pemF0aW9ucyB0aGF0IHVzZVxuICAgICAgICogb3JnLXdpZGUgZXhwb3J0LilcbiAgICAgICAqL1xuICAgICAgdXNlcl9leHBvcnRfZGVsYXk6IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmdhbml6YXRpb24ncyBjdXJyZW50bHkgY29uZmlndXJlZCB1c2VyLWV4cG9ydCB3aW5kb3csIGkuZS4sIHRoZSBhbW91bnRcbiAgICAgICAqIG9mIHRpbWUgKGluIHNlY29uZHMpIGJldHdlZW4gd2hlbiB0aGUgdXNlci1leHBvcnQgZGVsYXkgaXMgY29tcGxldGVkIGFuZCB3aGVuXG4gICAgICAgKiB0aGUgdXNlciBleHBvcnQgcmVxdWVzdCBoYXMgZXhwaXJlZCBhbmQgY2FuIG5vIGxvbmdlciBiZSBjb21wbGV0ZWQuIChUaGlzIHZhbHVlXG4gICAgICAgKiBpcyBtZWFuaW5nbGVzcyBmb3Igb3JnYW5pemF0aW9ucyB0aGF0IHVzZSBvcmctd2lkZSBleHBvcnQuKVxuICAgICAgICovXG4gICAgICB1c2VyX2V4cG9ydF93aW5kb3c6IG51bWJlcjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcm9ja2V0IHF1ZXJ5IHBhcmFtZXRlciByZXByZXNlbnRpbmcgdGhlIHBhZ2UgZnJvbSB3aGljaCB0byBzdGFydCBhIHBhZ2luYXRlZCBxdWVyeS5cbiAgICAgKlxuICAgICAqIE1VU1QgYmUgbmFtZWQgYDxwYWdlPmAgaW4gcm9ja2V0IHVybCBzcGVjIHNvIHRoYXQgJ3NlcmRlKHJlbmFtZSA9IFwicGFnZS4qXCIpJyBiZWxvdyBjb250aW51ZXMgdG8gd29ya1xuICAgICAqL1xuICAgIFBhZ2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICpcbiAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgKiBpbnNwZWN0IHRoZSBbVW5lbmNyeXB0ZWRMYXN0RXZhbEtleV0gdmFsdWUgaW4gdGhlIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgICAqL1xuICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICovXG4gICAgICBcInBhZ2Uuc3RhcnRcIj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdHlwZSB0aGF0IHdyYXBzIGFub3RoZXIgdHlwZSBhbmQgYWRkcyBiYXNlNjR1cmwtZW5jb2RlZCBlbmNyeXB0ZWQgYGxhc3RfZXZhbHVhdGVkX2tleWBcbiAgICAgKiB2YWx1ZSAod2hpY2ggY2FuIHRoZSB1c2VyIHBhc3MgYmFjayB0byB1c2UgYXMgYSB1cmwgcXVlcnkgcGFyYW1ldGVyIHRvIGNvbnRpbnVlIHBhZ2luYXRpb24pLlxuICAgICAqL1xuICAgIFBhZ2luYXRlZExpc3RLZXlzUmVzcG9uc2U6IHtcbiAgICAgIGtleXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5mb1wiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRMaXN0Um9sZUtleXNSZXNwb25zZToge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwga2V5cyBpbiBhIHJvbGUgKi9cbiAgICAgIGtleXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5Sb2xlSW5mb1wiXVtdO1xuICAgIH0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICovXG4gICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIHR5cGUgdGhhdCB3cmFwcyBhbm90aGVyIHR5cGUgYW5kIGFkZHMgYmFzZTY0dXJsLWVuY29kZWQgZW5jcnlwdGVkIGBsYXN0X2V2YWx1YXRlZF9rZXlgXG4gICAgICogdmFsdWUgKHdoaWNoIGNhbiB0aGUgdXNlciBwYXNzIGJhY2sgdG8gdXNlIGFzIGEgdXJsIHF1ZXJ5IHBhcmFtZXRlciB0byBjb250aW51ZSBwYWdpbmF0aW9uKS5cbiAgICAgKi9cbiAgICBQYWdpbmF0ZWRMaXN0Um9sZVVzZXJzUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIHVzZXJzIGluIGEgcm9sZSAqL1xuICAgICAgdXNlcnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckluUm9sZUluZm9cIl1bXTtcbiAgICB9ICYge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAqL1xuICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXNwb25zZSB0eXBlIHRoYXQgd3JhcHMgYW5vdGhlciB0eXBlIGFuZCBhZGRzIGJhc2U2NHVybC1lbmNvZGVkIGVuY3J5cHRlZCBgbGFzdF9ldmFsdWF0ZWRfa2V5YFxuICAgICAqIHZhbHVlICh3aGljaCBjYW4gdGhlIHVzZXIgcGFzcyBiYWNrIHRvIHVzZSBhcyBhIHVybCBxdWVyeSBwYXJhbWV0ZXIgdG8gY29udGludWUgcGFnaW5hdGlvbikuXG4gICAgICovXG4gICAgUGFnaW5hdGVkTGlzdFJvbGVzUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIHJvbGVzIGluIGFuIG9yZ2FuaXphdGlvbi4gKi9cbiAgICAgIHJvbGVzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlJvbGVJbmZvXCJdW107XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgKi9cbiAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdHlwZSB0aGF0IHdyYXBzIGFub3RoZXIgdHlwZSBhbmQgYWRkcyBiYXNlNjR1cmwtZW5jb2RlZCBlbmNyeXB0ZWQgYGxhc3RfZXZhbHVhdGVkX2tleWBcbiAgICAgKiB2YWx1ZSAod2hpY2ggY2FuIHRoZSB1c2VyIHBhc3MgYmFjayB0byB1c2UgYXMgYSB1cmwgcXVlcnkgcGFyYW1ldGVyIHRvIGNvbnRpbnVlIHBhZ2luYXRpb24pLlxuICAgICAqL1xuICAgIFBhZ2luYXRlZFNlc3Npb25zUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2Ygc2Vzc2lvbnMgKi9cbiAgICAgIHNlc3Npb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlc3Npb25JbmZvXCJdW107XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgKi9cbiAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVzcG9uc2UgdHlwZSB0aGF0IHdyYXBzIGFub3RoZXIgdHlwZSBhbmQgYWRkcyBiYXNlNjR1cmwtZW5jb2RlZCBlbmNyeXB0ZWQgYGxhc3RfZXZhbHVhdGVkX2tleWBcbiAgICAgKiB2YWx1ZSAod2hpY2ggY2FuIHRoZSB1c2VyIHBhc3MgYmFjayB0byB1c2UgYXMgYSB1cmwgcXVlcnkgcGFyYW1ldGVyIHRvIGNvbnRpbnVlIHBhZ2luYXRpb24pLlxuICAgICAqL1xuICAgIFBhZ2luYXRlZFVzZXJFeHBvcnRMaXN0UmVzcG9uc2U6IHtcbiAgICAgIGV4cG9ydF9yZXF1ZXN0czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VyRXhwb3J0SW5pdFJlc3BvbnNlXCJdW107XG4gICAgfSAmIHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgKi9cbiAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyB0eXBlIHJlcHJlc2VudHMgYSB3aXJlLWVuY29kYWJsZSBmb3JtIG9mIHRoZSBQdWJsaWNLZXlDcmVkZW50aWFsIGludGVyZmFjZVxuICAgICAqIENsaWVudHMgbWF5IG5lZWQgdG8gbWFudWFsbHkgZW5jb2RlIGludG8gdGhpcyBmb3JtYXQgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgc2VydmVyXG4gICAgICpcbiAgICAgKiBUaGUgUHVibGljS2V5Q3JlZGVudGlhbCBpbnRlcmZhY2UgaW5oZXJpdHMgZnJvbSBDcmVkZW50aWFsXG4gICAgICogW0NSRURFTlRJQUwtTUFOQUdFTUVOVC0xXSwgYW5kIGNvbnRhaW5zIHRoZSBhdHRyaWJ1dGVzIHRoYXQgYXJlIHJldHVybmVkIHRvXG4gICAgICogdGhlIGNhbGxlciB3aGVuIGEgbmV3IGNyZWRlbnRpYWwgaXMgY3JlYXRlZCwgb3IgYSBuZXcgYXNzZXJ0aW9uIGlzXG4gICAgICogcmVxdWVzdGVkLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2lmYWNlLXBrY3JlZGVudGlhbFxuICAgICAqL1xuICAgIFB1YmxpY0tleUNyZWRlbnRpYWw6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgaW50ZXJuYWwgc2xvdCBjb250YWlucyB0aGUgcmVzdWx0cyBvZiBwcm9jZXNzaW5nIGNsaWVudCBleHRlbnNpb25zXG4gICAgICAgKiByZXF1ZXN0ZWQgYnkgdGhlIFJlbHlpbmcgUGFydHkgdXBvbiB0aGUgUmVseWluZyBQYXJ0eSdzIGludm9jYXRpb24gb2ZcbiAgICAgICAqIGVpdGhlciBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKCkgb3IgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCgpLlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbC1jbGllbnRleHRlbnNpb25zcmVzdWx0cy1zbG90XG4gICAgICAgKlxuICAgICAgICogSU1QTEVNRU5UQVRJT04gTk9URTogVGhlIHR5cGUgZm9yIHRoaXMgZmllbGQgY29tZXMgZnJvbSB0aGUgdHlwZSBvZiBnZXRDbGllbnRFeHRlbnNpb25SZXN1bHRzKCkgd2hpY2ggYXMgdGhlIGZvbGxvd2luZyBkb2M6XG4gICAgICAgKlxuICAgICAgICogVGhpcyBvcGVyYXRpb24gcmV0dXJucyB0aGUgdmFsdWUgb2YgW1tjbGllbnRFeHRlbnNpb25zUmVzdWx0c11dLCB3aGljaCBpcyBhIG1hcCBjb250YWluaW5nIGV4dGVuc2lvbiBpZGVudGlmaWVyIOKGkiBjbGllbnQgZXh0ZW5zaW9uIG91dHB1dCBlbnRyaWVzIHByb2R1Y2VkIGJ5IHRoZSBleHRlbnNpb27igJlzIGNsaWVudCBleHRlbnNpb24gcHJvY2Vzc2luZy5cbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNyZWYtZm9yLWRvbS1wdWJsaWNrZXljcmVkZW50aWFsLWdldGNsaWVudGV4dGVuc2lvbnJlc3VsdHNcbiAgICAgICAqL1xuICAgICAgY2xpZW50RXh0ZW5zaW9uUmVzdWx0cz86IHVua25vd247XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGludGVybmFsIHNsb3QgY29udGFpbnMgdGhlIGNyZWRlbnRpYWwgSUQsIGNob3NlbiBieSB0aGVcbiAgICAgICAqIGF1dGhlbnRpY2F0b3IuIFRoZSBjcmVkZW50aWFsIElEIGlzIHVzZWQgdG8gbG9vayB1cCBjcmVkZW50aWFscyBmb3IgdXNlLFxuICAgICAgICogYW5kIGlzIHRoZXJlZm9yZSBleHBlY3RlZCB0byBiZSBnbG9iYWxseSB1bmlxdWUgd2l0aCBoaWdoIHByb2JhYmlsaXR5XG4gICAgICAgKiBhY3Jvc3MgYWxsIGNyZWRlbnRpYWxzIG9mIHRoZSBzYW1lIHR5cGUsIGFjcm9zcyBhbGwgYXV0aGVudGljYXRvcnMuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsLWlkZW50aWZpZXItc2xvdFxuICAgICAgICovXG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBdXRoZW50aWNhdG9ycyByZXNwb25kIHRvIFJlbHlpbmcgUGFydHkgcmVxdWVzdHMgYnkgcmV0dXJuaW5nIGFuIG9iamVjdCBkZXJpdmVkIGZyb20gdGhlIEF1dGhlbnRpY2F0b3JSZXNwb25zZSBpbnRlcmZhY2UgKi9cbiAgICAgIHJlc3BvbnNlOlxuICAgICAgICB8IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2VcIl1cbiAgICAgICAgfCBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZVwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgY3JlYXRpb24gb2YgYSBuZXcgcHVibGljIGtleSBjcmVkZW50aWFsXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZGljdGRlZi1wdWJsaWNrZXljcmVkZW50aWFsY3JlYXRpb25vcHRpb25zXG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczoge1xuICAgICAgYXR0ZXN0YXRpb24/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2VcIl07XG4gICAgICBhdXRoZW50aWNhdG9yU2VsZWN0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWFcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZW1iZXIgY29udGFpbnMgYSBjaGFsbGVuZ2UgaW50ZW5kZWQgdG8gYmUgdXNlZCBmb3IgZ2VuZXJhdGluZyB0aGVcbiAgICAgICAqIG5ld2x5IGNyZWF0ZWQgY3JlZGVudGlhbOKAmXMgYXR0ZXN0YXRpb24gb2JqZWN0LiBTZWUgdGhlIMKn4oCvMTMuNC4zXG4gICAgICAgKiBDcnlwdG9ncmFwaGljIENoYWxsZW5nZXMgc2VjdXJpdHkgY29uc2lkZXJhdGlvbi5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxjcmVhdGlvbm9wdGlvbnMtY2hhbGxlbmdlXG4gICAgICAgKi9cbiAgICAgIGNoYWxsZW5nZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZW1iZXIgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBSZWx5aW5nIFBhcnRpZXMgdGhhdCB3aXNoIHRvIGxpbWl0XG4gICAgICAgKiB0aGUgY3JlYXRpb24gb2YgbXVsdGlwbGUgY3JlZGVudGlhbHMgZm9yIHRoZSBzYW1lIGFjY291bnQgb24gYSBzaW5nbGVcbiAgICAgICAqIGF1dGhlbnRpY2F0b3IuIFRoZSBjbGllbnQgaXMgcmVxdWVzdGVkIHRvIHJldHVybiBhbiBlcnJvciBpZiB0aGUgbmV3XG4gICAgICAgKiBjcmVkZW50aWFsIHdvdWxkIGJlIGNyZWF0ZWQgb24gYW4gYXV0aGVudGljYXRvciB0aGF0IGFsc28gY29udGFpbnMgb25lXG4gICAgICAgKiBvZiB0aGUgY3JlZGVudGlhbHMgZW51bWVyYXRlZCBpbiB0aGlzIHBhcmFtZXRlci5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxjcmVhdGlvbm9wdGlvbnMtZXhjbHVkZWNyZWRlbnRpYWxzXG4gICAgICAgKi9cbiAgICAgIGV4Y2x1ZGVDcmVkZW50aWFscz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3JcIl1bXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIGNvbnRhaW5zIGFkZGl0aW9uYWwgcGFyYW1ldGVycyByZXF1ZXN0aW5nIGFkZGl0aW9uYWxcbiAgICAgICAqIHByb2Nlc3NpbmcgYnkgdGhlIGNsaWVudCBhbmQgYXV0aGVudGljYXRvci4gRm9yIGV4YW1wbGUsIHRoZSBjYWxsZXIgbWF5XG4gICAgICAgKiByZXF1ZXN0IHRoYXQgb25seSBhdXRoZW50aWNhdG9ycyB3aXRoIGNlcnRhaW4gY2FwYWJpbGl0aWVzIGJlIHVzZWQgdG9cbiAgICAgICAqIGNyZWF0ZSB0aGUgY3JlZGVudGlhbCwgb3IgdGhhdCBwYXJ0aWN1bGFyIGluZm9ybWF0aW9uIGJlIHJldHVybmVkIGluIHRoZVxuICAgICAgICogYXR0ZXN0YXRpb24gb2JqZWN0LiBTb21lIGV4dGVuc2lvbnMgYXJlIGRlZmluZWQgaW4gwqfigK85IFdlYkF1dGhuXG4gICAgICAgKiBFeHRlbnNpb25zOyBjb25zdWx0IHRoZSBJQU5BIFwiV2ViQXV0aG4gRXh0ZW5zaW9uIElkZW50aWZpZXJzXCIgcmVnaXN0cnlcbiAgICAgICAqIFtJQU5BLVdlYkF1dGhuLVJlZ2lzdHJpZXNdIGVzdGFibGlzaGVkIGJ5IFtSRkM4ODA5XSBmb3IgYW4gdXAtdG8tZGF0ZVxuICAgICAgICogbGlzdCBvZiByZWdpc3RlcmVkIFdlYkF1dGhuIEV4dGVuc2lvbnMuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsY3JlYXRpb25vcHRpb25zLWV4dGVuc2lvbnNcbiAgICAgICAqL1xuICAgICAgZXh0ZW5zaW9ucz86IHVua25vd247XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1lbWJlciBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGVzaXJlZCBwcm9wZXJ0aWVzIG9mIHRoZVxuICAgICAgICogY3JlZGVudGlhbCB0byBiZSBjcmVhdGVkLiBUaGUgc2VxdWVuY2UgaXMgb3JkZXJlZCBmcm9tIG1vc3QgcHJlZmVycmVkIHRvXG4gICAgICAgKiBsZWFzdCBwcmVmZXJyZWQuIFRoZSBjbGllbnQgbWFrZXMgYSBiZXN0LWVmZm9ydCB0byBjcmVhdGUgdGhlIG1vc3RcbiAgICAgICAqIHByZWZlcnJlZCBjcmVkZW50aWFsIHRoYXQgaXQgY2FuLlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbGNyZWF0aW9ub3B0aW9ucy1wdWJrZXljcmVkcGFyYW1zXG4gICAgICAgKi9cbiAgICAgIHB1YktleUNyZWRQYXJhbXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFBhcmFtZXRlcnNcIl1bXTtcbiAgICAgIHJwOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxScEVudGl0eVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWVtYmVyIHNwZWNpZmllcyBhIHRpbWUsIGluIG1pbGxpc2Vjb25kcywgdGhhdCB0aGUgY2FsbGVyIGlzXG4gICAgICAgKiB3aWxsaW5nIHRvIHdhaXQgZm9yIHRoZSBjYWxsIHRvIGNvbXBsZXRlLiBUaGlzIGlzIHRyZWF0ZWQgYXMgYSBoaW50LCBhbmRcbiAgICAgICAqIE1BWSBiZSBvdmVycmlkZGVuIGJ5IHRoZSBjbGllbnQuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFsY3JlYXRpb25vcHRpb25zLXRpbWVvdXRcbiAgICAgICAqL1xuICAgICAgdGltZW91dD86IG51bWJlciB8IG51bGw7XG4gICAgICB1c2VyOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5XCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZGljdGlvbmFyeSBjb250YWlucyB0aGUgYXR0cmlidXRlcyB0aGF0IGFyZSBzcGVjaWZpZWQgYnkgYSBjYWxsZXIgd2hlblxuICAgICAqIHJlZmVycmluZyB0byBhIHB1YmxpYyBrZXkgY3JlZGVudGlhbCBhcyBhbiBpbnB1dCBwYXJhbWV0ZXIgdG8gdGhlIGNyZWF0ZSgpXG4gICAgICogb3IgZ2V0KCkgbWV0aG9kcy4gSXQgbWlycm9ycyB0aGUgZmllbGRzIG9mIHRoZSBQdWJsaWNLZXlDcmVkZW50aWFsIG9iamVjdFxuICAgICAqIHJldHVybmVkIGJ5IHRoZSBsYXR0ZXIgbWV0aG9kcy5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkaWN0aW9uYXJ5LWNyZWRlbnRpYWwtZGVzY3JpcHRvclxuICAgICAqL1xuICAgIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1lbWJlciBjb250YWlucyB0aGUgY3JlZGVudGlhbCBJRCBvZiB0aGUgcHVibGljIGtleSBjcmVkZW50aWFsIHRoZSBjYWxsZXIgaXMgcmVmZXJyaW5nIHRvLlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbGRlc2NyaXB0b3ItaWRcbiAgICAgICAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgT1BUSU9OQUwgbWVtYmVyIGNvbnRhaW5zIGEgaGludCBhcyB0byBob3cgdGhlIGNsaWVudCBtaWdodFxuICAgICAgICogY29tbXVuaWNhdGUgd2l0aCB0aGUgbWFuYWdpbmcgYXV0aGVudGljYXRvciBvZiB0aGUgcHVibGljIGtleSBjcmVkZW50aWFsXG4gICAgICAgKiB0aGUgY2FsbGVyIGlzIHJlZmVycmluZyB0by4gVGhlIHZhbHVlcyBTSE9VTEQgYmUgbWVtYmVycyBvZlxuICAgICAgICogQXV0aGVudGljYXRvclRyYW5zcG9ydCBidXQgY2xpZW50IHBsYXRmb3JtcyBNVVNUIGlnbm9yZSB1bmtub3duIHZhbHVlcy5cbiAgICAgICAqXG4gICAgICAgKiBUaGUgZ2V0VHJhbnNwb3J0cygpIG9wZXJhdGlvbiBjYW4gcHJvdmlkZSBzdWl0YWJsZSB2YWx1ZXMgZm9yIHRoaXNcbiAgICAgICAqIG1lbWJlci4gV2hlbiByZWdpc3RlcmluZyBhIG5ldyBjcmVkZW50aWFsLCB0aGUgUmVseWluZyBQYXJ0eSBTSE9VTERcbiAgICAgICAqIHN0b3JlIHRoZSB2YWx1ZSByZXR1cm5lZCBmcm9tIGdldFRyYW5zcG9ydHMoKS4gV2hlbiBjcmVhdGluZyBhXG4gICAgICAgKiBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvciBmb3IgdGhhdCBjcmVkZW50aWFsLCB0aGUgUmVseWluZyBQYXJ0eVxuICAgICAgICogU0hPVUxEIHJldHJpZXZlIHRoYXQgc3RvcmVkIHZhbHVlIGFuZCBzZXQgaXQgYXMgdGhlIHZhbHVlIG9mIHRoZVxuICAgICAgICogdHJhbnNwb3J0cyBtZW1iZXIuXG4gICAgICAgKi9cbiAgICAgIHRyYW5zcG9ydHM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkF1dGhlbnRpY2F0b3JUcmFuc3BvcnRcIl1bXSB8IG51bGw7XG4gICAgICB0eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxUeXBlXCJdO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZGljdGlvbmFyeSBpcyB1c2VkIHRvIHN1cHBseSBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgd2hlbiBjcmVhdGluZyBhIG5ld1xuICAgICAqIGNyZWRlbnRpYWwuXG4gICAgICpcbiAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZGljdGlvbmFyeS1jcmVkZW50aWFsLXBhcmFtc1xuICAgICAqL1xuICAgIFB1YmxpY0tleUNyZWRlbnRpYWxQYXJhbWV0ZXJzOiB7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1lbWJlciBzcGVjaWZpZXMgdGhlIGNyeXB0b2dyYXBoaWMgc2lnbmF0dXJlIGFsZ29yaXRobSB3aXRoIHdoaWNoXG4gICAgICAgKiB0aGUgbmV3bHkgZ2VuZXJhdGVkIGNyZWRlbnRpYWwgd2lsbCBiZSB1c2VkLCBhbmQgdGh1cyBhbHNvIHRoZSB0eXBlIG9mXG4gICAgICAgKiBhc3ltbWV0cmljIGtleSBwYWlyIHRvIGJlIGdlbmVyYXRlZCwgZS5nLiwgUlNBIG9yIEVsbGlwdGljIEN1cnZlLlxuICAgICAgICovXG4gICAgICBhbGc6IG51bWJlcjtcbiAgICAgIHR5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbFR5cGVcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNgIGRpY3Rpb25hcnkgc3VwcGxpZXMgZ2V0KCkgd2l0aCB0aGVcbiAgICAgKiBkYXRhIGl0IG5lZWRzIHRvIGdlbmVyYXRlIGFuIGFzc2VydGlvbi4gSXRzIGNoYWxsZW5nZSBtZW1iZXIgTVVTVCBiZVxuICAgICAqIHByZXNlbnQsIHdoaWxlIGl0cyBvdGhlciBtZW1iZXJzIGFyZSBPUFRJT05BTC5cbiAgICAgKlxuICAgICAqIFRoaXMgc3RydWN0IGlzIGFsc28gdXNlZCBhcyBwYXJ0IG9mIHRoZSB2ZXJpZmljYXRpb24gcHJvY2VkdXJlIGZvciBhc3NlcnRpb25zXG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIE9QVElPTkFMIG1lbWJlciBjb250YWlucyBhIGxpc3Qgb2YgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3JcbiAgICAgICAqIG9iamVjdHMgcmVwcmVzZW50aW5nIHB1YmxpYyBrZXkgY3JlZGVudGlhbHMgYWNjZXB0YWJsZSB0byB0aGUgY2FsbGVyLCBpblxuICAgICAgICogZGVzY2VuZGluZyBvcmRlciBvZiB0aGUgY2FsbGVy4oCZcyBwcmVmZXJlbmNlICh0aGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdFxuICAgICAgICogaXMgdGhlIG1vc3QgcHJlZmVycmVkIGNyZWRlbnRpYWwsIGFuZCBzbyBvbiBkb3duIHRoZSBsaXN0KS5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxyZXF1ZXN0b3B0aW9ucy1hbGxvd2NyZWRlbnRpYWxzXG4gICAgICAgKi9cbiAgICAgIGFsbG93Q3JlZGVudGlhbHM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yXCJdW107XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1lbWJlciByZXByZXNlbnRzIGEgY2hhbGxlbmdlIHRoYXQgdGhlIHNlbGVjdGVkIGF1dGhlbnRpY2F0b3JcbiAgICAgICAqIHNpZ25zLCBhbG9uZyB3aXRoIG90aGVyIGRhdGEsIHdoZW4gcHJvZHVjaW5nIGFuIGF1dGhlbnRpY2F0aW9uXG4gICAgICAgKiBhc3NlcnRpb24uXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFscmVxdWVzdG9wdGlvbnMtY2hhbGxlbmdlXG4gICAgICAgKi9cbiAgICAgIGNoYWxsZW5nZTogc3RyaW5nO1xuICAgICAgZXh0ZW5zaW9ucz86IHVua25vd247XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIE9QVElPTkFMIG1lbWJlciBzcGVjaWZpZXMgdGhlIHJlbHlpbmcgcGFydHkgaWRlbnRpZmllciBjbGFpbWVkIGJ5XG4gICAgICAgKiB0aGUgY2FsbGVyLiBJZiBvbWl0dGVkLCBpdHMgdmFsdWUgd2lsbCBiZSB0aGUgQ3JlZGVudGlhbHNDb250YWluZXJcbiAgICAgICAqIG9iamVjdOKAmXMgcmVsZXZhbnQgc2V0dGluZ3Mgb2JqZWN0J3Mgb3JpZ2luJ3MgZWZmZWN0aXZlIGRvbWFpbi5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWxyZXF1ZXN0b3B0aW9ucy1ycGlkXG4gICAgICAgKi9cbiAgICAgIHJwSWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBPUFRJT05BTCBtZW1iZXIgc3BlY2lmaWVzIGEgdGltZSwgaW4gbWlsbGlzZWNvbmRzLCB0aGF0IHRoZSBjYWxsZXJcbiAgICAgICAqIGlzIHdpbGxpbmcgdG8gd2FpdCBmb3IgdGhlIGNhbGwgdG8gY29tcGxldGUuIFRoZSB2YWx1ZSBpcyB0cmVhdGVkIGFzIGFcbiAgICAgICAqIGhpbnQsIGFuZCBNQVkgYmUgb3ZlcnJpZGRlbiBieSB0aGUgY2xpZW50LlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbHJlcXVlc3RvcHRpb25zLXRpbWVvdXRcbiAgICAgICAqL1xuICAgICAgdGltZW91dD86IG51bWJlciB8IG51bGw7XG4gICAgICB1c2VyVmVyaWZpY2F0aW9uPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnRcIl07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFB1YmxpY0tleUNyZWRlbnRpYWxScEVudGl0eSBkaWN0aW9uYXJ5IGlzIHVzZWQgdG8gc3VwcGx5IGFkZGl0aW9uYWxcbiAgICAgKiBSZWx5aW5nIFBhcnR5IGF0dHJpYnV0ZXMgd2hlbiBjcmVhdGluZyBhIG5ldyBjcmVkZW50aWFsLlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RpY3Rpb25hcnktcnAtY3JlZGVudGlhbC1wYXJhbXNcbiAgICAgKi9cbiAgICBQdWJsaWNLZXlDcmVkZW50aWFsUnBFbnRpdHk6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBSZWx5aW5nIFBhcnR5IGVudGl0eSwgd2hpY2ggc2V0cyB0aGUgUlAgSUQuXG4gICAgICAgKlxuICAgICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2RvbS1wdWJsaWNrZXljcmVkZW50aWFscnBlbnRpdHktaWRcbiAgICAgICAqL1xuICAgICAgaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQSBodW1hbi1wYWxhdGFibGUgbmFtZSBmb3IgdGhlIGVudGl0eS4gSXRzIGZ1bmN0aW9uIGRlcGVuZHMgb24gd2hhdCB0aGVcbiAgICAgICAqIFB1YmxpY0tleUNyZWRlbnRpYWxFbnRpdHkgcmVwcmVzZW50czogV2hlbiBpbmhlcml0ZWQgYnlcbiAgICAgICAqIFB1YmxpY0tleUNyZWRlbnRpYWxScEVudGl0eSBpdCBpcyBhIGh1bWFuLXBhbGF0YWJsZSBpZGVudGlmaWVyIGZvciB0aGVcbiAgICAgICAqIFJlbHlpbmcgUGFydHksIGludGVuZGVkIG9ubHkgZm9yIGRpc3BsYXkuIEZvciBleGFtcGxlLCBcIkFDTUVcbiAgICAgICAqIENvcnBvcmF0aW9uXCIsIFwiV29uZGVyZnVsIFdpZGdldHMsIEluYy5cIiBvciBcItCe0JDQniDQn9GA0LjQvNC10YDRgtC10YVcIi5cbiAgICAgICAqXG4gICAgICAgKiBSZWx5aW5nIFBhcnRpZXMgU0hPVUxEIHBlcmZvcm0gZW5mb3JjZW1lbnQsIGFzIHByZXNjcmliZWQgaW4gU2VjdGlvbiAyLjNcbiAgICAgICAqIG9mIFtSRkM4MjY2XSBmb3IgdGhlIE5pY2tuYW1lIFByb2ZpbGUgb2YgdGhlIFBSRUNJUyBGcmVlZm9ybUNsYXNzXG4gICAgICAgKiBbUkZDODI2NF0sIHdoZW4gc2V0dGluZyBuYW1lJ3MgdmFsdWUsIG9yIGRpc3BsYXlpbmcgdGhlIHZhbHVlIHRvIHRoZVxuICAgICAgICogdXNlci5cbiAgICAgICAqXG4gICAgICAgKiBUaGlzIHN0cmluZyBNQVkgY29udGFpbiBsYW5ndWFnZSBhbmQgZGlyZWN0aW9uIG1ldGFkYXRhLiBSZWx5aW5nIFBhcnRpZXNcbiAgICAgICAqIFNIT1VMRCBjb25zaWRlciBwcm92aWRpbmcgdGhpcyBpbmZvcm1hdGlvbi4gU2VlIMKn4oCvNi40LjIgTGFuZ3VhZ2UgYW5kXG4gICAgICAgKiBEaXJlY3Rpb24gRW5jb2RpbmcgYWJvdXQgaG93IHRoaXMgbWV0YWRhdGEgaXMgZW5jb2RlZC5cbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyB0aGUgdmFsaWQgY3JlZGVudGlhbCB0eXBlcy4gSXQgaXMgYW4gZXh0ZW5zaW9uXG4gICAgICogcG9pbnQ7IHZhbHVlcyBjYW4gYmUgYWRkZWQgdG8gaXQgaW4gdGhlIGZ1dHVyZSwgYXMgbW9yZSBjcmVkZW50aWFsIHR5cGVzIGFyZVxuICAgICAqIGRlZmluZWQuIFRoZSB2YWx1ZXMgb2YgdGhpcyBlbnVtZXJhdGlvbiBhcmUgdXNlZCBmb3IgdmVyc2lvbmluZyB0aGVcbiAgICAgKiBBdXRoZW50aWNhdGlvbiBBc3NlcnRpb24gYW5kIGF0dGVzdGF0aW9uIHN0cnVjdHVyZXMgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mXG4gICAgICogdGhlIGF1dGhlbnRpY2F0b3IuICBDdXJyZW50bHkgb25lIGNyZWRlbnRpYWwgdHlwZSBpcyBkZWZpbmVkLCBuYW1lbHlcbiAgICAgKiBcInB1YmxpYy1rZXlcIi5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNlbnVtZGVmLXB1YmxpY2tleWNyZWRlbnRpYWx0eXBlXG4gICAgICogQGVudW0ge3N0cmluZ31cbiAgICAgKi9cbiAgICBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTogXCJwdWJsaWMta2V5XCI7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBQdWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eSBkaWN0aW9uYXJ5IGlzIHVzZWQgdG8gc3VwcGx5IGFkZGl0aW9uYWxcbiAgICAgKiB1c2VyIGFjY291bnQgYXR0cmlidXRlcyB3aGVuIGNyZWF0aW5nIGEgbmV3IGNyZWRlbnRpYWwuXG4gICAgICovXG4gICAgUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHk6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEEgaHVtYW4tcGFsYXRhYmxlIG5hbWUgZm9yIHRoZSB1c2VyIGFjY291bnQsIGludGVuZGVkIG9ubHkgZm9yIGRpc3BsYXkuXG4gICAgICAgKiBGb3IgZXhhbXBsZSwgXCJBbGV4IE3DvGxsZXJcIiBvciBcIueUsOS4reWAq1wiLiBUaGUgUmVseWluZyBQYXJ0eSBTSE9VTEQgbGV0IHRoZVxuICAgICAgICogdXNlciBjaG9vc2UgdGhpcywgYW5kIFNIT1VMRCBOT1QgcmVzdHJpY3QgdGhlIGNob2ljZSBtb3JlIHRoYW5cbiAgICAgICAqIG5lY2Vzc2FyeS5cbiAgICAgICAqXG4gICAgICAgKiBSZWx5aW5nIFBhcnRpZXMgU0hPVUxEIHBlcmZvcm0gZW5mb3JjZW1lbnQsIGFzIHByZXNjcmliZWQgaW4gU2VjdGlvbiAyLjNcbiAgICAgICAqIG9mIFtSRkM4MjY2XSBmb3IgdGhlIE5pY2tuYW1lIFByb2ZpbGUgb2YgdGhlIFBSRUNJUyBGcmVlZm9ybUNsYXNzXG4gICAgICAgKiBbUkZDODI2NF0sIHdoZW4gc2V0dGluZyBkaXNwbGF5TmFtZSdzIHZhbHVlLCBvciBkaXNwbGF5aW5nIHRoZSB2YWx1ZSB0b1xuICAgICAgICogdGhlIHVzZXIuXG4gICAgICAgKlxuICAgICAgICogVGhpcyBzdHJpbmcgTUFZIGNvbnRhaW4gbGFuZ3VhZ2UgYW5kIGRpcmVjdGlvbiBtZXRhZGF0YS4gUmVseWluZyBQYXJ0aWVzXG4gICAgICAgKiBTSE9VTEQgY29uc2lkZXIgcHJvdmlkaW5nIHRoaXMgaW5mb3JtYXRpb24uIFNlZSDCp+KArzYuNC4yIExhbmd1YWdlIGFuZFxuICAgICAgICogRGlyZWN0aW9uIEVuY29kaW5nIGFib3V0IGhvdyB0aGlzIG1ldGFkYXRhIGlzIGVuY29kZWQuXG4gICAgICAgKlxuICAgICAgICogQ2xpZW50cyBTSE9VTEQgcGVyZm9ybSBlbmZvcmNlbWVudCwgYXMgcHJlc2NyaWJlZCBpbiBTZWN0aW9uIDIuMyBvZlxuICAgICAgICogW1JGQzgyNjZdIGZvciB0aGUgTmlja25hbWUgUHJvZmlsZSBvZiB0aGUgUFJFQ0lTIEZyZWVmb3JtQ2xhc3NcbiAgICAgICAqIFtSRkM4MjY0XSwgb24gZGlzcGxheU5hbWUncyB2YWx1ZSBwcmlvciB0byBkaXNwbGF5aW5nIHRoZSB2YWx1ZSB0byB0aGVcbiAgICAgICAqIHVzZXIgb3IgaW5jbHVkaW5nIHRoZSB2YWx1ZSBhcyBhIHBhcmFtZXRlciBvZiB0aGVcbiAgICAgICAqIGF1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbCBvcGVyYXRpb24uXG4gICAgICAgKlxuICAgICAgICogV2hlbiBjbGllbnRzLCBjbGllbnQgcGxhdGZvcm1zLCBvciBhdXRoZW50aWNhdG9ycyBkaXNwbGF5IGFcbiAgICAgICAqIGRpc3BsYXlOYW1lJ3MgdmFsdWUsIHRoZXkgc2hvdWxkIGFsd2F5cyB1c2UgVUkgZWxlbWVudHMgdG8gcHJvdmlkZSBhXG4gICAgICAgKiBjbGVhciBib3VuZGFyeSBhcm91bmQgdGhlIGRpc3BsYXllZCB2YWx1ZSwgYW5kIG5vdCBhbGxvdyBvdmVyZmxvdyBpbnRvXG4gICAgICAgKiBvdGhlciBlbGVtZW50cyBbY3NzLW92ZXJmbG93LTNdLlxuICAgICAgICpcbiAgICAgICAqIEF1dGhlbnRpY2F0b3JzIE1VU1QgYWNjZXB0IGFuZCBzdG9yZSBhIDY0LWJ5dGUgbWluaW11bSBsZW5ndGggZm9yIGFcbiAgICAgICAqIGRpc3BsYXlOYW1lIG1lbWJlcuKAmXMgdmFsdWUuIEF1dGhlbnRpY2F0b3JzIE1BWSB0cnVuY2F0ZSBhIGRpc3BsYXlOYW1lXG4gICAgICAgKiBtZW1iZXLigJlzIHZhbHVlIHNvIHRoYXQgaXQgZml0cyB3aXRoaW4gNjQgYnl0ZXMuIFNlZSDCp+KArzYuNC4xIFN0cmluZ1xuICAgICAgICogVHJ1bmNhdGlvbiBhYm91dCB0cnVuY2F0aW9uIGFuZCBvdGhlciBjb25zaWRlcmF0aW9ucy5cbiAgICAgICAqXG4gICAgICAgKiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jZG9tLXB1YmxpY2tleWNyZWRlbnRpYWx1c2VyZW50aXR5LWRpc3BsYXluYW1lXG4gICAgICAgKi9cbiAgICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdXNlciBoYW5kbGUgb2YgdGhlIHVzZXIgYWNjb3VudCBlbnRpdHkuIEEgdXNlciBoYW5kbGUgaXMgYW4gb3BhcXVlXG4gICAgICAgKiBieXRlIHNlcXVlbmNlIHdpdGggYSBtYXhpbXVtIHNpemUgb2YgNjQgYnl0ZXMsIGFuZCBpcyBub3QgbWVhbnQgdG8gYmVcbiAgICAgICAqIGRpc3BsYXllZCB0byB0aGUgdXNlci5cbiAgICAgICAqXG4gICAgICAgKiBUbyBlbnN1cmUgc2VjdXJlIG9wZXJhdGlvbiwgYXV0aGVudGljYXRpb24gYW5kIGF1dGhvcml6YXRpb24gZGVjaXNpb25zXG4gICAgICAgKiBNVVNUIGJlIG1hZGUgb24gdGhlIGJhc2lzIG9mIHRoaXMgaWQgbWVtYmVyLCBub3QgdGhlIGRpc3BsYXlOYW1lIG5vclxuICAgICAgICogbmFtZSBtZW1iZXJzLiBTZWUgU2VjdGlvbiA2LjEgb2YgW1JGQzgyNjZdLlxuICAgICAgICpcbiAgICAgICAqIFRoZSB1c2VyIGhhbmRsZSBNVVNUIE5PVCBjb250YWluIHBlcnNvbmFsbHkgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb25cbiAgICAgICAqIGFib3V0IHRoZSB1c2VyLCBzdWNoIGFzIGEgdXNlcm5hbWUgb3IgZS1tYWlsIGFkZHJlc3M7IHNlZSDCp+KArzE0LjYuMSBVc2VyXG4gICAgICAgKiBIYW5kbGUgQ29udGVudHMgZm9yIGRldGFpbHMuIFRoZSB1c2VyIGhhbmRsZSBNVVNUIE5PVCBiZSBlbXB0eSwgdGhvdWdoXG4gICAgICAgKiBpdCBNQVkgYmUgbnVsbC5cbiAgICAgICAqXG4gICAgICAgKiBOb3RlOiB0aGUgdXNlciBoYW5kbGUgb3VnaHQgbm90IGJlIGEgY29uc3RhbnQgdmFsdWUgYWNyb3NzIGRpZmZlcmVudFxuICAgICAgICogYWNjb3VudHMsIGV2ZW4gZm9yIG5vbi1kaXNjb3ZlcmFibGUgY3JlZGVudGlhbHMsIGJlY2F1c2Ugc29tZVxuICAgICAgICogYXV0aGVudGljYXRvcnMgYWx3YXlzIGNyZWF0ZSBkaXNjb3ZlcmFibGUgY3JlZGVudGlhbHMuIFRodXMgYSBjb25zdGFudFxuICAgICAgICogdXNlciBoYW5kbGUgd291bGQgcHJldmVudCBhIHVzZXIgZnJvbSB1c2luZyBzdWNoIGFuIGF1dGhlbnRpY2F0b3Igd2l0aFxuICAgICAgICogbW9yZSB0aGFuIG9uZSBhY2NvdW50IGF0IHRoZSBSZWx5aW5nIFBhcnR5LlxuICAgICAgICpcbiAgICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNkb20tcHVibGlja2V5Y3JlZGVudGlhbHVzZXJlbnRpdHktaWRcbiAgICAgICAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFdoZW4gaW5oZXJpdGVkIGJ5IFB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5LCBpdCBpcyBhIGh1bWFuLXBhbGF0YWJsZVxuICAgICAgICogaWRlbnRpZmllciBmb3IgYSB1c2VyIGFjY291bnQuIEl0IGlzIGludGVuZGVkIG9ubHkgZm9yIGRpc3BsYXksIGkuZS4sXG4gICAgICAgKiBhaWRpbmcgdGhlIHVzZXIgaW4gZGV0ZXJtaW5pbmcgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB1c2VyIGFjY291bnRzIHdpdGhcbiAgICAgICAqIHNpbWlsYXIgZGlzcGxheU5hbWVzLiBGb3IgZXhhbXBsZSwgXCJhbGV4bVwiLCBcImFsZXgubXVlbGxlckBleGFtcGxlLmNvbVwiXG4gICAgICAgKiBvciBcIisxNDI1NTU1MTIzNFwiLlxuICAgICAgICpcbiAgICAgICAqIFRoZSBSZWx5aW5nIFBhcnR5IE1BWSBsZXQgdGhlIHVzZXIgY2hvb3NlIHRoaXMgdmFsdWUuIFRoZSBSZWx5aW5nIFBhcnR5XG4gICAgICAgKiBTSE9VTEQgcGVyZm9ybSBlbmZvcmNlbWVudCwgYXMgcHJlc2NyaWJlZCBpbiBTZWN0aW9uIDMuNC4zIG9mIFtSRkM4MjY1XVxuICAgICAgICogZm9yIHRoZSBVc2VybmFtZUNhc2VQcmVzZXJ2ZWQgUHJvZmlsZSBvZiB0aGUgUFJFQ0lTIElkZW50aWZpZXJDbGFzc1xuICAgICAgICogW1JGQzgyNjRdLCB3aGVuIHNldHRpbmcgbmFtZSdzIHZhbHVlLCBvciBkaXNwbGF5aW5nIHRoZSB2YWx1ZSB0byB0aGVcbiAgICAgICAqIHVzZXIuXG4gICAgICAgKlxuICAgICAgICogVGhpcyBzdHJpbmcgTUFZIGNvbnRhaW4gbGFuZ3VhZ2UgYW5kIGRpcmVjdGlvbiBtZXRhZGF0YS4gUmVseWluZyBQYXJ0aWVzXG4gICAgICAgKiBTSE9VTEQgY29uc2lkZXIgcHJvdmlkaW5nIHRoaXMgaW5mb3JtYXRpb24uIFNlZSDCp+KArzYuNC4yIExhbmd1YWdlIGFuZFxuICAgICAgICogRGlyZWN0aW9uIEVuY29kaW5nIGFib3V0IGhvdyB0aGlzIG1ldGFkYXRhIGlzIGVuY29kZWQuXG4gICAgICAgKlxuICAgICAgICogQ2xpZW50cyBTSE9VTEQgcGVyZm9ybSBlbmZvcmNlbWVudCwgYXMgcHJlc2NyaWJlZCBpbiBTZWN0aW9uIDMuNC4zIG9mIFtSRkM4MjY1XSBmb3IgdGhlIFVzZXJuYW1lQ2FzZVByZXNlcnZlZCBQcm9maWxlIG9mIHRoZSBQUkVDSVMgSWRlbnRpZmllckNsYXNzIFtSRkM4MjY0XSwgb24gbmFtZSdzIHZhbHVlIHByaW9yIHRvIGRpc3BsYXlpbmcgdGhlIHZhbHVlIHRvIHRoZSB1c2VyIG9yIGluY2x1ZGluZyB0aGUgdmFsdWUgYXMgYSBwYXJhbWV0ZXIgb2YgdGhlIGF1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbCBvcGVyYXRpb24uXG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIFJhdGNoZXRDb25maWc6IHtcbiAgICAgIC8qKiBAZGVmYXVsdCBkZWZhdWx0X2F1dGhfbGlmZXRpbWUgKi9cbiAgICAgIGF1dGhfbGlmZXRpbWU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZHNcIl07XG4gICAgICAvKiogQGRlZmF1bHQgZGVmYXVsdF9ncmFjZV9saWZldGltZSAqL1xuICAgICAgZ3JhY2VfbGlmZXRpbWU/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlY29uZHNcIl07XG4gICAgICAvKiogQGRlZmF1bHQgZGVmYXVsdF9yZWZyZXNoX2xpZmV0aW1lICovXG4gICAgICByZWZyZXNoX2xpZmV0aW1lPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZWNvbmRzXCJdO1xuICAgICAgLyoqIEBkZWZhdWx0IGRlZmF1bHRfc2Vzc2lvbl9saWZldGltZSAqL1xuICAgICAgc2Vzc2lvbl9saWZldGltZT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU2Vjb25kc1wiXTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmVjZWlwdCB0aGF0IGFuIE1GQSByZXF1ZXN0IHdhcyBhcHByb3ZlZC4gKi9cbiAgICBSZWNlaXB0OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBDb25maXJtYXRpb24gY29kZSB0aGUgdXNlciBuZWVkcyB0byBwcmVzZW50IHdoZW4gcmVzdW1pbmcgdGhlIG9yaWdpbmFsIHJlcXVlc3QuXG4gICAgICAgKiBAZXhhbXBsZSBiYTFkNzVkZC1kOTk5LTRjMWItOTQ0ZC0yNWMyNTQ0MGM4YWZcbiAgICAgICAqL1xuICAgICAgY29uZmlybWF0aW9uOiBzdHJpbmc7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgbG9nZ2VkLWluIHVzZXIgd2hvc2UgYWN0aW9uIGNyZWF0ZWQgdGhpcyBhcHByb3ZhbC4gKi9cbiAgICAgIGZpbmFsX2FwcHJvdmVyOiBzdHJpbmc7XG4gICAgICB0aW1lc3RhbXA6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBbiBleHRlbmRlZCBmb3JtIG9mIGBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNgIHRoYXQgYWxsb3dzIGNsaWVudHMgdG8gZGVyaXZlIHRoZSBXZWJBdXRobiBjaGFsbGVuZ2VcbiAgICAgKiBmcm9tIGEgc3RydWN0dXJlZCBwcmVpbWFnZS5cbiAgICAgKlxuICAgICAqIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSB3ZWJ1YXRobiBzaWduYXR1cmUgY2FuIG9ubHkgYmUgdXNlZCBmb3IgYSBzcGVjaWZpYyBwdXJwb3NlXG4gICAgICovXG4gICAgUmVxdWVzdE9wdGlvbnNXaXRoSGFzaDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDaGFsbGVuZ2VQaWVjZXNcIl0gJiB7XG4gICAgICBvcHRpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uc1wiXTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGVudW1lcmF0aW9u4oCZcyB2YWx1ZXMgZGVzY3JpYmUgdGhlIFJlbHlpbmcgUGFydHkncyByZXF1aXJlbWVudHMgZm9yXG4gICAgICogY2xpZW50LXNpZGUgZGlzY292ZXJhYmxlIGNyZWRlbnRpYWxzIChmb3JtZXJseSBrbm93biBhcyByZXNpZGVudCBjcmVkZW50aWFsc1xuICAgICAqIG9yIHJlc2lkZW50IGtleXMpOlxuICAgICAqXG4gICAgICogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI2VudW1kZWYtcmVzaWRlbnRrZXlyZXF1aXJlbWVudFxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgUmVzaWRlbnRLZXlSZXF1aXJlbWVudDogXCJkaXNjb3VyYWdlZFwiIHwgXCJwcmVmZXJyZWRcIiB8IFwicmVxdWlyZWRcIjtcbiAgICBSZXZva2VUb2tlblJlc3BvbnNlOiB7XG4gICAgICB0b2tlbj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG9rZW5JbmZvXCJdIHwgbnVsbDtcbiAgICB9O1xuICAgIFJldm9rZVRva2Vuc1Jlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRva2VucyB0aGF0IHdlcmUgcmV2b2tlZC4gKi9cbiAgICAgIHJldm9rZWQ6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG9rZW5JbmZvXCJdW107XG4gICAgfTtcbiAgICBSb2xlSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgcm9sZSBpcyBlbmFibGVkXG4gICAgICAgKiBAZXhhbXBsZSB0cnVlXG4gICAgICAgKi9cbiAgICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIERlcHJlY2F0ZWQgVGhlIEN1YmVTaWduZXIgSURzIG9mIGF0IG1vc3QgMTAwIGtleXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcm9sZSAqL1xuICAgICAga2V5cz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5Sb2xlSW5mb1wiXVtdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcm9sZSAobXVzdCBiZSBhbHBoYW51bWVyaWMpXG4gICAgICAgKiBAZXhhbXBsZSBteV9yb2xlXG4gICAgICAgKi9cbiAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gUG9saWN5IHRoYXQgaXMgY2hlY2tlZCB3aGVuZXZlciBhIGtleSBpcyBhY2Nlc3NlZCBmb3Igc2lnbmluZyB2aWEgdGhpcyByb2xlLlxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJTb3VyY2VJcEFsbG93bGlzdFwiOiBbXG4gICAgICAgKiAgICAgICBcIjEyMy40NTYuNzguOS8xNlwiXG4gICAgICAgKiAgICAgXVxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJSZXF1aXJlTWZhXCI6IHtcbiAgICAgICAqICAgICAgIFwiY291bnRcIjogMVxuICAgICAgICogICAgIH1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgcm9sZVxuICAgICAgICogQGV4YW1wbGUgUm9sZSNiZmUzZWNjYi03MzFlLTQzMGQtYjFlNS1hYzEzNjNlNmIwNmJcbiAgICAgICAqL1xuICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBEZXByZWNhdGVkLiBUaGUgbGlzdCBvZiBhdCBtb3N0IDEwMCB1c2VycyB3aXRoIGFjY2VzcyB0byB0aGUgcm9sZS4gKi9cbiAgICAgIHVzZXJzPzogc3RyaW5nW10gfCBudWxsO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAqIEBkZXNjcmlwdGlvbiBEdXJhdGlvbiBtZWFzdXJlZCBpbiBzZWNvbmRzXG4gICAgICogQSB3cmFwcGVyIHR5cGUgZm9yIHNlcmlhbGl6YXRpb24gdGhhdCBlbmNvZGVzIGEgYER1cmF0aW9uYCBhcyBhIGB1NjRgIHJlcHJlc2VudGluZyB0aGUgbnVtYmVyIG9mIHNlY29uZHMuXG4gICAgICovXG4gICAgU2Vjb25kczogbnVtYmVyO1xuICAgIFNlc3Npb25JbmZvOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIGZvciB0aGUgc2Vzc2lvblxuICAgICAgICogQGV4YW1wbGUgT0lEQyBsb2dpbiBzZXNzaW9uXG4gICAgICAgKi9cbiAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFNlc3Npb24gSUQuIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHNlc3Npb24sIGJ1dCBjYW5ub3QgYmUgdXNlZCBmb3IgYXV0aC5cbiAgICAgICAqIEBleGFtcGxlIDc3YWFkMjEwMGMzNjFmNDk3NjM1ZGQwMDVjNGQxNTc4MWUyZTVkZjRiOWY0NWQ4ZTc0ZjM3NDI1Y2JjMzBiOWVcbiAgICAgICAqL1xuICAgICAgc2Vzc2lvbl9pZDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzcG9uc2UgZnJvbSBhbnkgb3BlcmF0aW9uIG9wZXJhdGluZyBvbiBtdWx0aXBsZSBzZXNzaW9ucyAqL1xuICAgIFNlc3Npb25zUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2Ygc2Vzc2lvbnMgKi9cbiAgICAgIHNlc3Npb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlc3Npb25JbmZvXCJdW107XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogICBcIm1lc3NhZ2VfYmFzZTY0XCI6IFwiQVFBQkE4T0tWekxFanN0c3RONHhYcjM5a0xLSFQ4ZDU4ZVFZMVFFczZNZVh3RUZCcnhUQWxVTFgxdHJvTGJXeHVBWFFxZ2JRb2ZHaTZ6OGZKaTdLQUFJZjdZTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUpLMHRuMzlrMjhzK1g4Nlc0N0V2YlJSS25ZQlZROFEvbDJtMUViZlQ3K3ZBUUlDQUFFTUFnQUFBR1FBQUFBQUFBQUFcIlxuICAgICAqIH1cbiAgICAgKi9cbiAgICBTb2xhbmFTaWduUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTb2xhbmEgYmFzZTY0LWVuY29kZWQgc2VyaWFsaXplZCBNZXNzYWdlICovXG4gICAgICBtZXNzYWdlX2Jhc2U2NDogc3RyaW5nO1xuICAgIH07XG4gICAgU29sYW5hU2lnblJlc3BvbnNlOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBoZXgtZW5jb2RlZCBzaWduYXR1cmUuICovXG4gICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICB9O1xuICAgIFN0YWtlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGNoYWluIG9uIHdoaWNoIHdlIHdpbGwgZGVwb3NpdFxuICAgICAgICogQGV4YW1wbGUgNVxuICAgICAgICovXG4gICAgICBjaGFpbl9pZDogbnVtYmVyO1xuICAgICAgZGVwb3NpdF90eXBlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcG9zaXRUeXBlXCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gT3B0aW9uYWwgc3Rha2luZyBhbW91bnQgaW4gR1dFSS5cbiAgICAgICAqIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIDMyXzAwMF8wMDBfMDAwICgzMiBFVEgpLlxuICAgICAgICogTXVzdCBiZSBiZXR3ZWVuIDEgRVRIIGFuZCAzMiBFVEguXG4gICAgICAgKiBNdXN0IG5vdCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuICdkZXBvc2l0X3R5cGUnIGlzIFwiV3JhcHBlclwiLlxuICAgICAgICovXG4gICAgICBzdGFraW5nX2Ftb3VudF9nd2VpPzogbnVtYmVyO1xuICAgICAgdW5zYWZlX2NvbmY/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVuc2FmZUNvbmZcIl0gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHZhbGlkYXRvciBCTFMgcHVibGljIGtleSB0byB1c2UsIG9yIGBOb25lYCB0byBnZW5lcmF0ZSBhIGZyZXNoIG9uZS5cbiAgICAgICAqIEBleGFtcGxlIDB4YTk5YTc2ZWQ3Nzk2ZjdiZTIyZDViN2U4NWRlZWI3YzU2NzdlODhlNTExZTBiMzM3NjE4ZjhjNGViNjEzNDliNGJmMmQxNTNmNjQ5ZjdiNTMzNTlmZThiOTRhMzhlNDRjXG4gICAgICAgKi9cbiAgICAgIHZhbGlkYXRvcl9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGV0aGVyZXVtIGFkZHJlc3MgdG8gd2hpY2ggd2l0aGRyYXduIGZ1bmRzIGdvXG4gICAgICAgKiBAZXhhbXBsZSAweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAqL1xuICAgICAgd2l0aGRyYXdhbF9hZGRyOiBzdHJpbmc7XG4gICAgfTtcbiAgICBTdGFrZVJlc3BvbnNlOiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdmFsaWRhdG9yIGtleSBpZCAoXCJLZXkjLi4uXCIpXG4gICAgICAgKiBAZXhhbXBsZSBLZXkjZGIxNzMxZjgtMzY1OS00NWMwLTg4NWItZTExZTFmNWI3YmUyXG4gICAgICAgKi9cbiAgICAgIGNyZWF0ZWRfdmFsaWRhdG9yX2tleV9pZDogc3RyaW5nO1xuICAgICAgZGVwb3NpdF90eDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJEZXBvc2l0VHhuXCJdO1xuICAgIH07XG4gICAgU3RhdHVzOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFVzZXJzIHdobyBhcmUgYWxsb3dlZCB0byBhcHByb3ZlLiBNdXN0IGJlIG5vbi1lbXB0eS4gKi9cbiAgICAgIGFsbG93ZWRfYXBwcm92ZXJzOiBzdHJpbmdbXTtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsb3dlZCBhcHByb3ZhbCB0eXBlcy4gV2hlbiBvbWl0dGVkLCBkZWZhdWx0cyB0byBhbnkuICovXG4gICAgICBhbGxvd2VkX21mYV90eXBlcz86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTWZhVHlwZVwiXVtdIHwgbnVsbDtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVXNlcnMgd2hvIGhhdmUgYWxyZWFkeSBhcHByb3ZlZCAqL1xuICAgICAgYXBwcm92ZWRfYnk6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXToge1xuICAgICAgICAgIFtrZXk6IHN0cmluZ106IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXBwcm92YWxJbmZvXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIEhvdyBtYW55IHVzZXJzIG11c3QgYXBwcm92ZVxuICAgICAgICovXG4gICAgICBjb3VudDogbnVtYmVyO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSG93IG1hbnkgYXV0aCBmYWN0b3JzIHRvIHJlcXVpcmUgcGVyIHVzZXJcbiAgICAgICAqL1xuICAgICAgbnVtX2F1dGhfZmFjdG9yczogbnVtYmVyO1xuICAgIH07XG4gICAgVG9rZW5JbmZvOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFNlc3Npb24gSUQuIFVzZSBpdCB0byByZXZva2UgYSBzZXNzaW9uLiBDYW5ub3QgYmUgdXNlZCBmb3IgYXV0aC4gKi9cbiAgICAgIGhhc2g6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVG9rZW5zIHB1cnBvc2UgKi9cbiAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICB9O1xuICAgIFRvdHBBcHByb3ZlUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUT1RQIHZlcmlmaWNhdGlvbiBjb2RlICovXG4gICAgICBjb2RlOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFNlbnQgZnJvbSB0aGUgY2xpZW50IHRvIHRoZSBzZXJ2ZXIgdG8gYW5zd2VyIGEgVE9UUCBjaGFsbGVuZ2UgKi9cbiAgICBUb3RwQ2hhbGxlbmdlQW5zd2VyOiB7XG4gICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBjdXJyZW50IFRPVFAgY29kZSAqL1xuICAgICAgY29kZTogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIGNoYWxsZW5nZSB0aGF0IHdhcyByZXR1cm5lZCBmcm9tIHRoZSBQT1NUIGVuZHBvaW50ICovXG4gICAgICB0b3RwX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBUb3RwSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBUT1RQIGNoYWxsZW5nZS5cbiAgICAgICAqIEBleGFtcGxlIFRvdHBDaGFsbGVuZ2UjNzg5MmViYmEtNTYzZS00ODViLWJiN2QtZTI2MjY3MzYzMjg2XG4gICAgICAgKi9cbiAgICAgIHRvdHBfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFN0YW5kYXJkIFRPVFAgdXJsIHdoaWNoIGluY2x1ZGVzIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvIGluaXRpYWxpemUgVE9UUC5cbiAgICAgICAqIEBleGFtcGxlIG90cGF1dGg6Ly90b3RwL0N1YmlzdDphbGljZS0lNDBleGFtcGxlLmNvbT9zZWNyZXQ9REFIRjdLQ09UUVdTT01LNFhGRU1OSFhPNEo0MzNPRDcmaXNzdWVyPUN1YmlzdFxuICAgICAgICovXG4gICAgICB0b3RwX3VybDogc3RyaW5nO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSZXF1ZXN0IHRvIHJlc2V0IFRPVFAuICovXG4gICAgVG90cFJlc2V0UmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbmFtZSBvZiB0aGUgaXNzdWVyOyBkZWZhdWx0cyB0byBcIkN1YmlzdFwiLiAqL1xuICAgICAgaXNzdWVyPzogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT3B0aW9ucyB0aGF0IHNob3VsZCBiZSBzZXQgb25seSBmb3IgbG9jYWwgZGV2bmV0IHRlc3RpbmcuICovXG4gICAgVW5zYWZlQ29uZjoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGhleC1lbmNvZGVkIGFkZHJlc3Mgb2YgdGhlIGRlcG9zaXQgY29udHJhY3QuIElmIG9taXR0ZWQsIGluZmVycmVkIGZyb20gYGNoYWluX2lkYFxuICAgICAgICogQGV4YW1wbGUgMHhmZjUwZWQzZDBlYzAzYWMwMWQ0Yzc5YWFkNzQ5MjhiZmY0OGE3YjJiXG4gICAgICAgKi9cbiAgICAgIGRlcG9zaXRfY29udHJhY3RfYWRkcj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgNC1ieXRlIGZvcmsgdmVyc2lvblxuICAgICAgICogQGV4YW1wbGUgMHgwMDAwMTAyMFxuICAgICAgICovXG4gICAgICBnZW5lc2lzX2ZvcmtfdmVyc2lvbj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVW5zdGFrZSBtZXNzYWdlIHJlcXVlc3QuXG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICAgXCJlcG9jaFwiOiBcIjI1NlwiLFxuICAgICAqICAgXCJmb3JrXCI6IHtcbiAgICAgKiAgICAgXCJjdXJyZW50X3ZlcnNpb25cIjogXCIweDAwMDAxMDIwXCIsXG4gICAgICogICAgIFwiZXBvY2hcIjogXCIwXCIsXG4gICAgICogICAgIFwicHJldmlvdXNfdmVyc2lvblwiOiBcIjB4MDAwMDEwMjBcIlxuICAgICAqICAgfSxcbiAgICAgKiAgIFwiZ2VuZXNpc19kYXRhXCI6IHtcbiAgICAgKiAgICAgXCJnZW5lc2lzX2ZvcmtfdmVyc2lvblwiOiBcIjB4MDAwMDEwMjBcIixcbiAgICAgKiAgICAgXCJnZW5lc2lzX3RpbWVcIjogXCIxNjc5NTQxNjQyXCIsXG4gICAgICogICAgIFwiZ2VuZXNpc192YWxpZGF0b3JzX3Jvb3RcIjogXCIweDI3MGQ0M2U3NGNlMzQwZGU0YmNhMmIxOTM2YmVjYTBmNGY1NDA4ZDllNzhhZWM0ODUwOTIwYmFmNjU5ZDViNjlcIlxuICAgICAqICAgfSxcbiAgICAgKiAgIFwibmV0d29ya1wiOiBcImdvZXJsaVwiLFxuICAgICAqICAgXCJ2YWxpZGF0b3JfaW5kZXhcIjogXCIwXCJcbiAgICAgKiB9XG4gICAgICovXG4gICAgVW5zdGFrZVJlcXVlc3Q6IHtcbiAgICAgIGVwb2NoPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaFwiXSB8IG51bGw7XG4gICAgICBmb3JrOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZvcmtcIl07XG4gICAgICBnZW5lc2lzX2RhdGE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiR2VuZXNpc0RhdGFcIl07XG4gICAgICBuZXR3b3JrOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk5ldHdvcmtcIl07XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0b3IgaW5kZXggKGB1aW50NjRgKSB0byBleGl0LiBZb3UgY2FuIGdldCB0aGUgdmFsaWRhdG9yIGluZGV4IGZyb20gdGhlIEJlYWNvbiBub2RlJ3NcbiAgICAgICAqIGAvZXRoL3YxL2JlYWNvbi9zdGF0ZXMvaGVhZC92YWxpZGF0b3JzL3twdWJrZXl9YCBlbmQtcG9pbnQuIFRoaXMgZW5kIHBvaW50IHJldHVybnMgYW5cbiAgICAgICAqIG9iamVjdCB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSB2YWxpZGF0b3IgKHdob3NlIHB1YmxpYyBrZXkgaXMgYHtwdWJrZXl9YCksXG4gICAgICAgKiBpbmNsdWRpbmcgdGhlIHZhbGlkYXRvciBpbmRleC4gVGhlIHNjaGVtYSBvZiB0aGlzIGVuZC1wb2ludCBpcyBkZWZpbmVkXG4gICAgICAgKiBbaGVyZV0oaHR0cHM6Ly9ldGhlcmV1bS5naXRodWIuaW8vYmVhY29uLUFQSXMvIy9CZWFjb24vZ2V0U3RhdGVWYWxpZGF0b3IpLlxuICAgICAgICogQGV4YW1wbGUgMzEzMzdcbiAgICAgICAqL1xuICAgICAgdmFsaWRhdG9yX2luZGV4OiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVW5zdGFrZSByZXNwb25zZXMgYXJlIHNpZ25lZCB2b2x1bnRhcnkgZXhpdCBtZXNzYWdlcy5cbiAgICAgKiBUaGUgc2NoZW1hIGZvciB0aGlzIG1lc3NhZ2UgaXMgZGVmaW5lZFxuICAgICAqIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW0vY29uc2Vuc3VzLXNwZWNzL2Jsb2IvdjEuMC4xL3NwZWNzL3BoYXNlMC9iZWFjb24tY2hhaW4ubWQjc2lnbmVkdm9sdW50YXJ5ZXhpdCkuXG4gICAgICogVGhpcyBtZXNzYWdlIGNhbiBiZSBkaXJlY3RseSBQT1NUZWQgdG8gdGhlIEJlYWNvbiBub2RlJ3NcbiAgICAgKiBgL2V0aC92MS9iZWFjb24vcG9vbC92b2x1bnRhcnlfZXhpdHNgIGVuZC1wb2ludCAoc2VlIGV4cGVjdGVkIHNjaGVtYVxuICAgICAqIFtoZXJlXShodHRwczovL2V0aGVyZXVtLmdpdGh1Yi5pby9iZWFjb24tQVBJcy8jL0JlYWNvbi9zdWJtaXRQb29sVm9sdW50YXJ5RXhpdCkpLlxuICAgICAqL1xuICAgIFVuc3Rha2VSZXNwb25zZToge1xuICAgICAgbWVzc2FnZTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJWb2x1bnRhcnlFeGl0XCJdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQkxTIHNpZ25hdHVyZS5cbiAgICAgICAqIEBleGFtcGxlIDB4OTEwYzdjZDUzN2VkOTFjYzhjNGE4MmYzY2JkODMyZTliZThjMjRhMjJlOWM4NmRmNDc5ZjdjZTQyMDI1ZWE2YTA5NjE5YjQxOGI2NjZhMDYwZTI2MGQyYWFlMzFiOGU1MGU5ZDA1Y2EzNDQyYzdlZWQzYjUwN2U1MjA3ZTE0Njc0Mjc1ZjY4YzJiYTg0YzRiZjZiOGRkMzY0YTMwNGFjYWM4Y2ZhYjM2ODFlMjUxNGI0NDAwZjkyNDJiYzYxMTY0XG4gICAgICAgKi9cbiAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgIH07XG4gICAgVXBkYXRlS2V5UmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGVzIHRoZSBrZXlzJ3MgYGVuYWJsZWRgIHByb3BlcnR5IHRvIHRoaXMgdmFsdWUuXG4gICAgICAgKiBPbmNlIGRpc2FibGVkLCBhIGtleSBjYW5ub3QgYmUgdXNlZCBmb3Igc2lnbmluZy5cbiAgICAgICAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBrZXkncyBtZXRhZGF0YS4gVmFsaWRhdGlvbiByZWdleDogXltBLVphLXowLTlfPSsvIFxcLVxcLlxcLF17MCwxMDI0fSRcbiAgICAgICAqIEBleGFtcGxlIENvbnRyYWN0IGFkbWluIGtleVxuICAgICAgICovXG4gICAgICBtZXRhZGF0YT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZXMga2V5J3Mgb3duZXIgdG8gdGhpcyB2YWx1ZS5cbiAgICAgICAqIFRoZSBuZXcgb3duZXIgbXVzdCBiZSBhbiBleGlzdGluZyB1c2VyIHdobyBpcyBhIG1lbWJlciBvZiB0aGUgc2FtZSBvcmcuXG4gICAgICAgKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlxuICAgICAgICovXG4gICAgICBvd25lcj86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIGtleSdzIHBvbGljaWVzIChvbGQgcG9saWNpZXMgd2lsbCBiZSBvdmVyd3JpdHRlbiEpLlxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICBcIkFsbG93UmF3QmxvYlNpZ25pbmdcIixcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiUmVxdWlyZU1mYVwiOiB7XG4gICAgICAgKiAgICAgICBcImNvdW50XCI6IDFcbiAgICAgICAqICAgICB9XG4gICAgICAgKiAgIH1cbiAgICAgICAqIF1cbiAgICAgICAqL1xuICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W10gfCBudWxsO1xuICAgIH07XG4gICAgVXBkYXRlT3JnUmVxdWVzdDoge1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIG9yZydzIGBlbmFibGVkYCBmaWVsZCB0byB0aGlzIHZhbHVlLiAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB1cGRhdGUgdGhpcyBvcmcncyBhbGlhcy4gIE9yZyBhbGlhc2VzIGFyZSBnbG9iYWxseSB1bmlxdWUuXG4gICAgICAgKiBAZXhhbXBsZSBteV9vcmdcbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIG9yZydzIHBvbGljaWVzIChvbGQgcG9saWNpZXMgd2lsbCBiZSBvdmVyd3JpdHRlbiEpLlxuICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJNYXhEYWlseVVuc3Rha2VcIjogNVxuICAgICAgICogICB9LFxuICAgICAgICogICB7XG4gICAgICAgKiAgICAgXCJPcmlnaW5BbGxvd2xpc3RcIjogW1xuICAgICAgICogICAgICAgXCJodHRwczovL2V4YW1wbGUuY29tXCJcbiAgICAgICAqICAgICBdXG4gICAgICAgKiAgIH0sXG4gICAgICAgKiAgIHtcbiAgICAgICAqICAgICBcIlNvdXJjZUlwQWxsb3dsaXN0XCI6IFtcbiAgICAgICAqICAgICAgIFwiMTAuMS4yLjMvOFwiLFxuICAgICAgICogICAgICAgXCIxNjkuMjU0LjE3LjEvMTZcIlxuICAgICAgICogICAgIF1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXSB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIG9yZydzIFRPVFAgZmFpbHVyZSBsaW1pdC4gQWZ0ZXIgdGhpcyBtYW55IGZhaWx1cmVzLFxuICAgICAgICogdGhlIHVzZXIgaXMgcmF0ZSBsaW1pdGVkIHVudGlsIHRoZSBuZXh0IDMwLXNlY29uZCBUT1RQIHdpbmRvdy5cbiAgICAgICAqL1xuICAgICAgdG90cF9mYWlsdXJlX2xpbWl0PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdXBkYXRlIHRoaXMgb3JnJ3MgdXNlci1leHBvcnQgZGVsYXksIGkuZS4sIHRoZSBhbW91bnQgb2YgdGltZVxuICAgICAgICogKGluIHNlY29uZHMpIGJldHdlZW4gYSB1c2VyJ3MgaW5pdGlhdGluZyBhbiBleHBvcnQgYW5kIHRoZSB0aW1lIHdoZW5cbiAgICAgICAqIGV4cG9ydCBpcyBhbGxvd2VkLiBGb3Igc2VjdXJpdHksIHRoaXMgZGVsYXkgY2Fubm90IGJlIHNldCB0byBsZXNzIHRoYW5cbiAgICAgICAqIDE3MjgwMCwgaS5lLiwgMiBkYXlzLlxuICAgICAgICovXG4gICAgICB1c2VyX2V4cG9ydF9kZWxheT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHVwZGF0ZSB0aGlzIG9yZydzIHVzZXItZXhwb3J0IHdpbmRvdywgaS5lLiwgdGhlIGFtb3VudCBvZiB0aW1lXG4gICAgICAgKiAoaW4gc2Vjb25kcykgdGhhdCBleHBvcnQgaXMgYWxsb3dlZCBhZnRlciB0aGUgdXNlci1leHBvcnQgZGVsYXkuIEFmdGVyXG4gICAgICAgKiB0aGlzIGFtb3VudCBvZiB0aW1lLCB0aGUgZXhwb3J0IGlzIGNhbmNlbGVkIGFuZCBtdXN0IGJlIHJlLWluaXRpYXRlZC5cbiAgICAgICAqIEZvciBzZWN1cml0eSwgdGhpcyB3aW5kb3cgY2Fubm90IGJlIHNldCB0byBncmVhdGVyIHRoYW4gMjU5MjAwLCBpLmUuLFxuICAgICAgICogMyBkYXlzLlxuICAgICAgICovXG4gICAgICB1c2VyX2V4cG9ydF93aW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgVXBkYXRlT3JnUmVzcG9uc2U6IHtcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5ICovXG4gICAgICBlbmFibGVkPzogYm9vbGVhbiB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBvcmcgKG11c3QgYmUgYWxwaGFudW1lcmljKVxuICAgICAgICogQGV4YW1wbGUgbXlfb3JnX25hbWVcbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIG9yZ2FuaXphdGlvblxuICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICovXG4gICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2Ygb3JnLXdpZGUgcG9saWNpZXNcbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiTWF4RGFpbHlVbnN0YWtlXCI6IDVcbiAgICAgICAqICAgfSxcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiT3JpZ2luQWxsb3dsaXN0XCI6IFtcbiAgICAgICAqICAgICAgIFwiaHR0cHM6Ly9leGFtcGxlLmNvbVwiXG4gICAgICAgKiAgICAgXVxuICAgICAgICogICB9XG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIHBvbGljeT86IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdGhlIFRPVFAgZmFpbHVyZSBsaW1pdFxuICAgICAgICovXG4gICAgICB0b3RwX2ZhaWx1cmVfbGltaXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgLyoqXG4gICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiB1c2VyLWV4cG9ydCBkZWxheVxuICAgICAgICovXG4gICAgICB1c2VyX2V4cG9ydF9kZWxheT86IG51bWJlciB8IG51bGw7XG4gICAgICAvKipcbiAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IHZhbHVlIG9mIHVzZXItZXhwb3J0IHdpbmRvd1xuICAgICAgICovXG4gICAgICB1c2VyX2V4cG9ydF93aW5kb3c/OiBudW1iZXIgfCBudWxsO1xuICAgIH07XG4gICAgVXBkYXRlUm9sZVJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdXBkYXRlcyB0aGUgcm9sZSdzIGBlbmFibGVkYCBwcm9wZXJ0eSB0byB0aGlzIHZhbHVlLlxuICAgICAgICogT25jZSBkaXNhYmxlZCwgYSByb2xlIGNhbm5vdCBiZSB1c2VkOyBhbmQgaXQncyB0b2tlbnMgY2Fubm90IGJlIHVzZWQgZm9yIHNpZ25pbmcuXG4gICAgICAgKi9cbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdXBkYXRlIHRoaXMgcm9sZSdzIGtleSBwb2xpY2llcyAob2xkIHBvbGljaWVzIHdpbGwgYmUgb3ZlcndyaXR0ZW4hKS5cbiAgICAgICAqIE9ubHkgXCJkZW55XCIgc3R5bGUgcG9saWNpZXMgbWF5IGJlIHNldC5cbiAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAqICAge1xuICAgICAgICogICAgIFwiU291cmNlSXBBbGxvd2xpc3RcIjogW1xuICAgICAgICogICAgICAgXCIxMjMuNDU2Ljc4LjkvMTZcIlxuICAgICAgICogICAgIF1cbiAgICAgICAqICAgfVxuICAgICAgICogXVxuICAgICAgICovXG4gICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXSB8IG51bGw7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgcmVxdWVzdCB0byBjb21wbGV0ZSBhIHVzZXIgZXhwb3J0ICovXG4gICAgVXNlckV4cG9ydENvbXBsZXRlUmVxdWVzdDoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBrZXkgdG8gYmUgZXhwb3J0ZWQuIFRoZSBrZXktaWQgbXVzdCBjb3JyZXNwb25kIHRvIHRoZSBvbmUgaW5cbiAgICAgICAqIHRoZSBzcGVjaWZpZWQgZXhwb3J0IHJlcXVlc3QsIGFuZCB0aGUgY2FsbGVyIG11c3Qgb3duIHRoaXMga2V5LlxuICAgICAgICogQGV4YW1wbGUgS2V5IzB4M2M0ZDkwQ2M1QWYxNjQ0QzNBM0IwMTNCYWE1NDg4OTk3MzgxRDdDOFxuICAgICAgICovXG4gICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBOSVNUIFAtMjU2IHB1YmxpYyBrZXkgKGJhc2U2NC1lbmNvZGVkIFNFQzEgd2l0aCBvciB3aXRob3V0IGNvbXByZXNzaW9uKVxuICAgICAgICogdG8gd2hpY2ggdGhlIGV4cG9ydCB3aWxsIGJlIGVuY3J5cHRlZC4gSWYgYSBwdWJsaWMga2V5IHdhcyBwcm92aWRlZCB3aGVuXG4gICAgICAgKiBgdXNlcl9leHBvcnRfaW5pdGAgd2FzIGNhbGxlZCwgdGhpcyBrZXkgbXVzdCBtYXRjaCB0aGF0IG9uZS5cbiAgICAgICAqIEBleGFtcGxlIEFrcExULzNkWEFwSnpYU2R1YVBRN2FweVQwQURCd3FrdDFlcy9hVDBpV1dmXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXk6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQW4gZW5jcnlwdGVkIHVzZXItZXhwb3J0ICovXG4gICAgVXNlckV4cG9ydENvbXBsZXRlUmVzcG9uc2U6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBleHBvcnRlZCBrZXkgbWF0ZXJpYWwsIGVuY3J5cHRlZCB3aXRoIEFFUy0yNTYtR0NNIHVuZGVyIGEga2V5XG4gICAgICAgKiBkZXJpdmVkIGZyb20gdGhlIHB1YmxpYyBrZXkgc3VwcGxpZWQgaW4gdGhlIHJlcXVlc3QgdmlhIEhQS0UgKFJGQzkxODApXG4gICAgICAgKiB3aXRoIERIS0VNKFAtMjU2LCBIS0RGLVNIQTI1NikgYW5kIGJhc2U2NCBlbmNvZGVkLlxuICAgICAgICovXG4gICAgICBlbmNyeXB0ZWRfa2V5X21hdGVyaWFsOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZXBoZW1lcmFsIHB1YmxpYyBrZXkgdXNlZCBmb3IgSFBLRSBrZXkgZGVyaXZhdGlvbiBhcyBiYXNlNjQtZW5jb2RlZFxuICAgICAgICogdW5jb21wcmVzc2VkIFNFQzEgc2VyaWFsaXphdGlvbi5cbiAgICAgICAqL1xuICAgICAgZXBoZW1lcmFsX3B1YmxpY19rZXk6IHN0cmluZztcbiAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHVzZXItaWQgdG8gd2hpY2ggdGhpcyBrZXkgYmVsb25ncy4gKi9cbiAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gQSByZXF1ZXN0IHRvIGluaXRpYXRlIGEgdXNlciBleHBvcnQgKi9cbiAgICBVc2VyRXhwb3J0SW5pdFJlcXVlc3Q6IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUga2V5IHRvIGJlIGV4cG9ydGVkLiBUaGlzIGtleSBtdXN0IGJlIG93bmVkIGJ5IHRoZSBjYWxsZXIuXG4gICAgICAgKiBAZXhhbXBsZSBLZXkjMHgzYzRkOTBDYzVBZjE2NDRDM0EzQjAxM0JhYTU0ODg5OTczODFEN0M4XG4gICAgICAgKi9cbiAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gQW4gb3B0aW9uYWwgTklTVCBQLTI1NiBwdWJsaWMga2V5IChiYXNlNjQtZW5jb2RlZCBTRUMxIHdpdGggb3Igd2l0aG91dFxuICAgICAgICogY29tcHJlc3Npb24pIHRvIHdoaWNoIHRoZSBleHBvcnQgd2lsbCBiZSBlbmNyeXB0ZWQuIElmIHByb3ZpZGVkLCB0aGlzXG4gICAgICAgKiBwdWJsaWMga2V5IE1VU1QgYmUgdGhlIG9uZSB1c2VkIHRvIGVuY3J5cHQgdGhlIGV4cG9ydCBvbmNlIHRoZSBkZWxheSBoYXNcbiAgICAgICAqIGV4cGlyZWQuIE90aGVyd2lzZSwgdGhlIHVzZXIgY2FuIHByb3ZpZGUgYW55IHB1YmxpYyBrZXkgd2hlbiBjb21wbGV0aW5nXG4gICAgICAgKiB0aGUgZXhwb3J0IHJlcXVlc3QgcG9zdCBkZWxheS5cbiAgICAgICAqXG4gICAgICAgKiBUaGlzIG9wdGlvbiBtYXkgcHJvdmlkZSBleHRyYSBzZWN1cml0eSB3aGVuIHRoZSB1c2VyIGhhcyBhIHNlY3VyZSBoYXJkd2FyZVxuICAgICAgICogZGV2aWNlIChlLmcuLCBhIHBob25lJ3Mgc2VjdXJlIGVsZW1lbnQgb3IgYSBZdWJpS2V5KSBpbiB3aGljaCBhIE5JU1QgUC0yNTZcbiAgICAgICAqIHNlY3JldCBrZXkgY2FuIGJlIGdlbmVyYXRlZC4gUHJvdmlkaW5nIHRoZSBjb3JyZXNwb25kaW5nIHB1YmxpYyBrZXkgaGVyZVxuICAgICAgICogZW5zdXJlcyB0aGF0IG9ubHkgdGhhdCBzcGVjaWZpYyBkZXZpY2Ugd2lsbCBiZSBjYXBhYmxlIG9mIGRlY3J5cHRpbmdcbiAgICAgICAqIHRoZSBleHBvcnQgY2lwaGVydGV4dC5cbiAgICAgICAqXG4gICAgICAgKiBJZiBubyBzZWN1cmUgaGFyZHdhcmUgZGV2aWNlIGlzIGF2YWlsYWJsZSB0byBzdG9yZSB0aGUgc2VjcmV0IGtleSwgdGhpc1xuICAgICAgICogb3B0aW9uIFNIT1VMRCBOT1QgYmUgdXNlZCBiZWNhdXNlIG9mIHRoZSByaXNrIG9mIHNlY3JldCBrZXkgdGhlZnQgZHVyaW5nXG4gICAgICAgKiB0aGUgZXhwb3J0IGRlbGF5IHBlcmlvZC5cbiAgICAgICAqIEBleGFtcGxlIEFrcExULzNkWEFwSnpYU2R1YVBRN2FweVQwQURCd3FrdDFlcy9hVDBpV1dmXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgcmVzcG9uc2UgdG8gYSBzdWNjZXNzZnVsIHVzZXItZXhwb3J0IGluaXQgcmVxdWVzdCAqL1xuICAgIFVzZXJFeHBvcnRJbml0UmVzcG9uc2U6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckV4cG9ydFJlcXVlc3RcIl0gJiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUga2V5LWlkIGJlaW5nIHJlcXVlc3RlZC5cbiAgICAgICAqIEBleGFtcGxlIEtleSMweDNjNGQ5MENjNUFmMTY0NEMzQTNCMDEzQmFhNTQ4ODk5NzM4MUQ3QzhcbiAgICAgICAqL1xuICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFBlbmRpbmcgdXNlci1leHBvcnQgcmVxdWVzdCBhcyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLiAqL1xuICAgIFVzZXJFeHBvcnRSZXF1ZXN0OiB7XG4gICAgICBleHBfZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmctaWQgaW4gd2hpY2ggdGhlIGtleSBpcyBob3VzZWQuXG4gICAgICAgKiBAZXhhbXBsZSBPcmcjZjM2MWVkNmItNWQxOS00Y2NmLWE0ZDUtZWJhOTM1ZGMwYjkwXG4gICAgICAgKi9cbiAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFNIQS0yNTYgaGFzaCBvZiB0aGUgcHVibGljIGtleSBwcm92aWRlZCBhdCBleHBvcnQgaW5pdGlhdGlvbixcbiAgICAgICAqIGlmIGFueS4gSWYgYSBrZXkgd2FzIHByb3ZpZGVkLCBvbmx5IHRoYXQga2V5IGNhbiBiZSB1c2VkIHRvIGNvbXBsZXRlXG4gICAgICAgKiB0aGUgZXhwb3J0IHByb2NlZHVyZS4gT3RoZXJ3aXNlLCBhbnkga2V5IGNhbiBiZSB1c2VkLlxuICAgICAgICpcbiAgICAgICAqIElNUE9SVEFOVDogaWYgYSBwdWJsaWMga2V5IGlzIHN1cHBsaWVkIGF0IGV4cG9ydCBpbml0aWF0aW9uLCBpdCBpc1xuICAgICAgICogU1RST05HTFkgUkVDT01NRU5ERUQgdGhhdCB0aGUgY29ycmVzcG9uZGluZyBzZWNyZXQga2V5IGJlIHN0b3JlZCBpblxuICAgICAgICogYSBzZWN1cmUgaGFyZHdhcmUgZGV2aWNlLCBlLmcuLCBhIFl1YmlLZXkgb3IgYSBwaG9uZSdzIHNlY3VyZSBlbGVtZW50LlxuICAgICAgICogSWYgbm8gc3VjaCBoYXJkd2FyZSBpcyBhdmFpbGFibGUsIHN1cHBseWluZyBhIHB1YmxpYyBrZXkgYXQgZXhwb3J0XG4gICAgICAgKiBpbml0aWF0aW9uIGlzIFNUUk9OR0xZIERJU0NPVVJBR0VEIGJlY2F1c2Ugb2YgdGhlIHJpc2sgb2YgdGhlZnQgZHVyaW5nXG4gICAgICAgKiB0aGUgZXhwb3J0IGRlbGF5IHBlcmlvZC5cbiAgICAgICAqXG4gICAgICAgKiAoU2VlIGFsc28gdGhlIGNvbW1lbnQgaW4gdGhlIGBwdWJsaWNfa2V5YCBmaWVsZCBvZiBgVXNlckluaXRSZXF1ZXN0YC4pXG4gICAgICAgKiBAZXhhbXBsZSBkZjQ1N2E5OGQ1NTM4NTQwZjU0ZDEzMTZiNTk3YTBmMzliOGQ5NmY0ODhmMTBhMmUzMWE5NTVjMTQ2ZmRmMWQzXG4gICAgICAgKi9cbiAgICAgIHB1YmxpY19rZXlfaGFzaD86IHN0cmluZyB8IG51bGw7XG4gICAgICB2YWxpZF9lcG9jaDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaERhdGVUaW1lXCJdO1xuICAgIH07XG4gICAgVXNlcklkSW5mbzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXIncyBlbWFpbFxuICAgICAgICogQGV4YW1wbGUgYWxpY2VAZXhhbXBsZS5jb21cbiAgICAgICAqL1xuICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgdXNlclxuICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAqL1xuICAgICAgaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIFVzZXJJblJvbGVJbmZvOiB7XG4gICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgfTtcbiAgICBVc2VySW5mbzoge1xuICAgICAgLyoqIEBleGFtcGxlIGFsaWNlQGV4YW1wbGUuY29tICovXG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgbXVsdGktZmFjdG9yIGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgY29uZmlndXJlZCBmb3IgdGhpcyB1c2VyICovXG4gICAgICBtZmE6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ29uZmlndXJlZE1mYVwiXVtdO1xuICAgICAgLyoqIEBkZXNjcmlwdGlvbiBNRkEgcG9saWN5LCBhcHBsaWVzIGJlZm9yZSBsb2dnaW5nIGluIGFuZCBvdGhlciBzZW5zaXRpdmUgb3BlcmF0aW9ucyAqL1xuICAgICAgbWZhX3BvbGljeT86IHVua25vd247XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBBbGwgb3JnYW5pemF0aW9ucyB0aGUgdXNlciBiZWxvbmdzIHRvXG4gICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgKiAgIFwiT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVwiXG4gICAgICAgKiBdXG4gICAgICAgKi9cbiAgICAgIG9yZ19pZHM6IHN0cmluZ1tdO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXJcbiAgICAgICAqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmXG4gICAgICAgKi9cbiAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBIFdlYkF1dGhuIFJlbHlpbmcgUGFydHkgbWF5IHJlcXVpcmUgdXNlciB2ZXJpZmljYXRpb24gZm9yIHNvbWUgb2YgaXRzXG4gICAgICogb3BlcmF0aW9ucyBidXQgbm90IGZvciBvdGhlcnMsIGFuZCBtYXkgdXNlIHRoaXMgdHlwZSB0byBleHByZXNzIGl0cyBuZWVkcy5cbiAgICAgKlxuICAgICAqIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNlbnVtLXVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudFxuICAgICAqIEBlbnVtIHtzdHJpbmd9XG4gICAgICovXG4gICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OiBcInJlcXVpcmVkXCIgfCBcImRpc2NvdXJhZ2VkXCIgfCBcInByZWZlcnJlZFwiO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBbiBleGl0IHZvbHVudGFyaWx5IHN1Ym1pdHRlZCBhIHZhbGlkYXRvciB3aG8gd2lzaGVzIHRvIHdpdGhkcmF3LlxuICAgICAqIFRoZSBzY2hlbWEgZm9yIHRoaXMgbWVzc2FnZSBpcyBkZWZpbmVkXG4gICAgICogW2hlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmV1bS9jb25zZW5zdXMtc3BlY3MvYmxvYi92MS4wLjEvc3BlY3MvcGhhc2UwL2JlYWNvbi1jaGFpbi5tZCNzaWduZWR2b2x1bnRhcnlleGl0KS5cbiAgICAgKi9cbiAgICBWb2x1bnRhcnlFeGl0OiB7XG4gICAgICBlcG9jaDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcG9jaFwiXTtcbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEluZGV4IG9mIHRoZSBleGl0aW5nIHZhbGlkYXRvci5cbiAgICAgICAqIEBleGFtcGxlIDI1NlxuICAgICAgICovXG4gICAgICB2YWxpZGF0b3JfaW5kZXg6IHN0cmluZztcbiAgICB9O1xuICB9O1xuICByZXNwb25zZXM6IHtcbiAgICBBZGRUaGlyZFBhcnR5VXNlclJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBleGFtcGxlIFVzZXIjYzNiOTM3OWMtNGU4Yy00MjE2LWJkMGEtNjVhY2U1M2NmOThmICovXG4gICAgICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEF2YVNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGhleC1lbmNvZGVkIHNpZ25hdHVyZS4gKi9cbiAgICAgICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBCbG9iU2lnblJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgc2lnbmF0dXJlLiAqL1xuICAgICAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEJ0Y1NpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgc2lnbmF0dXJlIGluIGNvbXBhY3QgZm9ybWF0LlxuICAgICAgICAgICAqIEBleGFtcGxlIDB4NDU0YWVmMjdjMjFkZjdkZDhmNTM3ZGM4NjlmNGNkNjUyODZjZTIzOWE1MmQzNjQ3MGY0ZDg1YmU4NWE4OTFiMDI3ODllNWZmZDg1NjBiMzJhOTgxMTBlNWQwMDk2ODAyZTRjMTQxNDVjZjZjNDRmMTBhNzY4Yzg3NzU1ZWFhNDgwMFxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIENyZWF0ZUtleUltcG9ydEtleVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUltcG9ydEtleVwiXSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQW4gYXR0ZXN0YXRpb24gZG9jdW1lbnQgZnJvbSBhIHNlY3VyZSBlbmNsYXZlLCBpbmNsdWRpbmcgYW5cbiAgICAgICAgICAgKiBSU0Egc2lnbmluZyBrZXkgdXNlZCB0byBzaWduIHRoZSBjb250ZW50cyBvZiB0aGlzIG1lc3NhZ2UuXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW5jbGF2ZV9hdHRlc3RhdGlvbjogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBbiBSU0EtUFNTLVNIQTI1NiBzaWduYXR1cmUgb24gdGhlIHB1YmxpYyBrZXkgYW5kIGVuY3J5cHRlZFxuICAgICAgICAgICAqIHNlY3JldHMgYXR0ZXN0aW5nIHRvIHRoZWlyIGdlbmVyYXRpb24gaW5zaWRlIGEgc2VjdXJlIGVuY2xhdmUuXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW5jbGF2ZV9zaWduYXR1cmU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBDcmVhdGVLZXlSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGluZm8gYWJvdXQgdGhlIGNyZWF0ZWQga2V5cyAqL1xuICAgICAgICAgIGtleXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5mb1wiXVtdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5ld2x5IGNyZWF0ZWQgcm9sZSBpbmZvcm1hdGlvbiAqL1xuICAgIENyZWF0ZVJvbGVSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSByb2xlLlxuICAgICAgICAgICAqIEBleGFtcGxlIG15X3JvbGVcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBuZXdseSBjcmVhdGVkIHJvbGVcbiAgICAgICAgICAgKiBAZXhhbXBsZSBSb2xlI2JmZTNlY2NiLTczMWUtNDMwZC1iMWU1LWFjMTM2M2U2YjA2YlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBFaXAxOTFPcjcxMlNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBzaWduYXR1cmUgY29tcHJpc2luZyA2NSBieXRlcyBpbiB0aGUgZm9ybWF0IHJlcXVpcmVkXG4gICAgICAgICAgICogYnkgZWNyZWNvdmVyOiAzMi1ieXRlIHIsIDMyLWJ5dGUgcywgYW5kIG9uZS1ieXRlIHJlY292ZXJ5LWlkIHZcbiAgICAgICAgICAgKiB3aGljaCBpcyBlaXRoZXIgMjcgb3IgMjguXG4gICAgICAgICAgICogQGV4YW1wbGUgMHg0MzU1YzQ3ZDYzOTI0ZThhNzJlNTA5YjY1MDI5MDUyZWI2YzI5OWQ1M2EwNGUxNjdjNTc3NWZkNDY2NzUxYzlkMDcyOTk5MzZkMzA0YzE1M2Y2NDQzZGZhMDVmNDBmZjAwN2Q3MjkxMWI2ZjcyMzA3Zjk5NjIzMTYwNWI5MTU2MjFjXG4gICAgICAgICAgICovXG4gICAgICAgICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgRW1wdHlJbXBsOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgRXRoMVNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBSTFAgZW5jb2Rpbmcgb2YgdGhlIHRyYW5zYWN0aW9uIGFuZCBpdHMgc2lnbmF0dXJlXG4gICAgICAgICAgICogQGV4YW1wbGUgMHgyMjg5NTExODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyMDFkNTg2NTZiMGUyMmFhYTY4ZmRjNjkyZGI0MTk3OTA5OGMzODg2ZWQzMzAxNWQ3NDY3ZGU5MjExNjA5Y2RhYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwOGIwYzI5MDAzMjRkM2ZmOWFkZmJhN2ZkZmU1YWYzZjliMmNkYmVlZjdiMjgwNDM3YmJmMWIxYzU5YTA5M2Q2MTVhZmUzZTVkZmVkOTYyMmI1NDBjZGQ5YjQ5YjNjNWFkMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDkwMTFhZGJjYzNiYzljMDMwN2JiMDdmMzdkZGExYTFhOWM2OWQyZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjA5MDNkYjg1MjU2NzRiOGU3OTA0ZjliN2Q3ZDllYzU1YTBhNDJkMzNjZjU4YmUyNTQ2OWIwYzIxYmJiNmQwNjE3MmJjNWJiNWZkMWFlZDhlNGYzNTkzNjk2ODk1ODExNmIwNjE5NTUzYzJjYjFjNTJlNzMyMzA3NGM2ZjhlYjNkNWE3MDc0ZmM2NTgwMTQ4ZGY5MDc4MzdmYTNiMTY0YWQ3ZmJjMjI4OGRhZDFlOGE1YjAyMTA5NWI1N2M4YTM2ZDRcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBybHBfc2lnbmVkX3R4OiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgRXRoMlNpZ25SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXggZW5jb2RlZCBzaWduYXR1cmUgcHJlZml4ZWQgd2l0aCAweCBlLmcuIFwiMHgwMDAwLi4uXCJcbiAgICAgICAgICAgKiBAZXhhbXBsZSAweGI0ZjJlZjlkMTJhNTRlMWY1Njk1OTZjMDdjOTdkNmQ3MzA1MzViNmZmYzBkMjg3NzYxZGM3ODEwM2E4NjMyNjc4MjQ3MWEwNGM3NWNlN2E2ZmFlYTA4Y2E5YTRhMDgzMDAzMWNkY2I4OTNkYTg3MTFkNTRhYTIyNjE5ZjFhN2U3MWI4MTg1ZGRmNGM2YmZkOWJhYmJkNzM1OTYwZTM1ZTU2YmQ2ZWViODk2MjViMDQ4NTBlN2E5ZWY4ODQ2ZTU0OVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEZpZG9Bc3NlcnRDaGFsbGVuZ2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IChjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNoYWxsZW5nZVBpZWNlc1wiXSAmIHtcbiAgICAgICAgICBvcHRpb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uc1wiXTtcbiAgICAgICAgfSkgJiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGNoYWxsZW5nZS4gTXVzdCBiZSBzdXBwbGllZCB3aGVuIGFuc3dlcmluZyB0aGUgY2hhbGxlbmdlLiAqL1xuICAgICAgICAgIGNoYWxsZW5nZV9pZDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTZW50IGJ5IHRoZSBzZXJ2ZXIgdG8gdGhlIGNsaWVudC4gQ29udGFpbnMgdGhlIGNoYWxsZW5nZSBkYXRhIHRoYXQgbXVzdCBiZVxuICAgICAqIHVzZWQgdG8gZ2VuZXJhdGUgYSBuZXcgY3JlZGVudGlhbFxuICAgICAqL1xuICAgIEZpZG9DcmVhdGVDaGFsbGVuZ2VSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogKGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ2hhbGxlbmdlUGllY2VzXCJdICYge1xuICAgICAgICAgIG9wdGlvbnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uc1wiXTtcbiAgICAgICAgfSkgJiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaWQgb2YgdGhlIGNoYWxsZW5nZS4gTXVzdCBiZSBzdXBwbGllZCB3aGVuIGFuc3dlcmluZyB0aGUgY2hhbGxlbmdlLiAqL1xuICAgICAgICAgIGNoYWxsZW5nZV9pZDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIEdldFVzZXJzSW5PcmdSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2YgdXNlcnMgaW4gdGhlIG9yZyAqL1xuICAgICAgICAgIHVzZXJzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJJZEluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUHJvb2YgdGhhdCBhbiBlbmQtdXNlciBwcm92aWRlZCBDdWJlU2lnbmVyIHdpdGggYSB2YWxpZCBhdXRoIHRva2VuXG4gICAgICogKGVpdGhlciBhbiBPSURDIHRva2VuIG9yIGEgQ3ViZVNpZ25lciBzZXNzaW9uIHRva2VuKVxuICAgICAqL1xuICAgIElkZW50aXR5UHJvb2Y6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gT0lEQyBhdWRpZW5jZTsgc2V0IG9ubHkgaWYgdGhlIHByb29mIHdhcyBvYnRhaW5lZCBieSB1c2luZyBPSURDIHRva2VuLlxuICAgICAgICAgICAqXG4gICAgICAgICAgICogSW4gb3RoZXIgd29yZHMsIHByZXNlbmNlIG9mIHRoaXMgZmllbGQgdGVzdGlmaWVzIHRoYXQgYXV0aG9yaXphdGlvbiB3YXMgb2J0YWluZWQgdmlhIE9JREMuXG4gICAgICAgICAgICovXG4gICAgICAgICAgYXVkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVtYWlsIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlclxuICAgICAgICAgICAqIEBleGFtcGxlIHVzZXJAZW1haWwuY29tXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgICAgICBleHBfZXBvY2g6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXBvY2hEYXRlVGltZVwiXTtcbiAgICAgICAgICBpZGVudGl0eT86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT0lEQ0lkZW50aXR5XCJdIHwgbnVsbDtcbiAgICAgICAgICB1c2VyX2luZm8/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkN1YmVTaWduZXJVc2VySW5mb1wiXSB8IG51bGw7XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbiBvcGFxdWUgaWRlbnRpZmllciBmb3IgdGhlIHByb29mICovXG4gICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIERlcml2YXRpb24tcmVsYXRlZCBtZXRhZGF0YSBmb3Iga2V5cyBkZXJpdmVkIGZyb20gYSBsb25nLWxpdmVkIG1uZW1vbmljICovXG4gICAgS2V5RGVyaXZhdGlvbkluZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBkZXJpdmF0aW9uIHBhdGggdXNlZCB0byBkZXJpdmUgdGhpcyBrZXkgKi9cbiAgICAgICAgICBkZXJpdmF0aW9uX3BhdGg6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSBtbmVtb25pYy1pZCBvZiB0aGUga2V5J3MgcGFyZW50IG1uZW1vbmljICovXG4gICAgICAgICAgbW5lbW9uaWNfaWQ6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEEgd3JhcHBlZCBrZXktaW1wb3J0IGtleSAqL1xuICAgIEtleUltcG9ydEtleToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQmFzZTY0LWVuY29kZWQsIGVuY3J5cHRlZCBkYXRhIGtleS4gKi9cbiAgICAgICAgICBka19lbmM6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEV4cGlyYXRpb24gdGltZXN0YW1wIGV4cHJlc3NlZCBhcyBzZWNvbmRzIHNpbmNlIHRoZSBVTklYIGVwb2NoLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGV4cGlyZXM6IG51bWJlcjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGVwaGVtZXJhbCBwdWJsaWMga2V5IHRvIHdoaWNoIGFuIGltcG9ydGVkIGtleSBzaG91bGQgYmUgZW5jcnlwdGVkLlxuICAgICAgICAgICAqIFRoaXMgaXMgYSBQMzg0IHB1YmxpYyBrZXkgaW4gYmFzZTY0LWVuY29kZWQgdW5jb21wcmVzc2VkIFNFQ0cgZm9ybWF0LlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHB1YmxpY19rZXk6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEJhc2U2NC1lbmNvZGVkLCBlbmNyeXB0ZWQgc2VjcmV0IGtleS4gKi9cbiAgICAgICAgICBza19lbmM6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBLZXlJbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgZGVyaXZhdGlvbl9pbmZvPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlEZXJpdmF0aW9uSW5mb1wiXSB8IG51bGw7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSBrZXkgaXMgZW5hYmxlZCAob25seSBlbmFibGVkIGtleXMgbWF5IGJlIHVzZWQgZm9yIHNpZ25pbmcpICovXG4gICAgICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGlkIG9mIHRoZSBrZXk6IFwiS2V5I1wiIGZvbGxvd2VkIGJ5IGEgdW5pcXVlIGlkZW50aWZpZXIgc3BlY2lmaWMgdG9cbiAgICAgICAgICAgKiB0aGUgdHlwZSBvZiBrZXkgKHN1Y2ggYXMgYSBwdWJsaWMga2V5IGZvciBCTFMgb3IgYW4gZXRoZXJldW0gYWRkcmVzcyBmb3IgU2VjcClcbiAgICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMHg4ZTM0ODQ2ODdlNjZjZGQyNmNmMDRjMzY0NzYzM2FiNGYzNTcwMTQ4XG4gICAgICAgICAgICovXG4gICAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICAgICAga2V5X3R5cGU6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5VHlwZVwiXTtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQSB1bmlxdWUgaWRlbnRpZmllciBzcGVjaWZpYyB0byB0aGUgdHlwZSBvZiBrZXksIHN1Y2ggYXMgYSBwdWJsaWMga2V5IG9yIGFuIGV0aGVyZXVtIGFkZHJlc3NcbiAgICAgICAgICAgKiBAZXhhbXBsZSAweDhlMzQ4NDY4N2U2NmNkZDI2Y2YwNGMzNjQ3NjMzYWI0ZjM1NzAxNDhcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBtYXRlcmlhbF9pZDogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBVc2VyLWRlZmluZWQgbWV0YWRhdGEuIFdoZW4gcmVuZGVyaW5nIChlLmcuLCBpbiB0aGUgYnJvd3NlcikgeW91IHNob3VsZCB0cmVhdFxuICAgICAgICAgICAqIGl0IGFzIHVudHJ1c3RlZCB1c2VyIGRhdGEgKGFuZCBhdm9pZCBpbmplY3RpbmcgbWV0YWRhdGEgaW50byBIVE1MIGRpcmVjdGx5KSBpZlxuICAgICAgICAgICAqIHVudHJ1c3RlZCB1c2VycyBjYW4gY3JlYXRlL3VwZGF0ZSBrZXlzIChvciB0aGVpciBtZXRhZGF0YSkuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbWV0YWRhdGE/OiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIE93bmVyIG9mIHRoZSBrZXlcbiAgICAgICAgICAgKiBAZXhhbXBsZSBVc2VyI2MzYjkzNzljLTRlOGMtNDIxNi1iZDBhLTY1YWNlNTNjZjk4ZlxuICAgICAgICAgICAqL1xuICAgICAgICAgIG93bmVyOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEtleSBwb2xpY3lcbiAgICAgICAgICAgKiBAZXhhbXBsZSBbXG4gICAgICAgICAgICogICBcIkFsbG93UmF3QmxvYlNpZ25pbmdcIixcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJSZXF1aXJlTWZhXCI6IHtcbiAgICAgICAgICAgKiAgICAgICBcImNvdW50XCI6IDFcbiAgICAgICAgICAgKiAgICAgfVxuICAgICAgICAgICAqICAgfVxuICAgICAgICAgICAqIF1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwb2xpY3k6IFJlY29yZDxzdHJpbmcsIG5ldmVyPltdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCwgc2VyaWFsaXplZCBwdWJsaWMga2V5LiBUaGUgZm9ybWF0IHVzZWQgZGVwZW5kcyBvbiB0aGUga2V5IHR5cGU6XG4gICAgICAgICAgICogLSBTZWNwMjU2azEga2V5cyB1c2UgNjUtYnl0ZSB1bmNvbXByZXNzZWQgU0VDRyBmb3JtYXQ7XG4gICAgICAgICAgICogLSBTdGFyayBrZXlzIHVzZSAzMy1ieXRlIGNvbXByZXNzZWQgU0VDRyBmb3JtYXQ7XG4gICAgICAgICAgICogLSBCTFMga2V5cyB1c2UgNDgtYnl0ZSBjb21wcmVzc2VkIEJMUzEyLTM4MSAoWkNhc2gpIGZvcm1hdDtcbiAgICAgICAgICAgKiAtIEVkMjU1MTkga2V5cyB1c2UgdGhlIGNhbm9uaWNhbCAzMi1ieXRlIGVuY29kaW5nIHNwZWNpZmllZCBpbiBSRkMgODAzMi5cbiAgICAgICAgICAgKiBAZXhhbXBsZSAweDA0ZDI2ODhiNmJjMmNlN2Y5ODc5YjllNzQ1ZjNjNGRjMTc3OTA4YzVjZWYwYzFiNjRjZmYxOWFlN2ZmMjdkZWU2MjNjNjRmZTlkOWMzMjVjN2ZiYmM3NDhiYmQ1ZjYwN2NlMTRkZDgzZTI4ZWJiYmI3ZDNlN2YyZmZiNzBhNzk0MzFcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwdWJsaWNfa2V5OiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBwdXJwb3NlIGZvciB3aGljaCB0aGUga2V5IGNhbiBiZSB1c2VkIChlLmcuLCBjaGFpbiBpZCBmb3Igd2hpY2ggdGhlIGtleSBpcyBhbGxvd2VkIHRvIHNpZ24gbWVzc2FnZXMpXG4gICAgICAgICAgICogQGV4YW1wbGUgRXRoMlZhbGlkYXRvcigxKVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBLZXlJbmZvczoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIGtleXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiS2V5SW5mb1wiXVtdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIExpc3RNZmFSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIHBlbmRpbmcgTUZBIHJlcXVlc3RzICovXG4gICAgICAgICAgbWZhX3JlcXVlc3RzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk1mYVJlcXVlc3RJbmZvXCJdW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgTGlzdFRva2Vuc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgdG9rZW5zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRva2VuSW5mb1wiXVtdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gUmV0dXJuZWQgYXMgYSByZXNwb25zZSBmcm9tIG11bHRpcGxlIHJvdXRlcyAoZS5nLiwgJ2dldCBtZmEnLCAnYXBwcm92ZSBtZmEnLCAnYXBwcm92ZSB0b3RwJykuICovXG4gICAgTWZhUmVxdWVzdEluZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBleHBpcmVzX2F0OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVwb2NoRGF0ZVRpbWVcIl07XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBcHByb3ZhbCByZXF1ZXN0IElELiAqL1xuICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgICAgcmVjZWlwdD86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUmVjZWlwdFwiXSB8IG51bGw7XG4gICAgICAgICAgcmVxdWVzdDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJIdHRwUmVxdWVzdFwiXTtcbiAgICAgICAgICBzdGF0dXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3RhdHVzXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gSW5mb3JtYXRpb24gYWJvdXQgYSBuZXcgc2Vzc2lvbiwgcmV0dXJuZWQgZnJvbSBtdWx0aXBsZSBlbmRwb2ludHMgKGUuZy4sIGxvZ2luLCByZWZyZXNoLCBldGMuKS4gKi9cbiAgICBOZXdTZXNzaW9uUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFNlc3Npb24gZXhwaXJhdGlvbiAoaW4gc2Vjb25kcyBzaW5jZSBVTklYIGVwb2NoKSwgYmV5b25kIHdoaWNoIGl0IGNhbm5vdCBiZSByZWZyZXNoZWQuXG4gICAgICAgICAgICogQGV4YW1wbGUgMTcwMTg3OTY0MFxuICAgICAgICAgICAqL1xuICAgICAgICAgIGV4cGlyYXRpb24/OiBudW1iZXI7XG4gICAgICAgICAgc2Vzc2lvbl9pbmZvOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNsaWVudFNlc3Npb25JbmZvXCJdO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBOZXcgdG9rZW4gdG8gYmUgdXNlZCBmb3IgYXV0aGVudGljYXRpb24uIFJlcXVlc3RzIHRvIHNpZ25pbmcgZW5kcG9pbnRzXG4gICAgICAgICAgICogc2hvdWxkIGluY2x1ZGUgdGhpcyB2YWx1ZSBpbiB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlclxuICAgICAgICAgICAqL1xuICAgICAgICAgIHRva2VuOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgT3JnSW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gV2hlbiBmYWxzZSwgYWxsIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyBpbnZvbHZpbmcga2V5cyBpbiB0aGlzIG9yZyBhcmUgZGlzYWJsZWQuICovXG4gICAgICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIERlcHJlY2F0ZWQ6IHRoaXMgZmllbGQgc2hvdWxkIGJlIGlnbm9yZWQuICovXG4gICAgICAgICAga2V5X2ltcG9ydF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgb3JnYW5pemF0aW9uJ3MgdW5pdmVyc2FsbHkgdW5pcXVlIGtleS13cmFwcGluZy1rZXkgaWRlbnRpZmllci5cbiAgICAgICAgICAgKiBUaGlzIHZhbHVlIGlzIHJlcXVpcmVkIHdoZW4gc2V0dGluZyB1cCBrZXkgZXhwb3J0LlxuICAgICAgICAgICAqIEBleGFtcGxlIG1yay1mY2UwOTUyNWU4MTU4N2QyMzUyMGYxMWUwN2UyZTlkOVxuICAgICAgICAgICAqL1xuICAgICAgICAgIGt3a19pZDogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBEYXRlL3RpbWUgKGluIFVUQykgd2hlbiBsYXN0ICd1bnN0YWtlJyB3YXMgcGVyZm9ybWVkLiBVbml4IGVwb2NoIGlmIG5vbmUuXG4gICAgICAgICAgICogQGV4YW1wbGUgVE9ET1xuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfdW5zdGFrZTogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50MzJcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSG93IG1hbnkgJ3Vuc3Rha2UnIGNhbGxzIGhhcHBlbmVkIG9uIHRoZSBkYXkgd2hlbiBgbGFzdF91bnN0YWtlYCB3YXMgcGVyZm9ybWVkLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfdW5zdGFrZV9kYXlfY291bnQ6IG51bWJlcjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBvcmdcbiAgICAgICAgICAgKiBAZXhhbXBsZSBteV9vcmdfbmFtZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIG9yZ2FuaXphdGlvblxuICAgICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gT3JnLXdpZGUgcG9saWNpZXMgdGhhdCBhcmUgY2hlY2tlZCBiZWZvcmUgYSBrZXkgaXMgdXNlZCBmb3Igc2lnbmluZ1xuICAgICAgICAgICAqIEBleGFtcGxlIFtcbiAgICAgICAgICAgKiAgIHtcbiAgICAgICAgICAgKiAgICAgXCJNYXhEYWlseVVuc3Rha2VcIjogNVxuICAgICAgICAgICAqICAgfVxuICAgICAgICAgICAqIF1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXTtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDMyXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmdhbml6YXRpb24ncyBjdXJyZW50bHkgY29uZmlndXJlZCBUT1RQIGZhaWx1cmUgbGltaXQsIGkuZS4sIHRoZSBudW1iZXJcbiAgICAgICAgICAgKiBvZiB0aW1lcyBhIHVzZXIgY2FuIHByb3ZpZGUgYW4gaW5jb3JyZWN0IFRPVFAgY29kZSBiZWZvcmUgYmVpbmcgcmF0ZSBsaW1pdGVkLlxuICAgICAgICAgICAqIFRoaXMgdmFsdWUgY2FuIGJlIGJldHdlZW4gMSBhbmQgNSAoaW5jbHVzaXZlKS5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICB0b3RwX2ZhaWx1cmVfbGltaXQ6IG51bWJlcjtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcmdhbml6YXRpb24ncyBjdXJyZW50bHkgY29uZmlndXJlZCB1c2VyLWV4cG9ydCBkZWxheSwgaS5lLiwgdGhlIG1pbmltdW1cbiAgICAgICAgICAgKiBhbW91bnQgb2YgdGltZSAoaW4gc2Vjb25kcykgYmV0d2VlbiB3aGVuIGEgdXNlci1leHBvcnQgaXMgaW5pdGlhdGVkIGFuZCB3aGVuXG4gICAgICAgICAgICogaXQgbWF5IGJlIGNvbXBsZXRlZC4gKFRoaXMgdmFsdWUgaXMgbWVhbmluZ2xlc3MgZm9yIG9yZ2FuaXphdGlvbnMgdGhhdCB1c2VcbiAgICAgICAgICAgKiBvcmctd2lkZSBleHBvcnQuKVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHVzZXJfZXhwb3J0X2RlbGF5OiBudW1iZXI7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQ2NFxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgb3JnYW5pemF0aW9uJ3MgY3VycmVudGx5IGNvbmZpZ3VyZWQgdXNlci1leHBvcnQgd2luZG93LCBpLmUuLCB0aGUgYW1vdW50XG4gICAgICAgICAgICogb2YgdGltZSAoaW4gc2Vjb25kcykgYmV0d2VlbiB3aGVuIHRoZSB1c2VyLWV4cG9ydCBkZWxheSBpcyBjb21wbGV0ZWQgYW5kIHdoZW5cbiAgICAgICAgICAgKiB0aGUgdXNlciBleHBvcnQgcmVxdWVzdCBoYXMgZXhwaXJlZCBhbmQgY2FuIG5vIGxvbmdlciBiZSBjb21wbGV0ZWQuIChUaGlzIHZhbHVlXG4gICAgICAgICAgICogaXMgbWVhbmluZ2xlc3MgZm9yIG9yZ2FuaXphdGlvbnMgdGhhdCB1c2Ugb3JnLXdpZGUgZXhwb3J0LilcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB1c2VyX2V4cG9ydF93aW5kb3c6IG51bWJlcjtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRMaXN0S2V5c1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAga2V5czogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlJbmZvXCJdW107XG4gICAgICAgIH0gJiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIElmIHNldCwgdGhlIGNvbnRlbnQgb2YgYHJlc3BvbnNlYCBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRpcmUgcmVzdWx0IHNldC5cbiAgICAgICAgICAgKiBUbyBmZXRjaCB0aGUgbmV4dCBwYWdlIG9mIHRoZSByZXN1bHQgc2V0LCBjYWxsIHRoZSBzYW1lIGVuZHBvaW50XG4gICAgICAgICAgICogYnV0IHNwZWNpZnkgdGhpcyB2YWx1ZSBhcyB0aGUgJ3BhZ2Uuc3RhcnQnIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBsYXN0X2V2YWx1YXRlZF9rZXk/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFBhZ2luYXRlZExpc3RSb2xlS2V5c1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwga2V5cyBpbiBhIHJvbGUgKi9cbiAgICAgICAgICBrZXlzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluUm9sZUluZm9cIl1bXTtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUGFnaW5hdGVkTGlzdFJvbGVVc2Vyc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBBbGwgdXNlcnMgaW4gYSByb2xlICovXG4gICAgICAgICAgdXNlcnM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVXNlckluUm9sZUluZm9cIl1bXTtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUGFnaW5hdGVkTGlzdFJvbGVzUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIEFsbCByb2xlcyBpbiBhbiBvcmdhbml6YXRpb24uICovXG4gICAgICAgICAgcm9sZXM6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiUm9sZUluZm9cIl1bXTtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUGFnaW5hdGVkU2Vzc2lvbnNSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIGxpc3Qgb2Ygc2Vzc2lvbnMgKi9cbiAgICAgICAgICBzZXNzaW9uczogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJTZXNzaW9uSW5mb1wiXVtdO1xuICAgICAgICB9ICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBzZXQsIHRoZSBjb250ZW50IG9mIGByZXNwb25zZWAgZG9lcyBub3QgY29udGFpbiB0aGUgZW50aXJlIHJlc3VsdCBzZXQuXG4gICAgICAgICAgICogVG8gZmV0Y2ggdGhlIG5leHQgcGFnZSBvZiB0aGUgcmVzdWx0IHNldCwgY2FsbCB0aGUgc2FtZSBlbmRwb2ludFxuICAgICAgICAgICAqIGJ1dCBzcGVjaWZ5IHRoaXMgdmFsdWUgYXMgdGhlICdwYWdlLnN0YXJ0JyBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICAgICAgICovXG4gICAgICAgICAgbGFzdF9ldmFsdWF0ZWRfa2V5Pzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBQYWdpbmF0ZWRVc2VyRXhwb3J0TGlzdFJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgZXhwb3J0X3JlcXVlc3RzOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJFeHBvcnRJbml0UmVzcG9uc2VcIl1bXTtcbiAgICAgICAgfSAmIHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgc2V0LCB0aGUgY29udGVudCBvZiBgcmVzcG9uc2VgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGVudGlyZSByZXN1bHQgc2V0LlxuICAgICAgICAgICAqIFRvIGZldGNoIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHJlc3VsdCBzZXQsIGNhbGwgdGhlIHNhbWUgZW5kcG9pbnRcbiAgICAgICAgICAgKiBidXQgc3BlY2lmeSB0aGlzIHZhbHVlIGFzIHRoZSAncGFnZS5zdGFydCcgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGxhc3RfZXZhbHVhdGVkX2tleT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgUmV2b2tlVG9rZW5SZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHRva2VuPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb2tlbkluZm9cIl0gfCBudWxsO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFJldm9rZVRva2Vuc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUb2tlbnMgdGhhdCB3ZXJlIHJldm9rZWQuICovXG4gICAgICAgICAgcmV2b2tlZDogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb2tlbkluZm9cIl1bXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBSb2xlSW5mbzoge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSByb2xlIGlzIGVuYWJsZWRcbiAgICAgICAgICAgKiBAZXhhbXBsZSB0cnVlXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIERlcHJlY2F0ZWQgVGhlIEN1YmVTaWduZXIgSURzIG9mIGF0IG1vc3QgMTAwIGtleXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcm9sZSAqL1xuICAgICAgICAgIGtleXM/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIktleUluUm9sZUluZm9cIl1bXSB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcm9sZSAobXVzdCBiZSBhbHBoYW51bWVyaWMpXG4gICAgICAgICAgICogQGV4YW1wbGUgbXlfcm9sZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBQb2xpY3kgdGhhdCBpcyBjaGVja2VkIHdoZW5ldmVyIGEga2V5IGlzIGFjY2Vzc2VkIGZvciBzaWduaW5nIHZpYSB0aGlzIHJvbGUuXG4gICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAqICAge1xuICAgICAgICAgICAqICAgICBcIlNvdXJjZUlwQWxsb3dsaXN0XCI6IFtcbiAgICAgICAgICAgKiAgICAgICBcIjEyMy40NTYuNzguOS8xNlwiXG4gICAgICAgICAgICogICAgIF1cbiAgICAgICAgICAgKiAgIH0sXG4gICAgICAgICAgICogICB7XG4gICAgICAgICAgICogICAgIFwiUmVxdWlyZU1mYVwiOiB7XG4gICAgICAgICAgICogICAgICAgXCJjb3VudFwiOiAxXG4gICAgICAgICAgICogICAgIH1cbiAgICAgICAgICAgKiAgIH1cbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgcG9saWN5PzogUmVjb3JkPHN0cmluZywgbmV2ZXI+W107XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgcm9sZVxuICAgICAgICAgICAqIEBleGFtcGxlIFJvbGUjYmZlM2VjY2ItNzMxZS00MzBkLWIxZTUtYWMxMzYzZTZiMDZiXG4gICAgICAgICAgICovXG4gICAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gRGVwcmVjYXRlZC4gVGhlIGxpc3Qgb2YgYXQgbW9zdCAxMDAgdXNlcnMgd2l0aCBhY2Nlc3MgdG8gdGhlIHJvbGUuICovXG4gICAgICAgICAgdXNlcnM/OiBzdHJpbmdbXSB8IG51bGw7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgU2Vzc2lvbkluZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gQSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBmb3IgdGhlIHNlc3Npb25cbiAgICAgICAgICAgKiBAZXhhbXBsZSBPSURDIGxvZ2luIHNlc3Npb25cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFNlc3Npb24gSUQuIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHNlc3Npb24sIGJ1dCBjYW5ub3QgYmUgdXNlZCBmb3IgYXV0aC5cbiAgICAgICAgICAgKiBAZXhhbXBsZSA3N2FhZDIxMDBjMzYxZjQ5NzYzNWRkMDA1YzRkMTU3ODFlMmU1ZGY0YjlmNDVkOGU3NGYzNzQyNWNiYzMwYjllXG4gICAgICAgICAgICovXG4gICAgICAgICAgc2Vzc2lvbl9pZDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIGZyb20gYW55IG9wZXJhdGlvbiBvcGVyYXRpbmcgb24gbXVsdGlwbGUgc2Vzc2lvbnMgKi9cbiAgICBTZXNzaW9uc1Jlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgbGlzdCBvZiBzZXNzaW9ucyAqL1xuICAgICAgICAgIHNlc3Npb25zOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlNlc3Npb25JbmZvXCJdW107XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgU29sYW5hU2lnblJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBUaGUgaGV4LWVuY29kZWQgc2lnbmF0dXJlLiAqL1xuICAgICAgICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIFN0YWtlUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHZhbGlkYXRvciBrZXkgaWQgKFwiS2V5Iy4uLlwiKVxuICAgICAgICAgICAqIEBleGFtcGxlIEtleSNkYjE3MzFmOC0zNjU5LTQ1YzAtODg1Yi1lMTFlMWY1YjdiZTJcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBjcmVhdGVkX3ZhbGlkYXRvcl9rZXlfaWQ6IHN0cmluZztcbiAgICAgICAgICBkZXBvc2l0X3R4OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkRlcG9zaXRUeG5cIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgVG9rZW5JbmZvOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBTZXNzaW9uIElELiBVc2UgaXQgdG8gcmV2b2tlIGEgc2Vzc2lvbi4gQ2Fubm90IGJlIHVzZWQgZm9yIGF1dGguICovXG4gICAgICAgICAgaGFzaDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVG9rZW5zIHB1cnBvc2UgKi9cbiAgICAgICAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgVG90cEluZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBUT1RQIGNoYWxsZW5nZS5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBUb3RwQ2hhbGxlbmdlIzc4OTJlYmJhLTU2M2UtNDg1Yi1iYjdkLWUyNjI2NzM2MzI4NlxuICAgICAgICAgICAqL1xuICAgICAgICAgIHRvdHBfaWQ6IHN0cmluZztcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gU3RhbmRhcmQgVE9UUCB1cmwgd2hpY2ggaW5jbHVkZXMgZXZlcnl0aGluZyBuZWVkZWQgdG8gaW5pdGlhbGl6ZSBUT1RQLlxuICAgICAgICAgICAqIEBleGFtcGxlIG90cGF1dGg6Ly90b3RwL0N1YmlzdDphbGljZS0lNDBleGFtcGxlLmNvbT9zZWNyZXQ9REFIRjdLQ09UUVdTT01LNFhGRU1OSFhPNEo0MzNPRDcmaXNzdWVyPUN1YmlzdFxuICAgICAgICAgICAqL1xuICAgICAgICAgIHRvdHBfdXJsOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFVuc3Rha2UgcmVzcG9uc2VzIGFyZSBzaWduZWQgdm9sdW50YXJ5IGV4aXQgbWVzc2FnZXMuXG4gICAgICogVGhlIHNjaGVtYSBmb3IgdGhpcyBtZXNzYWdlIGlzIGRlZmluZWRcbiAgICAgKiBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2V0aGVyZXVtL2NvbnNlbnN1cy1zcGVjcy9ibG9iL3YxLjAuMS9zcGVjcy9waGFzZTAvYmVhY29uLWNoYWluLm1kI3NpZ25lZHZvbHVudGFyeWV4aXQpLlxuICAgICAqIFRoaXMgbWVzc2FnZSBjYW4gYmUgZGlyZWN0bHkgUE9TVGVkIHRvIHRoZSBCZWFjb24gbm9kZSdzXG4gICAgICogYC9ldGgvdjEvYmVhY29uL3Bvb2wvdm9sdW50YXJ5X2V4aXRzYCBlbmQtcG9pbnQgKHNlZSBleHBlY3RlZCBzY2hlbWFcbiAgICAgKiBbaGVyZV0oaHR0cHM6Ly9ldGhlcmV1bS5naXRodWIuaW8vYmVhY29uLUFQSXMvIy9CZWFjb24vc3VibWl0UG9vbFZvbHVudGFyeUV4aXQpKS5cbiAgICAgKi9cbiAgICBVbnN0YWtlUmVzcG9uc2U6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBtZXNzYWdlOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlZvbHVudGFyeUV4aXRcIl07XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIEJMUyBzaWduYXR1cmUuXG4gICAgICAgICAgICogQGV4YW1wbGUgMHg5MTBjN2NkNTM3ZWQ5MWNjOGM0YTgyZjNjYmQ4MzJlOWJlOGMyNGEyMmU5Yzg2ZGY0NzlmN2NlNDIwMjVlYTZhMDk2MTliNDE4YjY2NmEwNjBlMjYwZDJhYWUzMWI4ZTUwZTlkMDVjYTM0NDJjN2VlZDNiNTA3ZTUyMDdlMTQ2NzQyNzVmNjhjMmJhODRjNGJmNmI4ZGQzNjRhMzA0YWNhYzhjZmFiMzY4MWUyNTE0YjQ0MDBmOTI0MmJjNjExNjRcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICBVcGRhdGVPcmdSZXNwb25zZToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5ICovXG4gICAgICAgICAgZW5hYmxlZD86IGJvb2xlYW4gfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBvcmcgKG11c3QgYmUgYWxwaGFudW1lcmljKVxuICAgICAgICAgICAqIEBleGFtcGxlIG15X29yZ19uYW1lXG4gICAgICAgICAgICovXG4gICAgICAgICAgbmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgb3JnYW5pemF0aW9uXG4gICAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgICAqL1xuICAgICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IHZhbHVlIG9mIG9yZy13aWRlIHBvbGljaWVzXG4gICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAqICAge1xuICAgICAgICAgICAqICAgICBcIk1heERhaWx5VW5zdGFrZVwiOiA1XG4gICAgICAgICAgICogICB9LFxuICAgICAgICAgICAqICAge1xuICAgICAgICAgICAqICAgICBcIk9yaWdpbkFsbG93bGlzdFwiOiBbXG4gICAgICAgICAgICogICAgICAgXCJodHRwczovL2V4YW1wbGUuY29tXCJcbiAgICAgICAgICAgKiAgICAgXVxuICAgICAgICAgICAqICAgfVxuICAgICAgICAgICAqIF1cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwb2xpY3k/OiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj5bXSB8IG51bGw7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogRm9ybWF0OiBpbnQzMlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgbmV3IHZhbHVlIG9mIHRoZSBUT1RQIGZhaWx1cmUgbGltaXRcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB0b3RwX2ZhaWx1cmVfbGltaXQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEZvcm1hdDogaW50NjRcbiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIG5ldyB2YWx1ZSBvZiB1c2VyLWV4cG9ydCBkZWxheVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHVzZXJfZXhwb3J0X2RlbGF5PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBGb3JtYXQ6IGludDY0XG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBuZXcgdmFsdWUgb2YgdXNlci1leHBvcnQgd2luZG93XG4gICAgICAgICAgICovXG4gICAgICAgICAgdXNlcl9leHBvcnRfd2luZG93PzogbnVtYmVyIHwgbnVsbDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEFuIGVuY3J5cHRlZCB1c2VyLWV4cG9ydCAqL1xuICAgIFVzZXJFeHBvcnRDb21wbGV0ZVJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBleHBvcnRlZCBrZXkgbWF0ZXJpYWwsIGVuY3J5cHRlZCB3aXRoIEFFUy0yNTYtR0NNIHVuZGVyIGEga2V5XG4gICAgICAgICAgICogZGVyaXZlZCBmcm9tIHRoZSBwdWJsaWMga2V5IHN1cHBsaWVkIGluIHRoZSByZXF1ZXN0IHZpYSBIUEtFIChSRkM5MTgwKVxuICAgICAgICAgICAqIHdpdGggREhLRU0oUC0yNTYsIEhLREYtU0hBMjU2KSBhbmQgYmFzZTY0IGVuY29kZWQuXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW5jcnlwdGVkX2tleV9tYXRlcmlhbDogc3RyaW5nO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZXBoZW1lcmFsIHB1YmxpYyBrZXkgdXNlZCBmb3IgSFBLRSBrZXkgZGVyaXZhdGlvbiBhcyBiYXNlNjQtZW5jb2RlZFxuICAgICAgICAgICAqIHVuY29tcHJlc3NlZCBTRUMxIHNlcmlhbGl6YXRpb24uXG4gICAgICAgICAgICovXG4gICAgICAgICAgZXBoZW1lcmFsX3B1YmxpY19rZXk6IHN0cmluZztcbiAgICAgICAgICAvKiogQGRlc2NyaXB0aW9uIFRoZSB1c2VyLWlkIHRvIHdoaWNoIHRoaXMga2V5IGJlbG9uZ3MuICovXG4gICAgICAgICAgdXNlcl9pZDogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKiBAZGVzY3JpcHRpb24gVGhlIHJlc3BvbnNlIHRvIGEgc3VjY2Vzc2Z1bCB1c2VyLWV4cG9ydCBpbml0IHJlcXVlc3QgKi9cbiAgICBVc2VyRXhwb3J0SW5pdFJlc3BvbnNlOiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJFeHBvcnRSZXF1ZXN0XCJdICYge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUga2V5LWlkIGJlaW5nIHJlcXVlc3RlZC5cbiAgICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMHgzYzRkOTBDYzVBZjE2NDRDM0EzQjAxM0JhYTU0ODg5OTczODFEN0M4XG4gICAgICAgICAgICovXG4gICAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gICAgVXNlckluZm86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAvKiogQGV4YW1wbGUgYWxpY2VAZXhhbXBsZS5jb20gKi9cbiAgICAgICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgICAgIC8qKiBAZGVzY3JpcHRpb24gQWxsIG11bHRpLWZhY3RvciBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGNvbmZpZ3VyZWQgZm9yIHRoaXMgdXNlciAqL1xuICAgICAgICAgIG1mYTogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJDb25maWd1cmVkTWZhXCJdW107XG4gICAgICAgICAgLyoqIEBkZXNjcmlwdGlvbiBNRkEgcG9saWN5LCBhcHBsaWVzIGJlZm9yZSBsb2dnaW5nIGluIGFuZCBvdGhlciBzZW5zaXRpdmUgb3BlcmF0aW9ucyAqL1xuICAgICAgICAgIG1mYV9wb2xpY3k/OiB1bmtub3duO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBBbGwgb3JnYW5pemF0aW9ucyB0aGUgdXNlciBiZWxvbmdzIHRvXG4gICAgICAgICAgICogQGV4YW1wbGUgW1xuICAgICAgICAgICAqICAgXCJPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXCJcbiAgICAgICAgICAgKiBdXG4gICAgICAgICAgICovXG4gICAgICAgICAgb3JnX2lkczogc3RyaW5nW107XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBpZCBvZiB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyXG4gICAgICAgICAgICogQGV4YW1wbGUgVXNlciNjM2I5Mzc5Yy00ZThjLTQyMTYtYmQwYS02NWFjZTUzY2Y5OGZcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB1c2VyX2lkOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIHBhcmFtZXRlcnM6IG5ldmVyO1xuICByZXF1ZXN0Qm9kaWVzOiBuZXZlcjtcbiAgaGVhZGVyczogbmV2ZXI7XG4gIHBhdGhJdGVtczogbmV2ZXI7XG59XG5cbmV4cG9ydCB0eXBlICRkZWZzID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG5leHBvcnQgdHlwZSBleHRlcm5hbCA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuZXhwb3J0IGludGVyZmFjZSBvcGVyYXRpb25zIHtcbiAgLyoqXG4gICAqIFVzZXIgSW5mb1xuICAgKiBAZGVzY3JpcHRpb24gVXNlciBJbmZvXG4gICAqXG4gICAqIFJldHJpZXZlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCB1c2VyLlxuICAgKi9cbiAgYWJvdXRNZUxlZ2FjeToge1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiVXNlckluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogR2V0IE9yZ1xuICAgKiBAZGVzY3JpcHRpb24gR2V0IE9yZ1xuICAgKlxuICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgYW4gb3JnYW5pemF0aW9uLlxuICAgKi9cbiAgZ2V0T3JnOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiT3JnSW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBVcGRhdGUgT3JnXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgT3JnXG4gICAqXG4gICAqIFVwZGF0ZSBvcmdhbml6YXRpb24gYXR0cmlidXRlcyAoZW5hYmxlZCBmbGFnLCBuYW1lLCBhbmQgcG9saWNpZXMpLlxuICAgKi9cbiAgdXBkYXRlT3JnOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVwZGF0ZU9yZ1JlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVcGRhdGVPcmdSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIEF2YWxhbmNoZSBYLSBvciBQLUNoYWluIE1lc3NhZ2VcbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gQXZhbGFuY2hlIFgtIG9yIFAtQ2hhaW4gTWVzc2FnZVxuICAgKlxuICAgKiBTaWducyBhbiBBdmFsYW5jaGUgbWVzc2FnZSB3aXRoIGEgZ2l2ZW4gU2VjcEF2YSBrZXkuXG4gICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgKi9cbiAgYXZhU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBBdmFsYW5jaGUgYmVjaDMyIGFkZHJlc3MgZm9ybWF0IHdpdGhvdXQgdGhlIGNoYWluIHByZWZpeFxuICAgICAgICAgKiBAZXhhbXBsZSBhdmF4MWFtNHc2aGZydm1oM2FrZHV6a2p0aHJ0Z3RxYWZhbGNlNmFuOGNyXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBdmFTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkF2YVNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBCaXRjb2luIFRyYW5zYWN0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIEJpdGNvaW4gVHJhbnNhY3Rpb25cbiAgICpcbiAgICogU2lnbnMgYSBCaXRjb2luIHRyYW5zYWN0aW9uIHdpdGggYSBnaXZlbiBrZXkuXG4gICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgKi9cbiAgYnRjU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBiZWNoMzIgZW5jb2Rpbmcgb2YgdGhlIHB1YmxpYyBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgYmMxcTVwNXFrYWU3N2x5ODBrcjRweWZ5dGRxbTdyZjA4ZGRoZGVqbDlnXG4gICAgICAgICAqL1xuICAgICAgICBwdWJrZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJCdGNTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkJ0Y1NpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVyaXZlIEtleSBGcm9tIExvbmctTGl2ZWQgTW5lbW9uaWNcbiAgICogQGRlc2NyaXB0aW9uIERlcml2ZSBLZXkgRnJvbSBMb25nLUxpdmVkIE1uZW1vbmljXG4gICAqXG4gICAqIERlcml2ZXMgYSBrZXkgb2YgYSBzcGVjaWZpZWQgdHlwZSB1c2luZyBhIHN1cHBsaWVkIGRlcml2YXRpb24gcGF0aCBhbmQgYW5cbiAgICogZXhpc3RpbmcgbG9uZy1saXZlZCBtbmVtb25pYy5cbiAgICovXG4gIGRlcml2ZUtleToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJEZXJpdmVLZXlSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQ3JlYXRlS2V5UmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBFSVAtMTkxIERhdGFcbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gRUlQLTE5MSBEYXRhXG4gICAqXG4gICAqIFNpZ25zIGEgbWVzc2FnZSB1c2luZyBFSVAtMTkxIHBlcnNvbmFsX3NpZ24gd2l0aCBhIGdpdmVuIFNlY3AyNTZrMSBrZXkuXG4gICAqL1xuICBlaXAxOTFTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIEVWTSBhZGRyZXNzIG9mIHRoZSBTZWNwMjU2azEga2V5XG4gICAgICAgICAqIEBleGFtcGxlIDB4NDkwMTFhZGJDQzNiQzljMDMwN0JCMDdGMzdEZGExYTFhOWM2OWQyRVxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRWlwMTkxU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFaXAxOTFPcjcxMlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBFSVAtNzEyIFR5cGVkIERhdGFcbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gRUlQLTcxMiBUeXBlZCBEYXRhXG4gICAqXG4gICAqIFNpZ25zIHR5cGVkIGRhdGEgYWNjb3JkaW5nIHRvIEVJUC03MTIgd2l0aCBhIGdpdmVuIFNlY3AyNTZrMSBrZXkuXG4gICAqL1xuICBlaXA3MTJTaWduOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIEhleC1lbmNvZGVkIEVWTSBhZGRyZXNzIG9mIHRoZSBTZWNwMjU2azEga2V5XG4gICAgICAgICAqIEBleGFtcGxlIDB4NDkwMTFhZGJDQzNiQzljMDMwN0JCMDdGMzdEZGExYTFhOWM2OWQyRVxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRWlwNzEyU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFaXAxOTFPcjcxMlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlIFtJZGVudGl0eVByb29mXSBmcm9tIEN1YmVTaWduZXIgdXNlciBzZXNzaW9uXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgW0lkZW50aXR5UHJvb2ZdIGZyb20gQ3ViZVNpZ25lciB1c2VyIHNlc3Npb25cbiAgICpcbiAgICogVGhpcyByb3V0ZSBjYW4gYmUgdXNlZCB0byBwcm92ZSB0byBhbm90aGVyIHBhcnR5IHRoYXQgYSB1c2VyIGhhcyBhXG4gICAqIHZhbGlkIEN1YmVTaWduZXIgc2Vzc2lvbi5cbiAgICpcbiAgICogQ2xpZW50cyBhcmUgaW50ZW5kZWQgdG8gY2FsbCB0aGlzIHJvdXRlIGFuZCBwYXNzIHRoZSByZXR1cm5lZCBldmlkZW5jZVxuICAgKiB0byBhbm90aGVyIHNlcnZpY2Ugd2hpY2ggd2lsbCB2ZXJpZnkgaXQgYnkgbWFraW5nIGEgcmVxdWVzdCB0byBgL3YwL29yZy88b3JnX2lkPi9pZGVudGl0eS92ZXJpZnlgLlxuICAgKi9cbiAgY3JlYXRlUHJvb2ZDdWJlU2lnbmVyOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiSWRlbnRpdHlQcm9vZlwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgW0lkZW50aXR5UHJvb2ZdIGZyb20gT0lEQyB0b2tlblxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFtJZGVudGl0eVByb29mXSBmcm9tIE9JREMgdG9rZW5cbiAgICpcbiAgICogRXhjaGFuZ2UgYW4gT0lEQyBJRCB0b2tlbiAocGFzc2VkIHZpYSB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlcikgZm9yIGEgcHJvb2Ygb2YgYXV0aGVudGljYXRpb24uXG4gICAqXG4gICAqIFRoaXMgcm91dGUgY2FuIGJlIHVzZWQgdG8gcHJvdmUgdG8gYW5vdGhlciBwYXJ0eSB0aGF0IGEgdXNlciBoYXMgbWV0IHRoZVxuICAgKiBhdXRoZW50aWNhdGlvbiByZXF1aXJlbWVudHMgKGFsbG93ZWQgaXNzdWVycyAmIGF1ZGllbmNlcykgZm9yIEN1YmVTaWduZXJcbiAgICogd2l0aG91dCBsZWFraW5nIHRoZWlyIGNyZWRlbnRpYWxzLlxuICAgKlxuICAgKiBDbGllbnRzIGFyZSBpbnRlbmRlZCB0byBjYWxsIHRoaXMgcm91dGUgYW5kIHBhc3MgdGhlIHJldHVybmVkIGV2aWRlbmNlIHRvIGFub3RoZXIgc2VydmljZVxuICAgKiB3aGljaCB3aWxsIHZlcmlmeSBpdCBieSBtYWtpbmcgYSByZXF1ZXN0IHRvIGAvdjAvb3JnLzxvcmdfaWQ+L2lkZW50aXR5L3ZlcmlmeWAuXG4gICAqL1xuICBjcmVhdGVQcm9vZk9pZGM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJJZGVudGl0eVByb29mXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFZlcmlmeSBpZGVudGl0eSBwcm9vZlxuICAgKiBAZGVzY3JpcHRpb24gVmVyaWZ5IGlkZW50aXR5IHByb29mXG4gICAqXG4gICAqIEFsbG93cyBhIHRoaXJkLXBhcnR5IHRvIHZhbGlkYXRlIHByb29mIG9mIGF1dGhlbnRpY2F0aW9uLlxuICAgKlxuICAgKiBXaGVuIGEgdGhpcmQtcGFydHkgaXMgcHJvdmlkZWQgYW4gW0lkZW50aXR5UHJvb2ZdIG9iamVjdCwgdGhleSBtdXN0IGNoZWNrIGl0c1xuICAgKiB2ZXJhY2l0eSBieSBjYWxsaW5nIHRoaXMgZW5kcG9pbnRcbiAgICovXG4gIHZlcmlmeVByb29mOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIklkZW50aXR5UHJvb2ZcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7fTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBLZXktSW1wb3J0IEtleVxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIEtleS1JbXBvcnQgS2V5XG4gICAqXG4gICAqIEdlbmVyYXRlIGFuIGVwaGVtZXJhbCBrZXkgdGhhdCBhIGNsaWVudCBjYW4gdXNlIGZvciBrZXktaW1wb3J0IGVuY3J5cHRpb24uXG4gICAqL1xuICBjcmVhdGVLZXlJbXBvcnRLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJDcmVhdGVLZXlJbXBvcnRLZXlSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbXBvcnQgS2V5XG4gICAqIEBkZXNjcmlwdGlvbiBJbXBvcnQgS2V5XG4gICAqXG4gICAqIFNlY3VyZWx5IGltcG9ydHMgYW4gZXhpc3Rpbmcga2V5IHVzaW5nIGEgcHJldmlvdXNseSBnZW5lcmF0ZWQga2V5LWltcG9ydCBrZXkuXG4gICAqL1xuICBpbXBvcnRLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiSW1wb3J0S2V5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNyZWF0ZUtleVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEludml0ZSBVc2VyXG4gICAqIEBkZXNjcmlwdGlvbiBJbnZpdGUgVXNlclxuICAgKlxuICAgKiBDcmVhdGVzIGEgbmV3IHVzZXIgaW4gYW4gZXhpc3Rpbmcgb3JnIGFuZCBzZW5kcyB0aGF0IHVzZXIgYW4gaW52aXRlIGVtYWlsLlxuICAgKi9cbiAgaW52aXRlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkludml0ZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBLZXlzXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IEtleXNcbiAgICpcbiAgICogR2V0cyB0aGUgbGlzdCBvZiBvd25lZCBrZXlzIGluIGEgZ2l2ZW4gb3JnLlxuICAgKi9cbiAgbGlzdEtleXNJbk9yZzoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkxhc3RFdmFsS2V5XCJdIHwgbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBGaWx0ZXIgYnkga2V5IHR5cGVcbiAgICAgICAgICogQGV4YW1wbGUgU2VjcEV0aEFkZHJcbiAgICAgICAgICovXG4gICAgICAgIGtleV90eXBlPzogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJLZXlUeXBlXCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0S2V5c1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBLZXlcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBLZXlcbiAgICpcbiAgICogQ3JlYXRlcyBvbmUgb3IgbW9yZSBuZXcga2V5cyBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuXG4gICAqL1xuICBjcmVhdGVLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlS2V5UmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkNyZWF0ZUtleVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBLZXlcbiAgICogQGRlc2NyaXB0aW9uIEdldCBLZXlcbiAgICpcbiAgICogUmV0dXJucyB0aGUgcHJvcGVydGllcyBvZiBhIGtleS5cbiAgICovXG4gIGdldEtleUluT3JnOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIEtleVxuICAgICAgICAgKiBAZXhhbXBsZSBLZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBrZXlfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIktleUluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVsZXRlIEtleVxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIEtleVxuICAgKlxuICAgKiBEZWxldGVzIGEga2V5IHNwZWNpZmllZCBieSBpdHMgSUQuXG4gICAqIE9ubHkgdGhlIGtleSBvd25lciBhbmQgb3JnIG93bmVycyBhcmUgYWxsb3dlZCB0byBkZWxldGUga2V5cy5cbiAgICovXG4gIGRlbGV0ZUtleToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBLZXlcbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVXBkYXRlIEtleVxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlIEtleVxuICAgKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBhIGtleS4gIFRoZSB1c2VyIG11c3QgYmUgdGhlIG93bmVyIG9mIHRoZSBrZXkgb3Igb3JnYW5pemF0aW9uIHRvIHBlcmZvcm0gdGhpcyBhY3Rpb24uXG4gICAqL1xuICB1cGRhdGVLZXk6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIGRlc2lyZWQgS2V5XG4gICAgICAgICAqIEBleGFtcGxlIEtleSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVwZGF0ZUtleVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJLZXlJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgUGVuZGluZyBNRkEgUmVxdWVzdHNcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgUGVuZGluZyBNRkEgUmVxdWVzdHNcbiAgICpcbiAgICogUmV0cmlldmVzIGFuZCByZXR1cm5zIGFsbCBwZW5kaW5nIE1GQSByZXF1ZXN0cyB0aGF0IGFyZSBhY2Nlc3NpYmxlIHRvIHRoZSBjdXJyZW50IHVzZXIsXG4gICAqIGkuZS4sIHRob3NlIGluIHdoaWNoIHRoZSBjdXJyZW50IHVzZXIgaXMgbGlzdGVkIGFzIGFuIGFwcHJvdmVyXG4gICAqL1xuICBtZmFMaXN0OiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTGlzdE1mYVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBQZW5kaW5nIE1GQSBSZXF1ZXN0XG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgUGVuZGluZyBNRkEgUmVxdWVzdFxuICAgKlxuICAgKiBSZXRyaWV2ZXMgYW5kIHJldHVybnMgYSBwZW5kaW5nIE1GQSByZXF1ZXN0IGJ5IGl0cyBpZC5cbiAgICovXG4gIG1mYUdldDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE1mYVJlcXVlc3RcbiAgICAgICAgICogQGV4YW1wbGUgTWZhUmVxdWVzdCMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG1mYV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTWZhUmVxdWVzdEluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQXBwcm92ZSBNRkEgUmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gQXBwcm92ZSBNRkEgUmVxdWVzdFxuICAgKlxuICAgKiBBcHByb3ZlIHJlcXVlc3QgYWZ0ZXIgbG9nZ2luZyBpbiB3aXRoIEN1YmVTaWduZXIuIEFkZHMgdGhlIGN1cnJlbnRseS1sb2dnZWQgdXNlciBhcyBhbiBhcHByb3ZlclxuICAgKiBvZiBhIHBlbmRpbmcgTUZBIHJlcXVlc3Qgb2YgdGhlIFtTdGF0dXM6OlJlcXVpcmVkQXBwcm92ZXJzXSBraW5kLiBJZiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mXG4gICAqIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7IHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0b1xuICAgKiByZXN1bWUgdGhlIG9yaWdpbmFsIEhUVFAgcmVxdWVzdC5cbiAgICovXG4gIG1mYUFwcHJvdmVDczoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE1mYVJlcXVlc3RcbiAgICAgICAgICogQGV4YW1wbGUgTWZhUmVxdWVzdCMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG1mYV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTWZhUmVxdWVzdEluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW5pdGlhdGUgQXBwcm92aW5nIGFuIE1GQSBSZXF1ZXN0IHdpdGggRklET1xuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgQXBwcm92aW5nIGFuIE1GQSBSZXF1ZXN0IHdpdGggRklET1xuICAgKlxuICAgKiBJbml0aWF0ZXMgdGhlIGFwcHJvdmFsIHByb2Nlc3Mgb2YgYW4gTUZBIFJlcXVlc3QgdXNpbmcgRklETy5cbiAgICovXG4gIG1mYUFwcHJvdmVGaWRvOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgTWZhUmVxdWVzdFxuICAgICAgICAgKiBAZXhhbXBsZSBNZmFSZXF1ZXN0IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgbWZhX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJGaWRvQXNzZXJ0Q2hhbGxlbmdlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEZpbmFsaXplIGEgRklETyBNRkEgQXBwcm92YWxcbiAgICogQGRlc2NyaXB0aW9uIEZpbmFsaXplIGEgRklETyBNRkEgQXBwcm92YWxcbiAgICpcbiAgICogQWRkcyBhbiBhcHByb3ZlciB0byBhIHBlbmRpbmcgTUZBIHJlcXVlc3QuXG4gICAqXG4gICAqIElmIHRoZSByZXF1aXJlZCBudW1iZXIgb2YgYXBwcm92ZXJzIGlzIHJlYWNoZWQsIHRoZSBNRkEgcmVxdWVzdCBpcyBhcHByb3ZlZDtcbiAgICogdGhlIGNvbmZpcm1hdGlvbiByZWNlaXB0IGNhbiBiZSB1c2VkIHRvIHJlc3VtZSB0aGUgb3JpZ2luYWwgSFRUUCByZXF1ZXN0LlxuICAgKi9cbiAgbWZhQXBwcm92ZUZpZG9Db21wbGV0ZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE1mYVJlcXVlc3RcbiAgICAgICAgICogQGV4YW1wbGUgTWZhUmVxdWVzdCMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG1mYV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZpZG9Bc3NlcnRBbnN3ZXJcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJNZmFSZXF1ZXN0SW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBBcHByb3ZlIGEgVE9UUCBNRkEgUmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gQXBwcm92ZSBhIFRPVFAgTUZBIFJlcXVlc3RcbiAgICpcbiAgICogQWRkcyB0aGUgY3VycmVudCB1c2VyIGFzIGFwcHJvdmVyIHRvIGEgcGVuZGluZyBNRkEgcmVxdWVzdCBieSBwcm92aWRpbmcgVE9UUCBjb2RlLlxuICAgKlxuICAgKiBJZiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIGFwcHJvdmVycyBpcyByZWFjaGVkLCB0aGUgTUZBIHJlcXVlc3QgaXMgYXBwcm92ZWQ7XG4gICAqIHRoZSBjb25maXJtYXRpb24gcmVjZWlwdCBjYW4gYmUgdXNlZCB0byByZXN1bWUgdGhlIG9yaWdpbmFsIEhUVFAgcmVxdWVzdC5cbiAgICovXG4gIG1mYUFwcHJvdmVUb3RwOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgTWZhUmVxdWVzdFxuICAgICAgICAgKiBAZXhhbXBsZSBNZmFSZXF1ZXN0IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgbWZhX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG90cEFwcHJvdmVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTWZhUmVxdWVzdEluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTG9naW4gd2l0aCBPSURDXG4gICAqIEBkZXNjcmlwdGlvbiBMb2dpbiB3aXRoIE9JRENcbiAgICpcbiAgICogRXhjaGFuZ2UgYW4gT0lEQyBJRCB0b2tlbiAocGFzc2VkIHZpYSB0aGUgYEF1dGhvcml6YXRpb25gIGhlYWRlcikgZm9yIGEgc2lnbmVyIHNlc3Npb25cbiAgICovXG4gIG9pZGNBdXRoOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIk9pZGNMb2dpblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJOZXdTZXNzaW9uUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIExpc3QgUm9sZXNcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgUm9sZXNcbiAgICpcbiAgICogUmV0cmlldmVzIGFsbCByb2xlcyBpbiBhbiBvcmdhbml6YXRpb24gdGhhdCB0aGUgY3VycmVudCB1c2VyIGlzIGFsbG93ZWQgdG8gYWNjZXNzLlxuICAgKi9cbiAgbGlzdFJvbGVzOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgICAqIHRoZSBleGFjdCB2YWx1ZSBwcmV2aW91c2x5IHJldHVybmVkIGFzICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHNhbWUgZW5kcG9pbnQuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc3RhcnRcIj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTGFzdEV2YWxLZXlcIl0gfCBudWxsO1xuICAgICAgICAvKiogQGRlc2NyaXB0aW9uIERvbid0IGluY2x1ZGUga2V5cyBhbmQgdXNlcnMgZm9yIGVhY2ggcm9sZSAqL1xuICAgICAgICBzdW1tYXJpemU/OiBib29sZWFuIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0Um9sZXNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgUm9sZVxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlIFJvbGVcbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyByb2xlIGluIGFuIG9yZ2FuaXphdGlvbi4gVW5sZXNzIHRoZSBsb2dnZWQtaW4gdXNlclxuICAgKiBpcyB0aGUgb3duZXIsIHRoZXkgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgcm9sZS5cbiAgICovXG4gIGNyZWF0ZVJvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBPcHRpb25hbCByZXF1ZXN0IGJvZHkgdG8gc2V0IHRoZSByb2xlIG5hbWUgKi9cbiAgICByZXF1ZXN0Qm9keT86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlUm9sZVJlcXVlc3RcIl0gfCBudWxsO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQ3JlYXRlUm9sZVJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBSb2xlXG4gICAqIEBkZXNjcmlwdGlvbiBHZXQgUm9sZVxuICAgKlxuICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgYSByb2xlIGluIGFuIG9yZ2FuaXphdGlvblxuICAgKi9cbiAgZ2V0Um9sZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlJvbGVJbmZvXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIERlbGV0ZSBSb2xlXG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGUgUm9sZVxuICAgKlxuICAgKiBEZWxldGVzIGEgcm9sZSBpbiBhbiBvcmdhbml6YXRpb24uXG4gICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uXG4gICAqL1xuICBkZWxldGVSb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFVwZGF0ZSBSb2xlXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgUm9sZVxuICAgKlxuICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIGEgcm9sZSAodGhpcyByZXF1aXJlcyB0aGUgYG1hbmFnZTpyb2xlOnVwZGF0ZTplbmFibGVgIHNjb3BlKS5cbiAgICogVXBkYXRlcyB0aGUgcm9sZSdzIHBvbGljaWVzICh0aGlzIHJlcXVpcmVzIHRoZSBgbWFuYWdlOnJvbGU6dXBkYXRlOnBvbGljeWAgc2NvcGUpLlxuICAgKiBUaGUgdXNlciBtdXN0IGJlIGluIHRoZSByb2xlIG9yIGFuIG93bmVyIG9mIHRoZSBvcmdhbml6YXRpb24uXG4gICAqL1xuICB1cGRhdGVSb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVwZGF0ZVJvbGVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUm9sZUluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQWRkIEtleXNcbiAgICogQGRlc2NyaXB0aW9uIEFkZCBLZXlzXG4gICAqXG4gICAqIEFkZHMgYSBsaXN0IG9mIGV4aXN0aW5nIGtleXMgdG8gYW4gZXhpc3Rpbmcgcm9sZS5cbiAgICovXG4gIGFkZEtleXNUb1JvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWRkS2V5c1RvUm9sZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7fTtcbiAgfTtcbiAgLyoqXG4gICAqIEFkZCBVc2VyXG4gICAqIEBkZXNjcmlwdGlvbiBBZGQgVXNlclxuICAgKlxuICAgKiBBZGRzIGFuIGV4aXN0aW5nIHVzZXIgdG8gYW4gZXhpc3Rpbmcgcm9sZS5cbiAgICogT25seSB1c2VycyBpbiB0aGUgcm9sZSBvciBvd25lcnMgY2FuIGFkZCB1c2VycyB0byBhIHJvbGUuXG4gICAqL1xuICBhZGRVc2VyVG9Sb2xlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgUm9sZVxuICAgICAgICAgKiBAZXhhbXBsZSBSb2xlIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZV9pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBkZXNpcmVkIFVzZXJcbiAgICAgICAgICogQGV4YW1wbGUgVXNlciMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHVzZXJfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHt9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBSb2xlIEtleXNcbiAgICogQGRlc2NyaXB0aW9uIExpc3QgUm9sZSBLZXlzXG4gICAqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgYWxsIGtleXMgaW4gYSByb2xlLlxuICAgKi9cbiAgbGlzdFJvbGVLZXlzOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcXVlcnk/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTWF4IG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4gcGVyIHBhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJldHVybmVkIGl0ZW1zIG1heSBiZSBsZXNzIHRoYXQgdGhpcywgZXZlbiBpZiB0aGVyZSBleGlzdCBtb3JlXG4gICAgICAgICAqIGRhdGEgaW4gdGhlIHJlc3VsdCBzZXQuIFRvIHJlbGlhYmx5IGRldGVybWluZSBpZiBtb3JlIGRhdGEgaXMgbGVmdCBpbiB0aGUgcmVzdWx0IHNldCxcbiAgICAgICAgICogaW5zcGVjdCB0aGUgW1VuZW5jcnlwdGVkTGFzdEV2YWxLZXldIHZhbHVlIGluIHRoZSByZXNwb25zZSBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc2l6ZVwiPzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBzdGFydCBvZiB0aGUgcGFnZS4gIE9taXQgdG8gc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nOyBvdGhlcndpc2UsIG9ubHkgc3BlY2lmeSBhXG4gICAgICAgICAqIHRoZSBleGFjdCB2YWx1ZSBwcmV2aW91c2x5IHJldHVybmVkIGFzICdsYXN0X2V2YWx1YXRlZF9rZXknIGZyb20gdGhlIHNhbWUgZW5kcG9pbnQuXG4gICAgICAgICAqL1xuICAgICAgICBcInBhZ2Uuc3RhcnRcIj86IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiTGFzdEV2YWxLZXlcIl0gfCBudWxsO1xuICAgICAgfTtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlBhZ2luYXRlZExpc3RSb2xlS2V5c1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJlbW92ZSBLZXlcbiAgICogQGRlc2NyaXB0aW9uIFJlbW92ZSBLZXlcbiAgICpcbiAgICogUmVtb3ZlcyBhIGdpdmVuIGtleSBmcm9tIGEgcm9sZVxuICAgKi9cbiAgcmVtb3ZlS2V5RnJvbVJvbGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSUQgb2YgdGhlIGRlc2lyZWQgS2V5XG4gICAgICAgICAqIEBleGFtcGxlIEtleSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIGtleV9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge307XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IGEgc2luZ2xlIHBhZ2Ugb2YgVG9rZW5zIChEZXByZWNhdGVkKVxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBhIHNpbmdsZSBwYWdlIG9mIFRva2VucyAoRGVwcmVjYXRlZClcbiAgICpcbiAgICogKipEZXByZWNhdGVkKio6IFVzZSBgR0VUIC9vcmcve29yZ19pZH0vc2Vzc2lvbj9yb2xlPWBcbiAgICpcbiAgICogUmV0dXJucyBhbGwgYWNjZXNzIHRva2VucyBmb3IgYSBnaXZlbiByb2xlLlxuICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG93bmVycyBjYW4gY3JlYXRlIGEgdG9rZW4gZm9yIGl0LlxuICAgKi9cbiAgbGlzdFJvbGVUb2tlbnM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJMaXN0VG9rZW5zUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlIFRva2VuXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGUgVG9rZW5cbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyBhY2Nlc3MgdG9rZW4gZm9yIGEgZ2l2ZW4gcm9sZSAodG8gYmUgdXNlZCBhcyBcIkFQSSBLZXlcIiBmb3IgYWxsIHNpZ25pbmcgYWN0aW9ucykuXG4gICAqIE9ubHkgdXNlcnMgaW4gdGhlIHJvbGUgb3Igb3duZXJzIGNhbiBjcmVhdGUgYSB0b2tlbiBmb3IgaXQuXG4gICAqL1xuICBjcmVhdGVSb2xlVG9rZW46IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQ3JlYXRlVG9rZW5SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJldm9rZSBBbGwgVG9rZW5zIChEZXByZWNhdGVkKVxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAZGVzY3JpcHRpb24gUmV2b2tlIEFsbCBUb2tlbnMgKERlcHJlY2F0ZWQpXG4gICAqXG4gICAqICoqRGVwcmVjYXRlZCoqOiBVc2UgYERFTEVURSAvb3JnL3tvcmdfaWR9L3Nlc3Npb24/cm9sZT1gIGluc3RlYWRcbiAgICpcbiAgICogUmV2b2tlcyBhbGwgYWNjZXNzIHRva2VucyBhc3NvY2lhdGVkIHdpdGggYSByb2xlLlxuICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG93bmVycyBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICovXG4gIHJldm9rZUFsbFJvbGVUb2tlbnM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJSZXZva2VUb2tlbnNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZXZva2UgVG9rZW4gKERlcHJlY2F0ZWQpXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEBkZXNjcmlwdGlvbiBSZXZva2UgVG9rZW4gKERlcHJlY2F0ZWQpXG4gICAqXG4gICAqICoqRGVwcmVjYXRlZCoqOiBVc2UgYERFTEVURSAvb3JnL3tvcmdfaWR9L3Nlc3Npb24ve3Nlc3Npb25faWR9YFxuICAgKlxuICAgKiBSZXZva2VzIGFuIGFjY2VzcyB0b2tlbiBhc3NvY2lhdGVkIHdpdGggYSByb2xlLlxuICAgKiBPbmx5IHVzZXJzIGluIHRoZSByb2xlIG9yIG93bmVycyBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi5cbiAgICovXG4gIHJldm9rZVJvbGVUb2tlbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIFJvbGVcbiAgICAgICAgICogQGV4YW1wbGUgUm9sZSMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIHJvbGVfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgSUQgb2YgdGhlIHNlc3Npb24gdG8gcmV2b2tlXG4gICAgICAgICAqIEBleGFtcGxlIDc3YWFkMjEwMGMzNjFmNDk3NjM1ZGQwMDVjNGQxNTc4MWUyZTVkZjRiOWY0NWQ4ZTc0ZjM3NDI1Y2JjMzBiOWVcbiAgICAgICAgICovXG4gICAgICAgIHNlc3Npb25faWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIlJldm9rZVRva2VuUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBSb2xlIFVzZXJzLlxuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBSb2xlIFVzZXJzLlxuICAgKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGFsbCB1c2VycyB3aG8gaGF2ZSBhY2Nlc3MgdG8gYSByb2xlLlxuICAgKi9cbiAgbGlzdFJvbGVVc2Vyczoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkxhc3RFdmFsS2V5XCJdIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBSb2xlXG4gICAgICAgICAqIEBleGFtcGxlIFJvbGUjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICByb2xlX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRMaXN0Um9sZVVzZXJzUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogTGlzdCBzZXNzaW9uc1xuICAgKiBAZGVzY3JpcHRpb24gTGlzdCBzZXNzaW9uc1xuICAgKlxuICAgKiBJZiBubyBxdWVyeSBwYXJhbWV0ZXJzIGFyZSBwcm92aWRlZCwgaW5mb3JtYXRpb24gZm9yIHRoZSBjdXJyZW50IHNlc3Npb24gaXMgcmV0dXJuZWRcbiAgICovXG4gIGxpc3RTZXNzaW9uczoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkxhc3RFdmFsS2V5XCJdIHwgbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBwcm92aWRlZCwgdGhlIG5hbWUgb3IgSUQgb2YgYSByb2xlIHRvIG9wZXJhdGUgb25cbiAgICAgICAgICogQGV4YW1wbGUgbXktcm9sZVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZT86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiUGFnaW5hdGVkU2Vzc2lvbnNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBDcmVhdGUgbmV3IHVzZXIgc2Vzc2lvbiAobWFuYWdlbWVudCBhbmQvb3Igc2lnbmluZylcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBuZXcgdXNlciBzZXNzaW9uIChtYW5hZ2VtZW50IGFuZC9vciBzaWduaW5nKVxuICAgKlxuICAgKiBDcmVhdGVzIGEgbmV3IHVzZXIgc2Vzc2lvbiwgc2lsZW50bHkgdHJ1bmNhdGluZyByZXF1ZXN0ZWQgc2Vzc2lvbiBhbmQgYXV0aCBsaWZldGltZXNcbiAgICogdG8gYmUgYXQgbW9zdCByZXF1ZXN0b3IncyBzZXNzaW9uIGFuZCBhdXRoIGxpZmV0aW1lLCByZXNwZWN0aXZlbHkuXG4gICAqL1xuICBjcmVhdGVTZXNzaW9uOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkNyZWF0ZVNlc3Npb25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiTmV3U2Vzc2lvblJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJldm9rZSBleGlzdGluZyBzZXNzaW9uKHMpXG4gICAqIEBkZXNjcmlwdGlvbiBSZXZva2UgZXhpc3Rpbmcgc2Vzc2lvbihzKVxuICAgKlxuICAgKiBJbW1lZGlhdGVseSByZXZva2VzIGV4aXN0aW5nIHNlc3Npb25zLCBwcmV2ZW50aW5nIHRoZW0gZnJvbSBiZWluZyB1c2VkIG9yIHJlZnJlc2hlZC5cbiAgICogSWYgbm8gcXVlcnkgcGFyYW1zIGFyZSBwcm92aWRlZCwgdGhlIGN1cnJlbnQgc2Vzc2lvbiBpcyByZXZva2VkLlxuICAgKi9cbiAgcmV2b2tlU2Vzc2lvbnM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBwcm92aWRlZCwgdGhlIG5hbWUgb3IgSUQgb2YgYSByb2xlIHRvIG9wZXJhdGUgb25cbiAgICAgICAgICogQGV4YW1wbGUgbXktcm9sZVxuICAgICAgICAgKi9cbiAgICAgICAgcm9sZT86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU2Vzc2lvbnNSZXNwb25zZVwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZXZva2UgY3VycmVudCBzZXNzaW9uXG4gICAqIEBkZXNjcmlwdGlvbiBSZXZva2UgY3VycmVudCBzZXNzaW9uXG4gICAqXG4gICAqIEltbWVkaWF0ZWx5IHJldm9rZXMgdGhlIGN1cnJlbnQgc2Vzc2lvbiwgcHJldmVudGluZyBpdCBmcm9tIGJlaW5nIHVzZWQgb3IgcmVmcmVzaGVkXG4gICAqL1xuICByZXZva2VDdXJyZW50U2Vzc2lvbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBHZXQgc2Vzc2lvbiBpbmZvcm1hdGlvblxuICAgKiBAZGVzY3JpcHRpb24gR2V0IHNlc3Npb24gaW5mb3JtYXRpb25cbiAgICovXG4gIGdldFNlc3Npb246IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIElEIG9mIHRoZSBzZXNzaW9uIHRvIGdldFxuICAgICAgICAgKiBAZXhhbXBsZSA3N2FhZDIxMDBjMzYxZjQ5NzYzNWRkMDA1YzRkMTU3ODFlMmU1ZGY0YjlmNDVkOGU3NGYzNzQyNWNiYzMwYjllXG4gICAgICAgICAqL1xuICAgICAgICBzZXNzaW9uX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTZXNzaW9uSW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBSZXZva2UgYSBzZXNzaW9uXG4gICAqIEBkZXNjcmlwdGlvbiBSZXZva2UgYSBzZXNzaW9uXG4gICAqXG4gICAqIEltbWVkaWF0ZWx5IHJldm9rZXMgYW4gZXhpc3Rpbmcgc2Vzc2lvbiwgcHJldmVudGluZyBpdCBmcm9tIGJlaW5nIHVzZWQgb3IgcmVmcmVzaGVkXG4gICAqL1xuICByZXZva2VTZXNzaW9uOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBJRCBvZiB0aGUgc2Vzc2lvbiB0byByZXZva2VcbiAgICAgICAgICogQGV4YW1wbGUgNzdhYWQyMTAwYzM2MWY0OTc2MzVkZDAwNWM0ZDE1NzgxZTJlNWRmNGI5ZjQ1ZDhlNzRmMzc0MjVjYmMzMGI5ZVxuICAgICAgICAgKi9cbiAgICAgICAgc2Vzc2lvbl9pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU2Vzc2lvbkluZm9cIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBTb2xhbmEgTWVzc2FnZVxuICAgKiBAZGVzY3JpcHRpb24gU2lnbiBTb2xhbmEgTWVzc2FnZVxuICAgKlxuICAgKiBTaWducyBhIFNvbGFuYSBtZXNzYWdlIHdpdGggYSBnaXZlbiBrZXkuXG4gICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgKi9cbiAgc29sYW5hU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgYmFzZTU4LWVuY29kZWQgcHVibGljIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSA4NlpSUHN6QnA1RW9Qajd3UjNiSG43d25BWjVpWWZwYXNSYzdES0ZQVFVhWlxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU29sYW5hU2lnblJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJTb2xhbmFTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEdldCBUb2tlbi1BY2Nlc3NpYmxlIEtleXNcbiAgICogQGRlc2NyaXB0aW9uIEdldCBUb2tlbi1BY2Nlc3NpYmxlIEtleXNcbiAgICpcbiAgICogUmV0cmlldmVzIHRoZSBrZXlzIHRoYXQgdGhlIHJvbGUgdG9rZW4gY2FuIGFjY2Vzcy5cbiAgICovXG4gIGxpc3RUb2tlbktleXM6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJLZXlJbmZvc1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBVc2VyIEluZm9cbiAgICogQGRlc2NyaXB0aW9uIFVzZXIgSW5mb1xuICAgKlxuICAgKiBSZXRyaWV2ZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgdXNlci5cbiAgICovXG4gIGFib3V0TWU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVc2VySW5mb1wiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IG91dHN0YW5kaW5nIHVzZXItZXhwb3J0IHJlcXVlc3RzXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0IG91dHN0YW5kaW5nIHVzZXItZXhwb3J0IHJlcXVlc3RzXG4gICAqL1xuICB1c2VyRXhwb3J0TGlzdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHF1ZXJ5Pzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuIHBlciBwYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiB0aGUgYWN0dWFsIG51bWJlciBvZiByZXR1cm5lZCBpdGVtcyBtYXkgYmUgbGVzcyB0aGF0IHRoaXMsIGV2ZW4gaWYgdGhlcmUgZXhpc3QgbW9yZVxuICAgICAgICAgKiBkYXRhIGluIHRoZSByZXN1bHQgc2V0LiBUbyByZWxpYWJseSBkZXRlcm1pbmUgaWYgbW9yZSBkYXRhIGlzIGxlZnQgaW4gdGhlIHJlc3VsdCBzZXQsXG4gICAgICAgICAqIGluc3BlY3QgdGhlIFtVbmVuY3J5cHRlZExhc3RFdmFsS2V5XSB2YWx1ZSBpbiB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnNpemVcIj86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnQgb2YgdGhlIHBhZ2UuICBPbWl0IHRvIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZzsgb3RoZXJ3aXNlLCBvbmx5IHNwZWNpZnkgYVxuICAgICAgICAgKiB0aGUgZXhhY3QgdmFsdWUgcHJldmlvdXNseSByZXR1cm5lZCBhcyAnbGFzdF9ldmFsdWF0ZWRfa2V5JyBmcm9tIHRoZSBzYW1lIGVuZHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgXCJwYWdlLnN0YXJ0XCI/OiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkxhc3RFdmFsS2V5XCJdIHwgbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJZiBwcm92aWRlZCwgdGhlIHVzZXItaWQgd2hvc2UgdXNlci1leHBvcnQgcmVxdWVzdHMgdG8gbGlzdC4gRGVmYXVsdHMgdG8gdGhlXG4gICAgICAgICAqIGN1cnJlbnQgdXNlci4gIE9ubHkgdGhlIG9yZyBvd25lciBtYXkgbGlzdCByZXF1ZXN0cyBmb3IgYW5vdGhlciB1c2VyLlxuICAgICAgICAgKiBAZXhhbXBsZSBVc2VyIzgwNmM5NTQ0LWYxZmEtNGJhZC04ZDRkLTEwOTdhMTg0NDcyNlxuICAgICAgICAgKi9cbiAgICAgICAgdXNlcl9pZD86IHN0cmluZyB8IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWYgcHJvdmlkZWQsIHRoZSBrZXktaWQgZm9yIHdoaWNoIHRvIGxpc3QgYW4gZXhpc3RpbmcgdXNlci1leHBvcnQgcmVxdWVzdC5cbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzB4M2M0ZDkwQ2M1QWYxNjQ0QzNBM0IwMTNCYWE1NDg4OTk3MzgxRDdDOFxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH07XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJQYWdpbmF0ZWRVc2VyRXhwb3J0TGlzdFJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYXRlIGEgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhdGUgYSB1c2VyLWV4cG9ydCByZXF1ZXN0XG4gICAqXG4gICAqIFRoaXMgc3RhcnRzIGEgZGVsYXkgKHdob3NlIGxlbmd0aCBpcyBkZXRlcm1pbmVkIGJ5IE9yZy13aWRlIHNldHRpbmdzKVxuICAgKiBiZWZvcmUgZXhwb3J0IGNhbiBiZSBjb21wbGV0ZWQsIGFuZCByZXR1cm5zIGEgdGlja2V0IHRoYXQgY2FuIGJlIHVzZWRcbiAgICogdG8gY29tcGxldGUgdGhlIGV4cG9ydCBvbmNlIHRoZSB0aW1lciBoYXMgZXhwaXJlZC5cbiAgICpcbiAgICogT25seSBvbmUgdXNlci1leHBvcnQgcmVxdWVzdCBjYW4gYmUgYWN0aXZlIGZvciBhIGdpdmVuIGtleS4gSWYgdGhlcmVcbiAgICogaXMgYWxyZWFkeSBhbiBhY3RpdmUgZXhwb3J0LCB0aGlzIGVuZHBvaW50IHdpbGwgcmV0dXJuIGFuIGVycm9yLiBUb1xuICAgKiBjcmVhdGUgYSBuZXcgcmVxdWVzdCwgZmlyc3QgZGVsZXRlIHRoZSBleGlzdGluZyBvbmUuXG4gICAqL1xuICB1c2VyRXhwb3J0SW5pdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJVc2VyRXhwb3J0SW5pdFJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVc2VyRXhwb3J0SW5pdFJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBEZWxldGUgYW4gZXhpc3RpbmcgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlIGFuIGV4aXN0aW5nIHVzZXItZXhwb3J0IHJlcXVlc3RcbiAgICovXG4gIHVzZXJFeHBvcnREZWxldGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBxdWVyeToge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIFRoZSBrZXktaWQgd2hvc2UgZXhwb3J0IHJlcXVlc3Qgc2hvdWxkIGJlIGRlbGV0ZWRcbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzB4M2M0ZDkwQ2M1QWYxNjQ0QzNBM0IwMTNCYWE1NDg4OTk3MzgxRDdDOFxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHVzZXItaWQgd2hvIG93bnMgdGhpcyByZXF1ZXN0LiBJZiBvbWl0dGVkLCBkZWZhdWx0cyB0byB0aGUgY3VycmVudCB1c2VyLlxuICAgICAgICAgKiBPbmx5IHRoZSBvcmcgb3duZXIgbWF5IGRlbGV0ZSB1c2VyLWV4cG9ydCByZXF1ZXN0cyBmb3IgYW5vdGhlciB1c2VyLlxuICAgICAgICAgKiBAZXhhbXBsZSBVc2VyIzgwNmM5NTQ0LWYxZmEtNGJhZC04ZDRkLTEwOTdhMTg0NDcyNlxuICAgICAgICAgKi9cbiAgICAgICAgdXNlcl9pZD86IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIENvbXBsZXRlIGEgdXNlci1leHBvcnQgcmVxdWVzdFxuICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGUgYSB1c2VyLWV4cG9ydCByZXF1ZXN0XG4gICAqXG4gICAqIFRoaXMgZW5kcG9pbnQgY2FuIGJlIGNhbGxlZCBvbmx5IGFmdGVyIGluaXRpYXRpbmcgYSB1c2VyLWV4cG9ydCByZXF1ZXN0IHZpYVxuICAgKiB0aGUgYHVzZXJfZXhwb3J0X2luaXRgIEFQSSwgYW5kIG9ubHkgd2l0aGluIHRoZSBzdWJzZXF1ZW50IGV4cG9ydCB3aW5kb3dcbiAgICogKGkuZS4sIGFmdGVyIHRoZSBleHBvcnQgZGVsYXkgaGFzIHBhc3NlZCBhbmQgYmVmb3JlIHRoZSByZXF1ZXN0IGhhcyBleHBpcmVkKS5cbiAgICpcbiAgICogVG8gY2hlY2sgb24gdGhlIHN0YXR1cyBvZiBhbiBleHBvcnQgcmVxdWVzdCwgc2VlIHRoZSBgdXNlcl9leHBvcnRfbGlzdGAgQVBJLlxuICAgKi9cbiAgdXNlckV4cG9ydENvbXBsZXRlOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlVzZXJFeHBvcnRDb21wbGV0ZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVc2VyRXhwb3J0Q29tcGxldGVSZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW5pdGlhdGUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYXRlIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAqXG4gICAqIEdlbmVyYXRlcyBhIGNoYWxsZW5nZSB0aGF0IG11c3QgYmUgYW5zd2VyZWQgdG8gcHJvdmUgb3duZXJzaGlwIG9mIGEga2V5XG4gICAqL1xuICB1c2VyUmVnaXN0ZXJGaWRvSW5pdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJGaWRvQ3JlYXRlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkZpZG9DcmVhdGVDaGFsbGVuZ2VSZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRmluYWxpemUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICogQGRlc2NyaXB0aW9uIEZpbmFsaXplIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAqXG4gICAqIEFjY2VwdHMgdGhlIHJlc3BvbnNlIHRvIHRoZSBjaGFsbGVuZ2UgZ2VuZXJhdGVkIGJ5IHRoZSBQT1NUIHRvIHRoaXMgZW5kcG9pbnQuXG4gICAqL1xuICB1c2VyUmVnaXN0ZXJGaWRvQ29tcGxldGU6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRmlkb0NyZWF0ZUNoYWxsZW5nZUFuc3dlclwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBEZWxldGUgRklETyBrZXlcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBGSURPIGtleVxuICAgKlxuICAgKiBEZWxldGVzIGEgRklETyBrZXkgZnJvbSB0aGUgdXNlcidzIGFjY291bnQgKGlmIHRoZSBrZXkgaXMgbm90IHRoZSBzb2xlIE1GQSBmYWN0b3IpLiBNRkEgaXMgYWx3YXlzIHJlcXVpcmVkLlxuICAgKi9cbiAgdXNlckRlbGV0ZUZpZG86IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBGaWRvS2V5XG4gICAgICAgICAqIEBleGFtcGxlIEZpZG9LZXkjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBmaWRvX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRW1wdHlcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogSW5pdGlhbGl6ZSBUT1RQIFJlc2V0XG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplIFRPVFAgUmVzZXRcbiAgICpcbiAgICogQ3JlYXRlcyBhIG5ldyBUT1RQIGNoYWxsZW5nZSB0aGF0IG11c3QgYmUgYW5zd2VyZWQgdG8gcHJvdmUgdGhhdCB0aGUgbmV3IFRPVFBcbiAgICogd2FzIHN1Y2Nlc3NmdWxseSBpbXBvcnRlZCBpbnRvIGFuIGF1dGhlbnRpY2F0b3IgYXBwLlxuICAgKlxuICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBhbGxvd2VkIGlmIEVJVEhFUlxuICAgKiAtIHRoZSB1c2VyIGFjY291bnQgaXMgbm90IHlldCBpbml0aWFsaXplZCBhbmQgbm8gVE9UUCBpcyBhbHJlYWR5IHNldCwgT1JcbiAgICogLSB0aGUgdXNlciBoYXMgbm90IGNvbmZpZ3VyZWQgYW55IGF1dGggZmFjdG9ycztcbiAgICogb3RoZXJ3aXNlLCBNRkEgaXMgcmVxdWlyZWQuXG4gICAqL1xuICB1c2VyUmVzZXRUb3RwSW5pdDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keT86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG90cFJlc2V0UmVxdWVzdFwiXSB8IG51bGw7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJUb3RwSW5mb1wiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRGVsZXRlIFRPVFBcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZSBUT1RQXG4gICAqXG4gICAqIERlbGV0ZXMgVE9UUCBmcm9tIHRoZSB1c2VyJ3MgYWNjb3VudCAoaWYgVE9UUCBpcyBub3QgdGhlIHNvbGUgTUZBIGZhY3RvcikuIE1GQSBpcyBhbHdheXMgcmVxdWlyZWQuXG4gICAqL1xuICB1c2VyRGVsZXRlVG90cDoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFbXB0eVwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBGaW5hbGl6ZSByZXNldHRpbmcgVE9UUFxuICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgcmVzZXR0aW5nIFRPVFBcbiAgICpcbiAgICogQ2hlY2tzIGlmIHRoZSByZXNwb25zZSBjb250YWlucyB0aGUgY29ycmVjdCBUT1RQIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGVcbiAgICogY2hhbGxlbmdlIGdlbmVyYXRlZCBieSB0aGUgUE9TVCBtZXRob2Qgb2YgdGhpcyBlbmRwb2ludC5cbiAgICovXG4gIHVzZXJSZXNldFRvdHBDb21wbGV0ZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJUb3RwQ2hhbGxlbmdlQW5zd2VyXCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFZlcmlmeSBUT1RQXG4gICAqIEBkZXNjcmlwdGlvbiBWZXJpZnkgVE9UUFxuICAgKlxuICAgKiBDaGVja3MgaWYgYSBnaXZlbiBjb2RlIG1hdGNoZXMgdGhlIGN1cnJlbnQgVE9UUCBjb2RlIGZvciB0aGUgY3VycmVudCB1c2VyLlxuICAgKiBFcnJvcnMgd2l0aCA0MDMgaWYgdGhlIGN1cnJlbnQgdXNlciBoYXMgbm90IHNldCB1cCBUT1RQIG9yIHRoZSBjb2RlIGZhaWxzIHZlcmlmaWNhdGlvbi5cbiAgICovXG4gIHVzZXJWZXJpZnlUb3RwOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRvdHBBcHByb3ZlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBMaXN0IHVzZXJzIGluIG9yZ2FuaXphdGlvblxuICAgKiBAZGVzY3JpcHRpb24gTGlzdCB1c2VycyBpbiBvcmdhbml6YXRpb25cbiAgICovXG4gIGxpc3RVc2Vyc0luT3JnOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIE5hbWUgb3IgSUQgb2YgdGhlIGRlc2lyZWQgT3JnXG4gICAgICAgICAqIEBleGFtcGxlIE9yZyMxMjRkZmUzZS0zYmJkLTQ4N2QtODBjMC01M2M1NWU4YWI4N2FcbiAgICAgICAgICovXG4gICAgICAgIG9yZ19pZDogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiR2V0VXNlcnNJbk9yZ1Jlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEFkZCBhIHRoaXJkLXBhcnR5IHVzZXIgdG8gdGhlIG9yZ1xuICAgKiBAZGVzY3JpcHRpb24gQWRkIGEgdGhpcmQtcGFydHkgdXNlciB0byB0aGUgb3JnXG4gICAqL1xuICBjcmVhdGVPaWRjVXNlcjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXF1ZXN0Qm9keToge1xuICAgICAgY29udGVudDoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBZGRUaGlyZFBhcnR5VXNlclJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJBZGRUaGlyZFBhcnR5VXNlclJlc3BvbnNlXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJlbW92ZSBhIHRoaXJkLXBhcnR5IHVzZXIgZnJvbSB0aGUgb3JnXG4gICAqIEBkZXNjcmlwdGlvbiBSZW1vdmUgYSB0aGlyZC1wYXJ0eSB1c2VyIGZyb20gdGhlIG9yZ1xuICAgKi9cbiAgZGVsZXRlT2lkY1VzZXI6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiT0lEQ0lkZW50aXR5XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIEluaXRpYXRlIHJlZ2lzdHJhdGlvbiBvZiBhIEZJRE8ga2V5XG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWF0ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgKlxuICAgKiBHZW5lcmF0ZXMgYSBjaGFsbGVuZ2UgdGhhdCBtdXN0IGJlIGFuc3dlcmVkIHRvIHByb3ZlIG93bmVyc2hpcCBvZiBhIGtleVxuICAgKi9cbiAgcmVnaXN0ZXJGaWRvSW5pdExlZ2FjeToge1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkZpZG9DcmVhdGVSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRmlkb0NyZWF0ZUNoYWxsZW5nZVJlc3BvbnNlXCJdO1xuICAgICAgMjAyOiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJBY2NlcHRlZFJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBGaW5hbGl6ZSByZWdpc3RyYXRpb24gb2YgYSBGSURPIGtleVxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAZGVzY3JpcHRpb24gRmluYWxpemUgcmVnaXN0cmF0aW9uIG9mIGEgRklETyBrZXlcbiAgICpcbiAgICogQWNjZXB0cyB0aGUgcmVzcG9uc2UgdG8gdGhlIGNoYWxsZW5nZSBnZW5lcmF0ZWQgYnkgdGhlIFBPU1QgdG8gdGhpcyBlbmRwb2ludC5cbiAgICovXG4gIHJlZ2lzdGVyRmlkb0NvbXBsZXRlTGVnYWN5OiB7XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRmlkb0NyZWF0ZUNoYWxsZW5nZUFuc3dlclwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBJbml0aWFsaXplIFRPVFAgUmVzZXRcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemUgVE9UUCBSZXNldFxuICAgKlxuICAgKiBDcmVhdGVzIGEgbmV3IFRPVFAgY2hhbGxlbmdlIHRoYXQgbXVzdCBiZSBhbnN3ZXJlZCB0byBwcm92ZSB0aGF0IHRoZSBuZXcgVE9UUFxuICAgKiB3YXMgc3VjY2Vzc2Z1bGx5IGltcG9ydGVkIGludG8gYW4gYXV0aGVudGljYXRvciBhcHAuXG4gICAqXG4gICAqIFRoaXMgb3BlcmF0aW9uIGlzIGFsbG93ZWQgaWYgRUlUSEVSXG4gICAqIC0gdGhlIHVzZXIgYWNjb3VudCBpcyBub3QgeWV0IGluaXRpYWxpemVkIGFuZCBubyBUT1RQIGlzIGFscmVhZHkgc2V0LCBPUlxuICAgKiAtIHRoZSB1c2VyIGhhcyBub3QgY29uZmlndXJlZCBhbnkgYXV0aCBmYWN0b3JzO1xuICAgKiBvdGhlcndpc2UsIE1GQSBpcyByZXF1aXJlZC5cbiAgICovXG4gIHJlc2V0VG90cEluaXRMZWdhY3k6IHtcbiAgICByZXF1ZXN0Qm9keT86IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVG90cFJlc2V0UmVxdWVzdFwiXSB8IG51bGw7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJUb3RwSW5mb1wiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogRmluYWxpemUgcmVzZXR0aW5nIFRPVFBcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQGRlc2NyaXB0aW9uIEZpbmFsaXplIHJlc2V0dGluZyBUT1RQXG4gICAqXG4gICAqIENoZWNrcyBpZiB0aGUgcmVzcG9uc2UgY29udGFpbnMgdGhlIGNvcnJlY3QgVE9UUCBjb2RlIGNvcnJlc3BvbmRpbmcgdG8gdGhlXG4gICAqIGNoYWxsZW5nZSBnZW5lcmF0ZWQgYnkgdGhlIFBPU1QgbWV0aG9kIG9mIHRoaXMgZW5kcG9pbnQuXG4gICAqL1xuICByZXNldFRvdHBDb21wbGV0ZUxlZ2FjeToge1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRvdHBDaGFsbGVuZ2VBbnN3ZXJcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJFbXB0eUltcGxcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogVmVyaWZ5IFRPVFBcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQGRlc2NyaXB0aW9uIFZlcmlmeSBUT1RQXG4gICAqXG4gICAqIENoZWNrcyBpZiBhIGdpdmVuIGNvZGUgbWF0Y2hlcyB0aGUgY3VycmVudCBUT1RQIGNvZGUgZm9yIHRoZSBjdXJyZW50IHVzZXIuXG4gICAqIEVycm9ycyB3aXRoIDQwMyBpZiB0aGUgY3VycmVudCB1c2VyIGhhcyBub3Qgc2V0IHVwIFRPVFAgb3IgdGhlIGNvZGUgZmFpbHMgdmVyaWZpY2F0aW9uLlxuICAgKi9cbiAgdmVyaWZ5VG90cExlZ2FjeToge1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIlRvdHBBcHByb3ZlUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkVtcHR5SW1wbFwiXTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkVycm9yUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIC8qKlxuICAgKiBTaWduIFJhdyBCbG9iXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIFJhdyBCbG9iXG4gICAqXG4gICAqIFNpZ25zIGFuIGFyYml0cmFyeSBibG9iIHdpdGggYSBnaXZlbiBrZXkuXG4gICAqIFRoaXMgaXMgYSBwcmUtcmVsZWFzZSBmZWF0dXJlLlxuICAgKlxuICAgKiAtIEVDRFNBIHNpZ25hdHVyZXMgYXJlIHNlcmlhbGl6ZWQgYXMgYmlnLWVuZGlhbiByIGFuZCBzIHBsdXMgcmVjb3ZlcnktaWRcbiAgICogYnl0ZSB2LCB3aGljaCBjYW4gaW4gZ2VuZXJhbCB0YWtlIGFueSBvZiB0aGUgdmFsdWVzIDAsIDEsIDIsIG9yIDMuXG4gICAqXG4gICAqIC0gRWREU0Egc2lnbmF0dXJlcyBhcmUgc2VyaWFsaXplZCBpbiB0aGUgc3RhbmRhcmQgZm9ybWF0LlxuICAgKlxuICAgKiAtIEJMUyBzaWduYXR1cmVzIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHRoZSBibG9iLXNpZ24gZW5kcG9pbnQuXG4gICAqL1xuICBibG9iU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBJRCBvZiB0aGUgZGVzaXJlZCBLZXlcbiAgICAgICAgICogQGV4YW1wbGUgS2V5IzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAga2V5X2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQmxvYlNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiQmxvYlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogUmVjb3JkIGhlYXJ0YmVhdFxuICAgKiBAZGVzY3JpcHRpb24gUmVjb3JkIGhlYXJ0YmVhdFxuICAgKlxuICAgKiBUaGlzIGVuZHBvaW50IGlzIGNhbGxlZCBieSB0aGUgY3ViZTNzaWduZXIgcHJveHkgdG8gcmVjb3JkIHZhcmlvdXMgbWV0cmljcyB0byBDbG91ZFdhdGNoLlxuICAgKi9cbiAgY3ViZTNzaWduZXJIZWFydGJlYXQ6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk/OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkhlYXJ0YmVhdFJlcXVlc3RcIl0gfCBudWxsO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRW1wdHlJbXBsXCJdO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gRVZNIFRyYW5zYWN0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIEVWTSBUcmFuc2FjdGlvblxuICAgKlxuICAgKiBTaWducyBhbiBFdGhlcmV1bSAoYW5kIG90aGVyIEVWTSkgdHJhbnNhY3Rpb24gd2l0aCBhIGdpdmVuIFNlY3AyNTZrMSBrZXkuXG4gICAqIFJldHVybnMgYW4gUkxQLWVuY29kZWQgdHJhbnNhY3Rpb24gd2l0aCBFSVAtMTU1IHNpZ25hdHVyZS5cbiAgICpcbiAgICogVGhlIGtleSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZSBhbmQgb3JnYW5pemF0aW9uIG9uIHdob3NlIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAqL1xuICBldGgxU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCBldGhlcmV1bSBhZGRyZXNzIG9mIHRoZSBzZWNwIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSAweDQ5MDExYWRiQ0MzYkM5YzAzMDdCQjA3RjM3RGRhMWExYTljNjlkMkVcbiAgICAgICAgICovXG4gICAgICAgIHB1YmtleTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkV0aDFTaWduUmVxdWVzdFwiXTtcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXNwb25zZXM6IHtcbiAgICAgIDIwMDogY29tcG9uZW50c1tcInJlc3BvbnNlc1wiXVtcIkV0aDFTaWduUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFNpZ24gVmFsaWRhdG9yIFJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gVmFsaWRhdG9yIFJlcXVlc3RcbiAgICpcbiAgICogU2lnbnMgYW4gZXRoMiB2YWxpZGF0b3IgcmVxdWVzdCB3aXRoIGEgZ2l2ZW4gQkxTIGtleS5cbiAgICpcbiAgICogVGhlIGtleSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm9sZSBhbmQgb3JnYW5pemF0aW9uIG9uIHdob3NlIGJlaGFsZiB0aGlzIGFjdGlvbiBpcyBjYWxsZWQuXG4gICAqL1xuICBldGgyU2lnbjoge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCB2YWxpZGF0b3IgKEJMUykgcHVibGljIGtleSB3aXRoIDB4IHByZWZpeFxuICAgICAgICAgKiBAZXhhbXBsZSAweDk3MDBmYmI4YzkwNjk0MjQ0MmMyYTViM2FkNzQ5OGYyN2FlZGRhMjUzNzg2YTZmYmFhOGZlZjQ3ZmI3YWYyMzRlNTBjZjJjY2U4MTVhNTUzMDg3OTkyYWU1NjVkNDhkYVxuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXRoMlNpZ25SZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiRXRoMlNpZ25SZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBTdGFrZSBEZXBvc2l0XG4gICAqIEBkZXNjcmlwdGlvbiBTaWduIFN0YWtlIERlcG9zaXRcbiAgICpcbiAgICogU2lnbnMgYSBkZXBvc2l0IHRyYW5zYWN0aW9uIHdpdGggYSBgdmFsaWRhdG9yX2tleWAuIElmIGB2YWxpZGF0b3Jfa2V5YCBpcyBzZXQgdG8gYSBwcmVnZW5lcmF0ZWQga2V5LCB3ZSB1c2UgdGhlXG4gICAqIHByb3ZpZGVkIHZhbGlkYXRvciBrZXkuIE90aGVyd2lzZSwgd2UgZ2VuZXJhdGUgYSBuZXcgQkxTIGtleS5cbiAgICpcbiAgICogV2hlbiB1c2luZyBhIHByZWdlbmVyYXRlZCBrZXksIHRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZVxuICAgKiBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgKi9cbiAgc3Rha2U6IHtcbiAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICBwYXRoOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvciBJRCBvZiB0aGUgZGVzaXJlZCBPcmdcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiU3Rha2VSZXF1ZXN0XCJdO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHJlc3BvbnNlczoge1xuICAgICAgMjAwOiBjb21wb25lbnRzW1wicmVzcG9uc2VzXCJdW1wiU3Rha2VSZXNwb25zZVwiXTtcbiAgICAgIDIwMjoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQWNjZXB0ZWRSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xuICAvKipcbiAgICogU2lnbiBVbnN0YWtlIFJlcXVlc3RcbiAgICogQGRlc2NyaXB0aW9uIFNpZ24gVW5zdGFrZSBSZXF1ZXN0XG4gICAqXG4gICAqIEhhbmRsZSB1bnN0YWtpbmcgcmVxdWVzdCwgcHJvZHVjaW5nIGEgc2lnbmVkIHZvbHVudGFyeSBleGl0IG1lc3NhZ2VcbiAgICogdGhhdCBjYW4gYmUgcG9zdGVkIGRpcmVjdGx5IHRvIHRoZSBCZWFjb24gY2hhaW4uXG4gICAqXG4gICAqIFRoZSBrZXkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJvbGUgYW5kIG9yZ2FuaXphdGlvbiBvbiB3aG9zZSBiZWhhbGYgdGhpcyBhY3Rpb24gaXMgY2FsbGVkLlxuICAgKi9cbiAgdW5zdGFrZToge1xuICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgIHBhdGg6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBOYW1lIG9yIElEIG9mIHRoZSBkZXNpcmVkIE9yZ1xuICAgICAgICAgKiBAZXhhbXBsZSBPcmcjMTI0ZGZlM2UtM2JiZC00ODdkLTgwYzAtNTNjNTVlOGFiODdhXG4gICAgICAgICAqL1xuICAgICAgICBvcmdfaWQ6IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBIZXgtZW5jb2RlZCB2YWxpZGF0b3IgKEJMUykgcHVibGljIGtleVxuICAgICAgICAgKiBAZXhhbXBsZSAweGE5OWE3NmVkNzc5NmY3YmUyMmQ1YjdlODVkZWViN2M1Njc3ZTg4ZTUxMWUwYjMzNzYxOGY4YzRlYjYxMzQ5YjRiZjJkMTUzZjY0OWY3YjUzMzU5ZmU4Yjk0YTM4ZTQ0Y1xuICAgICAgICAgKi9cbiAgICAgICAgcHVia2V5OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiVW5zdGFrZVJlcXVlc3RcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJVbnN0YWtlUmVzcG9uc2VcIl07XG4gICAgICAyMDI6IHtcbiAgICAgICAgY29udGVudDoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBjb21wb25lbnRzW1wic2NoZW1hc1wiXVtcIkFjY2VwdGVkUmVzcG9uc2VcIl07XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiRXJyb3JSZXNwb25zZVwiXTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgLyoqXG4gICAqIFJlZnJlc2ggU2lnbmVyIFNlc3Npb25cbiAgICogQGRlc2NyaXB0aW9uIFJlZnJlc2ggU2lnbmVyIFNlc3Npb25cbiAgICovXG4gIHNpZ25lclNlc3Npb25SZWZyZXNoOiB7XG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgcGF0aDoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlc2NyaXB0aW9uIElEIG9mIHRoZSBvcmdhbml6YXRpb24gb3duaW5nIHRoZSBrZXlcbiAgICAgICAgICogQGV4YW1wbGUgT3JnIzEyNGRmZTNlLTNiYmQtNDg3ZC04MGMwLTUzYzU1ZThhYjg3YVxuICAgICAgICAgKi9cbiAgICAgICAgb3JnX2lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IGNvbXBvbmVudHNbXCJzY2hlbWFzXCJdW1wiQXV0aERhdGFcIl07XG4gICAgICB9O1xuICAgIH07XG4gICAgcmVzcG9uc2VzOiB7XG4gICAgICAyMDA6IGNvbXBvbmVudHNbXCJyZXNwb25zZXNcIl1bXCJOZXdTZXNzaW9uUmVzcG9uc2VcIl07XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogY29tcG9uZW50c1tcInNjaGVtYXNcIl1bXCJFcnJvclJlc3BvbnNlXCJdO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuIl19
|