@effect-aws/client-iam 1.0.0

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.
@@ -0,0 +1,221 @@
1
+ import { IAMServiceException, AddClientIDToOpenIDConnectProviderCommand, AddRoleToInstanceProfileCommand, AddUserToGroupCommand, AttachGroupPolicyCommand, AttachRolePolicyCommand, AttachUserPolicyCommand, ChangePasswordCommand, CreateAccessKeyCommand, CreateAccountAliasCommand, CreateGroupCommand, CreateInstanceProfileCommand, CreateLoginProfileCommand, CreateOpenIDConnectProviderCommand, CreatePolicyCommand, CreatePolicyVersionCommand, CreateRoleCommand, CreateSAMLProviderCommand, CreateServiceLinkedRoleCommand, CreateServiceSpecificCredentialCommand, CreateUserCommand, CreateVirtualMFADeviceCommand, DeactivateMFADeviceCommand, DeleteAccessKeyCommand, DeleteAccountAliasCommand, DeleteAccountPasswordPolicyCommand, DeleteGroupCommand, DeleteGroupPolicyCommand, DeleteInstanceProfileCommand, DeleteLoginProfileCommand, DeleteOpenIDConnectProviderCommand, DeletePolicyCommand, DeletePolicyVersionCommand, DeleteRoleCommand, DeleteRolePermissionsBoundaryCommand, DeleteRolePolicyCommand, DeleteSAMLProviderCommand, DeleteServerCertificateCommand, DeleteServiceLinkedRoleCommand, DeleteServiceSpecificCredentialCommand, DeleteSigningCertificateCommand, DeleteSSHPublicKeyCommand, DeleteUserCommand, DeleteUserPermissionsBoundaryCommand, DeleteUserPolicyCommand, DeleteVirtualMFADeviceCommand, DetachGroupPolicyCommand, DetachRolePolicyCommand, DetachUserPolicyCommand, EnableMFADeviceCommand, GenerateCredentialReportCommand, GenerateOrganizationsAccessReportCommand, GenerateServiceLastAccessedDetailsCommand, GetAccessKeyLastUsedCommand, GetAccountAuthorizationDetailsCommand, GetAccountPasswordPolicyCommand, GetAccountSummaryCommand, GetContextKeysForCustomPolicyCommand, GetContextKeysForPrincipalPolicyCommand, GetCredentialReportCommand, GetGroupCommand, GetGroupPolicyCommand, GetInstanceProfileCommand, GetLoginProfileCommand, GetMFADeviceCommand, GetOpenIDConnectProviderCommand, GetOrganizationsAccessReportCommand, GetPolicyCommand, GetPolicyVersionCommand, GetRoleCommand, GetRolePolicyCommand, GetSAMLProviderCommand, GetServerCertificateCommand, GetServiceLastAccessedDetailsCommand, GetServiceLastAccessedDetailsWithEntitiesCommand, GetServiceLinkedRoleDeletionStatusCommand, GetSSHPublicKeyCommand, GetUserCommand, GetUserPolicyCommand, ListAccessKeysCommand, ListAccountAliasesCommand, ListAttachedGroupPoliciesCommand, ListAttachedRolePoliciesCommand, ListAttachedUserPoliciesCommand, ListEntitiesForPolicyCommand, ListGroupPoliciesCommand, ListGroupsCommand, ListGroupsForUserCommand, ListInstanceProfilesCommand, ListInstanceProfilesForRoleCommand, ListInstanceProfileTagsCommand, ListMFADevicesCommand, ListMFADeviceTagsCommand, ListOpenIDConnectProvidersCommand, ListOpenIDConnectProviderTagsCommand, ListPoliciesCommand, ListPoliciesGrantingServiceAccessCommand, ListPolicyTagsCommand, ListPolicyVersionsCommand, ListRolePoliciesCommand, ListRolesCommand, ListRoleTagsCommand, ListSAMLProvidersCommand, ListSAMLProviderTagsCommand, ListServerCertificatesCommand, ListServerCertificateTagsCommand, ListServiceSpecificCredentialsCommand, ListSigningCertificatesCommand, ListSSHPublicKeysCommand, ListUserPoliciesCommand, ListUsersCommand, ListUserTagsCommand, ListVirtualMFADevicesCommand, PutGroupPolicyCommand, PutRolePermissionsBoundaryCommand, PutRolePolicyCommand, PutUserPermissionsBoundaryCommand, PutUserPolicyCommand, RemoveClientIDFromOpenIDConnectProviderCommand, RemoveRoleFromInstanceProfileCommand, RemoveUserFromGroupCommand, ResetServiceSpecificCredentialCommand, ResyncMFADeviceCommand, SetDefaultPolicyVersionCommand, SetSecurityTokenServicePreferencesCommand, SimulateCustomPolicyCommand, SimulatePrincipalPolicyCommand, TagInstanceProfileCommand, TagMFADeviceCommand, TagOpenIDConnectProviderCommand, TagPolicyCommand, TagRoleCommand, TagSAMLProviderCommand, TagServerCertificateCommand, TagUserCommand, UntagInstanceProfileCommand, UntagMFADeviceCommand, UntagOpenIDConnectProviderCommand, UntagPolicyCommand, UntagRoleCommand, UntagSAMLProviderCommand, UntagServerCertificateCommand, UntagUserCommand, UpdateAccessKeyCommand, UpdateAccountPasswordPolicyCommand, UpdateAssumeRolePolicyCommand, UpdateGroupCommand, UpdateLoginProfileCommand, UpdateOpenIDConnectProviderThumbprintCommand, UpdateRoleCommand, UpdateRoleDescriptionCommand, UpdateSAMLProviderCommand, UpdateServerCertificateCommand, UpdateServiceSpecificCredentialCommand, UpdateSigningCertificateCommand, UpdateSSHPublicKeyCommand, UpdateUserCommand, UploadServerCertificateCommand, UploadSigningCertificateCommand, UploadSSHPublicKeyCommand, } from "@aws-sdk/client-iam";
2
+ import { Context, Effect, Layer, ReadonlyRecord, Data } from "effect";
3
+ import { SdkError, } from "./Errors";
4
+ import { IAMClientInstance, IAMClientInstanceLayer } from "./IAMClientInstance";
5
+ import { DefaultIAMClientConfigLayer } from "./IAMClientInstanceConfig";
6
+ const commands = {
7
+ AddClientIDToOpenIDConnectProviderCommand,
8
+ AddRoleToInstanceProfileCommand,
9
+ AddUserToGroupCommand,
10
+ AttachGroupPolicyCommand,
11
+ AttachRolePolicyCommand,
12
+ AttachUserPolicyCommand,
13
+ ChangePasswordCommand,
14
+ CreateAccessKeyCommand,
15
+ CreateAccountAliasCommand,
16
+ CreateGroupCommand,
17
+ CreateInstanceProfileCommand,
18
+ CreateLoginProfileCommand,
19
+ CreateOpenIDConnectProviderCommand,
20
+ CreatePolicyCommand,
21
+ CreatePolicyVersionCommand,
22
+ CreateRoleCommand,
23
+ CreateSAMLProviderCommand,
24
+ CreateServiceLinkedRoleCommand,
25
+ CreateServiceSpecificCredentialCommand,
26
+ CreateUserCommand,
27
+ CreateVirtualMFADeviceCommand,
28
+ DeactivateMFADeviceCommand,
29
+ DeleteAccessKeyCommand,
30
+ DeleteAccountAliasCommand,
31
+ DeleteAccountPasswordPolicyCommand,
32
+ DeleteGroupCommand,
33
+ DeleteGroupPolicyCommand,
34
+ DeleteInstanceProfileCommand,
35
+ DeleteLoginProfileCommand,
36
+ DeleteOpenIDConnectProviderCommand,
37
+ DeletePolicyCommand,
38
+ DeletePolicyVersionCommand,
39
+ DeleteRoleCommand,
40
+ DeleteRolePermissionsBoundaryCommand,
41
+ DeleteRolePolicyCommand,
42
+ DeleteSAMLProviderCommand,
43
+ DeleteServerCertificateCommand,
44
+ DeleteServiceLinkedRoleCommand,
45
+ DeleteServiceSpecificCredentialCommand,
46
+ DeleteSigningCertificateCommand,
47
+ DeleteSSHPublicKeyCommand,
48
+ DeleteUserCommand,
49
+ DeleteUserPermissionsBoundaryCommand,
50
+ DeleteUserPolicyCommand,
51
+ DeleteVirtualMFADeviceCommand,
52
+ DetachGroupPolicyCommand,
53
+ DetachRolePolicyCommand,
54
+ DetachUserPolicyCommand,
55
+ EnableMFADeviceCommand,
56
+ GenerateCredentialReportCommand,
57
+ GenerateOrganizationsAccessReportCommand,
58
+ GenerateServiceLastAccessedDetailsCommand,
59
+ GetAccessKeyLastUsedCommand,
60
+ GetAccountAuthorizationDetailsCommand,
61
+ GetAccountPasswordPolicyCommand,
62
+ GetAccountSummaryCommand,
63
+ GetContextKeysForCustomPolicyCommand,
64
+ GetContextKeysForPrincipalPolicyCommand,
65
+ GetCredentialReportCommand,
66
+ GetGroupCommand,
67
+ GetGroupPolicyCommand,
68
+ GetInstanceProfileCommand,
69
+ GetLoginProfileCommand,
70
+ GetMFADeviceCommand,
71
+ GetOpenIDConnectProviderCommand,
72
+ GetOrganizationsAccessReportCommand,
73
+ GetPolicyCommand,
74
+ GetPolicyVersionCommand,
75
+ GetRoleCommand,
76
+ GetRolePolicyCommand,
77
+ GetSAMLProviderCommand,
78
+ GetServerCertificateCommand,
79
+ GetServiceLastAccessedDetailsCommand,
80
+ GetServiceLastAccessedDetailsWithEntitiesCommand,
81
+ GetServiceLinkedRoleDeletionStatusCommand,
82
+ GetSSHPublicKeyCommand,
83
+ GetUserCommand,
84
+ GetUserPolicyCommand,
85
+ ListAccessKeysCommand,
86
+ ListAccountAliasesCommand,
87
+ ListAttachedGroupPoliciesCommand,
88
+ ListAttachedRolePoliciesCommand,
89
+ ListAttachedUserPoliciesCommand,
90
+ ListEntitiesForPolicyCommand,
91
+ ListGroupPoliciesCommand,
92
+ ListGroupsCommand,
93
+ ListGroupsForUserCommand,
94
+ ListInstanceProfilesCommand,
95
+ ListInstanceProfilesForRoleCommand,
96
+ ListInstanceProfileTagsCommand,
97
+ ListMFADevicesCommand,
98
+ ListMFADeviceTagsCommand,
99
+ ListOpenIDConnectProvidersCommand,
100
+ ListOpenIDConnectProviderTagsCommand,
101
+ ListPoliciesCommand,
102
+ ListPoliciesGrantingServiceAccessCommand,
103
+ ListPolicyTagsCommand,
104
+ ListPolicyVersionsCommand,
105
+ ListRolePoliciesCommand,
106
+ ListRolesCommand,
107
+ ListRoleTagsCommand,
108
+ ListSAMLProvidersCommand,
109
+ ListSAMLProviderTagsCommand,
110
+ ListServerCertificatesCommand,
111
+ ListServerCertificateTagsCommand,
112
+ ListServiceSpecificCredentialsCommand,
113
+ ListSigningCertificatesCommand,
114
+ ListSSHPublicKeysCommand,
115
+ ListUserPoliciesCommand,
116
+ ListUsersCommand,
117
+ ListUserTagsCommand,
118
+ ListVirtualMFADevicesCommand,
119
+ PutGroupPolicyCommand,
120
+ PutRolePermissionsBoundaryCommand,
121
+ PutRolePolicyCommand,
122
+ PutUserPermissionsBoundaryCommand,
123
+ PutUserPolicyCommand,
124
+ RemoveClientIDFromOpenIDConnectProviderCommand,
125
+ RemoveRoleFromInstanceProfileCommand,
126
+ RemoveUserFromGroupCommand,
127
+ ResetServiceSpecificCredentialCommand,
128
+ ResyncMFADeviceCommand,
129
+ SetDefaultPolicyVersionCommand,
130
+ SetSecurityTokenServicePreferencesCommand,
131
+ SimulateCustomPolicyCommand,
132
+ SimulatePrincipalPolicyCommand,
133
+ TagInstanceProfileCommand,
134
+ TagMFADeviceCommand,
135
+ TagOpenIDConnectProviderCommand,
136
+ TagPolicyCommand,
137
+ TagRoleCommand,
138
+ TagSAMLProviderCommand,
139
+ TagServerCertificateCommand,
140
+ TagUserCommand,
141
+ UntagInstanceProfileCommand,
142
+ UntagMFADeviceCommand,
143
+ UntagOpenIDConnectProviderCommand,
144
+ UntagPolicyCommand,
145
+ UntagRoleCommand,
146
+ UntagSAMLProviderCommand,
147
+ UntagServerCertificateCommand,
148
+ UntagUserCommand,
149
+ UpdateAccessKeyCommand,
150
+ UpdateAccountPasswordPolicyCommand,
151
+ UpdateAssumeRolePolicyCommand,
152
+ UpdateGroupCommand,
153
+ UpdateLoginProfileCommand,
154
+ UpdateOpenIDConnectProviderThumbprintCommand,
155
+ UpdateRoleCommand,
156
+ UpdateRoleDescriptionCommand,
157
+ UpdateSAMLProviderCommand,
158
+ UpdateServerCertificateCommand,
159
+ UpdateServiceSpecificCredentialCommand,
160
+ UpdateSigningCertificateCommand,
161
+ UpdateSSHPublicKeyCommand,
162
+ UpdateUserCommand,
163
+ UploadServerCertificateCommand,
164
+ UploadSigningCertificateCommand,
165
+ UploadSSHPublicKeyCommand,
166
+ };
167
+ /**
168
+ * @since 1.0.0
169
+ * @category tags
170
+ */
171
+ export const IAMService = Context.Tag(Symbol.for("@effect-aws/client-iam/IAMService"));
172
+ /**
173
+ * @since 1.0.0
174
+ * @category constructors
175
+ */
176
+ export const makeIAMService = Effect.gen(function* (_) {
177
+ const client = yield* _(IAMClientInstance);
178
+ return ReadonlyRecord.toEntries(commands).reduce((acc, [command]) => {
179
+ const CommandCtor = commands[command];
180
+ const methodImpl = (args, options) => Effect.tryPromise({
181
+ try: () => client.send(new CommandCtor(args), options !== null && options !== void 0 ? options : {}),
182
+ catch: (e) => {
183
+ if (e instanceof IAMServiceException) {
184
+ const ServiceException = Data.tagged(e.name);
185
+ return ServiceException({
186
+ ...e,
187
+ message: e.message,
188
+ stack: e.stack,
189
+ });
190
+ }
191
+ if (e instanceof Error) {
192
+ return SdkError({
193
+ ...e,
194
+ name: "SdkError",
195
+ message: e.message,
196
+ stack: e.stack,
197
+ });
198
+ }
199
+ throw e;
200
+ },
201
+ });
202
+ const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
203
+ return { ...acc, [methodName]: methodImpl };
204
+ }, {});
205
+ });
206
+ /**
207
+ * @since 1.0.0
208
+ * @category layers
209
+ */
210
+ export const BaseIAMServiceLayer = Layer.effect(IAMService, makeIAMService);
211
+ /**
212
+ * @since 1.0.0
213
+ * @category layers
214
+ */
215
+ export const IAMServiceLayer = BaseIAMServiceLayer.pipe(Layer.provide(IAMClientInstanceLayer));
216
+ /**
217
+ * @since 1.0.0
218
+ * @category layers
219
+ */
220
+ export const DefaultIAMServiceLayer = IAMServiceLayer.pipe(Layer.provide(DefaultIAMClientConfigLayer));
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUFNU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9JQU1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIseUNBQXlDLEVBR3pDLCtCQUErQixFQUcvQixxQkFBcUIsRUFHckIsd0JBQXdCLEVBR3hCLHVCQUF1QixFQUd2Qix1QkFBdUIsRUFHdkIscUJBQXFCLEVBR3JCLHNCQUFzQixFQUd0Qix5QkFBeUIsRUFHekIsa0JBQWtCLEVBR2xCLDRCQUE0QixFQUc1Qix5QkFBeUIsRUFHekIsa0NBQWtDLEVBR2xDLG1CQUFtQixFQUduQiwwQkFBMEIsRUFHMUIsaUJBQWlCLEVBR2pCLHlCQUF5QixFQUd6Qiw4QkFBOEIsRUFHOUIsc0NBQXNDLEVBR3RDLGlCQUFpQixFQUdqQiw2QkFBNkIsRUFHN0IsMEJBQTBCLEVBRzFCLHNCQUFzQixFQUd0Qix5QkFBeUIsRUFHekIsa0NBQWtDLEVBR2xDLGtCQUFrQixFQUdsQix3QkFBd0IsRUFHeEIsNEJBQTRCLEVBRzVCLHlCQUF5QixFQUd6QixrQ0FBa0MsRUFHbEMsbUJBQW1CLEVBR25CLDBCQUEwQixFQUcxQixpQkFBaUIsRUFHakIsb0NBQW9DLEVBR3BDLHVCQUF1QixFQUd2Qix5QkFBeUIsRUFHekIsOEJBQThCLEVBRzlCLDhCQUE4QixFQUc5QixzQ0FBc0MsRUFHdEMsK0JBQStCLEVBRy9CLHlCQUF5QixFQUd6QixpQkFBaUIsRUFHakIsb0NBQW9DLEVBR3BDLHVCQUF1QixFQUd2Qiw2QkFBNkIsRUFHN0Isd0JBQXdCLEVBR3hCLHVCQUF1QixFQUd2Qix1QkFBdUIsRUFHdkIsc0JBQXNCLEVBR3RCLCtCQUErQixFQUcvQix3Q0FBd0MsRUFHeEMseUNBQXlDLEVBR3pDLDJCQUEyQixFQUczQixxQ0FBcUMsRUFHckMsK0JBQStCLEVBRy9CLHdCQUF3QixFQUd4QixvQ0FBb0MsRUFHcEMsdUNBQXVDLEVBR3ZDLDBCQUEw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LEVBQUU7b0JBQ3RCLE9BQU8sUUFBUSxDQUFDO3dCQUNkLEdBQUcsQ0FBQzt3QkFDSixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO3dCQUNsQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7cUJBQ2YsQ0FBQyxDQUFDO2lCQUNKO2dCQUNELE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNMLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3RFLFVBQVUsRUFDVixFQUFFLENBQ0gsQ0FBQztRQUNGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlDLENBQUMsRUFBRSxFQUFFLENBQWUsQ0FBQztBQUN2QixDQUFDLENBQUMsQ0FBQztBQUVIOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBRTVFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQ3JELEtBQUssQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FDdEMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQ3hELEtBQUssQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElBTVNlcnZpY2VFeGNlcHRpb24sXG4gIEFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICB0eXBlIEFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIEFkZFJvbGVUb0luc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFJvbGVUb0luc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIEFkZFVzZXJUb0dyb3VwQ29tbWFuZCxcbiAgdHlwZSBBZGRVc2VyVG9Hcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRVc2VyVG9Hcm91cENvbW1hbmRPdXRwdXQsXG4gIEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBBdHRhY2hHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBdHRhY2hHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEF0dGFjaFJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIEF0dGFjaFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXR0YWNoUm9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kLFxuICB0eXBlIEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXR0YWNoVXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIENoYW5nZVBhc3N3b3JkQ29tbWFuZCxcbiAgdHlwZSBDaGFuZ2VQYXNzd29yZENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDaGFuZ2VQYXNzd29yZENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUFjY2Vzc0tleUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQWNjZXNzS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUFjY291bnRBbGlhc0NvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUFjY291bnRBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVHcm91cENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUxvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlTG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUxvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVBvbGljeVZlcnNpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZVBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlUG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVJvbGVDb21tYW5kLFxuICB0eXBlIENyZWF0ZVJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlUm9sZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVNBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICB0eXBlIENyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVVzZXJDb21tYW5kLFxuICB0eXBlIENyZWF0ZVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kLFxuICB0eXBlIENyZWF0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kLFxuICB0eXBlIERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVhY3RpdmF0ZU1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjY2Vzc0tleUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWNjZXNzS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjY291bnRBbGlhc0NvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudEFsaWFzQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFjY291bnRBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVHcm91cENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUdyb3VwUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlTG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUxvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVBvbGljeVZlcnNpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZVBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJvbGVDb21tYW5kLFxuICB0eXBlIERlbGV0ZVJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUm9sZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZVJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUm9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICB0eXBlIERlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVVzZXJDb21tYW5kLFxuICB0eXBlIERlbGV0ZVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVVzZXJQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZVVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kLFxuICB0eXBlIERlbGV0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIERldGFjaEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZXRhY2hHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXRhY2hHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERldGFjaFJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIERldGFjaFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGV0YWNoUm9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERldGFjaFVzZXJQb2xpY3lDb21tYW5kLFxuICB0eXBlIERldGFjaFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGV0YWNoVXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEVuYWJsZU1GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgRW5hYmxlTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIEVuYWJsZU1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmQsXG4gIHR5cGUgR2VuZXJhdGVDcmVkZW50aWFsUmVwb3J0Q29tbWFuZElucHV0LFxuICB0eXBlIEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmRPdXRwdXQsXG4gIEdlbmVyYXRlT3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmQsXG4gIHR5cGUgR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZElucHV0LFxuICB0eXBlIEdlbmVyYXRlT3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmRPdXRwdXQsXG4gIEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kLFxuICB0eXBlIEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2VuZXJhdGVTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gIEdldEFjY2Vzc0tleUxhc3RVc2VkQ29tbWFuZCxcbiAgdHlwZSBHZXRBY2Nlc3NLZXlMYXN0VXNlZENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBY2Nlc3NLZXlMYXN0VXNlZENvbW1hbmRPdXRwdXQsXG4gIEdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsc0NvbW1hbmQsXG4gIHR5cGUgR2V0QWNjb3VudEF1dGhvcml6YXRpb25EZXRhaWxzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gIEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0QWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldEFjY291bnRTdW1tYXJ5Q29tbWFuZCxcbiAgdHlwZSBHZXRBY2NvdW50U3VtbWFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBY2NvdW50U3VtbWFyeUNvbW1hbmRPdXRwdXQsXG4gIEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRDb250ZXh0S2V5c0ZvckN1c3RvbVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDb250ZXh0S2V5c0ZvckN1c3RvbVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldENyZWRlbnRpYWxSZXBvcnRDb21tYW5kLFxuICB0eXBlIEdldENyZWRlbnRpYWxSZXBvcnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Q3JlZGVudGlhbFJlcG9ydENvbW1hbmRPdXRwdXQsXG4gIEdldEdyb3VwQ29tbWFuZCxcbiAgdHlwZSBHZXRHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRHcm91cENvbW1hbmRPdXRwdXQsXG4gIEdldEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldEluc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgR2V0SW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIEdldExvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgR2V0TG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldExvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIEdldE1GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgR2V0TUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE1GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIEdldE9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgR2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIEdldE9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIEdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kLFxuICB0eXBlIEdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmRPdXRwdXQsXG4gIEdldFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0UG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFBvbGljeVZlcnNpb25Db21tYW5kLFxuICB0eXBlIEdldFBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIEdldFJvbGVDb21tYW5kLFxuICB0eXBlIEdldFJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Um9sZUNvbW1hbmRPdXRwdXQsXG4gIEdldFJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Um9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFNBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgR2V0U0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIEdldFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBHZXRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZCxcbiAgdHlwZSBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gIEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzV2l0aEVudGl0aWVzQ29tbWFuZCxcbiAgdHlwZSBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllc0NvbW1hbmRPdXRwdXQsXG4gIEdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXNDb21tYW5kLFxuICB0eXBlIEdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gIEdldFNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIHR5cGUgR2V0U1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXQsXG4gIEdldFVzZXJDb21tYW5kLFxuICB0eXBlIEdldFVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0VXNlckNvbW1hbmRPdXRwdXQsXG4gIEdldFVzZXJQb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0VXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIExpc3RBY2Nlc3NLZXlzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWNjZXNzS2V5c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWNjZXNzS2V5c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFjY291bnRBbGlhc2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RBdHRhY2hlZEdyb3VwUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEF0dGFjaGVkVXNlclBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmQsXG4gIHR5cGUgTGlzdEVudGl0aWVzRm9yUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIExpc3RHcm91cFBvbGljaWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RHcm91cHNDb21tYW5kLFxuICB0eXBlIExpc3RHcm91cHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEdyb3Vwc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RHcm91cHNGb3JVc2VyQ29tbWFuZCxcbiAgdHlwZSBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmRPdXRwdXQsXG4gIExpc3RJbnN0YW5jZVByb2ZpbGVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZUNvbW1hbmQsXG4gIHR5cGUgTGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZUNvbW1hbmRPdXRwdXQsXG4gIExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VQcm9maWxlVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VQcm9maWxlVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNRkFEZXZpY2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TUZBRGV2aWNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TUZBRGV2aWNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0TUZBRGV2aWNlVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TUZBRGV2aWNlVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJzQ29tbWFuZCxcbiAgdHlwZSBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQb2xpY2llc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFBvbGljaWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQb2xpY3lUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0UG9saWN5VGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UG9saWN5VGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQb2xpY3lWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFBvbGljeVZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQb2xpY3lWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RSb2xlUG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RSb2xlUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFJvbGVQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RSb2xlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFJvbGVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RSb2xlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RSb2xlVGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFJvbGVUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RSb2xlVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTQU1MUHJvdmlkZXJzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTQU1MUHJvdmlkZXJUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXNDb21tYW5kLFxuICB0eXBlIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNlcnZlckNlcnRpZmljYXRlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNlcnZlckNlcnRpZmljYXRlVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTaWduaW5nQ2VydGlmaWNhdGVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U2lnbmluZ0NlcnRpZmljYXRlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U2lnbmluZ0NlcnRpZmljYXRlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U1NIUHVibGljS2V5c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U1NIUHVibGljS2V5c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RVc2VyUG9saWNpZXNDb21tYW5kLFxuICB0eXBlIExpc3RVc2VyUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFVzZXJQb2xpY2llc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RVc2Vyc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFVzZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RVc2Vyc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RVc2VyVGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFVzZXJUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RVc2VyVGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFZpcnR1YWxNRkFEZXZpY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmRPdXRwdXQsXG4gIFB1dEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXRHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRHcm91cFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgdHlwZSBQdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0Um9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgdHlwZSBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXQsXG4gIFB1dFVzZXJQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0VXNlclBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVVzZXJGcm9tR3JvdXBDb21tYW5kLFxuICB0eXBlIFJlbW92ZVVzZXJGcm9tR3JvdXBDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlVXNlckZyb21Hcm91cENvbW1hbmRPdXRwdXQsXG4gIFJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIHR5cGUgUmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXQsXG4gIFJlc3luY01GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgUmVzeW5jTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIFJlc3luY01GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIFNldERlZmF1bHRQb2xpY3lWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBTZXREZWZhdWx0UG9saWN5VmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTZXREZWZhdWx0UG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kLFxuICB0eXBlIFNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgU2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlc0NvbW1hbmRPdXRwdXQsXG4gIFNpbXVsYXRlQ3VzdG9tUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgVGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIFRhZ01GQURldmljZUNvbW1hbmQsXG4gIHR5cGUgVGFnTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ01GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIFRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgVGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFRhZ1BvbGljeUNvbW1hbmQsXG4gIHR5cGUgVGFnUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1BvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFRhZ1JvbGVDb21tYW5kLFxuICB0eXBlIFRhZ1JvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnUm9sZUNvbW1hbmRPdXRwdXQsXG4gIFRhZ1NBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgVGFnU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFRhZ1NBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBUYWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFRhZ1VzZXJDb21tYW5kLFxuICB0eXBlIFRhZ1VzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVGFnVXNlckNvbW1hbmRPdXRwdXQsXG4gIFVudGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnTUZBRGV2aWNlQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ01GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ01GQURldmljZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBVbnRhZ1BvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1BvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUm9sZUNvbW1hbmQsXG4gIHR5cGUgVW50YWdSb2xlQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnUm9sZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgdHlwZSBVbnRhZ1NBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVbnRhZ1NBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFVudGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICB0eXBlIFVudGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnVXNlckNvbW1hbmQsXG4gIHR5cGUgVW50YWdVc2VyQ29tbWFuZElucHV0LFxuICB0eXBlIFVudGFnVXNlckNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFjY2Vzc0tleUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQWNjZXNzS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFzc3VtZVJvbGVQb2xpY3lDb21tYW5kLFxuICB0eXBlIFVwZGF0ZUFzc3VtZVJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQXNzdW1lUm9sZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUdyb3VwQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVHcm91cENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVHcm91cENvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUxvZ2luUHJvZmlsZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlTG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUxvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kLFxuICB0eXBlIFVwZGF0ZU9wZW5JRENvbm5lY3RQcm92aWRlclRodW1icHJpbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludENvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVJvbGVDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVJvbGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlUm9sZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVJvbGVEZXNjcmlwdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlUm9sZURlc2NyaXB0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVJvbGVEZXNjcmlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNBTUxQcm92aWRlckNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNBTUxQcm92aWRlckNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVVzZXJDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVVzZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlVXNlckNvbW1hbmRPdXRwdXQsXG4gIFVwbG9hZFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgdHlwZSBVcGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIHR5cGUgVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXQsXG4gIFVwbG9hZFNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIHR5cGUgVXBsb2FkU1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICB0eXBlIFVwbG9hZFNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtaWFtXCI7XG5pbXBvcnQgeyB0eXBlIEh0dHBIYW5kbGVyT3B0aW9ucyBhcyBfX0h0dHBIYW5kbGVyT3B0aW9ucyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgQ29udGV4dCwgRWZmZWN0LCBMYXllciwgUmVhZG9ubHlSZWNvcmQsIERhdGEgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3IsXG4gIENyZWRlbnRpYWxSZXBvcnRFeHBpcmVkRXJyb3IsXG4gIENyZWRlbnRpYWxSZXBvcnROb3RQcmVzZW50RXJyb3IsXG4gIENyZWRlbnRpYWxSZXBvcnROb3RSZWFkeUVycm9yLFxuICBEZWxldGVDb25mbGljdEVycm9yLFxuICBEdXBsaWNhdGVDZXJ0aWZpY2F0ZUVycm9yLFxuICBEdXBsaWNhdGVTU0hQdWJsaWNLZXlFcnJvcixcbiAgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yLFxuICBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yLFxuICBJQU1TZXJ2aWNlRXJyb3IsXG4gIEludmFsaWRBdXRoZW50aWNhdGlvbkNvZGVFcnJvcixcbiAgSW52YWxpZENlcnRpZmljYXRlRXJyb3IsXG4gIEludmFsaWRJbnB1dEVycm9yLFxuICBJbnZhbGlkUHVibGljS2V5RXJyb3IsXG4gIEludmFsaWRVc2VyVHlwZUVycm9yLFxuICBLZXlQYWlyTWlzbWF0Y2hFcnJvcixcbiAgTGltaXRFeGNlZWRlZEVycm9yLFxuICBNYWxmb3JtZWRDZXJ0aWZpY2F0ZUVycm9yLFxuICBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yLFxuICBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgUGFzc3dvcmRQb2xpY3lWaW9sYXRpb25FcnJvcixcbiAgUG9saWN5RXZhbHVhdGlvbkVycm9yLFxuICBQb2xpY3lOb3RBdHRhY2hhYmxlRXJyb3IsXG4gIFJlcG9ydEdlbmVyYXRpb25MaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIFNka0Vycm9yLFxuICBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICBTZXJ2aWNlTm90U3VwcG9ydGVkRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbiAgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gIFVucmVjb2duaXplZFB1YmxpY0tleUVuY29kaW5nRXJyb3IsXG59IGZyb20gXCIuL0Vycm9yc1wiO1xuaW1wb3J0IHsgSUFNQ2xpZW50SW5zdGFuY2UsIElBTUNsaWVudEluc3RhbmNlTGF5ZXIgfSBmcm9tIFwiLi9JQU1DbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHsgRGVmYXVsdElBTUNsaWVudENvbmZpZ0xheWVyIH0gZnJvbSBcIi4vSUFNQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICBBZGRSb2xlVG9JbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICBBZGRVc2VyVG9Hcm91cENvbW1hbmQsXG4gIEF0dGFjaEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgQXR0YWNoUm9sZVBvbGljeUNvbW1hbmQsXG4gIEF0dGFjaFVzZXJQb2xpY3lDb21tYW5kLFxuICBDaGFuZ2VQYXNzd29yZENvbW1hbmQsXG4gIENyZWF0ZUFjY2Vzc0tleUNvbW1hbmQsXG4gIENyZWF0ZUFjY291bnRBbGlhc0NvbW1hbmQsXG4gIENyZWF0ZUdyb3VwQ29tbWFuZCxcbiAgQ3JlYXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgQ3JlYXRlTG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgQ3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgQ3JlYXRlUG9saWN5Q29tbWFuZCxcbiAgQ3JlYXRlUG9saWN5VmVyc2lvbkNvbW1hbmQsXG4gIENyZWF0ZVJvbGVDb21tYW5kLFxuICBDcmVhdGVTQU1MUHJvdmlkZXJDb21tYW5kLFxuICBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmQsXG4gIENyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kLFxuICBDcmVhdGVVc2VyQ29tbWFuZCxcbiAgQ3JlYXRlVmlydHVhbE1GQURldmljZUNvbW1hbmQsXG4gIERlYWN0aXZhdGVNRkFEZXZpY2VDb21tYW5kLFxuICBEZWxldGVBY2Nlc3NLZXlDb21tYW5kLFxuICBEZWxldGVBY2NvdW50QWxpYXNDb21tYW5kLFxuICBEZWxldGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kLFxuICBEZWxldGVHcm91cENvbW1hbmQsXG4gIERlbGV0ZUdyb3VwUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgRGVsZXRlTG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgRGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgRGVsZXRlUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlUG9saWN5VmVyc2lvbkNvbW1hbmQsXG4gIERlbGV0ZVJvbGVDb21tYW5kLFxuICBEZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmQsXG4gIERlbGV0ZVJvbGVQb2xpY3lDb21tYW5kLFxuICBEZWxldGVTQU1MUHJvdmlkZXJDb21tYW5kLFxuICBEZWxldGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZCxcbiAgRGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIERlbGV0ZVNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIERlbGV0ZVVzZXJDb21tYW5kLFxuICBEZWxldGVVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmQsXG4gIERlbGV0ZVVzZXJQb2xpY3lDb21tYW5kLFxuICBEZWxldGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZCxcbiAgRGV0YWNoR3JvdXBQb2xpY3lDb21tYW5kLFxuICBEZXRhY2hSb2xlUG9saWN5Q29tbWFuZCxcbiAgRGV0YWNoVXNlclBvbGljeUNvbW1hbmQsXG4gIEVuYWJsZU1GQURldmljZUNvbW1hbmQsXG4gIEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmQsXG4gIEdlbmVyYXRlT3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmQsXG4gIEdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kLFxuICBHZXRBY2Nlc3NLZXlMYXN0VXNlZENvbW1hbmQsXG4gIEdldEFjY291bnRBdXRob3JpemF0aW9uRGV0YWlsc0NvbW1hbmQsXG4gIEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmQsXG4gIEdldEFjY291bnRTdW1tYXJ5Q29tbWFuZCxcbiAgR2V0Q29udGV4dEtleXNGb3JDdXN0b21Qb2xpY3lDb21tYW5kLFxuICBHZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeUNvbW1hbmQsXG4gIEdldENyZWRlbnRpYWxSZXBvcnRDb21tYW5kLFxuICBHZXRHcm91cENvbW1hbmQsXG4gIEdldEdyb3VwUG9saWN5Q29tbWFuZCxcbiAgR2V0SW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgR2V0TG9naW5Qcm9maWxlQ29tbWFuZCxcbiAgR2V0TUZBRGV2aWNlQ29tbWFuZCxcbiAgR2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgR2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmQsXG4gIEdldFBvbGljeUNvbW1hbmQsXG4gIEdldFBvbGljeVZlcnNpb25Db21tYW5kLFxuICBHZXRSb2xlQ29tbWFuZCxcbiAgR2V0Um9sZVBvbGljeUNvbW1hbmQsXG4gIEdldFNBTUxQcm92aWRlckNvbW1hbmQsXG4gIEdldFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNDb21tYW5kLFxuICBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllc0NvbW1hbmQsXG4gIEdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXNDb21tYW5kLFxuICBHZXRTU0hQdWJsaWNLZXlDb21tYW5kLFxuICBHZXRVc2VyQ29tbWFuZCxcbiAgR2V0VXNlclBvbGljeUNvbW1hbmQsXG4gIExpc3RBY2Nlc3NLZXlzQ29tbWFuZCxcbiAgTGlzdEFjY291bnRBbGlhc2VzQ29tbWFuZCxcbiAgTGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmQsXG4gIExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmQsXG4gIExpc3RHcm91cFBvbGljaWVzQ29tbWFuZCxcbiAgTGlzdEdyb3Vwc0NvbW1hbmQsXG4gIExpc3RHcm91cHNGb3JVc2VyQ29tbWFuZCxcbiAgTGlzdEluc3RhbmNlUHJvZmlsZXNDb21tYW5kLFxuICBMaXN0SW5zdGFuY2VQcm9maWxlc0ZvclJvbGVDb21tYW5kLFxuICBMaXN0SW5zdGFuY2VQcm9maWxlVGFnc0NvbW1hbmQsXG4gIExpc3RNRkFEZXZpY2VzQ29tbWFuZCxcbiAgTGlzdE1GQURldmljZVRhZ3NDb21tYW5kLFxuICBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyc0NvbW1hbmQsXG4gIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzQ29tbWFuZCxcbiAgTGlzdFBvbGljaWVzQ29tbWFuZCxcbiAgTGlzdFBvbGljaWVzR3JhbnRpbmdTZXJ2aWNlQWNjZXNzQ29tbWFuZCxcbiAgTGlzdFBvbGljeVRhZ3NDb21tYW5kLFxuICBMaXN0UG9saWN5VmVyc2lvbnNDb21tYW5kLFxuICBMaXN0Um9sZVBvbGljaWVzQ29tbWFuZCxcbiAgTGlzdFJvbGVzQ29tbWFuZCxcbiAgTGlzdFJvbGVUYWdzQ29tbWFuZCxcbiAgTGlzdFNBTUxQcm92aWRlcnNDb21tYW5kLFxuICBMaXN0U0FNTFByb3ZpZGVyVGFnc0NvbW1hbmQsXG4gIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXNDb21tYW5kLFxuICBMaXN0U2VydmVyQ2VydGlmaWNhdGVUYWdzQ29tbWFuZCxcbiAgTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZCxcbiAgTGlzdFNpZ25pbmdDZXJ0aWZpY2F0ZXNDb21tYW5kLFxuICBMaXN0U1NIUHVibGljS2V5c0NvbW1hbmQsXG4gIExpc3RVc2VyUG9saWNpZXNDb21tYW5kLFxuICBMaXN0VXNlcnNDb21tYW5kLFxuICBMaXN0VXNlclRhZ3NDb21tYW5kLFxuICBMaXN0VmlydHVhbE1GQURldmljZXNDb21tYW5kLFxuICBQdXRHcm91cFBvbGljeUNvbW1hbmQsXG4gIFB1dFJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgUHV0Um9sZVBvbGljeUNvbW1hbmQsXG4gIFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZCxcbiAgUHV0VXNlclBvbGljeUNvbW1hbmQsXG4gIFJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmQsXG4gIFJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlQ29tbWFuZCxcbiAgUmVtb3ZlVXNlckZyb21Hcm91cENvbW1hbmQsXG4gIFJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIFJlc3luY01GQURldmljZUNvbW1hbmQsXG4gIFNldERlZmF1bHRQb2xpY3lWZXJzaW9uQ29tbWFuZCxcbiAgU2V0U2VjdXJpdHlUb2tlblNlcnZpY2VQcmVmZXJlbmNlc0NvbW1hbmQsXG4gIFNpbXVsYXRlQ3VzdG9tUG9saWN5Q29tbWFuZCxcbiAgU2ltdWxhdGVQcmluY2lwYWxQb2xpY3lDb21tYW5kLFxuICBUYWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICBUYWdNRkFEZXZpY2VDb21tYW5kLFxuICBUYWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kLFxuICBUYWdQb2xpY3lDb21tYW5kLFxuICBUYWdSb2xlQ29tbWFuZCxcbiAgVGFnU0FNTFByb3ZpZGVyQ29tbWFuZCxcbiAgVGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICBUYWdVc2VyQ29tbWFuZCxcbiAgVW50YWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kLFxuICBVbnRhZ01GQURldmljZUNvbW1hbmQsXG4gIFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZCxcbiAgVW50YWdQb2xpY3lDb21tYW5kLFxuICBVbnRhZ1JvbGVDb21tYW5kLFxuICBVbnRhZ1NBTUxQcm92aWRlckNvbW1hbmQsXG4gIFVudGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kLFxuICBVbnRhZ1VzZXJDb21tYW5kLFxuICBVcGRhdGVBY2Nlc3NLZXlDb21tYW5kLFxuICBVcGRhdGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kLFxuICBVcGRhdGVBc3N1bWVSb2xlUG9saWN5Q29tbWFuZCxcbiAgVXBkYXRlR3JvdXBDb21tYW5kLFxuICBVcGRhdGVMb2dpblByb2ZpbGVDb21tYW5kLFxuICBVcGRhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJUaHVtYnByaW50Q29tbWFuZCxcbiAgVXBkYXRlUm9sZUNvbW1hbmQsXG4gIFVwZGF0ZVJvbGVEZXNjcmlwdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZVNBTUxQcm92aWRlckNvbW1hbmQsXG4gIFVwZGF0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZCxcbiAgVXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmQsXG4gIFVwZGF0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIFVwZGF0ZVNTSFB1YmxpY0tleUNvbW1hbmQsXG4gIFVwZGF0ZVVzZXJDb21tYW5kLFxuICBVcGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIFVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmQsXG4gIFVwbG9hZFNTSFB1YmxpY0tleUNvbW1hbmQsXG59O1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgdHlwZSBJQU1TZXJ2aWNlID0ge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRDbGllbnRJRFRvT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGFkZENsaWVudElEVG9PcGVuSURDb25uZWN0UHJvdmlkZXI6IChcbiAgICBhcmdzOiBBZGRDbGllbnRJRFRvT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQWRkQ2xpZW50SURUb09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGFkZFJvbGVUb0luc3RhbmNlUHJvZmlsZTogKFxuICAgIGFyZ3M6IEFkZFJvbGVUb0luc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgQWRkUm9sZVRvSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRVc2VyVG9Hcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBhZGRVc2VyVG9Hcm91cDogKFxuICAgIGFyZ3M6IEFkZFVzZXJUb0dyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBBZGRVc2VyVG9Hcm91cENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXR0YWNoR3JvdXBQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNoR3JvdXBQb2xpY3k6IChcbiAgICBhcmdzOiBBdHRhY2hHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQb2xpY3lOb3RBdHRhY2hhYmxlRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQXR0YWNoR3JvdXBQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEF0dGFjaFJvbGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNoUm9sZVBvbGljeTogKFxuICAgIGFyZ3M6IEF0dGFjaFJvbGVQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUG9saWN5Tm90QXR0YWNoYWJsZUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgICBBdHRhY2hSb2xlUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBdHRhY2hVc2VyUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGF0dGFjaFVzZXJQb2xpY3k6IChcbiAgICBhcmdzOiBBdHRhY2hVc2VyUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBvbGljeU5vdEF0dGFjaGFibGVFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBBdHRhY2hVc2VyUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDaGFuZ2VQYXNzd29yZENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjaGFuZ2VQYXNzd29yZDogKFxuICAgIGFyZ3M6IENoYW5nZVBhc3N3b3JkQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRW50aXR5VGVtcG9yYXJpbHlVbm1vZGlmaWFibGVFcnJvclxuICAgIHwgSW52YWxpZFVzZXJUeXBlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBhc3N3b3JkUG9saWN5VmlvbGF0aW9uRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ2hhbmdlUGFzc3dvcmRDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFjY2Vzc0tleUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVBY2Nlc3NLZXk6IChcbiAgICBhcmdzOiBDcmVhdGVBY2Nlc3NLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENyZWF0ZUFjY2Vzc0tleUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUFjY291bnRBbGlhczogKFxuICAgIGFyZ3M6IENyZWF0ZUFjY291bnRBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlQWNjb3VudEFsaWFzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVHcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVHcm91cDogKFxuICAgIGFyZ3M6IENyZWF0ZUdyb3VwQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENyZWF0ZUdyb3VwQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVJbnN0YW5jZVByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlSW5zdGFuY2VQcm9maWxlOiAoXG4gICAgYXJnczogQ3JlYXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVMb2dpblByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlTG9naW5Qcm9maWxlOiAoXG4gICAgYXJnczogQ3JlYXRlTG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQYXNzd29yZFBvbGljeVZpb2xhdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENyZWF0ZUxvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlcjogKFxuICAgIGFyZ3M6IENyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENyZWF0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVBvbGljeTogKFxuICAgIGFyZ3M6IENyZWF0ZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENyZWF0ZVBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlUG9saWN5VmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVQb2xpY3lWZXJzaW9uOiAoXG4gICAgYXJnczogQ3JlYXRlUG9saWN5VmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIENyZWF0ZVBvbGljeVZlcnNpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVJvbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlUm9sZTogKFxuICAgIGFyZ3M6IENyZWF0ZVJvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEVudGl0eUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVSb2xlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTQU1MUHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlU0FNTFByb3ZpZGVyOiAoXG4gICAgYXJnczogQ3JlYXRlU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVTZXJ2aWNlTGlua2VkUm9sZTogKFxuICAgIGFyZ3M6IENyZWF0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlU2VydmljZUxpbmtlZFJvbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbDogKFxuICAgIGFyZ3M6IENyZWF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlTm90U3VwcG9ydGVkRXJyb3IsXG4gICAgQ3JlYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlVXNlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBjcmVhdGVVc2VyOiAoXG4gICAgYXJnczogQ3JlYXRlVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBDcmVhdGVVc2VyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZVZpcnR1YWxNRkFEZXZpY2U6IChcbiAgICBhcmdzOiBDcmVhdGVWaXJ0dWFsTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgQ3JlYXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVhY3RpdmF0ZU1GQURldmljZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWFjdGl2YXRlTUZBRGV2aWNlOiAoXG4gICAgYXJnczogRGVhY3RpdmF0ZU1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5VGVtcG9yYXJpbHlVbm1vZGlmaWFibGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWFjdGl2YXRlTUZBRGV2aWNlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBY2Nlc3NLZXlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlQWNjZXNzS2V5OiAoXG4gICAgYXJnczogRGVsZXRlQWNjZXNzS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVBY2Nlc3NLZXlDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFjY291bnRBbGlhc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVBY2NvdW50QWxpYXM6IChcbiAgICBhcmdzOiBEZWxldGVBY2NvdW50QWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlQWNjb3VudEFsaWFzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlQWNjb3VudFBhc3N3b3JkUG9saWN5OiAoXG4gICAgYXJnczogRGVsZXRlQWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUdyb3VwOiAoXG4gICAgYXJnczogRGVsZXRlR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBEZWxldGVDb25mbGljdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZUdyb3VwQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVHcm91cFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVHcm91cFBvbGljeTogKFxuICAgIGFyZ3M6IERlbGV0ZUdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVHcm91cFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUluc3RhbmNlUHJvZmlsZTogKFxuICAgIGFyZ3M6IERlbGV0ZUluc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVMb2dpblByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlTG9naW5Qcm9maWxlOiAoXG4gICAgYXJnczogRGVsZXRlTG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRW50aXR5VGVtcG9yYXJpbHlVbm1vZGlmaWFibGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVMb2dpblByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVPcGVuSURDb25uZWN0UHJvdmlkZXI6IChcbiAgICBhcmdzOiBEZWxldGVPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlUG9saWN5OiAoXG4gICAgYXJnczogRGVsZXRlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVQb2xpY3lWZXJzaW9uQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVBvbGljeVZlcnNpb246IChcbiAgICBhcmdzOiBEZWxldGVQb2xpY3lWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlUG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUm9sZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVSb2xlOiAoXG4gICAgYXJnczogRGVsZXRlUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRGVsZXRlQ29uZmxpY3RFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgRGVsZXRlUm9sZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUm9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlUm9sZVBlcm1pc3Npb25zQm91bmRhcnk6IChcbiAgICBhcmdzOiBEZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgICBEZWxldGVSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUm9sZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVSb2xlUG9saWN5OiAoXG4gICAgYXJnczogRGVsZXRlUm9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIERlbGV0ZVJvbGVQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNBTUxQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVTQU1MUHJvdmlkZXI6IChcbiAgICBhcmdzOiBEZWxldGVTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVNlcnZlckNlcnRpZmljYXRlOiAoXG4gICAgYXJnczogRGVsZXRlU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBEZWxldGVDb25mbGljdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVTZXJ2aWNlTGlua2VkUm9sZTogKFxuICAgIGFyZ3M6IERlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZWxldGVTZXJ2aWNlTGlua2VkUm9sZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsOiAoXG4gICAgYXJnczogRGVsZXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yLFxuICAgIERlbGV0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBkZWxldGVTaWduaW5nQ2VydGlmaWNhdGU6IChcbiAgICBhcmdzOiBEZWxldGVTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTU0hQdWJsaWNLZXlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlU1NIUHVibGljS2V5OiAoXG4gICAgYXJnczogRGVsZXRlU1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgRGVsZXRlU1NIUHVibGljS2V5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVVc2VyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVVzZXI6IChcbiAgICBhcmdzOiBEZWxldGVVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBEZWxldGVDb25mbGljdEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZVVzZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5OiAoXG4gICAgYXJnczogRGVsZXRlVXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlVXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVVzZXJQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlVXNlclBvbGljeTogKFxuICAgIGFyZ3M6IERlbGV0ZVVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERlbGV0ZVVzZXJQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlVmlydHVhbE1GQURldmljZTogKFxuICAgIGFyZ3M6IERlbGV0ZVZpcnR1YWxNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IERlbGV0ZUNvbmZsaWN0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgRGVsZXRlVmlydHVhbE1GQURldmljZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGV0YWNoR3JvdXBQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGV0YWNoR3JvdXBQb2xpY3k6IChcbiAgICBhcmdzOiBEZXRhY2hHcm91cFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIERldGFjaEdyb3VwUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXRhY2hSb2xlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGRldGFjaFJvbGVQb2xpY3k6IChcbiAgICBhcmdzOiBEZXRhY2hSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIERldGFjaFJvbGVQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERldGFjaFVzZXJQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZGV0YWNoVXNlclBvbGljeTogKFxuICAgIGFyZ3M6IERldGFjaFVzZXJQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBEZXRhY2hVc2VyUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBFbmFibGVNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTUZBRGV2aWNlOiAoXG4gICAgYXJnczogRW5hYmxlTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEVudGl0eVRlbXBvcmFyaWx5VW5tb2RpZmlhYmxlRXJyb3JcbiAgICB8IEludmFsaWRBdXRoZW50aWNhdGlvbkNvZGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBFbmFibGVNRkFEZXZpY2VDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZW5lcmF0ZUNyZWRlbnRpYWxSZXBvcnQ6IChcbiAgICBhcmdzOiBHZW5lcmF0ZUNyZWRlbnRpYWxSZXBvcnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBMaW1pdEV4Y2VlZGVkRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdlbmVyYXRlQ3JlZGVudGlhbFJlcG9ydENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdlbmVyYXRlT3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydDogKFxuICAgIGFyZ3M6IEdlbmVyYXRlT3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFJlcG9ydEdlbmVyYXRpb25MaW1pdEV4Y2VlZGVkRXJyb3IsXG4gICAgR2VuZXJhdGVPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZW5lcmF0ZVNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdlbmVyYXRlU2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHM6IChcbiAgICBhcmdzOiBHZW5lcmF0ZVNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBHZW5lcmF0ZVNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBY2Nlc3NLZXlMYXN0VXNlZENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRBY2Nlc3NLZXlMYXN0VXNlZDogKFxuICAgIGFyZ3M6IEdldEFjY2Vzc0tleUxhc3RVc2VkQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yLFxuICAgIEdldEFjY2Vzc0tleUxhc3RVc2VkQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBY2NvdW50QXV0aG9yaXphdGlvbkRldGFpbHNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0QWNjb3VudEF1dGhvcml6YXRpb25EZXRhaWxzOiAoXG4gICAgYXJnczogR2V0QWNjb3VudEF1dGhvcml6YXRpb25EZXRhaWxzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRBY2NvdW50QXV0aG9yaXphdGlvbkRldGFpbHNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRBY2NvdW50UGFzc3dvcmRQb2xpY3k6IChcbiAgICBhcmdzOiBHZXRBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0QWNjb3VudFBhc3N3b3JkUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBY2NvdW50U3VtbWFyeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRBY2NvdW50U3VtbWFyeTogKFxuICAgIGFyZ3M6IEdldEFjY291bnRTdW1tYXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRBY2NvdW50U3VtbWFyeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Q29udGV4dEtleXNGb3JDdXN0b21Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0Q29udGV4dEtleXNGb3JDdXN0b21Qb2xpY3k6IChcbiAgICBhcmdzOiBHZXRDb250ZXh0S2V5c0ZvckN1c3RvbVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IEludmFsaWRJbnB1dEVycm9yLFxuICAgIEdldENvbnRleHRLZXlzRm9yQ3VzdG9tUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeTogKFxuICAgIGFyZ3M6IEdldENvbnRleHRLZXlzRm9yUHJpbmNpcGFsUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBHZXRDb250ZXh0S2V5c0ZvclByaW5jaXBhbFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Q3JlZGVudGlhbFJlcG9ydENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRDcmVkZW50aWFsUmVwb3J0OiAoXG4gICAgYXJnczogR2V0Q3JlZGVudGlhbFJlcG9ydENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENyZWRlbnRpYWxSZXBvcnRFeHBpcmVkRXJyb3JcbiAgICB8IENyZWRlbnRpYWxSZXBvcnROb3RQcmVzZW50RXJyb3JcbiAgICB8IENyZWRlbnRpYWxSZXBvcnROb3RSZWFkeUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldENyZWRlbnRpYWxSZXBvcnRDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEdyb3VwOiAoXG4gICAgYXJnczogR2V0R3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0R3JvdXBDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEdyb3VwUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldEdyb3VwUG9saWN5OiAoXG4gICAgYXJnczogR2V0R3JvdXBQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0R3JvdXBQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEluc3RhbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRJbnN0YW5jZVByb2ZpbGU6IChcbiAgICBhcmdzOiBHZXRJbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0SW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRMb2dpblByb2ZpbGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0TG9naW5Qcm9maWxlOiAoXG4gICAgYXJnczogR2V0TG9naW5Qcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldExvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0TUZBRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldE1GQURldmljZTogKFxuICAgIGFyZ3M6IEdldE1GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRNRkFEZXZpY2VDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldE9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRPcGVuSURDb25uZWN0UHJvdmlkZXI6IChcbiAgICBhcmdzOiBHZXRPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0T3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldE9yZ2FuaXphdGlvbnNBY2Nlc3NSZXBvcnQ6IChcbiAgICBhcmdzOiBHZXRPcmdhbml6YXRpb25zQWNjZXNzUmVwb3J0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgR2V0T3JnYW5pemF0aW9uc0FjY2Vzc1JlcG9ydENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFBvbGljeTogKFxuICAgIGFyZ3M6IEdldFBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFBvbGljeVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0UG9saWN5VmVyc2lvbjogKFxuICAgIGFyZ3M6IEdldFBvbGljeVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0UG9saWN5VmVyc2lvbkNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Um9sZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRSb2xlOiAoXG4gICAgYXJnczogR2V0Um9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRSb2xlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRSb2xlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFJvbGVQb2xpY3k6IChcbiAgICBhcmdzOiBHZXRSb2xlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldFJvbGVQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFNBTUxQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRTQU1MUHJvdmlkZXI6IChcbiAgICBhcmdzOiBHZXRTQU1MUHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0U0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRTZXJ2ZXJDZXJ0aWZpY2F0ZTogKFxuICAgIGFyZ3M6IEdldFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldFNlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsczogKFxuICAgIGFyZ3M6IEdldFNlcnZpY2VMYXN0QWNjZXNzZWREZXRhaWxzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvcixcbiAgICBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNXaXRoRW50aXRpZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNXaXRoRW50aXRpZXM6IChcbiAgICBhcmdzOiBHZXRTZXJ2aWNlTGFzdEFjY2Vzc2VkRGV0YWlsc1dpdGhFbnRpdGllc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IEludmFsaWRJbnB1dEVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgR2V0U2VydmljZUxhc3RBY2Nlc3NlZERldGFpbHNXaXRoRW50aXRpZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1czogKFxuICAgIGFyZ3M6IEdldFNlcnZpY2VMaW5rZWRSb2xlRGVsZXRpb25TdGF0dXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgR2V0U2VydmljZUxpbmtlZFJvbGVEZWxldGlvblN0YXR1c0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U1NIUHVibGljS2V5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFNTSFB1YmxpY0tleTogKFxuICAgIGFyZ3M6IEdldFNTSFB1YmxpY0tleUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBVbnJlY29nbml6ZWRQdWJsaWNLZXlFbmNvZGluZ0Vycm9yLFxuICAgIEdldFNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0VXNlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBnZXRVc2VyOiAoXG4gICAgYXJnczogR2V0VXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBHZXRVc2VyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRVc2VyUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGdldFVzZXJQb2xpY3k6IChcbiAgICBhcmdzOiBHZXRVc2VyUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIEdldFVzZXJQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBY2Nlc3NLZXlzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RBY2Nlc3NLZXlzOiAoXG4gICAgYXJnczogTGlzdEFjY2Vzc0tleXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEFjY2Vzc0tleXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0QWNjb3VudEFsaWFzZXM6IChcbiAgICBhcmdzOiBMaXN0QWNjb3VudEFsaWFzZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RBY2NvdW50QWxpYXNlc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0QXR0YWNoZWRHcm91cFBvbGljaWVzOiAoXG4gICAgYXJnczogTGlzdEF0dGFjaGVkR3JvdXBQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0QXR0YWNoZWRHcm91cFBvbGljaWVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QXR0YWNoZWRSb2xlUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzOiAoXG4gICAgYXJnczogTGlzdEF0dGFjaGVkUm9sZVBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RBdHRhY2hlZFJvbGVQb2xpY2llc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEF0dGFjaGVkVXNlclBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RBdHRhY2hlZFVzZXJQb2xpY2llczogKFxuICAgIGFyZ3M6IExpc3RBdHRhY2hlZFVzZXJQb2xpY2llc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0QXR0YWNoZWRVc2VyUG9saWNpZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RFbnRpdGllc0ZvclBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0RW50aXRpZXNGb3JQb2xpY3k6IChcbiAgICBhcmdzOiBMaXN0RW50aXRpZXNGb3JQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEVudGl0aWVzRm9yUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0R3JvdXBQb2xpY2llc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0R3JvdXBQb2xpY2llczogKFxuICAgIGFyZ3M6IExpc3RHcm91cFBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RHcm91cFBvbGljaWVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0R3JvdXBzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RHcm91cHM6IChcbiAgICBhcmdzOiBMaXN0R3JvdXBzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0R3JvdXBzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0R3JvdXBzRm9yVXNlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0R3JvdXBzRm9yVXNlcjogKFxuICAgIGFyZ3M6IExpc3RHcm91cHNGb3JVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RHcm91cHNGb3JVc2VyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0SW5zdGFuY2VQcm9maWxlczogKFxuICAgIGFyZ3M6IExpc3RJbnN0YW5jZVByb2ZpbGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0SW5zdGFuY2VQcm9maWxlc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEluc3RhbmNlUHJvZmlsZXNGb3JSb2xlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZTogKFxuICAgIGFyZ3M6IExpc3RJbnN0YW5jZVByb2ZpbGVzRm9yUm9sZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0SW5zdGFuY2VQcm9maWxlc0ZvclJvbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RJbnN0YW5jZVByb2ZpbGVUYWdzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RJbnN0YW5jZVByb2ZpbGVUYWdzOiAoXG4gICAgYXJnczogTGlzdEluc3RhbmNlUHJvZmlsZVRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdEluc3RhbmNlUHJvZmlsZVRhZ3NDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNRkFEZXZpY2VzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RNRkFEZXZpY2VzOiAoXG4gICAgYXJnczogTGlzdE1GQURldmljZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdE1GQURldmljZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RNRkFEZXZpY2VUYWdzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RNRkFEZXZpY2VUYWdzOiAoXG4gICAgYXJnczogTGlzdE1GQURldmljZVRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdE1GQURldmljZVRhZ3NDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJzOiAoXG4gICAgYXJnczogTGlzdE9wZW5JRENvbm5lY3RQcm92aWRlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0T3BlbklEQ29ubmVjdFByb3ZpZGVyVGFnczogKFxuICAgIGFyZ3M6IExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RPcGVuSURDb25uZWN0UHJvdmlkZXJUYWdzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFBvbGljaWVzOiAoXG4gICAgYXJnczogTGlzdFBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0UG9saWNpZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0UG9saWNpZXNHcmFudGluZ1NlcnZpY2VBY2Nlc3M6IChcbiAgICBhcmdzOiBMaXN0UG9saWNpZXNHcmFudGluZ1NlcnZpY2VBY2Nlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBJbnZhbGlkSW5wdXRFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yLFxuICAgIExpc3RQb2xpY2llc0dyYW50aW5nU2VydmljZUFjY2Vzc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBvbGljeVRhZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFBvbGljeVRhZ3M6IChcbiAgICBhcmdzOiBMaXN0UG9saWN5VGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0UG9saWN5VGFnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBvbGljeVZlcnNpb25zQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RQb2xpY3lWZXJzaW9uczogKFxuICAgIGFyZ3M6IExpc3RQb2xpY3lWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0UG9saWN5VmVyc2lvbnNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RSb2xlUG9saWNpZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFJvbGVQb2xpY2llczogKFxuICAgIGFyZ3M6IExpc3RSb2xlUG9saWNpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFJvbGVQb2xpY2llc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFJvbGVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RSb2xlczogKFxuICAgIGFyZ3M6IExpc3RSb2xlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFJvbGVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0Um9sZVRhZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFJvbGVUYWdzOiAoXG4gICAgYXJnczogTGlzdFJvbGVUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RSb2xlVGFnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNBTUxQcm92aWRlcnNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFNBTUxQcm92aWRlcnM6IChcbiAgICBhcmdzOiBMaXN0U0FNTFByb3ZpZGVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFNBTUxQcm92aWRlcnNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTQU1MUHJvdmlkZXJUYWdzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RTQU1MUHJvdmlkZXJUYWdzOiAoXG4gICAgYXJnczogTGlzdFNBTUxQcm92aWRlclRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFNBTUxQcm92aWRlclRhZ3NDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFNlcnZlckNlcnRpZmljYXRlczogKFxuICAgIGFyZ3M6IExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFNlcnZlckNlcnRpZmljYXRlVGFnczogKFxuICAgIGFyZ3M6IExpc3RTZXJ2ZXJDZXJ0aWZpY2F0ZVRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBOb1N1Y2hFbnRpdHlFcnJvciB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgTGlzdFNlcnZlckNlcnRpZmljYXRlVGFnc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWxzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsczogKFxuICAgIGFyZ3M6IExpc3RTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZU5vdFN1cHBvcnRlZEVycm9yLFxuICAgIExpc3RTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNpZ25pbmdDZXJ0aWZpY2F0ZXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFNpZ25pbmdDZXJ0aWZpY2F0ZXM6IChcbiAgICBhcmdzOiBMaXN0U2lnbmluZ0NlcnRpZmljYXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0U2lnbmluZ0NlcnRpZmljYXRlc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNTSFB1YmxpY0tleXNDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFNTSFB1YmxpY0tleXM6IChcbiAgICBhcmdzOiBMaXN0U1NIUHVibGljS2V5c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yLFxuICAgIExpc3RTU0hQdWJsaWNLZXlzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VXNlclBvbGljaWVzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RVc2VyUG9saWNpZXM6IChcbiAgICBhcmdzOiBMaXN0VXNlclBvbGljaWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RVc2VyUG9saWNpZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RVc2Vyc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0VXNlcnM6IChcbiAgICBhcmdzOiBMaXN0VXNlcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIExpc3RVc2Vyc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFVzZXJUYWdzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RVc2VyVGFnczogKFxuICAgIGFyZ3M6IExpc3RVc2VyVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBMaXN0VXNlclRhZ3NDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RWaXJ0dWFsTUZBRGV2aWNlc0NvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBsaXN0VmlydHVhbE1GQURldmljZXM6IChcbiAgICBhcmdzOiBMaXN0VmlydHVhbE1GQURldmljZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBJQU1TZXJ2aWNlRXJyb3IsXG4gICAgTGlzdFZpcnR1YWxNRkFEZXZpY2VzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRHcm91cFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRHcm91cFBvbGljeTogKFxuICAgIGFyZ3M6IFB1dEdyb3VwUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRQb2xpY3lEb2N1bWVudEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBQdXRHcm91cFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0Um9sZVBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgcHV0Um9sZVBlcm1pc3Npb25zQm91bmRhcnk6IChcbiAgICBhcmdzOiBQdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgUG9saWN5Tm90QXR0YWNoYWJsZUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgICBQdXRSb2xlUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0Um9sZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRSb2xlUG9saWN5OiAoXG4gICAgYXJnczogUHV0Um9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIFB1dFJvbGVQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHB1dFVzZXJQZXJtaXNzaW9uc0JvdW5kYXJ5OiAoXG4gICAgYXJnczogUHV0VXNlclBlcm1pc3Npb25zQm91bmRhcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBvbGljeU5vdEF0dGFjaGFibGVFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBQdXRVc2VyUGVybWlzc2lvbnNCb3VuZGFyeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0VXNlclBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBwdXRVc2VyUG9saWN5OiAoXG4gICAgYXJnczogUHV0VXNlclBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgUHV0VXNlclBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlQ2xpZW50SURGcm9tT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlcjogKFxuICAgIGFyZ3M6IFJlbW92ZUNsaWVudElERnJvbU9wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBSZW1vdmVDbGllbnRJREZyb21PcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHJlbW92ZVJvbGVGcm9tSW5zdGFuY2VQcm9maWxlOiAoXG4gICAgYXJnczogUmVtb3ZlUm9sZUZyb21JbnN0YW5jZVByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yXG4gICAgfCBVbm1vZGlmaWFibGVFbnRpdHlFcnJvcixcbiAgICBSZW1vdmVSb2xlRnJvbUluc3RhbmNlUHJvZmlsZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlVXNlckZyb21Hcm91cENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSByZW1vdmVVc2VyRnJvbUdyb3VwOiAoXG4gICAgYXJnczogUmVtb3ZlVXNlckZyb21Hcm91cENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgUmVtb3ZlVXNlckZyb21Hcm91cENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVzZXRTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbDogKFxuICAgIGFyZ3M6IFJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IElBTVNlcnZpY2VFcnJvciB8IE5vU3VjaEVudGl0eUVycm9yLFxuICAgIFJlc2V0U2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVzeW5jTUZBRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHJlc3luY01GQURldmljZTogKFxuICAgIGFyZ3M6IFJlc3luY01GQURldmljZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZEF1dGhlbnRpY2F0aW9uQ29kZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFJlc3luY01GQURldmljZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2V0RGVmYXVsdFBvbGljeVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgc2V0RGVmYXVsdFBvbGljeVZlcnNpb246IChcbiAgICBhcmdzOiBTZXREZWZhdWx0UG9saWN5VmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFNldERlZmF1bHRQb2xpY3lWZXJzaW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTZXRTZWN1cml0eVRva2VuU2VydmljZVByZWZlcmVuY2VzQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHNldFNlY3VyaXR5VG9rZW5TZXJ2aWNlUHJlZmVyZW5jZXM6IChcbiAgICBhcmdzOiBTZXRTZWN1cml0eVRva2VuU2VydmljZVByZWZlcmVuY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBTZXRTZWN1cml0eVRva2VuU2VydmljZVByZWZlcmVuY2VzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTaW11bGF0ZUN1c3RvbVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSBzaW11bGF0ZUN1c3RvbVBvbGljeTogKFxuICAgIGFyZ3M6IFNpbXVsYXRlQ3VzdG9tUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgSW52YWxpZElucHV0RXJyb3IgfCBQb2xpY3lFdmFsdWF0aW9uRXJyb3IsXG4gICAgU2ltdWxhdGVDdXN0b21Qb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNpbXVsYXRlUHJpbmNpcGFsUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHNpbXVsYXRlUHJpbmNpcGFsUG9saWN5OiAoXG4gICAgYXJnczogU2ltdWxhdGVQcmluY2lwYWxQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFBvbGljeUV2YWx1YXRpb25FcnJvcixcbiAgICBTaW11bGF0ZVByaW5jaXBhbFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHRhZ0luc3RhbmNlUHJvZmlsZTogKFxuICAgIGFyZ3M6IFRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdNRkFEZXZpY2VDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnTUZBRGV2aWNlOiAoXG4gICAgYXJnczogVGFnTUZBRGV2aWNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBUYWdNRkFEZXZpY2VDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB0YWdPcGVuSURDb25uZWN0UHJvdmlkZXI6IChcbiAgICBhcmdzOiBUYWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHRhZ1BvbGljeTogKFxuICAgIGFyZ3M6IFRhZ1BvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVGFnUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdSb2xlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHRhZ1JvbGU6IChcbiAgICBhcmdzOiBUYWdSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBUYWdSb2xlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdTQU1MUHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFnU0FNTFByb3ZpZGVyOiAoXG4gICAgYXJnczogVGFnU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBUYWdTQU1MUHJvdmlkZXJDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHRhZ1NlcnZlckNlcnRpZmljYXRlOiAoXG4gICAgYXJnczogVGFnU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdVc2VyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHRhZ1VzZXI6IChcbiAgICBhcmdzOiBUYWdVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBUYWdVc2VyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ0luc3RhbmNlUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1bnRhZ0luc3RhbmNlUHJvZmlsZTogKFxuICAgIGFyZ3M6IFVudGFnSW5zdGFuY2VQcm9maWxlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVW50YWdJbnN0YW5jZVByb2ZpbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnTUZBRGV2aWNlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVudGFnTUZBRGV2aWNlOiAoXG4gICAgYXJnczogVW50YWdNRkFEZXZpY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVbnRhZ01GQURldmljZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdPcGVuSURDb25uZWN0UHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdW50YWdPcGVuSURDb25uZWN0UHJvdmlkZXI6IChcbiAgICBhcmdzOiBVbnRhZ09wZW5JRENvbm5lY3RQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVudGFnT3BlbklEQ29ubmVjdFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1BvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1bnRhZ1BvbGljeTogKFxuICAgIGFyZ3M6IFVudGFnUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVW50YWdQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnUm9sZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1bnRhZ1JvbGU6IChcbiAgICBhcmdzOiBVbnRhZ1JvbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBDb25jdXJyZW50TW9kaWZpY2F0aW9uRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVudGFnUm9sZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdTQU1MUHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdW50YWdTQU1MUHJvdmlkZXI6IChcbiAgICBhcmdzOiBVbnRhZ1NBTUxQcm92aWRlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVudGFnU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVudGFnU2VydmVyQ2VydGlmaWNhdGU6IChcbiAgICBhcmdzOiBVbnRhZ1NlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVW50YWdTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdVc2VyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVudGFnVXNlcjogKFxuICAgIGFyZ3M6IFVudGFnVXNlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVW50YWdVc2VyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVBY2Nlc3NLZXlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlQWNjZXNzS2V5OiAoXG4gICAgYXJnczogVXBkYXRlQWNjZXNzS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVcGRhdGVBY2Nlc3NLZXlDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVBY2NvdW50UGFzc3dvcmRQb2xpY3k6IChcbiAgICBhcmdzOiBVcGRhdGVBY2NvdW50UGFzc3dvcmRQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE1hbGZvcm1lZFBvbGljeURvY3VtZW50RXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVwZGF0ZUFjY291bnRQYXNzd29yZFBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQXNzdW1lUm9sZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVBc3N1bWVSb2xlUG9saWN5OiAoXG4gICAgYXJnczogVXBkYXRlQXNzdW1lUm9sZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkUG9saWN5RG9jdW1lbnRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIFVwZGF0ZUFzc3VtZVJvbGVQb2xpY3lDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUdyb3VwQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZUdyb3VwOiAoXG4gICAgYXJnczogVXBkYXRlR3JvdXBDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVXBkYXRlR3JvdXBDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUxvZ2luUHJvZmlsZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVMb2dpblByb2ZpbGU6IChcbiAgICBhcmdzOiBVcGRhdGVMb2dpblByb2ZpbGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBFbnRpdHlUZW1wb3JhcmlseVVubW9kaWZpYWJsZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBQYXNzd29yZFBvbGljeVZpb2xhdGlvbkVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVwZGF0ZUxvZ2luUHJvZmlsZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludENvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJUaHVtYnByaW50OiAoXG4gICAgYXJnczogVXBkYXRlT3BlbklEQ29ubmVjdFByb3ZpZGVyVGh1bWJwcmludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IEludmFsaWRJbnB1dEVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVcGRhdGVPcGVuSURDb25uZWN0UHJvdmlkZXJUaHVtYnByaW50Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVSb2xlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZVJvbGU6IChcbiAgICBhcmdzOiBVcGRhdGVSb2xlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3JcbiAgICB8IFVubW9kaWZpYWJsZUVudGl0eUVycm9yLFxuICAgIFVwZGF0ZVJvbGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVJvbGVEZXNjcmlwdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVSb2xlRGVzY3JpcHRpb246IChcbiAgICBhcmdzOiBVcGRhdGVSb2xlRGVzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvclxuICAgIHwgVW5tb2RpZmlhYmxlRW50aXR5RXJyb3IsXG4gICAgVXBkYXRlUm9sZURlc2NyaXB0aW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTQU1MUHJvdmlkZXJDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlU0FNTFByb3ZpZGVyOiAoXG4gICAgYXJnczogVXBkYXRlU0FNTFByb3ZpZGVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgSW52YWxpZElucHV0RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVXBkYXRlU0FNTFByb3ZpZGVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGRhdGVTZXJ2ZXJDZXJ0aWZpY2F0ZTogKFxuICAgIGFyZ3M6IFVwZGF0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBTZXJ2aWNlRmFpbHVyZUVycm9yLFxuICAgIFVwZGF0ZVNlcnZlckNlcnRpZmljYXRlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZVNlcnZpY2VTcGVjaWZpY0NyZWRlbnRpYWw6IChcbiAgICBhcmdzOiBVcGRhdGVTZXJ2aWNlU3BlY2lmaWNDcmVkZW50aWFsQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgVXBkYXRlU2VydmljZVNwZWNpZmljQ3JlZGVudGlhbENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZVNpZ25pbmdDZXJ0aWZpY2F0ZTogKFxuICAgIGFyZ3M6IFVwZGF0ZVNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVXBkYXRlU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTU0hQdWJsaWNLZXlDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlU1NIUHVibGljS2V5OiAoXG4gICAgYXJnczogVXBkYXRlU1NIUHVibGljS2V5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgSUFNU2VydmljZUVycm9yIHwgTm9TdWNoRW50aXR5RXJyb3IsXG4gICAgVXBkYXRlU1NIUHVibGljS2V5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVVc2VyQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZVVzZXI6IChcbiAgICBhcmdzOiBVcGRhdGVVc2VyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IElBTVNlcnZpY2VFcnJvclxuICAgIHwgQ29uY3VycmVudE1vZGlmaWNhdGlvbkVycm9yXG4gICAgfCBFbnRpdHlBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEVudGl0eVRlbXBvcmFyaWx5VW5tb2RpZmlhYmxlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTm9TdWNoRW50aXR5RXJyb3JcbiAgICB8IFNlcnZpY2VGYWlsdXJlRXJyb3IsXG4gICAgVXBkYXRlVXNlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBsb2FkU2VydmVyQ2VydGlmaWNhdGVDb21tYW5kfVxuICAgKi9cbiAgcmVhZG9ubHkgdXBsb2FkU2VydmVyQ2VydGlmaWNhdGU6IChcbiAgICBhcmdzOiBVcGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBJbnZhbGlkSW5wdXRFcnJvclxuICAgIHwgS2V5UGFpck1pc21hdGNoRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgTWFsZm9ybWVkQ2VydGlmaWNhdGVFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVcGxvYWRTZXJ2ZXJDZXJ0aWZpY2F0ZUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBsb2FkU2lnbmluZ0NlcnRpZmljYXRlQ29tbWFuZH1cbiAgICovXG4gIHJlYWRvbmx5IHVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZTogKFxuICAgIGFyZ3M6IFVwbG9hZFNpZ25pbmdDZXJ0aWZpY2F0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJQU1TZXJ2aWNlRXJyb3JcbiAgICB8IENvbmN1cnJlbnRNb2RpZmljYXRpb25FcnJvclxuICAgIHwgRHVwbGljYXRlQ2VydGlmaWNhdGVFcnJvclxuICAgIHwgRW50aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBJbnZhbGlkQ2VydGlmaWNhdGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBNYWxmb3JtZWRDZXJ0aWZpY2F0ZUVycm9yXG4gICAgfCBOb1N1Y2hFbnRpdHlFcnJvclxuICAgIHwgU2VydmljZUZhaWx1cmVFcnJvcixcbiAgICBVcGxvYWRTaWduaW5nQ2VydGlmaWNhdGVDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwbG9hZFNTSFB1YmxpY0tleUNvbW1hbmR9XG4gICAqL1xuICByZWFkb25seSB1cGxvYWRTU0hQdWJsaWNLZXk6IChcbiAgICBhcmdzOiBVcGxvYWRTU0hQdWJsaWNLZXlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSUFNU2VydmljZUVycm9yXG4gICAgfCBEdXBsaWNhdGVTU0hQdWJsaWNLZXlFcnJvclxuICAgIHwgSW52YWxpZFB1YmxpY0tleUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IE5vU3VjaEVudGl0eUVycm9yXG4gICAgfCBVbnJlY29nbml6ZWRQdWJsaWNLZXlFbmNvZGluZ0Vycm9yLFxuICAgIFVwbG9hZFNTSFB1YmxpY0tleUNvbW1hbmRPdXRwdXRcbiAgPjtcbn07XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgY29uc3QgSUFNU2VydmljZSA9IENvbnRleHQuVGFnPElBTVNlcnZpY2U+KFxuICBTeW1ib2wuZm9yKFwiQGVmZmVjdC1hd3MvY2xpZW50LWlhbS9JQU1TZXJ2aWNlXCIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VJQU1TZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oSUFNQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWFkb25seVJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9uczogYW55KSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6ICgpID0+IGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwgb3B0aW9ucyA/PyB7fSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgSUFNU2VydmljZUV4Y2VwdGlvbikge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248SUFNU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgSUFNU2VydmljZTtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgQmFzZUlBTVNlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChJQU1TZXJ2aWNlLCBtYWtlSUFNU2VydmljZSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBJQU1TZXJ2aWNlTGF5ZXIgPSBCYXNlSUFNU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoSUFNQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdElBTVNlcnZpY2VMYXllciA9IElBTVNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKERlZmF1bHRJQU1DbGllbnRDb25maWdMYXllciksXG4pO1xuIl19
@@ -0,0 +1,5 @@
1
+ export * from "./Errors";
2
+ export * from "./IAMClientInstance";
3
+ export * from "./IAMClientInstanceConfig";
4
+ export * from "./IAMService";
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vRXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9JQU1DbGllbnRJbnN0YW5jZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vSUFNQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0lBTVNlcnZpY2VcIjtcbiJdfQ==
package/lib/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from "./Errors";
2
+ export * from "./IAMClientInstance";
3
+ export * from "./IAMClientInstanceConfig";
4
+ export * from "./IAMService";
package/lib/index.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Errors"), exports);
18
+ __exportStar(require("./IAMClientInstance"), exports);
19
+ __exportStar(require("./IAMClientInstanceConfig"), exports);
20
+ __exportStar(require("./IAMService"), exports);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QjtBQUN6QixzREFBb0M7QUFDcEMsNERBQTBDO0FBQzFDLCtDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0Vycm9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vSUFNQ2xpZW50SW5zdGFuY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0lBTUNsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9JQU1TZXJ2aWNlXCI7XG4iXX0=
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@effect-aws/client-iam",
3
+ "author": {
4
+ "name": "Victor Korzunin",
5
+ "email": "ifloydrose@gmail.com",
6
+ "organization": false
7
+ },
8
+ "devDependencies": {
9
+ "@types/jest": "^29.5.5",
10
+ "@types/node": "^16",
11
+ "@typescript-eslint/eslint-plugin": "^6",
12
+ "@typescript-eslint/parser": "^6",
13
+ "aws-sdk-client-mock": "^3.0.0",
14
+ "aws-sdk-client-mock-jest": "^3.0.0",
15
+ "effect": "2.0.1",
16
+ "eslint": "^8",
17
+ "eslint-config-prettier": "^9.0.0",
18
+ "eslint-import-resolver-node": "^0.3.9",
19
+ "eslint-import-resolver-typescript": "^3.6.1",
20
+ "eslint-plugin-import": "^2.28.1",
21
+ "eslint-plugin-prettier": "^5.0.0",
22
+ "jest": "^29.7.0",
23
+ "prettier": "^3.0.3",
24
+ "projen": "^0.73.34",
25
+ "ts-jest": "^29.1.1",
26
+ "typescript": "^5.2.2"
27
+ },
28
+ "peerDependencies": {
29
+ "effect": "^2.0.1"
30
+ },
31
+ "dependencies": {
32
+ "@aws-sdk/client-iam": "^3",
33
+ "@aws-sdk/types": "^3"
34
+ },
35
+ "main": "lib/index.js",
36
+ "license": "MIT",
37
+ "publishConfig": {
38
+ "access": "public"
39
+ },
40
+ "version": "1.0.0",
41
+ "types": "lib/index.d.ts",
42
+ "module": "lib/esm/index.js",
43
+ "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\".",
44
+ "scripts": {
45
+ "build": "npx projen build",
46
+ "compile": "npx projen compile",
47
+ "default": "npx projen default",
48
+ "eslint": "npx projen eslint",
49
+ "package": "npx projen package",
50
+ "post-compile": "npx projen post-compile",
51
+ "pre-compile": "npx projen pre-compile",
52
+ "test": "npx projen test",
53
+ "test:watch": "npx projen test:watch",
54
+ "watch": "npx projen watch"
55
+ }
56
+ }