cdk8s-aws-cdk 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/.gitattributes +21 -0
  2. package/.jsii +4392 -0
  3. package/API.md +2204 -0
  4. package/LICENSE +202 -0
  5. package/README.md +201 -0
  6. package/changelog.md +2 -0
  7. package/examples/rds-db-instance/README.md +0 -0
  8. package/examples/rds-db-instance/cdk.out/RdsDBInstanceStack.assets.json +19 -0
  9. package/examples/rds-db-instance/cdk.out/RdsDBInstanceStack.template.json +86 -0
  10. package/examples/rds-db-instance/cdk.out/cdk.out +1 -0
  11. package/examples/rds-db-instance/cdk.out/manifest.json +230 -0
  12. package/examples/rds-db-instance/cdk.out/tree.json +171 -0
  13. package/examples/rds-db-instance/main.ts +136 -0
  14. package/lib/adapter.d.ts +37 -0
  15. package/lib/adapter.d.ts.map +1 -0
  16. package/lib/adapter.js +196 -0
  17. package/lib/chart.d.ts +19 -0
  18. package/lib/chart.d.ts.map +1 -0
  19. package/lib/chart.js +63 -0
  20. package/lib/imports/cloudcontrol.services.k8s.aws.d.ts +106 -0
  21. package/lib/imports/cloudcontrol.services.k8s.aws.d.ts.map +1 -0
  22. package/lib/imports/cloudcontrol.services.k8s.aws.js +92 -0
  23. package/lib/imports/dynamotables-dynamodb.services.k8s.aws.d.ts +430 -0
  24. package/lib/imports/dynamotables-dynamodb.services.k8s.aws.d.ts.map +1 -0
  25. package/lib/imports/dynamotables-dynamodb.services.k8s.aws.js +314 -0
  26. package/lib/imports/ec2securitygroups-ec2.services.k8s.aws.d.ts +173 -0
  27. package/lib/imports/ec2securitygroups-ec2.services.k8s.aws.d.ts.map +1 -0
  28. package/lib/imports/ec2securitygroups-ec2.services.k8s.aws.js +156 -0
  29. package/lib/imports/fieldexports-services.k8s.aws.d.ts +159 -0
  30. package/lib/imports/fieldexports-services.k8s.aws.d.ts.map +1 -0
  31. package/lib/imports/fieldexports-services.k8s.aws.js +151 -0
  32. package/lib/imports/iampolicies-iam.services.k8s.aws.d.ts +135 -0
  33. package/lib/imports/iampolicies-iam.services.k8s.aws.d.ts.map +1 -0
  34. package/lib/imports/iampolicies-iam.services.k8s.aws.js +109 -0
  35. package/lib/imports/iamroles-iam.services.k8s.aws.d.ts +143 -0
  36. package/lib/imports/iamroles-iam.services.k8s.aws.d.ts.map +1 -0
  37. package/lib/imports/iamroles-iam.services.k8s.aws.js +112 -0
  38. package/lib/imports/k8s.d.ts +18619 -0
  39. package/lib/imports/k8s.d.ts.map +1 -0
  40. package/lib/imports/k8s.js +14701 -0
  41. package/lib/imports/lambdaeventsourcemappings-lambda.services.k8s.aws.d.ts +280 -0
  42. package/lib/imports/lambdaeventsourcemappings-lambda.services.k8s.aws.d.ts.map +1 -0
  43. package/lib/imports/lambdaeventsourcemappings-lambda.services.k8s.aws.js +183 -0
  44. package/lib/imports/lambdafunctions-lambda.services.k8s.aws.d.ts +343 -0
  45. package/lib/imports/lambdafunctions-lambda.services.k8s.aws.d.ts.map +1 -0
  46. package/lib/imports/lambdafunctions-lambda.services.k8s.aws.js +225 -0
  47. package/lib/imports/rdsdbinstances-rds.services.k8s.aws.d.ts +790 -0
  48. package/lib/imports/rdsdbinstances-rds.services.k8s.aws.d.ts.map +1 -0
  49. package/lib/imports/rdsdbinstances-rds.services.k8s.aws.js +217 -0
  50. package/lib/imports/rdsdbsubnetgroups-rds.services.k8s.aws.d.ts +114 -0
  51. package/lib/imports/rdsdbsubnetgroups-rds.services.k8s.aws.d.ts.map +1 -0
  52. package/lib/imports/rdsdbsubnetgroups-rds.services.k8s.aws.js +108 -0
  53. package/lib/imports/s3buckets-s3.services.k8s.aws.d.ts +2253 -0
  54. package/lib/imports/s3buckets-s3.services.k8s.aws.d.ts.map +1 -0
  55. package/lib/imports/s3buckets-s3.services.k8s.aws.js +1672 -0
  56. package/lib/imports/sfnmachines-sfn.services.k8s.aws.d.ts +203 -0
  57. package/lib/imports/sfnmachines-sfn.services.k8s.aws.d.ts.map +1 -0
  58. package/lib/imports/sfnmachines-sfn.services.k8s.aws.js +174 -0
  59. package/lib/imports/snstopics-sns.services.k8s.aws.d.ts +106 -0
  60. package/lib/imports/snstopics-sns.services.k8s.aws.d.ts.map +1 -0
  61. package/lib/imports/snstopics-sns.services.k8s.aws.js +110 -0
  62. package/lib/index.d.ts +4 -0
  63. package/lib/index.d.ts.map +1 -0
  64. package/lib/index.js +16 -0
  65. package/lib/mappers/base.d.ts +23 -0
  66. package/lib/mappers/base.d.ts.map +1 -0
  67. package/lib/mappers/base.js +20 -0
  68. package/lib/mappers/ec2-security-group.d.ts +9 -0
  69. package/lib/mappers/ec2-security-group.d.ts.map +1 -0
  70. package/lib/mappers/ec2-security-group.js +33 -0
  71. package/lib/mappers/iam-policy.d.ts +9 -0
  72. package/lib/mappers/iam-policy.d.ts.map +1 -0
  73. package/lib/mappers/iam-policy.js +32 -0
  74. package/lib/mappers/iam-role.d.ts +9 -0
  75. package/lib/mappers/iam-role.d.ts.map +1 -0
  76. package/lib/mappers/iam-role.js +34 -0
  77. package/lib/mappers/index.d.ts +9 -0
  78. package/lib/mappers/index.d.ts.map +1 -0
  79. package/lib/mappers/index.js +21 -0
  80. package/lib/mappers/lambda-function.d.ts +9 -0
  81. package/lib/mappers/lambda-function.d.ts.map +1 -0
  82. package/lib/mappers/lambda-function.js +37 -0
  83. package/lib/mappers/rds-db-instance.d.ts +10 -0
  84. package/lib/mappers/rds-db-instance.d.ts.map +1 -0
  85. package/lib/mappers/rds-db-instance.js +65 -0
  86. package/lib/mappers/rds-db-subnet-group.d.ts +9 -0
  87. package/lib/mappers/rds-db-subnet-group.d.ts.map +1 -0
  88. package/lib/mappers/rds-db-subnet-group.js +34 -0
  89. package/lib/mappers/s3-bucket.d.ts +9 -0
  90. package/lib/mappers/s3-bucket.d.ts.map +1 -0
  91. package/lib/mappers/s3-bucket.js +53 -0
  92. package/package.json +129 -0
  93. package/releasetag.txt +1 -0
  94. package/version.txt +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rdsdbinstances-rds.services.k8s.aws.d.ts","sourceRoot":"","sources":["../../src/imports/rdsdbinstances-rds.services.k8s.aws.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toJson_DbInstanceSpecKmsKeyRefFrom = exports.toJson_DbInstanceSpecTags = exports.toJson_DbInstanceSpecProcessorFeatures = exports.toJson_DbInstanceSpecMasterUserPassword = exports.toJson_DbInstanceSpecKmsKeyRef = exports.toJson_DbInstanceSpec = exports.toJson_DbInstanceProps = exports.DbInstance = void 0;
4
+ // generated by cdk8s
5
+ const cdk8s_1 = require("cdk8s");
6
+ /**
7
+ * DBInstance is the Schema for the DBInstances API
8
+ *
9
+ * @schema DBInstance
10
+ */
11
+ class DbInstance extends cdk8s_1.ApiObject {
12
+ /**
13
+ * Defines a "DBInstance" API object
14
+ * @param scope the scope in which to define this object
15
+ * @param id a scope-local name for the object
16
+ * @param props initialization props
17
+ */
18
+ constructor(scope, id, props = {}) {
19
+ super(scope, id, {
20
+ ...DbInstance.GVK,
21
+ ...props,
22
+ });
23
+ }
24
+ /**
25
+ * Renders a Kubernetes manifest for "DBInstance".
26
+ *
27
+ * This can be used to inline resource manifests inside other objects (e.g. as templates).
28
+ *
29
+ * @param props initialization props
30
+ */
31
+ static manifest(props = {}) {
32
+ return {
33
+ ...DbInstance.GVK,
34
+ ...toJson_DbInstanceProps(props),
35
+ };
36
+ }
37
+ /**
38
+ * Renders the object to Kubernetes JSON.
39
+ */
40
+ toJson() {
41
+ const resolved = super.toJson();
42
+ return {
43
+ ...DbInstance.GVK,
44
+ ...toJson_DbInstanceProps(resolved),
45
+ };
46
+ }
47
+ }
48
+ exports.DbInstance = DbInstance;
49
+ /**
50
+ * Returns the apiVersion and kind for "DBInstance"
51
+ */
52
+ DbInstance.GVK = {
53
+ apiVersion: 'rds.services.k8s.aws/v1alpha1',
54
+ kind: 'DBInstance',
55
+ };
56
+ /**
57
+ * Converts an object of type 'DbInstanceProps' to JSON representation.
58
+ */
59
+ /* eslint-disable max-len, quote-props */
60
+ function toJson_DbInstanceProps(obj) {
61
+ if (obj === undefined) {
62
+ return undefined;
63
+ }
64
+ const result = {
65
+ 'metadata': obj.metadata,
66
+ 'spec': toJson_DbInstanceSpec(obj.spec),
67
+ };
68
+ // filter undefined values
69
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
70
+ }
71
+ exports.toJson_DbInstanceProps = toJson_DbInstanceProps;
72
+ /**
73
+ * Converts an object of type 'DbInstanceSpec' to JSON representation.
74
+ */
75
+ /* eslint-disable max-len, quote-props */
76
+ function toJson_DbInstanceSpec(obj) {
77
+ var _a, _b, _c, _d, _e;
78
+ if (obj === undefined) {
79
+ return undefined;
80
+ }
81
+ const result = {
82
+ 'allocatedStorage': obj.allocatedStorage,
83
+ 'autoMinorVersionUpgrade': obj.autoMinorVersionUpgrade,
84
+ 'availabilityZone': obj.availabilityZone,
85
+ 'backupRetentionPeriod': obj.backupRetentionPeriod,
86
+ 'characterSetName': obj.characterSetName,
87
+ 'copyTagsToSnapshot': obj.copyTagsToSnapshot,
88
+ 'customIAMInstanceProfile': obj.customIamInstanceProfile,
89
+ 'dbClusterIdentifier': obj.dbClusterIdentifier,
90
+ 'dbInstanceClass': obj.dbInstanceClass,
91
+ 'dbInstanceIdentifier': obj.dbInstanceIdentifier,
92
+ 'dbName': obj.dbName,
93
+ 'dbParameterGroupName': obj.dbParameterGroupName,
94
+ 'dbSecurityGroups': (_a = obj.dbSecurityGroups) === null || _a === void 0 ? void 0 : _a.map(y => y),
95
+ 'dbSubnetGroupName': obj.dbSubnetGroupName,
96
+ 'deletionProtection': obj.deletionProtection,
97
+ 'domain': obj.domain,
98
+ 'domainIAMRoleName': obj.domainIamRoleName,
99
+ 'enableCloudwatchLogsExports': (_b = obj.enableCloudwatchLogsExports) === null || _b === void 0 ? void 0 : _b.map(y => y),
100
+ 'enableCustomerOwnedIP': obj.enableCustomerOwnedIp,
101
+ 'enableIAMDatabaseAuthentication': obj.enableIamDatabaseAuthentication,
102
+ 'engine': obj.engine,
103
+ 'engineVersion': obj.engineVersion,
104
+ 'iops': obj.iops,
105
+ 'kmsKeyID': obj.kmsKeyId,
106
+ 'kmsKeyRef': toJson_DbInstanceSpecKmsKeyRef(obj.kmsKeyRef),
107
+ 'licenseModel': obj.licenseModel,
108
+ 'masterUserPassword': toJson_DbInstanceSpecMasterUserPassword(obj.masterUserPassword),
109
+ 'masterUsername': obj.masterUsername,
110
+ 'maxAllocatedStorage': obj.maxAllocatedStorage,
111
+ 'monitoringInterval': obj.monitoringInterval,
112
+ 'monitoringRoleARN': obj.monitoringRoleArn,
113
+ 'multiAZ': obj.multiAz,
114
+ 'ncharCharacterSetName': obj.ncharCharacterSetName,
115
+ 'optionGroupName': obj.optionGroupName,
116
+ 'performanceInsightsEnabled': obj.performanceInsightsEnabled,
117
+ 'performanceInsightsKMSKeyID': obj.performanceInsightsKmsKeyId,
118
+ 'performanceInsightsRetentionPeriod': obj.performanceInsightsRetentionPeriod,
119
+ 'port': obj.port,
120
+ 'preferredBackupWindow': obj.preferredBackupWindow,
121
+ 'preferredMaintenanceWindow': obj.preferredMaintenanceWindow,
122
+ 'processorFeatures': (_c = obj.processorFeatures) === null || _c === void 0 ? void 0 : _c.map(y => toJson_DbInstanceSpecProcessorFeatures(y)),
123
+ 'promotionTier': obj.promotionTier,
124
+ 'publiclyAccessible': obj.publiclyAccessible,
125
+ 'storageEncrypted': obj.storageEncrypted,
126
+ 'storageType': obj.storageType,
127
+ 'tags': (_d = obj.tags) === null || _d === void 0 ? void 0 : _d.map(y => toJson_DbInstanceSpecTags(y)),
128
+ 'tdeCredentialARN': obj.tdeCredentialArn,
129
+ 'tdeCredentialPassword': obj.tdeCredentialPassword,
130
+ 'timezone': obj.timezone,
131
+ 'vpcSecurityGroupIDs': (_e = obj.vpcSecurityGroupIDs) === null || _e === void 0 ? void 0 : _e.map(y => y),
132
+ };
133
+ // filter undefined values
134
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
135
+ }
136
+ exports.toJson_DbInstanceSpec = toJson_DbInstanceSpec;
137
+ /**
138
+ * Converts an object of type 'DbInstanceSpecKmsKeyRef' to JSON representation.
139
+ */
140
+ /* eslint-disable max-len, quote-props */
141
+ function toJson_DbInstanceSpecKmsKeyRef(obj) {
142
+ if (obj === undefined) {
143
+ return undefined;
144
+ }
145
+ const result = {
146
+ 'from': toJson_DbInstanceSpecKmsKeyRefFrom(obj.from),
147
+ };
148
+ // filter undefined values
149
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
150
+ }
151
+ exports.toJson_DbInstanceSpecKmsKeyRef = toJson_DbInstanceSpecKmsKeyRef;
152
+ /**
153
+ * Converts an object of type 'DbInstanceSpecMasterUserPassword' to JSON representation.
154
+ */
155
+ /* eslint-disable max-len, quote-props */
156
+ function toJson_DbInstanceSpecMasterUserPassword(obj) {
157
+ if (obj === undefined) {
158
+ return undefined;
159
+ }
160
+ const result = {
161
+ 'key': obj.key,
162
+ 'name': obj.name,
163
+ 'namespace': obj.namespace,
164
+ };
165
+ // filter undefined values
166
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
167
+ }
168
+ exports.toJson_DbInstanceSpecMasterUserPassword = toJson_DbInstanceSpecMasterUserPassword;
169
+ /**
170
+ * Converts an object of type 'DbInstanceSpecProcessorFeatures' to JSON representation.
171
+ */
172
+ /* eslint-disable max-len, quote-props */
173
+ function toJson_DbInstanceSpecProcessorFeatures(obj) {
174
+ if (obj === undefined) {
175
+ return undefined;
176
+ }
177
+ const result = {
178
+ 'name': obj.name,
179
+ 'value': obj.value,
180
+ };
181
+ // filter undefined values
182
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
183
+ }
184
+ exports.toJson_DbInstanceSpecProcessorFeatures = toJson_DbInstanceSpecProcessorFeatures;
185
+ /**
186
+ * Converts an object of type 'DbInstanceSpecTags' to JSON representation.
187
+ */
188
+ /* eslint-disable max-len, quote-props */
189
+ function toJson_DbInstanceSpecTags(obj) {
190
+ if (obj === undefined) {
191
+ return undefined;
192
+ }
193
+ const result = {
194
+ 'key': obj.key,
195
+ 'value': obj.value,
196
+ };
197
+ // filter undefined values
198
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
199
+ }
200
+ exports.toJson_DbInstanceSpecTags = toJson_DbInstanceSpecTags;
201
+ /**
202
+ * Converts an object of type 'DbInstanceSpecKmsKeyRefFrom' to JSON representation.
203
+ */
204
+ /* eslint-disable max-len, quote-props */
205
+ function toJson_DbInstanceSpecKmsKeyRefFrom(obj) {
206
+ if (obj === undefined) {
207
+ return undefined;
208
+ }
209
+ const result = {
210
+ 'name': obj.name,
211
+ };
212
+ // filter undefined values
213
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
214
+ }
215
+ exports.toJson_DbInstanceSpecKmsKeyRefFrom = toJson_DbInstanceSpecKmsKeyRefFrom;
216
+ /* eslint-enable max-len, quote-props */
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRzZGJpbnN0YW5jZXMtcmRzLnNlcnZpY2VzLms4cy5hd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0cy9yZHNkYmluc3RhbmNlcy1yZHMuc2VydmljZXMuazhzLmF3cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQkFBcUI7QUFDckIsaUNBQXVFO0FBSXZFOzs7O0dBSUc7QUFDSCxNQUFhLFVBQVcsU0FBUSxpQkFBUztJQXVCdkM7Ozs7O09BS0c7SUFDSCxZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUF5QixFQUFFO1FBQzFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxVQUFVLENBQUMsR0FBRztZQUNqQixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBekJEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBeUIsRUFBRTtRQUNoRCxPQUFPO1lBQ0wsR0FBRyxVQUFVLENBQUMsR0FBRztZQUNqQixHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQztTQUNqQyxDQUFDO0lBQ0osQ0FBQztJQWVEOztPQUVHO0lBQ0ksTUFBTTtRQUNYLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVoQyxPQUFPO1lBQ0wsR0FBRyxVQUFVLENBQUMsR0FBRztZQUNqQixHQUFHLHNCQUFzQixDQUFDLFFBQVEsQ0FBQztTQUNwQyxDQUFDO0lBQ0osQ0FBQzs7QUE5Q0gsZ0NBK0NDO0FBOUNDOztHQUVHO0FBQ29CLGNBQUcsR0FBcUI7SUFDN0MsVUFBVSxFQUFFLCtCQUErQjtJQUMzQyxJQUFJLEVBQUUsWUFBWTtDQUNuQixDQUFDO0FBZ0VKOztHQUVHO0FBQ0gseUNBQXlDO0FBQ3pDLFNBQWdCLHNCQUFzQixDQUFDLEdBQWdDO0lBQ3JFLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTtRQUFFLE9BQU8sU0FBUyxDQUFD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Q0FBQztBQVBELGdGQU9DO0FBQ0Qsd0NBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZ2VuZXJhdGVkIGJ5IGNkazhzXG5pbXBvcnQgeyBBcGlPYmplY3QsIEFwaU9iamVjdE1ldGFkYXRhLCBHcm91cFZlcnNpb25LaW5kIH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cblxuLyoqXG4gKiBEQkluc3RhbmNlIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBEQkluc3RhbmNlcyBBUElcbiAqXG4gKiBAc2NoZW1hIERCSW5zdGFuY2VcbiAqL1xuZXhwb3J0IGNsYXNzIERiSW5zdGFuY2UgZXh0ZW5kcyBBcGlPYmplY3Qge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYXBpVmVyc2lvbiBhbmQga2luZCBmb3IgXCJEQkluc3RhbmNlXCJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR1ZLOiBHcm91cFZlcnNpb25LaW5kID0ge1xuICAgIGFwaVZlcnNpb246ICdyZHMuc2VydmljZXMuazhzLmF3cy92MWFscGhhMScsXG4gICAga2luZDogJ0RCSW5zdGFuY2UnLFxuICB9O1xuXG4gIC8qKlxuICAgKiBSZW5kZXJzIGEgS3ViZXJuZXRlcyBtYW5pZmVzdCBmb3IgXCJEQkluc3RhbmNlXCIuXG4gICAqXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gaW5saW5lIHJlc291cmNlIG1hbmlmZXN0cyBpbnNpZGUgb3RoZXIgb2JqZWN0cyAoZS5nLiBhcyB0ZW1wbGF0ZXMpLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFuaWZlc3QocHJvcHM6IERiSW5zdGFuY2VQcm9wcyA9IHt9KTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uRGJJbnN0YW5jZS5HVkssXG4gICAgICAuLi50b0pzb25fRGJJbnN0YW5jZVByb3BzKHByb3BzKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBcIkRCSW5zdGFuY2VcIiBBUEkgb2JqZWN0XG4gICAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgb2JqZWN0XG4gICAqIEBwYXJhbSBpZCBhIHNjb3BlLWxvY2FsIG5hbWUgZm9yIHRoZSBvYmplY3RcbiAgICogQHBhcmFtIHByb3BzIGluaXRpYWxpemF0aW9uIHByb3BzXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERiSW5zdGFuY2VQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5EYkluc3RhbmNlLkdWSyxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIG9iamVjdCB0byBLdWJlcm5ldGVzIEpTT04uXG4gICAqL1xuICBwdWJsaWMgdG9Kc29uKCk6IGFueSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBzdXBlci50b0pzb24oKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5EYkluc3RhbmNlLkdWSyxcbiAgICAgIC4uLnRvSnNvbl9EYkluc3RhbmNlUHJvcHMocmVzb2x2ZWQpLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBEQkluc3RhbmNlIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBEQkluc3RhbmNlcyBBUElcbiAqXG4gKiBAc2NoZW1hIERCSW5zdGFuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYkluc3RhbmNlUHJvcHMge1xuICAvKipcbiAgICogQHNjaGVtYSBEQkluc3RhbmNlI21ldGFkYXRhXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IEFwaU9iamVjdE1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBEQkluc3RhbmNlU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIERCSW5zdGFuY2UuXG4gICAqIENvbnRhaW5zIHRoZSBkZXRhaWxzIG9mIGFuIEFtYXpvbiBSRFMgREIgaW5zdGFuY2UuXG4gICAqIFRoaXMgZGF0YSB0eXBlIGlzIHVzZWQgYXMgYSByZXNwb25zZSBlbGVtZW50IGluIHRoZSBEZXNjcmliZURCSW5zdGFuY2VzIGFjdGlvbi5cbiAgICpcbiAgICogQHNjaGVtYSBEQkluc3RhbmNlI3NwZWNcbiAgICovXG4gIHJlYWRvbmx5IHNwZWM/OiBEYkluc3RhbmNlU3BlYztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdEYkluc3RhbmNlUHJvcHMnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0RiSW5zdGFuY2VQcm9wcyhvYmo6IERiSW5zdGFuY2VQcm9wcyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ21ldGFkYXRhJzogb2JqLm1ldGFkYXRhLFxuICAgICdzcGVjJzogdG9Kc29uX0RiSW5zdGFuY2VTcGVjKG9iai5zcGVjKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBEQkluc3RhbmNlU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIERCSW5zdGFuY2UuXG4gKiBDb250YWlucyB0aGUgZGV0YWlscyBvZiBhbiBBbWF6b24gUkRTIERCIGluc3RhbmNlLlxuICogVGhpcyBkYXRhIHR5cGUgaXMgdXNlZCBhcyBhIHJlc3BvbnNlIGVsZW1lbnQgaW4gdGhlIERlc2NyaWJlREJJbnN0YW5jZXMgYWN0aW9uLlxuICpcbiAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYkluc3RhbmNlU3BlYyB7XG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIHN0b3JhZ2UgaW4gZ2liaWJ5dGVzIChHaUIpIHRvIGFsbG9jYXRlIGZvciB0aGUgREIgaW5zdGFuY2UuXG4gICAqIFR5cGU6IEludGVnZXJcbiAgICogQW1hem9uIEF1cm9yYVxuICAgKiBOb3QgYXBwbGljYWJsZS4gQXVyb3JhIGNsdXN0ZXIgdm9sdW1lcyBhdXRvbWF0aWNhbGx5IGdyb3cgYXMgdGhlIGFtb3VudCBvZiBkYXRhIGluIHlvdXIgZGF0YWJhc2UgaW5jcmVhc2VzLCB0aG91Z2ggeW91IGFyZSBvbmx5IGNoYXJnZWQgZm9yIHRoZSBzcGFjZSB0aGF0IHlvdSB1c2UgaW4gYW4gQXVyb3JhIGNsdXN0ZXIgdm9sdW1lLlxuICAgKiBBbWF6b24gUkRTIEN1c3RvbVxuICAgKiBDb25zdHJhaW50cyB0byB0aGUgYW1vdW50IG9mIHN0b3JhZ2UgZm9yIGVhY2ggc3RvcmFnZSB0eXBlIGFyZSB0aGUgZm9sbG93aW5nOlxuICAgKiAqIEdlbmVyYWwgUHVycG9zZSAoU1NEKSBzdG9yYWdlIChncDIpOiBNdXN0IGJlIGFuIGludGVnZXIgZnJvbSA0MCB0byA2NTUzNi5cbiAgICogKiBQcm92aXNpb25lZCBJT1BTIHN0b3JhZ2UgKGlvMSk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDQwIHRvIDY1NTM2LlxuICAgKiBNeVNRTFxuICAgKiBDb25zdHJhaW50cyB0byB0aGUgYW1vdW50IG9mIHN0b3JhZ2UgZm9yIGVhY2ggc3RvcmFnZSB0eXBlIGFyZSB0aGUgZm9sbG93aW5nOlxuICAgKiAqIEdlbmVyYWwgUHVycG9zZSAoU1NEKSBzdG9yYWdlIChncDIpOiBNdXN0IGJlIGFuIGludGVnZXIgZnJvbSAyMCB0byA2NTUzNi5cbiAgICogKiBQcm92aXNpb25lZCBJT1BTIHN0b3JhZ2UgKGlvMSk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDEwMCB0byA2NTUzNi5cbiAgICogKiBNYWduZXRpYyBzdG9yYWdlIChzdGFuZGFyZCk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDUgdG8gMzA3Mi5cbiAgICogTWFyaWFEQlxuICAgKiBDb25zdHJhaW50cyB0byB0aGUgYW1vdW50IG9mIHN0b3JhZ2UgZm9yIGVhY2ggc3RvcmFnZSB0eXBlIGFyZSB0aGUgZm9sbG93aW5nOlxuICAgKiAqIEdlbmVyYWwgUHVycG9zZSAoU1NEKSBzdG9yYWdlIChncDIpOiBNdXN0IGJlIGFuIGludGVnZXIgZnJvbSAyMCB0byA2NTUzNi5cbiAgICogKiBQcm92aXNpb25lZCBJT1BTIHN0b3JhZ2UgKGlvMSk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDEwMCB0byA2NTUzNi5cbiAgICogKiBNYWduZXRpYyBzdG9yYWdlIChzdGFuZGFyZCk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDUgdG8gMzA3Mi5cbiAgICogUG9zdGdyZVNRTFxuICAgKiBDb25zdHJhaW50cyB0byB0aGUgYW1vdW50IG9mIHN0b3JhZ2UgZm9yIGVhY2ggc3RvcmFnZSB0eXBlIGFyZSB0aGUgZm9sbG93aW5nOlxuICAgKiAqIEdlbmVyYWwgUHVycG9zZSAoU1NEKSBzdG9yYWdlIChncDIpOiBNdXN0IGJlIGFuIGludGVnZXIgZnJvbSAyMCB0byA2NTUzNi5cbiAgICogKiBQcm92aXNpb25lZCBJT1BTIHN0b3JhZ2UgKGlvMSk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDEwMCB0byA2NTUzNi5cbiAgICogKiBNYWduZXRpYyBzdG9yYWdlIChzdGFuZGFyZCk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDUgdG8gMzA3Mi5cbiAgICogT3JhY2xlXG4gICAqIENvbnN0cmFpbnRzIHRvIHRoZSBhbW91bnQgb2Ygc3RvcmFnZSBmb3IgZWFjaCBzdG9yYWdlIHR5cGUgYXJlIHRoZSBmb2xsb3dpbmc6XG4gICAqICogR2VuZXJhbCBQdXJwb3NlIChTU0QpIHN0b3JhZ2UgKGdwMik6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDIwIHRvIDY1NTM2LlxuICAgKiAqIFByb3Zpc2lvbmVkIElPUFMgc3RvcmFnZSAoaW8xKTogTXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gMTAwIHRvIDY1NTM2LlxuICAgKiAqIE1hZ25ldGljIHN0b3JhZ2UgKHN0YW5kYXJkKTogTXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gMTAgdG8gMzA3Mi5cbiAgICogU1FMIFNlcnZlclxuICAgKiBDb25zdHJhaW50cyB0byB0aGUgYW1vdW50IG9mIHN0b3JhZ2UgZm9yIGVhY2ggc3RvcmFnZSB0eXBlIGFyZSB0aGUgZm9sbG93aW5nOlxuICAgKiAqIEdlbmVyYWwgUHVycG9zZSAoU1NEKSBzdG9yYWdlIChncDIpOiBFbnRlcnByaXNlIGFuZCBTdGFuZGFyZCBlZGl0aW9uczogICAgTXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gMjAwIHRvIDE2Mzg0LiBXZWIgYW5kIEV4cHJlc3MgZWRpdGlvbnM6IE11c3QgYmUgICAgYW4gaW50ZWdlciBmcm9tIDIwIHRvIDE2Mzg0LlxuICAgKiAqIFByb3Zpc2lvbmVkIElPUFMgc3RvcmFnZSAoaW8xKTogRW50ZXJwcmlzZSBhbmQgU3RhbmRhcmQgZWRpdGlvbnM6IE11c3QgICAgYmUgYW4gaW50ZWdlciBmcm9tIDIwMCB0byAxNjM4NC4gV2ViIGFuZCBFeHByZXNzIGVkaXRpb25zOiBNdXN0IGJlIGFuICAgIGludGVnZXIgZnJvbSAxMDAgdG8gMTYzODQuXG4gICAqICogTWFnbmV0aWMgc3RvcmFnZSAoc3RhbmRhcmQpOiBFbnRlcnByaXNlIGFuZCBTdGFuZGFyZCBlZGl0aW9uczogTXVzdCAgICBiZSBhbiBpbnRlZ2VyIGZyb20gMjAwIHRvIDEwMjQuIFdlYiBhbmQgRXhwcmVzcyBlZGl0aW9uczogTXVzdCBiZSBhbiBpbnRlZ2VyICAgIGZyb20gMjAgdG8gMTAyNC5cbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyNhbGxvY2F0ZWRTdG9yYWdlXG4gICAqL1xuICByZWFkb25seSBhbGxvY2F0ZWRTdG9yYWdlPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgbWlub3IgZW5naW5lIHVwZ3JhZGVzIGFyZSBhcHBsaWVkIGF1dG9tYXRpY2FsbHkgdG8gdGhlIERCIGluc3RhbmNlIGR1cmluZyB0aGUgbWFpbnRlbmFuY2Ugd2luZG93LiBCeSBkZWZhdWx0LCBtaW5vciBlbmdpbmUgdXBncmFkZXMgYXJlIGFwcGxpZWQgYXV0b21hdGljYWxseS5cbiAgICogSWYgeW91IGNyZWF0ZSBhbiBSRFMgQ3VzdG9tIERCIGluc3RhbmNlLCB5b3UgbXVzdCBzZXQgQXV0b01pbm9yVmVyc2lvblVwZ3JhZGUgdG8gZmFsc2UuXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjYXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcbiAgICovXG4gIHJlYWRvbmx5IGF1dG9NaW5vclZlcnNpb25VcGdyYWRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIEF2YWlsYWJpbGl0eSBab25lIChBWikgd2hlcmUgdGhlIGRhdGFiYXNlIHdpbGwgYmUgY3JlYXRlZC4gRm9yIGluZm9ybWF0aW9uIG9uIEFtYXpvbiBXZWIgU2VydmljZXMgUmVnaW9ucyBhbmQgQXZhaWxhYmlsaXR5IFpvbmVzLCBzZWUgUmVnaW9ucyBhbmQgQXZhaWxhYmlsaXR5IFpvbmVzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvQ29uY2VwdHMuUmVnaW9uc0FuZEF2YWlsYWJpbGl0eVpvbmVzLmh0bWwpLlxuICAgKiBEZWZhdWx0OiBBIHJhbmRvbSwgc3lzdGVtLWNob3NlbiBBdmFpbGFiaWxpdHkgWm9uZSBpbiB0aGUgZW5kcG9pbnQncyBBbWF6b24gV2ViIFNlcnZpY2VzIFJlZ2lvbi5cbiAgICogRXhhbXBsZTogdXMtZWFzdC0xZFxuICAgKiBDb25zdHJhaW50OiBUaGUgQXZhaWxhYmlsaXR5Wm9uZSBwYXJhbWV0ZXIgY2FuJ3QgYmUgc3BlY2lmaWVkIGlmIHRoZSBEQiBpbnN0YW5jZSBpcyBhIE11bHRpLUFaIGRlcGxveW1lbnQuIFRoZSBzcGVjaWZpZWQgQXZhaWxhYmlsaXR5IFpvbmUgbXVzdCBiZSBpbiB0aGUgc2FtZSBBbWF6b24gV2ViIFNlcnZpY2VzIFJlZ2lvbiBhcyB0aGUgY3VycmVudCBlbmRwb2ludC5cbiAgICogSWYgeW91J3JlIGNyZWF0aW5nIGEgREIgaW5zdGFuY2UgaW4gYW4gUkRTIG9uIFZNd2FyZSBlbnZpcm9ubWVudCwgc3BlY2lmeSB0aGUgaWRlbnRpZmllciBvZiB0aGUgY3VzdG9tIEF2YWlsYWJpbGl0eSBab25lIHRvIGNyZWF0ZSB0aGUgREIgaW5zdGFuY2UgaW4uXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IFJEUyBvbiBWTXdhcmUsIHNlZSB0aGUgUkRTIG9uIFZNd2FyZSBVc2VyIEd1aWRlLiAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvUkRTb25WTXdhcmVVc2VyR3VpZGUvcmRzLW9uLXZtd2FyZS5odG1sKVxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjI2F2YWlsYWJpbGl0eVpvbmVcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZGF5cyBmb3Igd2hpY2ggYXV0b21hdGVkIGJhY2t1cHMgYXJlIHJldGFpbmVkLiBTZXR0aW5nIHRoaXMgcGFyYW1ldGVyIHRvIGEgcG9zaXRpdmUgbnVtYmVyIGVuYWJsZXMgYmFja3Vwcy4gU2V0dGluZyB0aGlzIHBhcmFtZXRlciB0byAwIGRpc2FibGVzIGF1dG9tYXRlZCBiYWNrdXBzLlxuICAgKiBBbWF6b24gQXVyb3JhXG4gICAqIE5vdCBhcHBsaWNhYmxlLiBUaGUgcmV0ZW50aW9uIHBlcmlvZCBmb3IgYXV0b21hdGVkIGJhY2t1cHMgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAgICogRGVmYXVsdDogMVxuICAgKiBDb25zdHJhaW50czpcbiAgICogKiBNdXN0IGJlIGEgdmFsdWUgZnJvbSAwIHRvIDM1XG4gICAqICogQ2FuJ3QgYmUgc2V0IHRvIDAgaWYgdGhlIERCIGluc3RhbmNlIGlzIGEgc291cmNlIHRvIHJlYWQgcmVwbGljYXNcbiAgICogKiBDYW4ndCBiZSBzZXQgdG8gMCBvciAzNSBmb3IgYW4gUkRTIEN1c3RvbSBEQiBpbnN0YW5jZVxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjI2JhY2t1cFJldGVudGlvblBlcmlvZFxuICAgKi9cbiAgcmVhZG9ubHkgYmFja3VwUmV0ZW50aW9uUGVyaW9kPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBGb3Igc3VwcG9ydGVkIGVuZ2luZXMsIHRoaXMgdmFsdWUgaW5kaWNhdGVzIHRoYXQgdGhlIERCIGluc3RhbmNlIHNob3VsZCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBDaGFyYWN0ZXJTZXQuXG4gICAqIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20uIEhvd2V2ZXIsIGlmIHlvdSBuZWVkIHRvIGNoYW5nZSB0aGUgY2hhcmFjdGVyIHNldCwgeW91IGNhbiBjaGFuZ2UgaXQgb24gdGhlIGRhdGFiYXNlIGl0c2VsZi5cbiAgICogQW1hem9uIEF1cm9yYVxuICAgKiBOb3QgYXBwbGljYWJsZS4gVGhlIGNoYXJhY3RlciBzZXQgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBDcmVhdGVEQkNsdXN0ZXIuXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjY2hhcmFjdGVyU2V0TmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhcmFjdGVyU2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRvIGNvcHkgdGFncyBmcm9tIHRoZSBEQiBpbnN0YW5jZSB0byBzbmFwc2hvdHMgb2YgdGhlIERCIGluc3RhbmNlLiBCeSBkZWZhdWx0LCB0YWdzIGFyZSBub3QgY29waWVkLlxuICAgKiBBbWF6b24gQXVyb3JhXG4gICAqIE5vdCBhcHBsaWNhYmxlLiBDb3B5aW5nIHRhZ3MgdG8gc25hcHNob3RzIGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuIFNldHRpbmcgdGhpcyB2YWx1ZSBmb3IgYW4gQXVyb3JhIERCIGluc3RhbmNlIGhhcyBubyBlZmZlY3Qgb24gdGhlIERCIGNsdXN0ZXIgc2V0dGluZy5cbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyNjb3B5VGFnc1RvU25hcHNob3RcbiAgICovXG4gIHJlYWRvbmx5IGNvcHlUYWdzVG9TbmFwc2hvdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSBwcm9maWxlIGFzc29jaWF0ZWQgd2l0aCB0aGUgdW5kZXJseWluZyBBbWF6b24gRUMyIGluc3RhbmNlIG9mIGFuIFJEUyBDdXN0b20gREIgaW5zdGFuY2UuIFRoZSBpbnN0YW5jZSBwcm9maWxlIG11c3QgbWVldCB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50czpcbiAgICogKiBUaGUgcHJvZmlsZSBtdXN0IGV4aXN0IGluIHlvdXIgYWNjb3VudC5cbiAgICogKiBUaGUgcHJvZmlsZSBtdXN0IGhhdmUgYW4gSUFNIHJvbGUgdGhhdCBBbWF6b24gRUMyIGhhcyBwZXJtaXNzaW9ucyB0byAgICBhc3N1bWUuXG4gICAqICogVGhlIGluc3RhbmNlIHByb2ZpbGUgbmFtZSBhbmQgdGhlIGFzc29jaWF0ZWQgSUFNIHJvbGUgbmFtZSBtdXN0IHN0YXJ0ICAgIHdpdGggdGhlIHByZWZpeCBBV1NSRFNDdXN0b20uXG4gICAqIEZvciB0aGUgbGlzdCBvZiBwZXJtaXNzaW9ucyByZXF1aXJlZCBmb3IgdGhlIElBTSByb2xlLCBzZWUgQ29uZmlndXJlIElBTSBhbmQgeW91ciBWUEMgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9jdXN0b20tc2V0dXAtb3JjbC5odG1sI2N1c3RvbS1zZXR1cC1vcmNsLmlhbS12cGMpIGluIHRoZSBBbWF6b24gUmVsYXRpb25hbCBEYXRhYmFzZSBTZXJ2aWNlIFVzZXIgR3VpZGUuXG4gICAqIFRoaXMgc2V0dGluZyBpcyByZXF1aXJlZCBmb3IgUkRTIEN1c3RvbS5cbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyNjdXN0b21JQU1JbnN0YW5jZVByb2ZpbGVcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUlhbUluc3RhbmNlUHJvZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIERCIGNsdXN0ZXIgdGhhdCB0aGUgaW5zdGFuY2Ugd2lsbCBiZWxvbmcgdG8uXG4gICAqIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20uXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjZGJDbHVzdGVySWRlbnRpZmllclxuICAgKi9cbiAgcmVhZG9ubHkgZGJDbHVzdGVySWRlbnRpZmllcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbXB1dGUgYW5kIG1lbW9yeSBjYXBhY2l0eSBvZiB0aGUgREIgaW5zdGFuY2UsIGZvciBleGFtcGxlLCBkYi5tNC5sYXJnZS4gTm90IGFsbCBEQiBpbnN0YW5jZSBjbGFzc2VzIGFyZSBhdmFpbGFibGUgaW4gYWxsIEFtYXpvbiBXZWIgU2VydmljZXMgUmVnaW9ucywgb3IgZm9yIGFsbCBkYXRhYmFzZSBlbmdpbmVzLiBGb3IgdGhlIGZ1bGwgbGlzdCBvZiBEQiBpbnN0YW5jZSBjbGFzc2VzLCBhbmQgYXZhaWxhYmlsaXR5IGZvciB5b3VyIGVuZ2luZSwgc2VlIERCIEluc3RhbmNlIENsYXNzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvQ29uY2VwdHMuREJJbnN0YW5jZUNsYXNzLmh0bWwpIGluIHRoZSBBbWF6b24gUkRTIFVzZXIgR3VpZGUuXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjZGJJbnN0YW5jZUNsYXNzXG4gICAqL1xuICByZWFkb25seSBkYkluc3RhbmNlQ2xhc3M6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIERCIGluc3RhbmNlIGlkZW50aWZpZXIuIFRoaXMgcGFyYW1ldGVyIGlzIHN0b3JlZCBhcyBhIGxvd2VyY2FzZSBzdHJpbmcuXG4gICAqIENvbnN0cmFpbnRzOlxuICAgKiAqIE11c3QgY29udGFpbiBmcm9tIDEgdG8gNjMgbGV0dGVycywgbnVtYmVycywgb3IgaHlwaGVucy5cbiAgICogKiBGaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlci5cbiAgICogKiBDYW4ndCBlbmQgd2l0aCBhIGh5cGhlbiBvciBjb250YWluIHR3byBjb25zZWN1dGl2ZSBoeXBoZW5zLlxuICAgKiBFeGFtcGxlOiBteWRiaW5zdGFuY2VcbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyNkYkluc3RhbmNlSWRlbnRpZmllclxuICAgKi9cbiAgcmVhZG9ubHkgZGJJbnN0YW5jZUlkZW50aWZpZXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1lYW5pbmcgb2YgdGhpcyBwYXJhbWV0ZXIgZGlmZmVycyBhY2NvcmRpbmcgdG8gdGhlIGRhdGFiYXNlIGVuZ2luZSB5b3UgdXNlLlxuICAgKiBNeVNRTFxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UgdG8gY3JlYXRlIHdoZW4gdGhlIERCIGluc3RhbmNlIGlzIGNyZWF0ZWQuIElmIHRoaXMgcGFyYW1ldGVyIGlzbid0IHNwZWNpZmllZCwgbm8gZGF0YWJhc2UgaXMgY3JlYXRlZCBpbiB0aGUgREIgaW5zdGFuY2UuXG4gICAqIENvbnN0cmFpbnRzOlxuICAgKiAqIE11c3QgY29udGFpbiAxIHRvIDY0IGxldHRlcnMgb3IgbnVtYmVycy5cbiAgICogKiBNdXN0IGJlZ2luIHdpdGggYSBsZXR0ZXIuIFN1YnNlcXVlbnQgY2hhcmFjdGVycyBjYW4gYmUgbGV0dGVycywgdW5kZXJzY29yZXMsICAgIG9yIGRpZ2l0cyAoMC05KS5cbiAgICogKiBDYW4ndCBiZSBhIHdvcmQgcmVzZXJ2ZWQgYnkgdGhlIHNwZWNpZmllZCBkYXRhYmFzZSBlbmdpbmVcbiAgICogTWFyaWFEQlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UgdG8gY3JlYXRlIHdoZW4gdGhlIERCIGluc3RhbmNlIGlzIGNyZWF0ZWQuIElmIHRoaXMgcGFyYW1ldGVyIGlzbid0IHNwZWNpZmllZCwgbm8gZGF0YWJhc2UgaXMgY3JlYXRlZCBpbiB0aGUgREIgaW5zdGFuY2UuXG4gICAqIENvbnN0cmFpbnRzOlxuICAgKiAqIE11c3QgY29udGFpbiAxIHRvIDY0IGxldHRlcnMgb3IgbnVtYmVycy5cbiAgICogKiBNdXN0IGJlZ2luIHdpdGggYSBsZXR0ZXIuIFN1YnNlcXVlbnQgY2hhcmFjdGVycyBjYW4gYmUgbGV0dGVycywgdW5kZXJzY29yZXMsICAgIG9yIGRpZ2l0cyAoMC05KS5cbiAgICogKiBDYW4ndCBiZSBhIHdvcmQgcmVzZXJ2ZWQgYnkgdGhlIHNwZWNpZmllZCBkYXRhYmFzZSBlbmdpbmVcbiAgICogUG9zdGdyZVNRTFxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UgdG8gY3JlYXRlIHdoZW4gdGhlIERCIGluc3RhbmNlIGlzIGNyZWF0ZWQuIElmIHRoaXMgcGFyYW1ldGVyIGlzbid0IHNwZWNpZmllZCwgYSBkYXRhYmFzZSBuYW1lZCBwb3N0Z3JlcyBpcyBjcmVhdGVkIGluIHRoZSBEQiBpbnN0YW5jZS5cbiAgICogQ29uc3RyYWludHM6XG4gICAqICogTXVzdCBjb250YWluIDEgdG8gNjMgbGV0dGVycywgbnVtYmVycywgb3IgdW5kZXJzY29yZXMuXG4gICAqICogTXVzdCBiZWdpbiB3aXRoIGEgbGV0dGVyLiBTdWJzZXF1ZW50IGNoYXJhY3RlcnMgY2FuIGJlIGxldHRlcnMsIHVuZGVyc2NvcmVzLCAgICBvciBkaWdpdHMgKDAtOSkuXG4gICAqICogQ2FuJ3QgYmUgYSB3b3JkIHJlc2VydmVkIGJ5IHRoZSBzcGVjaWZpZWQgZGF0YWJhc2UgZW5naW5lXG4gICAqIE9yYWNsZVxuICAgKiBUaGUgT3JhY2xlIFN5c3RlbSBJRCAoU0lEKSBvZiB0aGUgY3JlYXRlZCBEQiBpbnN0YW5jZS4gSWYgeW91IHNwZWNpZnkgbnVsbCwgdGhlIGRlZmF1bHQgdmFsdWUgT1JDTCBpcyB1c2VkLiBZb3UgY2FuJ3Qgc3BlY2lmeSB0aGUgc3RyaW5nIE5VTEwsIG9yIGFueSBvdGhlciByZXNlcnZlZCB3b3JkLCBmb3IgREJOYW1lLlxuICAgKiBEZWZhdWx0OiBPUkNMXG4gICAqIENvbnN0cmFpbnRzOlxuICAgKiAqIENhbid0IGJlIGxvbmdlciB0aGFuIDggY2hhcmFjdGVyc1xuICAgKiBBbWF6b24gUkRTIEN1c3RvbVxuICAgKiBUaGUgT3JhY2xlIFN5c3RlbSBJRCAoU0lEKSBvZiB0aGUgY3JlYXRlZCBSRFMgQ3VzdG9tIERCIGluc3RhbmNlLiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIHZhbHVlLCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyBPUkNMLlxuICAgKiBEZWZhdWx0OiBPUkNMXG4gICAqIENvbnN0cmFpbnRzOlxuICAgKiAqIEl0IG11c3QgY29udGFpbiAxIHRvIDggYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuXG4gICAqICogSXQgbXVzdCBjb250YWluIGEgbGV0dGVyLlxuICAgKiAqIEl0IGNhbid0IGJlIGEgd29yZCByZXNlcnZlZCBieSB0aGUgZGF0YWJhc2UgZW5naW5lLlxuICAgKiBTUUwgU2VydmVyXG4gICAqIE5vdCBhcHBsaWNhYmxlLiBNdXN0IGJlIG51bGwuXG4gICAqIEFtYXpvbiBBdXJvcmEgTXlTUUxcbiAgICogVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIHRvIGNyZWF0ZSB3aGVuIHRoZSBwcmltYXJ5IERCIGluc3RhbmNlIG9mIHRoZSBBdXJvcmEgTXlTUUwgREIgY2x1c3RlciBpcyBjcmVhdGVkLiBJZiB0aGlzIHBhcmFtZXRlciBpc24ndCBzcGVjaWZpZWQgZm9yIGFuIEF1cm9yYSBNeVNRTCBEQiBjbHVzdGVyLCBubyBkYXRhYmFzZSBpcyBjcmVhdGVkIGluIHRoZSBEQiBjbHVzdGVyLlxuICAgKiBDb25zdHJhaW50czpcbiAgICogKiBJdCBtdXN0IGNvbnRhaW4gMSB0byA2NCBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy5cbiAgICogKiBJdCBjYW4ndCBiZSBhIHdvcmQgcmVzZXJ2ZWQgYnkgdGhlIGRhdGFiYXNlIGVuZ2luZS5cbiAgICogQW1hem9uIEF1cm9yYSBQb3N0Z3JlU1FMXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZSB0byBjcmVhdGUgd2hlbiB0aGUgcHJpbWFyeSBEQiBpbnN0YW5jZSBvZiB0aGUgQXVyb3JhIFBvc3RncmVTUUwgREIgY2x1c3RlciBpcyBjcmVhdGVkLiBJZiB0aGlzIHBhcmFtZXRlciBpc24ndCBzcGVjaWZpZWQgZm9yIGFuIEF1cm9yYSBQb3N0Z3JlU1FMIERCIGNsdXN0ZXIsIGEgZGF0YWJhc2UgbmFtZWQgcG9zdGdyZXMgaXMgY3JlYXRlZCBpbiB0aGUgREIgY2x1c3Rlci5cbiAgICogQ29uc3RyYWludHM6XG4gICAqICogSXQgbXVzdCBjb250YWluIDEgdG8gNjMgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuXG4gICAqICogSXQgbXVzdCBiZWdpbiB3aXRoIGEgbGV0dGVyIG9yIGFuIHVuZGVyc2NvcmUuIFN1YnNlcXVlbnQgY2hhcmFjdGVycyAgICBjYW4gYmUgbGV0dGVycywgdW5kZXJzY29yZXMsIG9yIGRpZ2l0cyAoMCB0byA5KS5cbiAgICogKiBJdCBjYW4ndCBiZSBhIHdvcmQgcmVzZXJ2ZWQgYnkgdGhlIGRhdGFiYXNlIGVuZ2luZS5cbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyNkYk5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRiTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIERCIHBhcmFtZXRlciBncm91cCB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIERCIGluc3RhbmNlLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgYSB2YWx1ZSwgdGhlbiB0aGUgZGVmYXVsdCBEQiBwYXJhbWV0ZXIgZ3JvdXAgZm9yIHRoZSBzcGVjaWZpZWQgREIgZW5naW5lIGFuZCB2ZXJzaW9uIGlzIHVzZWQuXG4gICAqIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20uXG4gICAqIENvbnN0cmFpbnRzOlxuICAgKiAqIE11c3QgYmUgMSB0byAyNTUgbGV0dGVycywgbnVtYmVycywgb3IgaHlwaGVucy5cbiAgICogKiBGaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlclxuICAgKiAqIENhbid0IGVuZCB3aXRoIGEgaHlwaGVuIG9yIGNvbnRhaW4gdHdvIGNvbnNlY3V0aXZlIGh5cGhlbnNcbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyNkYlBhcmFtZXRlckdyb3VwTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZGJQYXJhbWV0ZXJHcm91cE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBEQiBzZWN1cml0eSBncm91cHMgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBEQiBpbnN0YW5jZS5cbiAgICogRGVmYXVsdDogVGhlIGRlZmF1bHQgREIgc2VjdXJpdHkgZ3JvdXAgZm9yIHRoZSBkYXRhYmFzZSBlbmdpbmUuXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjZGJTZWN1cml0eUdyb3Vwc1xuICAgKi9cbiAgcmVhZG9ubHkgZGJTZWN1cml0eUdyb3Vwcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBIERCIHN1Ym5ldCBncm91cCB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIERCIGluc3RhbmNlLlxuICAgKiBJZiB0aGVyZSBpcyBubyBEQiBzdWJuZXQgZ3JvdXAsIHRoZW4gaXQgaXMgYSBub24tVlBDIERCIGluc3RhbmNlLlxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjI2RiU3VibmV0R3JvdXBOYW1lXG4gICAqL1xuICByZWFkb25seSBkYlN1Ym5ldEdyb3VwTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRoZSBEQiBpbnN0YW5jZSBoYXMgZGVsZXRpb24gcHJvdGVjdGlvbiBlbmFibGVkLiBUaGUgZGF0YWJhc2UgY2FuJ3QgYmUgZGVsZXRlZCB3aGVuIGRlbGV0aW9uIHByb3RlY3Rpb24gaXMgZW5hYmxlZC4gQnkgZGVmYXVsdCwgZGVsZXRpb24gcHJvdGVjdGlvbiBpcyBkaXNhYmxlZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBEZWxldGluZyBhIERCIEluc3RhbmNlIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9EZWxldGVJbnN0YW5jZS5odG1sKS5cbiAgICogQW1hem9uIEF1cm9yYVxuICAgKiBOb3QgYXBwbGljYWJsZS4gWW91IGNhbiBlbmFibGUgb3IgZGlzYWJsZSBkZWxldGlvbiBwcm90ZWN0aW9uIGZvciB0aGUgREIgY2x1c3Rlci4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBDcmVhdGVEQkNsdXN0ZXIuIERCIGluc3RhbmNlcyBpbiBhIERCIGNsdXN0ZXIgY2FuIGJlIGRlbGV0ZWQgZXZlbiB3aGVuIGRlbGV0aW9uIHByb3RlY3Rpb24gaXMgZW5hYmxlZCBmb3IgdGhlIERCIGNsdXN0ZXIuXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjZGVsZXRpb25Qcm90ZWN0aW9uXG4gICAqL1xuICByZWFkb25seSBkZWxldGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgQWN0aXZlIERpcmVjdG9yeSBkaXJlY3RvcnkgSUQgdG8gY3JlYXRlIHRoZSBEQiBpbnN0YW5jZSBpbi4gQ3VycmVudGx5LCBvbmx5IE15U1FMLCBNaWNyb3NvZnQgU1FMIFNlcnZlciwgT3JhY2xlLCBhbmQgUG9zdGdyZVNRTCBEQiBpbnN0YW5jZXMgY2FuIGJlIGNyZWF0ZWQgaW4gYW4gQWN0aXZlIERpcmVjdG9yeSBEb21haW4uXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgS2VyYmVyb3MgQXV0aGVudGljYXRpb24gKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9rZXJiZXJvcy1hdXRoZW50aWNhdGlvbi5odG1sKSBpbiB0aGUgQW1hem9uIFJEUyBVc2VyIEd1aWRlLlxuICAgKiBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tLlxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjI2RvbWFpblxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBJQU0gcm9sZSB0byBiZSB1c2VkIHdoZW4gbWFraW5nIEFQSSBjYWxscyB0byB0aGUgRGlyZWN0b3J5IFNlcnZpY2UuXG4gICAqIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20uXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjZG9tYWluSUFNUm9sZU5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbklhbVJvbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBsb2cgdHlwZXMgdGhhdCBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIGV4cG9ydGluZyB0byBDbG91ZFdhdGNoIExvZ3MuIFRoZSB2YWx1ZXMgaW4gdGhlIGxpc3QgZGVwZW5kIG9uIHRoZSBEQiBlbmdpbmUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgUHVibGlzaGluZyBEYXRhYmFzZSBMb2dzIHRvIEFtYXpvbiBDbG91ZFdhdGNoIExvZ3MgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9VU0VSX0xvZ0FjY2Vzcy5odG1sI1VTRVJfTG9nQWNjZXNzLlByb2NlZHVyYWwuVXBsb2FkdG9DbG91ZFdhdGNoKSBpbiB0aGUgQW1hem9uIFJlbGF0aW9uYWwgRGF0YWJhc2UgU2VydmljZSBVc2VyIEd1aWRlLlxuICAgKiBBbWF6b24gQXVyb3JhXG4gICAqIE5vdCBhcHBsaWNhYmxlLiBDbG91ZFdhdGNoIExvZ3MgZXhwb3J0cyBhcmUgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAgICogUkRTIEN1c3RvbVxuICAgKiBOb3QgYXBwbGljYWJsZS5cbiAgICogTWFyaWFEQlxuICAgKiBQb3NzaWJsZSB2YWx1ZXMgYXJlIGF1ZGl0LCBlcnJvciwgZ2VuZXJhbCwgYW5kIHNsb3dxdWVyeS5cbiAgICogTWljcm9zb2Z0IFNRTCBTZXJ2ZXJcbiAgICogUG9zc2libGUgdmFsdWVzIGFyZSBhZ2VudCBhbmQgZXJyb3IuXG4gICAqIE15U1FMXG4gICAqIFBvc3NpYmxlIHZhbHVlcyBhcmUgYXVkaXQsIGVycm9yLCBnZW5lcmFsLCBhbmQgc2xvd3F1ZXJ5LlxuICAgKiBPcmFjbGVcbiAgICogUG9zc2libGUgdmFsdWVzIGFyZSBhbGVydCwgYXVkaXQsIGxpc3RlbmVyLCB0cmFjZSwgYW5kIG9lbWFnZW50LlxuICAgKiBQb3N0Z3JlU1FMXG4gICAqIFBvc3NpYmxlIHZhbHVlcyBhcmUgcG9zdGdyZXNxbCBhbmQgdXBncmFkZS5cbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyNlbmFibGVDbG91ZHdhdGNoTG9nc0V4cG9ydHNcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUNsb3Vkd2F0Y2hMb2dzRXhwb3J0cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdG8gZW5hYmxlIGEgY3VzdG9tZXItb3duZWQgSVAgYWRkcmVzcyAoQ29JUCkgZm9yIGFuIFJEUyBvbiBPdXRwb3N0cyBEQiBpbnN0YW5jZS5cbiAgICogQSBDb0lQIHByb3ZpZGVzIGxvY2FsIG9yIGV4dGVybmFsIGNvbm5lY3Rpdml0eSB0byByZXNvdXJjZXMgaW4geW91ciBPdXRwb3N0IHN1Ym5ldHMgdGhyb3VnaCB5b3VyIG9uLXByZW1pc2VzIG5ldHdvcmsuIEZvciBzb21lIHVzZSBjYXNlcywgYSBDb0lQIGNhbiBwcm92aWRlIGxvd2VyIGxhdGVuY3kgZm9yIGNvbm5lY3Rpb25zIHRvIHRoZSBEQiBpbnN0YW5jZSBmcm9tIG91dHNpZGUgb2YgaXRzIHZpcnR1YWwgcHJpdmF0ZSBjbG91ZCAoVlBDKSBvbiB5b3VyIGxvY2FsIG5ldHdvcmsuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IFJEUyBvbiBPdXRwb3N0cywgc2VlIFdvcmtpbmcgd2l0aCBBbWF6b24gUkRTIG9uIEFtYXpvbiBXZWIgU2VydmljZXMgT3V0cG9zdHMgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9yZHMtb24tb3V0cG9zdHMuaHRtbCkgaW4gdGhlIEFtYXpvbiBSRFMgVXNlciBHdWlkZS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgQ29JUHMsIHNlZSBDdXN0b21lci1vd25lZCBJUCBhZGRyZXNzZXMgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9vdXRwb3N0cy9sYXRlc3QvdXNlcmd1aWRlL291dHBvc3RzLW5ldHdvcmtpbmctY29tcG9uZW50cy5odG1sI2lwLWFkZHJlc3NpbmcpIGluIHRoZSBBbWF6b24gV2ViIFNlcnZpY2VzIE91dHBvc3RzIFVzZXIgR3VpZGUuXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjZW5hYmxlQ3VzdG9tZXJPd25lZElQXG4gICAqL1xuICByZWFkb25seSBlbmFibGVDdXN0b21lck93bmVkSXA/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdG8gZW5hYmxlIG1hcHBpbmcgb2YgQW1hem9uIFdlYiBTZXJ2aWNlcyBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnQgKElBTSkgYWNjb3VudHMgdG8gZGF0YWJhc2UgYWNjb3VudHMuIEJ5IGRlZmF1bHQsIG1hcHBpbmcgaXMgZGlzYWJsZWQuXG4gICAqIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20gb3IgQW1hem9uIEF1cm9yYS4gSW4gQXVyb3JhLCBtYXBwaW5nIEFtYXpvbiBXZWIgU2VydmljZXMgSUFNIGFjY291bnRzIHRvIGRhdGFiYXNlIGFjY291bnRzIGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgSUFNIERhdGFiYXNlIEF1dGhlbnRpY2F0aW9uIGZvciBNeVNRTCBhbmQgUG9zdGdyZVNRTCAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VzaW5nV2l0aFJEUy5JQU1EQkF1dGguaHRtbCkgaW4gdGhlIEFtYXpvbiBSRFMgVXNlciBHdWlkZS5cbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyNlbmFibGVJQU1EYXRhYmFzZUF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICByZWFkb25seSBlbmFibGVJYW1EYXRhYmFzZUF1dGhlbnRpY2F0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIGVuZ2luZSB0byBiZSB1c2VkIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKiBOb3QgZXZlcnkgZGF0YWJhc2UgZW5naW5lIGlzIGF2YWlsYWJsZSBmb3IgZXZlcnkgQW1hem9uIFdlYiBTZXJ2aWNlcyBSZWdpb24uXG4gICAqIFZhbGlkIFZhbHVlczpcbiAgICogKiBhdXJvcmEgKGZvciBNeVNRTCA1LjYtY29tcGF0aWJsZSBBdXJvcmEpXG4gICAqICogYXVyb3JhLW15c3FsIChmb3IgTXlTUUwgNS43LWNvbXBhdGlibGUgQXVyb3JhKVxuICAgKiAqIGF1cm9yYS1wb3N0Z3Jlc3FsXG4gICAqICogY3VzdG9tLW9yYWNsZS1lZSAoZm9yIFJEUyBDdXN0b20gaW5zdGFuY2VzKVxuICAgKiAqIG1hcmlhZGJcbiAgICogKiBteXNxbFxuICAgKiAqIG9yYWNsZS1lZVxuICAgKiAqIG9yYWNsZS1lZS1jZGJcbiAgICogKiBvcmFjbGUtc2UyXG4gICAqICogb3JhY2xlLXNlMi1jZGJcbiAgICogKiBwb3N0Z3Jlc1xuICAgKiAqIHNxbHNlcnZlci1lZVxuICAgKiAqIHNxbHNlcnZlci1zZVxuICAgKiAqIHNxbHNlcnZlci1leFxuICAgKiAqIHNxbHNlcnZlci13ZWJcbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyNlbmdpbmVcbiAgICovXG4gIHJlYWRvbmx5IGVuZ2luZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBudW1iZXIgb2YgdGhlIGRhdGFiYXNlIGVuZ2luZSB0byB1c2UuXG4gICAqIEZvciBhIGxpc3Qgb2YgdmFsaWQgZW5naW5lIHZlcnNpb25zLCB1c2UgdGhlIERlc2NyaWJlREJFbmdpbmVWZXJzaW9ucyBhY3Rpb24uXG4gICAqIFRoZSBmb2xsb3dpbmcgYXJlIHRoZSBkYXRhYmFzZSBlbmdpbmVzIGFuZCBsaW5rcyB0byBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWFqb3IgYW5kIG1pbm9yIHZlcnNpb25zIHRoYXQgYXJlIGF2YWlsYWJsZSB3aXRoIEFtYXpvbiBSRFMuIE5vdCBldmVyeSBkYXRhYmFzZSBlbmdpbmUgaXMgYXZhaWxhYmxlIGZvciBldmVyeSBBbWF6b24gV2ViIFNlcnZpY2VzIFJlZ2lvbi5cbiAgICogQW1hem9uIEF1cm9yYVxuICAgKiBOb3QgYXBwbGljYWJsZS4gVGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBkYXRhYmFzZSBlbmdpbmUgdG8gYmUgdXNlZCBieSB0aGUgREIgaW5zdGFuY2UgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAgICogQW1hem9uIFJEUyBDdXN0b21cbiAgICogQSBjdXN0b20gZW5naW5lIHZlcnNpb24gKENFVikgdGhhdCB5b3UgaGF2ZSBwcmV2aW91c2x5IGNyZWF0ZWQuIFRoaXMgc2V0dGluZyBpcyByZXF1aXJlZCBmb3IgUkRTIEN1c3RvbS4gVGhlIENFViBuYW1lIGhhcyB0aGUgZm9sbG93aW5nIGZvcm1hdDogMTkuY3VzdG9taXplZF9zdHJpbmcgLiBBbiBleGFtcGxlIGlkZW50aWZpZXIgaXMgMTkubXlfY2V2MS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBDcmVhdGluZyBhbiBSRFMgQ3VzdG9tIERCIGluc3RhbmNlIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvY3VzdG9tLWNyZWF0aW5nLmh0bWwjY3VzdG9tLWNyZWF0aW5nLmNyZWF0ZSkgaW4gdGhlIEFtYXpvbiBSRFMgVXNlciBHdWlkZS4uXG4gICAqIE1hcmlhREJcbiAgICogU2VlIE1hcmlhREIgb24gQW1hem9uIFJEUyBWZXJzaW9ucyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NIQVBfTWFyaWFEQi5odG1sI01hcmlhREIuQ29uY2VwdHMuVmVyc2lvbk1nbXQpIGluIHRoZSBBbWF6b24gUkRTIFVzZXIgR3VpZGUuXG4gICAqIE1pY3Jvc29mdCBTUUwgU2VydmVyXG4gICAqIFNlZSBNaWNyb3NvZnQgU1FMIFNlcnZlciBWZXJzaW9ucyBvbiBBbWF6b24gUkRTIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvQ0hBUF9TUUxTZXJ2ZXIuaHRtbCNTUUxTZXJ2ZXIuQ29uY2VwdHMuR2VuZXJhbC5WZXJzaW9uU3VwcG9ydCkgaW4gdGhlIEFtYXpvbiBSRFMgVXNlciBHdWlkZS5cbiAgICogTXlTUUxcbiAgICogU2VlIE15U1FMIG9uIEFtYXpvbiBSRFMgVmVyc2lvbnMgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX015U1FMLmh0bWwjTXlTUUwuQ29uY2VwdHMuVmVyc2lvbk1nbXQpIGluIHRoZSBBbWF6b24gUkRTIFVzZXIgR3VpZGUuXG4gICAqIE9yYWNsZVxuICAgKiBTZWUgT3JhY2xlIERhdGFiYXNlIEVuZ2luZSBSZWxlYXNlIE5vdGVzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvQXBwZW5kaXguT3JhY2xlLlBhdGNoQ29tcG9zaXRpb24uaHRtbCkgaW4gdGhlIEFtYXpvbiBSRFMgVXNlciBHdWlkZS5cbiAgICogUG9zdGdyZVNRTFxuICAgKiBTZWUgQW1hem9uIFJEUyBmb3IgUG9zdGdyZVNRTCB2ZXJzaW9ucyBhbmQgZXh0ZW5zaW9ucyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NIQVBfUG9zdGdyZVNRTC5odG1sI1Bvc3RncmVTUUwuQ29uY2VwdHMpIGluIHRoZSBBbWF6b24gUkRTIFVzZXIgR3VpZGUuXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjZW5naW5lVmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgZW5naW5lVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiBQcm92aXNpb25lZCBJT1BTIChpbnB1dC9vdXRwdXQgb3BlcmF0aW9ucyBwZXIgc2Vjb25kKSB0byBiZSBpbml0aWFsbHkgYWxsb2NhdGVkIGZvciB0aGUgREIgaW5zdGFuY2UuIEZvciBpbmZvcm1hdGlvbiBhYm91dCB2YWxpZCBJb3BzIHZhbHVlcywgc2VlIEFtYXpvbiBSRFMgUHJvdmlzaW9uZWQgSU9QUyBTdG9yYWdlIHRvIEltcHJvdmUgUGVyZm9ybWFuY2UgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX1N0b3JhZ2UuaHRtbCNVU0VSX1BJT1BTKSBpbiB0aGUgQW1hem9uIFJEUyBVc2VyIEd1aWRlLlxuICAgKiBDb25zdHJhaW50czogRm9yIE1hcmlhREIsIE15U1FMLCBPcmFjbGUsIGFuZCBQb3N0Z3JlU1FMIERCIGluc3RhbmNlcywgbXVzdCBiZSBhIG11bHRpcGxlIGJldHdlZW4gLjUgYW5kIDUwIG9mIHRoZSBzdG9yYWdlIGFtb3VudCBmb3IgdGhlIERCIGluc3RhbmNlLiBGb3IgU1FMIFNlcnZlciBEQiBpbnN0YW5jZXMsIG11c3QgYmUgYSBtdWx0aXBsZSBiZXR3ZWVuIDEgYW5kIDUwIG9mIHRoZSBzdG9yYWdlIGFtb3VudCBmb3IgdGhlIERCIGluc3RhbmNlLlxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjI2lvcHNcbiAgICovXG4gIHJlYWRvbmx5IGlvcHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gV2ViIFNlcnZpY2VzIEtNUyBrZXkgaWRlbnRpZmllciBmb3IgYW4gZW5jcnlwdGVkIERCIGluc3RhbmNlLlxuICAgKiBUaGUgQW1hem9uIFdlYiBTZXJ2aWNlcyBLTVMga2V5IGlkZW50aWZpZXIgaXMgdGhlIGtleSBBUk4sIGtleSBJRCwgYWxpYXMgQVJOLCBvciBhbGlhcyBuYW1lIGZvciB0aGUgS01TIGtleS4gVG8gdXNlIGEgS01TIGtleSBpbiBhIGRpZmZlcmVudCBBbWF6b24gV2ViIFNlcnZpY2VzIGFjY291bnQsIHNwZWNpZnkgdGhlIGtleSBBUk4gb3IgYWxpYXMgQVJOLlxuICAgKiBBbWF6b24gQXVyb3JhXG4gICAqIE5vdCBhcHBsaWNhYmxlLiBUaGUgQW1hem9uIFdlYiBTZXJ2aWNlcyBLTVMga2V5IGlkZW50aWZpZXIgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBDcmVhdGVEQkNsdXN0ZXIuXG4gICAqIElmIFN0b3JhZ2VFbmNyeXB0ZWQgaXMgZW5hYmxlZCwgYW5kIHlvdSBkbyBub3Qgc3BlY2lmeSBhIHZhbHVlIGZvciB0aGUgS21zS2V5SWQgcGFyYW1ldGVyLCB0aGVuIEFtYXpvbiBSRFMgdXNlcyB5b3VyIGRlZmF1bHQgS01TIGtleS4gVGhlcmUgaXMgYSBkZWZhdWx0IEtNUyBrZXkgZm9yIHlvdXIgQW1hem9uIFdlYiBTZXJ2aWNlcyBhY2NvdW50LiBZb3VyIEFtYXpvbiBXZWIgU2VydmljZXMgYWNjb3VudCBoYXMgYSBkaWZmZXJlbnQgZGVmYXVsdCBLTVMga2V5IGZvciBlYWNoIEFtYXpvbiBXZWIgU2VydmljZXMgUmVnaW9uLlxuICAgKiBBbWF6b24gUkRTIEN1c3RvbVxuICAgKiBBIEtNUyBrZXkgaXMgcmVxdWlyZWQgZm9yIFJEUyBDdXN0b20gT3JhY2xlIGluc3RhbmNlcy4gRm9yIG1vc3QgUkRTIGVuZ2luZXMsIGlmIHlvdSBsZWF2ZSB0aGlzIHBhcmFtZXRlciBlbXB0eSB3aGlsZSBlbmFibGluZyBTdG9yYWdlRW5jcnlwdGVkLCB0aGUgZW5naW5lIHVzZXMgdGhlIGRlZmF1bHQgS01TIGtleS4gSG93ZXZlciwgUkRTIEN1c3RvbSBmb3IgT3JhY2xlIGRvZXNuJ3QgdXNlIHRoZSBkZWZhdWx0IGtleSB3aGVuIHRoaXMgcGFyYW1ldGVyIGlzIGVtcHR5LiBZb3UgbXVzdCBleHBsaWNpdGx5IHNwZWNpZnkgYSBrZXkuXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMja21zS2V5SURcbiAgICovXG4gIHJlYWRvbmx5IGttc0tleUlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBV1NSZXNvdXJjZVJlZmVyZW5jZVdyYXBwZXIgcHJvdmlkZXMgYSB3cmFwcGVyIGFyb3VuZCAqQVdTUmVzb3VyY2VSZWZlcmVuY2UgdHlwZSB0byBwcm92aWRlIG1vcmUgdXNlciBmcmllbmRseSBzeW50YXggZm9yIHJlZmVyZW5jZXMgdXNpbmcgJ2Zyb20nIGZpZWxkIEV4OiBBUElJRFJlZjogICBmcm9tOiAgICAgbmFtZTogbXktYXBpXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMja21zS2V5UmVmXG4gICAqL1xuICByZWFkb25seSBrbXNLZXlSZWY/OiBEYkluc3RhbmNlU3BlY0ttc0tleVJlZjtcblxuICAvKipcbiAgICogTGljZW5zZSBtb2RlbCBpbmZvcm1hdGlvbiBmb3IgdGhpcyBEQiBpbnN0YW5jZS5cbiAgICogVmFsaWQgdmFsdWVzOiBsaWNlbnNlLWluY2x1ZGVkIHwgYnJpbmcteW91ci1vd24tbGljZW5zZSB8IGdlbmVyYWwtcHVibGljLWxpY2Vuc2VcbiAgICogVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gUkRTIEN1c3RvbS5cbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyNsaWNlbnNlTW9kZWxcbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2VNb2RlbD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhc3N3b3JkIGZvciB0aGUgbWFzdGVyIHVzZXIuIFRoZSBwYXNzd29yZCBjYW4gaW5jbHVkZSBhbnkgcHJpbnRhYmxlIEFTQ0lJIGNoYXJhY3RlciBleGNlcHQgXCIvXCIsIFwiXCJcIiwgb3IgXCJAXCIuXG4gICAqIEFtYXpvbiBBdXJvcmFcbiAgICogTm90IGFwcGxpY2FibGUuIFRoZSBwYXNzd29yZCBmb3IgdGhlIG1hc3RlciB1c2VyIGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuXG4gICAqIE1hcmlhREJcbiAgICogQ29uc3RyYWludHM6IE11c3QgY29udGFpbiBmcm9tIDggdG8gNDEgY2hhcmFjdGVycy5cbiAgICogTWljcm9zb2Z0IFNRTCBTZXJ2ZXJcbiAgICogQ29uc3RyYWludHM6IE11c3QgY29udGFpbiBmcm9tIDggdG8gMTI4IGNoYXJhY3RlcnMuXG4gICAqIE15U1FMXG4gICAqIENvbnN0cmFpbnRzOiBNdXN0IGNvbnRhaW4gZnJvbSA4IHRvIDQxIGNoYXJhY3RlcnMuXG4gICAqIE9yYWNsZVxuICAgKiBDb25zdHJhaW50czogTXVzdCBjb250YWluIGZyb20gOCB0byAzMCBjaGFyYWN0ZXJzLlxuICAgKiBQb3N0Z3JlU1FMXG4gICAqIENvbnN0cmFpbnRzOiBNdXN0IGNvbnRhaW4gZnJvbSA4IHRvIDEyOCBjaGFyYWN0ZXJzLlxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjI21hc3RlclVzZXJQYXNzd29yZFxuICAgKi9cbiAgcmVhZG9ubHkgbWFzdGVyVXNlclBhc3N3b3JkPzogRGJJbnN0YW5jZVNwZWNNYXN0ZXJVc2VyUGFzc3dvcmQ7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIGZvciB0aGUgbWFzdGVyIHVzZXIuXG4gICAqIEFtYXpvbiBBdXJvcmFcbiAgICogTm90IGFwcGxpY2FibGUuIFRoZSBuYW1lIGZvciB0aGUgbWFzdGVyIHVzZXIgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAgICogTWFyaWFEQlxuICAgKiBDb25zdHJhaW50czpcbiAgICogKiBSZXF1aXJlZCBmb3IgTWFyaWFEQi5cbiAgICogKiBNdXN0IGJlIDEgdG8gMTYgbGV0dGVycyBvciBudW1iZXJzLlxuICAgKiAqIENhbid0IGJlIGEgcmVzZXJ2ZWQgd29yZCBmb3IgdGhlIGNob3NlbiBkYXRhYmFzZSBlbmdpbmUuXG4gICAqIE1pY3Jvc29mdCBTUUwgU2VydmVyXG4gICAqIENvbnN0cmFpbnRzOlxuICAgKiAqIFJlcXVpcmVkIGZvciBTUUwgU2VydmVyLlxuICAgKiAqIE11c3QgYmUgMSB0byAxMjggbGV0dGVycyBvciBudW1iZXJzLlxuICAgKiAqIFRoZSBmaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlci5cbiAgICogKiBDYW4ndCBiZSBhIHJlc2VydmVkIHdvcmQgZm9yIHRoZSBjaG9zZW4gZGF0YWJhc2UgZW5naW5lLlxuICAgKiBNeVNRTFxuICAgKiBDb25zdHJhaW50czpcbiAgICogKiBSZXF1aXJlZCBmb3IgTXlTUUwuXG4gICAqICogTXVzdCBiZSAxIHRvIDE2IGxldHRlcnMgb3IgbnVtYmVycy5cbiAgICogKiBGaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlci5cbiAgICogKiBDYW4ndCBiZSBhIHJlc2VydmVkIHdvcmQgZm9yIHRoZSBjaG9zZW4gZGF0YWJhc2UgZW5naW5lLlxuICAgKiBPcmFjbGVcbiAgICogQ29uc3RyYWludHM6XG4gICAqICogUmVxdWlyZWQgZm9yIE9yYWNsZS5cbiAgICogKiBNdXN0IGJlIDEgdG8gMzAgbGV0dGVycyBvciBudW1iZXJzLlxuICAgKiAqIEZpcnN0IGNoYXJhY3RlciBtdXN0IGJlIGEgbGV0dGVyLlxuICAgKiAqIENhbid0IGJlIGEgcmVzZXJ2ZWQgd29yZCBmb3IgdGhlIGNob3NlbiBkYXRhYmFzZSBlbmdpbmUuXG4gICAqIFBvc3RncmVTUUxcbiAgICogQ29uc3RyYWludHM6XG4gICAqICogUmVxdWlyZWQgZm9yIFBvc3RncmVTUUwuXG4gICAqICogTXVzdCBiZSAxIHRvIDYzIGxldHRlcnMgb3IgbnVtYmVycy5cbiAgICogKiBGaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlci5cbiAgICogKiBDYW4ndCBiZSBhIHJlc2VydmVkIHdvcmQgZm9yIHRoZSBjaG9zZW4gZGF0YWJhc2UgZW5naW5lLlxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjI21hc3RlclVzZXJuYW1lXG4gICAqL1xuICByZWFkb25seSBtYXN0ZXJVc2VybmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVwcGVyIGxpbWl0IGluIGdpYmlieXRlcyAoR2lCKSB0byB3aGljaCBBbWF6b24gUkRTIGNhbiBhdXRvbWF0aWNhbGx5IHNjYWxlIHRoZSBzdG9yYWdlIG9mIHRoZSBEQiBpbnN0YW5jZS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBzZXR0aW5nLCBpbmNsdWRpbmcgbGltaXRhdGlvbnMgdGhhdCBhcHBseSB0byBpdCwgc2VlIE1hbmFnaW5nIGNhcGFjaXR5IGF1dG9tYXRpY2FsbHkgd2l0aCBBbWF6b24gUkRTIHN0b3JhZ2UgYXV0b3NjYWxpbmcgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9VU0VSX1BJT1BTLlN0b3JhZ2VUeXBlcy5odG1sI1VTRVJfUElPUFMuQXV0b3NjYWxpbmcpIGluIHRoZSBBbWF6b24gUkRTIFVzZXIgR3VpZGUuXG4gICAqIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20uXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjbWF4QWxsb2NhdGVkU3RvcmFnZVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4QWxsb2NhdGVkU3RvcmFnZT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGludGVydmFsLCBpbiBzZWNvbmRzLCBiZXR3ZWVuIHBvaW50cyB3aGVuIEVuaGFuY2VkIE1vbml0b3JpbmcgbWV0cmljcyBhcmUgY29sbGVjdGVkIGZvciB0aGUgREIgaW5zdGFuY2UuIFRvIGRpc2FibGUgY29sbGVjdGlvbiBvZiBFbmhhbmNlZCBNb25pdG9yaW5nIG1ldHJpY3MsIHNwZWNpZnkgMC4gVGhlIGRlZmF1bHQgaXMgMC5cbiAgICogSWYgTW9uaXRvcmluZ1JvbGVBcm4gaXMgc3BlY2lmaWVkLCB0aGVuIHlvdSBtdXN0IHNldCBNb25pdG9yaW5nSW50ZXJ2YWwgdG8gYSB2YWx1ZSBvdGhlciB0aGFuIDAuXG4gICAqIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20uXG4gICAqIFZhbGlkIFZhbHVlczogMCwgMSwgNSwgMTAsIDE1LCAzMCwgNjBcbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyNtb25pdG9yaW5nSW50ZXJ2YWxcbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3JpbmdJbnRlcnZhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIEFSTiBmb3IgdGhlIElBTSByb2xlIHRoYXQgcGVybWl0cyBSRFMgdG8gc2VuZCBlbmhhbmNlZCBtb25pdG9yaW5nIG1ldHJpY3MgdG8gQW1hem9uIENsb3VkV2F0Y2ggTG9ncy4gRm9yIGV4YW1wbGUsIGFybjphd3M6aWFtOjEyMzQ1Njc4OTAxMjpyb2xlL2VtYWNjZXNzLiBGb3IgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYSBtb25pdG9yaW5nIHJvbGUsIHNlZSBTZXR0aW5nIFVwIGFuZCBFbmFibGluZyBFbmhhbmNlZCBNb25pdG9yaW5nIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9Nb25pdG9yaW5nLk9TLmh0bWwjVVNFUl9Nb25pdG9yaW5nLk9TLkVuYWJsaW5nKSBpbiB0aGUgQW1hem9uIFJEUyBVc2VyIEd1aWRlLlxuICAgKiBJZiBNb25pdG9yaW5nSW50ZXJ2YWwgaXMgc2V0IHRvIGEgdmFsdWUgb3RoZXIgdGhhbiAwLCB0aGVuIHlvdSBtdXN0IHN1cHBseSBhIE1vbml0b3JpbmdSb2xlQXJuIHZhbHVlLlxuICAgKiBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tLlxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjI21vbml0b3JpbmdSb2xlQVJOXG4gICAqL1xuICByZWFkb25seSBtb25pdG9yaW5nUm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogQSB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRoZSBEQiBpbnN0YW5jZSBpcyBhIE11bHRpLUFaIGRlcGxveW1lbnQuIFlvdSBjYW4ndCBzZXQgdGhlIEF2YWlsYWJpbGl0eVpvbmUgcGFyYW1ldGVyIGlmIHRoZSBEQiBpbnN0YW5jZSBpcyBhIE11bHRpLUFaIGRlcGxveW1lbnQuXG4gICAqIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20uXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjbXVsdGlBWlxuICAgKi9cbiAgcmVhZG9ubHkgbXVsdGlBej86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBOQ0hBUiBjaGFyYWN0ZXIgc2V0IGZvciB0aGUgT3JhY2xlIERCIGluc3RhbmNlLlxuICAgKiBUaGlzIHBhcmFtZXRlciBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20uXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjbmNoYXJDaGFyYWN0ZXJTZXROYW1lXG4gICAqL1xuICByZWFkb25seSBuY2hhckNoYXJhY3RlclNldE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgdGhhdCB0aGUgREIgaW5zdGFuY2Ugc2hvdWxkIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIG9wdGlvbiBncm91cC5cbiAgICogUGVybWFuZW50IG9wdGlvbnMsIHN1Y2ggYXMgdGhlIFRERSBvcHRpb24gZm9yIE9yYWNsZSBBZHZhbmNlZCBTZWN1cml0eSBUREUsIGNhbid0IGJlIHJlbW92ZWQgZnJvbSBhbiBvcHRpb24gZ3JvdXAuIEFsc28sIHRoYXQgb3B0aW9uIGdyb3VwIGNhbid0IGJlIHJlbW92ZWQgZnJvbSBhIERCIGluc3RhbmNlIGFmdGVyIGl0IGlzIGFzc29jaWF0ZWQgd2l0aCBhIERCIGluc3RhbmNlLlxuICAgKiBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tLlxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjI29wdGlvbkdyb3VwTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgb3B0aW9uR3JvdXBOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdG8gZW5hYmxlIFBlcmZvcm1hbmNlIEluc2lnaHRzIGZvciB0aGUgREIgaW5zdGFuY2UuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgVXNpbmcgQW1hem9uIFBlcmZvcm1hbmNlIEluc2lnaHRzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9QZXJmSW5zaWdodHMuaHRtbCkgaW4gdGhlIEFtYXpvbiBSZWxhdGlvbmFsIERhdGFiYXNlIFNlcnZpY2UgVXNlciBHdWlkZS5cbiAgICogVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gUkRTIEN1c3RvbS5cbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyNwZXJmb3JtYW5jZUluc2lnaHRzRW5hYmxlZFxuICAgKi9cbiAgcmVhZG9ubHkgcGVyZm9ybWFuY2VJbnNpZ2h0c0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgQW1hem9uIFdlYiBTZXJ2aWNlcyBLTVMga2V5IGlkZW50aWZpZXIgZm9yIGVuY3J5cHRpb24gb2YgUGVyZm9ybWFuY2UgSW5zaWdodHMgZGF0YS5cbiAgICogVGhlIEFtYXpvbiBXZWIgU2VydmljZXMgS01TIGtleSBpZGVudGlmaWVyIGlzIHRoZSBrZXkgQVJOLCBrZXkgSUQsIGFsaWFzIEFSTiwgb3IgYWxpYXMgbmFtZSBmb3IgdGhlIEtNUyBrZXkuXG4gICAqIElmIHlvdSBkbyBub3Qgc3BlY2lmeSBhIHZhbHVlIGZvciBQZXJmb3JtYW5jZUluc2lnaHRzS01TS2V5SWQsIHRoZW4gQW1hem9uIFJEUyB1c2VzIHlvdXIgZGVmYXVsdCBLTVMga2V5LiBUaGVyZSBpcyBhIGRlZmF1bHQgS01TIGtleSBmb3IgeW91ciBBbWF6b24gV2ViIFNlcnZpY2VzIGFjY291bnQuIFlvdXIgQW1hem9uIFdlYiBTZXJ2aWNlcyBhY2NvdW50IGhhcyBhIGRpZmZlcmVudCBkZWZhdWx0IEtNUyBrZXkgZm9yIGVhY2ggQW1hem9uIFdlYiBTZXJ2aWNlcyBSZWdpb24uXG4gICAqIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20uXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjcGVyZm9ybWFuY2VJbnNpZ2h0c0tNU0tleUlEXG4gICAqL1xuICByZWFkb25seSBwZXJmb3JtYW5jZUluc2lnaHRzS21zS2V5SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgdGltZSwgaW4gZGF5cywgdG8gcmV0YWluIFBlcmZvcm1hbmNlIEluc2lnaHRzIGRhdGEuIFZhbGlkIHZhbHVlcyBhcmUgNyBvciA3MzEgKDIgeWVhcnMpLlxuICAgKiBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tLlxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjI3BlcmZvcm1hbmNlSW5zaWdodHNSZXRlbnRpb25QZXJpb2RcbiAgICovXG4gIHJlYWRvbmx5IHBlcmZvcm1hbmNlSW5zaWdodHNSZXRlbnRpb25QZXJpb2Q/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwb3J0IG51bWJlciBvbiB3aGljaCB0aGUgZGF0YWJhc2UgYWNjZXB0cyBjb25uZWN0aW9ucy5cbiAgICogTXlTUUxcbiAgICogRGVmYXVsdDogMzMwNlxuICAgKiBWYWxpZCB2YWx1ZXM6IDExNTAtNjU1MzVcbiAgICogVHlwZTogSW50ZWdlclxuICAgKiBNYXJpYURCXG4gICAqIERlZmF1bHQ6IDMzMDZcbiAgICogVmFsaWQgdmFsdWVzOiAxMTUwLTY1NTM1XG4gICAqIFR5cGU6IEludGVnZXJcbiAgICogUG9zdGdyZVNRTFxuICAgKiBEZWZhdWx0OiA1NDMyXG4gICAqIFZhbGlkIHZhbHVlczogMTE1MC02NTUzNVxuICAgKiBUeXBlOiBJbnRlZ2VyXG4gICAqIE9yYWNsZVxuICAgKiBEZWZhdWx0OiAxNTIxXG4gICAqIFZhbGlkIHZhbHVlczogMTE1MC02NTUzNVxuICAgKiBTUUwgU2VydmVyXG4gICAqIERlZmF1bHQ6IDE0MzNcbiAgICogVmFsaWQgdmFsdWVzOiAxMTUwLTY1NTM1IGV4Y2VwdCAxMjM0LCAxNDM0LCAzMjYwLCAzMzQzLCAzMzg5LCA0NzAwMSwgYW5kIDQ5MTUyLTQ5MTU2LlxuICAgKiBBbWF6b24gQXVyb3JhXG4gICAqIERlZmF1bHQ6IDMzMDZcbiAgICogVmFsaWQgdmFsdWVzOiAxMTUwLTY1NTM1XG4gICAqIFR5cGU6IEludGVnZXJcbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyNwb3J0XG4gICAqL1xuICByZWFkb25seSBwb3J0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgZGFpbHkgdGltZSByYW5nZSBkdXJpbmcgd2hpY2ggYXV0b21hdGVkIGJhY2t1cHMgYXJlIGNyZWF0ZWQgaWYgYXV0b21hdGVkIGJhY2t1cHMgYXJlIGVuYWJsZWQsIHVzaW5nIHRoZSBCYWNrdXBSZXRlbnRpb25QZXJpb2QgcGFyYW1ldGVyLiBUaGUgZGVmYXVsdCBpcyBhIDMwLW1pbnV0ZSB3aW5kb3cgc2VsZWN0ZWQgYXQgcmFuZG9tIGZyb20gYW4gOC1ob3VyIGJsb2NrIG9mIHRpbWUgZm9yIGVhY2ggQW1hem9uIFdlYiBTZXJ2aWNlcyBSZWdpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgQmFja3VwIHdpbmRvdyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfV29ya2luZ1dpdGhBdXRvbWF0ZWRCYWNrdXBzLmh0bWwjVVNFUl9Xb3JraW5nV2l0aEF1dG9tYXRlZEJhY2t1cHMuQmFja3VwV2luZG93KSBpbiB0aGUgQW1hem9uIFJEUyBVc2VyIEd1aWRlLlxuICAgKiBBbWF6b24gQXVyb3JhXG4gICAqIE5vdCBhcHBsaWNhYmxlLiBUaGUgZGFpbHkgdGltZSByYW5nZSBmb3IgY3JlYXRpbmcgYXV0b21hdGVkIGJhY2t1cHMgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAgICogQ29uc3RyYWludHM6XG4gICAqICogTXVzdCBiZSBpbiB0aGUgZm9ybWF0IGhoMjQ6bWktaGgyNDptaS5cbiAgICogKiBNdXN0IGJlIGluIFVuaXZlcnNhbCBDb29yZGluYXRlZCBUaW1lIChVVEMpLlxuICAgKiAqIE11c3Qgbm90IGNvbmZsaWN0IHdpdGggdGhlIHByZWZlcnJlZCBtYWludGVuYW5jZSB3aW5kb3cuXG4gICAqICogTXVzdCBiZSBhdCBsZWFzdCAzMCBtaW51dGVzLlxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjI3ByZWZlcnJlZEJhY2t1cFdpbmRvd1xuICAgKi9cbiAgcmVhZG9ubHkgcHJlZmVycmVkQmFja3VwV2luZG93Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSByYW5nZSBlYWNoIHdlZWsgZHVyaW5nIHdoaWNoIHN5c3RlbSBtYWludGVuYW5jZSBjYW4gb2NjdXIsIGluIFVuaXZlcnNhbCBDb29yZGluYXRlZCBUaW1lIChVVEMpLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIEFtYXpvbiBSRFMgTWFpbnRlbmFuY2UgV2luZG93IChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9VcGdyYWRlREJJbnN0YW5jZS5NYWludGVuYW5jZS5odG1sI0NvbmNlcHRzLkRCTWFpbnRlbmFuY2UpLlxuICAgKiBGb3JtYXQ6IGRkZDpoaDI0Om1pLWRkZDpoaDI0Om1pXG4gICAqIFRoZSBkZWZhdWx0IGlzIGEgMzAtbWludXRlIHdpbmRvdyBzZWxlY3RlZCBhdCByYW5kb20gZnJvbSBhbiA4LWhvdXIgYmxvY2sgb2YgdGltZSBmb3IgZWFjaCBBbWF6b24gV2ViIFNlcnZpY2VzIFJlZ2lvbiwgb2NjdXJyaW5nIG9uIGEgcmFuZG9tIGRheSBvZiB0aGUgd2Vlay5cbiAgICogVmFsaWQgRGF5czogTW9uLCBUdWUsIFdlZCwgVGh1LCBGcmksIFNhdCwgU3VuLlxuICAgKiBDb25zdHJhaW50czogTWluaW11bSAzMC1taW51dGUgd2luZG93LlxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjI3ByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XG4gICAqL1xuICByZWFkb25seSBwcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBDUFUgY29yZXMgYW5kIHRoZSBudW1iZXIgb2YgdGhyZWFkcyBwZXIgY29yZSBmb3IgdGhlIERCIGluc3RhbmNlIGNsYXNzIG9mIHRoZSBEQiBpbnN0YW5jZS5cbiAgICogVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gUkRTIEN1c3RvbS5cbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyNwcm9jZXNzb3JGZWF0dXJlc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJvY2Vzc29yRmVhdHVyZXM/OiBEYkluc3RhbmNlU3BlY1Byb2Nlc3NvckZlYXR1cmVzW107XG5cbiAgLyoqXG4gICAqIEEgdmFsdWUgdGhhdCBzcGVjaWZpZXMgdGhlIG9yZGVyIGluIHdoaWNoIGFuIEF1cm9yYSBSZXBsaWNhIGlzIHByb21vdGVkIHRvIHRoZSBwcmltYXJ5IGluc3RhbmNlIGFmdGVyIGEgZmFpbHVyZSBvZiB0aGUgZXhpc3RpbmcgcHJpbWFyeSBpbnN0YW5jZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBGYXVsdCBUb2xlcmFuY2UgZm9yIGFuIEF1cm9yYSBEQiBDbHVzdGVyIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvQXVyb3JhLk1hbmFnaW5nLkJhY2t1cHMuaHRtbCNBdXJvcmEuTWFuYWdpbmcuRmF1bHRUb2xlcmFuY2UpIGluIHRoZSBBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUuXG4gICAqIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20uXG4gICAqIERlZmF1bHQ6IDFcbiAgICogVmFsaWQgVmFsdWVzOiAwIC0gMTVcbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyNwcm9tb3Rpb25UaWVyXG4gICAqL1xuICByZWFkb25seSBwcm9tb3Rpb25UaWVyPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIERCIGluc3RhbmNlIGlzIHB1YmxpY2x5IGFjY2Vzc2libGUuXG4gICAqIFdoZW4gdGhlIERCIGluc3RhbmNlIGlzIHB1YmxpY2x5IGFjY2Vzc2libGUsIGl0cyBETlMgZW5kcG9pbnQgcmVzb2x2ZXMgdG8gdGhlIHByaXZhdGUgSVAgYWRkcmVzcyBmcm9tIHdpdGhpbiB0aGUgREIgaW5zdGFuY2UncyBWUEMsIGFuZCB0byB0aGUgcHVibGljIElQIGFkZHJlc3MgZnJvbSBvdXRzaWRlIG9mIHRoZSBEQiBpbnN0YW5jZSdzIFZQQy4gQWNjZXNzIHRvIHRoZSBEQiBpbnN0YW5jZSBpcyB1bHRpbWF0ZWx5IGNvbnRyb2xsZWQgYnkgdGhlIHNlY3VyaXR5IGdyb3VwIGl0IHVzZXMsIGFuZCB0aGF0IHB1YmxpYyBhY2Nlc3MgaXMgbm90IHBlcm1pdHRlZCBpZiB0aGUgc2VjdXJpdHkgZ3JvdXAgYXNzaWduZWQgdG8gdGhlIERCIGluc3RhbmNlIGRvZXNuJ3QgcGVybWl0IGl0LlxuICAgKiBXaGVuIHRoZSBEQiBpbnN0YW5jZSBpc24ndCBwdWJsaWNseSBhY2Nlc3NpYmxlLCBpdCBpcyBhbiBpbnRlcm5hbCBEQiBpbnN0YW5jZSB3aXRoIGEgRE5TIG5hbWUgdGhhdCByZXNvbHZlcyB0byBhIHByaXZhdGUgSVAgYWRkcmVzcy5cbiAgICogRGVmYXVsdDogVGhlIGRlZmF1bHQgYmVoYXZpb3IgdmFyaWVzIGRlcGVuZGluZyBvbiB3aGV0aGVyIERCU3VibmV0R3JvdXBOYW1lIGlzIHNwZWNpZmllZC5cbiAgICogSWYgREJTdWJuZXRHcm91cE5hbWUgaXNuJ3Qgc3BlY2lmaWVkLCBhbmQgUHVibGljbHlBY2Nlc3NpYmxlIGlzbid0IHNwZWNpZmllZCwgdGhlIGZvbGxvd2luZyBhcHBsaWVzOlxuICAgKiAqIElmIHRoZSBkZWZhdWx0IFZQQyBpbiB0aGUgdGFyZ2V0IHJlZ2lvbiBkb2VzbuKAmXQgaGF2ZSBhbiBJbnRlcm5ldCBnYXRld2F5ICAgIGF0dGFjaGVkIHRvIGl0LCB0aGUgREIgaW5zdGFuY2UgaXMgcHJpdmF0ZS5cbiAgICogKiBJZiB0aGUgZGVmYXVsdCBWUEMgaW4gdGhlIHRhcmdldCByZWdpb24gaGFzIGFuIEludGVybmV0IGdhdGV3YXkgYXR0YWNoZWQgICAgdG8gaXQsIHRoZSBEQiBpbnN0YW5jZSBpcyBwdWJsaWMuXG4gICAqIElmIERCU3VibmV0R3JvdXBOYW1lIGlzIHNwZWNpZmllZCwgYW5kIFB1YmxpY2x5QWNjZXNzaWJsZSBpc24ndCBzcGVjaWZpZWQsIHRoZSBmb2xsb3dpbmcgYXBwbGllczpcbiAgICogKiBJZiB0aGUgc3VibmV0cyBhcmUgcGFydCBvZiBhIFZQQyB0aGF0IGRvZXNu4oCZdCBoYXZlIGFuIEludGVybmV0IGdhdGV3YXkgICAgYXR0YWNoZWQgdG8gaXQsIHRoZSBEQiBpbnN0YW5jZSBpcyBwcml2YXRlLlxuICAgKiAqIElmIHRoZSBzdWJuZXRzIGFyZSBwYXJ0IG9mIGEgVlBDIHRoYXQgaGFzIGFuIEludGVybmV0IGdhdGV3YXkgYXR0YWNoZWQgICAgdG8gaXQsIHRoZSBEQiBpbnN0YW5jZSBpcyBwdWJsaWMuXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjcHVibGljbHlBY2Nlc3NpYmxlXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNseUFjY2Vzc2libGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIERCIGluc3RhbmNlIGlzIGVuY3J5cHRlZC4gQnkgZGVmYXVsdCwgaXQgaXNuJ3QgZW5jcnlwdGVkLlxuICAgKiBGb3IgUkRTIEN1c3RvbSBPcmFjbGUgaW5zdGFuY2VzLCBlaXRoZXIgc2V0IHRoaXMgcGFyYW1ldGVyIHRvIHRydWUgb3IgbGVhdmUgaXQgdW5zZXQuIElmIHlvdSBzZXQgdGhpcyBwYXJhbWV0ZXIgdG8gZmFsc2UsIFJEUyByZXBvcnRzIGFuIGVycm9yLlxuICAgKiBBbWF6b24gQXVyb3JhXG4gICAqIE5vdCBhcHBsaWNhYmxlLiBUaGUgZW5jcnlwdGlvbiBmb3IgREIgaW5zdGFuY2VzIGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjc3RvcmFnZUVuY3J5cHRlZFxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmFnZUVuY3J5cHRlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgc3RvcmFnZSB0eXBlIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgREIgaW5zdGFuY2UuXG4gICAqIFZhbGlkIHZhbHVlczogc3RhbmRhcmQgfCBncDIgfCBpbzFcbiAgICogSWYgeW91IHNwZWNpZnkgaW8xLCB5b3UgbXVzdCBhbHNvIGluY2x1ZGUgYSB2YWx1ZSBmb3IgdGhlIElvcHMgcGFyYW1ldGVyLlxuICAgKiBEZWZhdWx0OiBpbzEgaWYgdGhlIElvcHMgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCwgb3RoZXJ3aXNlIGdwMlxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjI3N0b3JhZ2VUeXBlXG4gICAqL1xuICByZWFkb25seSBzdG9yYWdlVHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGFncyB0byBhc3NpZ24gdG8gdGhlIERCIGluc3RhbmNlLlxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjI3RhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiBEYkluc3RhbmNlU3BlY1RhZ3NbXTtcblxuICAvKipcbiAgICogVGhlIEFSTiBmcm9tIHRoZSBrZXkgc3RvcmUgd2l0aCB3aGljaCB0byBhc3NvY2lhdGUgdGhlIGluc3RhbmNlIGZvciBUREUgZW5jcnlwdGlvbi5cbiAgICogVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gUkRTIEN1c3RvbS5cbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyN0ZGVDcmVkZW50aWFsQVJOXG4gICAqL1xuICByZWFkb25seSB0ZGVDcmVkZW50aWFsQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFzc3dvcmQgZm9yIHRoZSBnaXZlbiBBUk4gZnJvbSB0aGUga2V5IHN0b3JlIGluIG9yZGVyIHRvIGFjY2VzcyB0aGUgZGV2aWNlLlxuICAgKiBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tLlxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjI3RkZUNyZWRlbnRpYWxQYXNzd29yZFxuICAgKi9cbiAgcmVhZG9ubHkgdGRlQ3JlZGVudGlhbFBhc3N3b3JkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSB6b25lIG9mIHRoZSBEQiBpbnN0YW5jZS4gVGhlIHRpbWUgem9uZSBwYXJhbWV0ZXIgaXMgY3VycmVudGx5IHN1cHBvcnRlZCBvbmx5IGJ5IE1pY3Jvc29mdCBTUUwgU2VydmVyIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvQ0hBUF9TUUxTZXJ2ZXIuaHRtbCNTUUxTZXJ2ZXIuQ29uY2VwdHMuR2VuZXJhbC5UaW1lWm9uZSkuXG4gICAqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWMjdGltZXpvbmVcbiAgICovXG4gIHJlYWRvbmx5IHRpbWV6b25lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgQW1hem9uIEVDMiBWUEMgc2VjdXJpdHkgZ3JvdXBzIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgREIgaW5zdGFuY2UuXG4gICAqIEFtYXpvbiBBdXJvcmFcbiAgICogTm90IGFwcGxpY2FibGUuIFRoZSBhc3NvY2lhdGVkIGxpc3Qgb2YgRUMyIFZQQyBzZWN1cml0eSBncm91cHMgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAgICogRGVmYXVsdDogVGhlIGRlZmF1bHQgRUMyIFZQQyBzZWN1cml0eSBncm91cCBmb3IgdGhlIERCIHN1Ym5ldCBncm91cCdzIFZQQy5cbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlYyN2cGNTZWN1cml0eUdyb3VwSURzXG4gICAqL1xuICByZWFkb25seSB2cGNTZWN1cml0eUdyb3VwSURzPzogc3RyaW5nW107XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnRGJJbnN0YW5jZVNwZWMnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0RiSW5zdGFuY2VTcGVjKG9iajogRGJJbnN0YW5jZVNwZWMgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdhbGxvY2F0ZWRTdG9yYWdlJzogb2JqLmFsbG9jYXRlZFN0b3JhZ2UsXG4gICAgJ2F1dG9NaW5vclZlcnNpb25VcGdyYWRlJzogb2JqLmF1dG9NaW5vclZlcnNpb25VcGdyYWRlLFxuICAgICdhdmFpbGFiaWxpdHlab25lJzogb2JqLmF2YWlsYWJpbGl0eVpvbmUsXG4gICAgJ2JhY2t1cFJldGVudGlvblBlcmlvZCc6IG9iai5iYWNrdXBSZXRlbnRpb25QZXJpb2QsXG4gICAgJ2NoYXJhY3RlclNldE5hbWUnOiBvYmouY2hhcmFjdGVyU2V0TmFtZSxcbiAgICAnY29weVRhZ3NUb1NuYXBzaG90Jzogb2JqLmNvcHlUYWdzVG9TbmFwc2hvdCxcbiAgICAnY3VzdG9tSUFNSW5zdGFuY2VQcm9maWxlJzogb2JqLmN1c3RvbUlhbUluc3RhbmNlUHJvZmlsZSxcbiAgICAnZGJDbHVzdGVySWRlbnRpZmllcic6IG9iai5kYkNsdXN0ZXJJZGVudGlmaWVyLFxuICAgICdkYkluc3RhbmNlQ2xhc3MnOiBvYmouZGJJbnN0YW5jZUNsYXNzLFxuICAgICdkYkluc3RhbmNlSWRlbnRpZmllcic6IG9iai5kYkluc3RhbmNlSWRlbnRpZmllcixcbiAgICAnZGJOYW1lJzogb2JqLmRiTmFtZSxcbiAgICAnZGJQYXJhbWV0ZXJHcm91cE5hbWUnOiBvYmouZGJQYXJhbWV0ZXJHcm91cE5hbWUsXG4gICAgJ2RiU2VjdXJpdHlHcm91cHMnOiBvYmouZGJTZWN1cml0eUdyb3Vwcz8ubWFwKHkgPT4geSksXG4gICAgJ2RiU3VibmV0R3JvdXBOYW1lJzogb2JqLmRiU3VibmV0R3JvdXBOYW1lLFxuICAgICdkZWxldGlvblByb3RlY3Rpb24nOiBvYmouZGVsZXRpb25Qcm90ZWN0aW9uLFxuICAgICdkb21haW4nOiBvYmouZG9tYWluLFxuICAgICdkb21haW5JQU1Sb2xlTmFtZSc6IG9iai5kb21haW5JYW1Sb2xlTmFtZSxcbiAgICAnZW5hYmxlQ2xvdWR3YXRjaExvZ3NFeHBvcnRzJzogb2JqLmVuYWJsZUNsb3Vkd2F0Y2hMb2dzRXhwb3J0cz8ubWFwKHkgPT4geSksXG4gICAgJ2VuYWJsZUN1c3RvbWVyT3duZWRJUCc6IG9iai5lbmFibGVDdXN0b21lck93bmVkSXAsXG4gICAgJ2VuYWJsZUlBTURhdGFiYXNlQXV0aGVudGljYXRpb24nOiBvYmouZW5hYmxlSWFtRGF0YWJhc2VBdXRoZW50aWNhdGlvbixcbiAgICAnZW5naW5lJzogb2JqLmVuZ2luZSxcbiAgICAnZW5naW5lVmVyc2lvbic6IG9iai5lbmdpbmVWZXJzaW9uLFxuICAgICdpb3BzJzogb2JqLmlvcHMsXG4gICAgJ2ttc0tleUlEJzogb2JqLmttc0tleUlkLFxuICAgICdrbXNLZXlSZWYnOiB0b0pzb25fRGJJbnN0YW5jZVNwZWNLbXNLZXlSZWYob2JqLmttc0tleVJlZiksXG4gICAgJ2xpY2Vuc2VNb2RlbCc6IG9iai5saWNlbnNlTW9kZWwsXG4gICAgJ21hc3RlclVzZXJQYXNzd29yZCc6IHRvSnNvbl9EYkluc3RhbmNlU3BlY01hc3RlclVzZXJQYXNzd29yZChvYmoubWFzdGVyVXNlclBhc3N3b3JkKSxcbiAgICAnbWFzdGVyVXNlcm5hbWUnOiBvYmoubWFzdGVyVXNlcm5hbWUsXG4gICAgJ21heEFsbG9jYXRlZFN0b3JhZ2UnOiBvYmoubWF4QWxsb2NhdGVkU3RvcmFnZSxcbiAgICAnbW9uaXRvcmluZ0ludGVydmFsJzogb2JqLm1vbml0b3JpbmdJbnRlcnZhbCxcbiAgICAnbW9uaXRvcmluZ1JvbGVBUk4nOiBvYmoubW9uaXRvcmluZ1JvbGVBcm4sXG4gICAgJ211bHRpQVonOiBvYmoubXVsdGlBeixcbiAgICAnbmNoYXJDaGFyYWN0ZXJTZXROYW1lJzogb2JqLm5jaGFyQ2hhcmFjdGVyU2V0TmFtZSxcbiAgICAnb3B0aW9uR3JvdXBOYW1lJzogb2JqLm9wdGlvbkdyb3VwTmFtZSxcbiAgICAncGVyZm9ybWFuY2VJbnNpZ2h0c0VuYWJsZWQnOiBvYmoucGVyZm9ybWFuY2VJbnNpZ2h0c0VuYWJsZWQsXG4gICAgJ3BlcmZvcm1hbmNlSW5zaWdodHNLTVNLZXlJRCc6IG9iai5wZXJmb3JtYW5jZUluc2lnaHRzS21zS2V5SWQsXG4gICAgJ3BlcmZvcm1hbmNlSW5zaWdodHNSZXRlbnRpb25QZXJpb2QnOiBvYmoucGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZCxcbiAgICAncG9ydCc6IG9iai5wb3J0LFxuICAgICdwcmVmZXJyZWRCYWNrdXBXaW5kb3cnOiBvYmoucHJlZmVycmVkQmFja3VwV2luZG93LFxuICAgICdwcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdyc6IG9iai5wcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdyxcbiAgICAncHJvY2Vzc29yRmVhdHVyZXMnOiBvYmoucHJvY2Vzc29yRmVhdHVyZXM/Lm1hcCh5ID0+IHRvSnNvbl9EYkluc3RhbmNlU3BlY1Byb2Nlc3NvckZlYXR1cmVzKHkpKSxcbiAgICAncHJvbW90aW9uVGllcic6IG9iai5wcm9tb3Rpb25UaWVyLFxuICAgICdwdWJsaWNseUFjY2Vzc2libGUnOiBvYmoucHVibGljbHlBY2Nlc3NpYmxlLFxuICAgICdzdG9yYWdlRW5jcnlwdGVkJzogb2JqLnN0b3JhZ2VFbmNyeXB0ZWQsXG4gICAgJ3N0b3JhZ2VUeXBlJzogb2JqLnN0b3JhZ2VUeXBlLFxuICAgICd0YWdzJzogb2JqLnRhZ3M/Lm1hcCh5ID0+IHRvSnNvbl9EYkluc3RhbmNlU3BlY1RhZ3MoeSkpLFxuICAgICd0ZGVDcmVkZW50aWFsQVJOJzogb2JqLnRkZUNyZWRlbnRpYWxBcm4sXG4gICAgJ3RkZUNyZWRlbnRpYWxQYXNzd29yZCc6IG9iai50ZGVDcmVkZW50aWFsUGFzc3dvcmQsXG4gICAgJ3RpbWV6b25lJzogb2JqLnRpbWV6b25lLFxuICAgICd2cGNTZWN1cml0eUdyb3VwSURzJzogb2JqLnZwY1NlY3VyaXR5R3JvdXBJRHM/Lm1hcCh5ID0+IHkpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEFXU1Jlc291cmNlUmVmZXJlbmNlV3JhcHBlciBwcm92aWRlcyBhIHdyYXBwZXIgYXJvdW5kICpBV1NSZXNvdXJjZVJlZmVyZW5jZSB0eXBlIHRvIHByb3ZpZGUgbW9yZSB1c2VyIGZyaWVuZGx5IHN5bnRheCBmb3IgcmVmZXJlbmNlcyB1c2luZyAnZnJvbScgZmllbGQgRXg6IEFQSUlEUmVmOiAgIGZyb206ICAgICBuYW1lOiBteS1hcGlcbiAqXG4gKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjS21zS2V5UmVmXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJJbnN0YW5jZVNwZWNLbXNLZXlSZWYge1xuICAvKipcbiAgICogQVdTUmVzb3VyY2VSZWZlcmVuY2UgcHJvdmlkZXMgYWxsIHRoZSB2YWx1ZXMgbmVjZXNzYXJ5IHRvIHJlZmVyZW5jZSBhbm90aGVyIGs4cyByZXNvdXJjZSBmb3IgZmluZGluZyB0aGUgaWRlbnRpZmllcihJZC9BUk4vTmFtZSlcbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlY0ttc0tleVJlZiNmcm9tXG4gICAqL1xuICByZWFkb25seSBmcm9tPzogRGJJbnN0YW5jZVNwZWNLbXNLZXlSZWZGcm9tO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0RiSW5zdGFuY2VTcGVjS21zS2V5UmVmJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9EYkluc3RhbmNlU3BlY0ttc0tleVJlZihvYmo6IERiSW5zdGFuY2VTcGVjS21zS2V5UmVmIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnZnJvbSc6IHRvSnNvbl9EYkluc3RhbmNlU3BlY0ttc0tleVJlZkZyb20ob2JqLmZyb20pLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFRoZSBwYXNzd29yZCBmb3IgdGhlIG1hc3RlciB1c2VyLiBUaGUgcGFzc3dvcmQgY2FuIGluY2x1ZGUgYW55IHByaW50YWJsZSBBU0NJSSBjaGFyYWN0ZXIgZXhjZXB0IFwiL1wiLCBcIlwiXCIsIG9yIFwiQFwiLlxuICogQW1hem9uIEF1cm9yYVxuICogTm90IGFwcGxpY2FibGUuIFRoZSBwYXNzd29yZCBmb3IgdGhlIG1hc3RlciB1c2VyIGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuXG4gKiBNYXJpYURCXG4gKiBDb25zdHJhaW50czogTXVzdCBjb250YWluIGZyb20gOCB0byA0MSBjaGFyYWN0ZXJzLlxuICogTWljcm9zb2Z0IFNRTCBTZXJ2ZXJcbiAqIENvbnN0cmFpbnRzOiBNdXN0IGNvbnRhaW4gZnJvbSA4IHRvIDEyOCBjaGFyYWN0ZXJzLlxuICogTXlTUUxcbiAqIENvbnN0cmFpbnRzOiBNdXN0IGNvbnRhaW4gZnJvbSA4IHRvIDQxIGNoYXJhY3RlcnMuXG4gKiBPcmFjbGVcbiAqIENvbnN0cmFpbnRzOiBNdXN0IGNvbnRhaW4gZnJvbSA4IHRvIDMwIGNoYXJhY3RlcnMuXG4gKiBQb3N0Z3JlU1FMXG4gKiBDb25zdHJhaW50czogTXVzdCBjb250YWluIGZyb20gOCB0byAxMjggY2hhcmFjdGVycy5cbiAqXG4gKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjTWFzdGVyVXNlclBhc3N3b3JkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJJbnN0YW5jZVNwZWNNYXN0ZXJVc2VyUGFzc3dvcmQge1xuICAvKipcbiAgICogS2V5IGlzIHRoZSBrZXkgd2l0aGluIHRoZSBzZWNyZXRcbiAgICpcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlY01hc3RlclVzZXJQYXNzd29yZCNrZXlcbiAgICovXG4gIHJlYWRvbmx5IGtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIGlzIHVuaXF1ZSB3aXRoaW4gYSBuYW1lc3BhY2UgdG8gcmVmZXJlbmNlIGEgc2VjcmV0IHJlc291cmNlLlxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjTWFzdGVyVXNlclBhc3N3b3JkI25hbWVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWVzcGFjZSBkZWZpbmVzIHRoZSBzcGFjZSB3aXRoaW4gd2hpY2ggdGhlIHNlY3JldCBuYW1lIG11c3QgYmUgdW5pcXVlLlxuICAgKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjTWFzdGVyVXNlclBhc3N3b3JkI25hbWVzcGFjZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0RiSW5zdGFuY2VTcGVjTWFzdGVyVXNlclBhc3N3b3JkJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9EYkluc3RhbmNlU3BlY01hc3RlclVzZXJQYXNzd29yZChvYmo6IERiSW5zdGFuY2VTcGVjTWFzdGVyVXNlclBhc3N3b3JkIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAna2V5Jzogb2JqLmtleSxcbiAgICAnbmFtZSc6IG9iai5uYW1lLFxuICAgICduYW1lc3BhY2UnOiBvYmoubmFtZXNwYWNlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIENvbnRhaW5zIHRoZSBwcm9jZXNzb3IgZmVhdHVyZXMgb2YgYSBEQiBpbnN0YW5jZSBjbGFzcy5cbiAqIFRvIHNwZWNpZnkgdGhlIG51bWJlciBvZiBDUFUgY29yZXMsIHVzZSB0aGUgY29yZUNvdW50IGZlYXR1cmUgbmFtZSBmb3IgdGhlIE5hbWUgcGFyYW1ldGVyLiBUbyBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgdGhyZWFkcyBwZXIgY29yZSwgdXNlIHRoZSB0aHJlYWRzUGVyQ29yZSBmZWF0dXJlIG5hbWUgZm9yIHRoZSBOYW1lIHBhcmFtZXRlci5cbiAqIFlvdSBjYW4gc2V0IHRoZSBwcm9jZXNzb3IgZmVhdHVyZXMgb2YgdGhlIERCIGluc3RhbmNlIGNsYXNzIGZvciBhIERCIGluc3RhbmNlIHdoZW4geW91IGNhbGwgb25lIG9mIHRoZSBmb2xsb3dpbmcgYWN0aW9uczpcbiAqICogQ3JlYXRlREJJbnN0YW5jZVxuICogKiBNb2RpZnlEQkluc3RhbmNlXG4gKiAqIFJlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3RcbiAqICogUmVzdG9yZURCSW5zdGFuY2VGcm9tUzNcbiAqICogUmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lXG4gKiBZb3UgY2FuIHZpZXcgdGhlIHZhbGlkIHByb2Nlc3NvciB2YWx1ZXMgZm9yIGEgcGFydGljdWxhciBpbnN0YW5jZSBjbGFzcyBieSBjYWxsaW5nIHRoZSBEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zIGFjdGlvbiBhbmQgc3BlY2lmeWluZyB0aGUgaW5zdGFuY2UgY2xhc3MgZm9yIHRoZSBEQkluc3RhbmNlQ2xhc3MgcGFyYW1ldGVyLlxuICogSW4gYWRkaXRpb24sIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgYWN0aW9ucyBmb3IgREIgaW5zdGFuY2UgY2xhc3MgcHJvY2Vzc29yIGluZm9ybWF0aW9uOlxuICogKiBEZXNjcmliZURCSW5zdGFuY2VzXG4gKiAqIERlc2NyaWJlREJTbmFwc2hvdHNcbiAqICogRGVzY3JpYmVWYWxpZERCSW5zdGFuY2VNb2RpZmljYXRpb25zXG4gKiBJZiB5b3UgY2FsbCBEZXNjcmliZURCSW5zdGFuY2VzLCBQcm9jZXNzb3JGZWF0dXJlIHJldHVybnMgbm9uLW51bGwgdmFsdWVzIG9ubHkgaWYgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6XG4gKiAqIFlvdSBhcmUgYWNjZXNzaW5nIGFuIE9yYWNsZSBEQiBpbnN0YW5jZS5cbiAqICogWW91ciBPcmFjbGUgREIgaW5zdGFuY2UgY2xhc3Mgc3VwcG9ydHMgY29uZmlndXJpbmcgdGhlIG51bWJlciBvZiBDUFUgICAgY29yZXMgYW5kIHRocmVhZHMgcGVyIGNvcmUuXG4gKiAqIFRoZSBjdXJyZW50IG51bWJlciBDUFUgY29yZXMgYW5kIHRocmVhZHMgaXMgc2V0IHRvIGEgbm9uLWRlZmF1bHQgdmFsdWUuXG4gKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIENvbmZpZ3VyaW5nIHRoZSBQcm9jZXNzb3Igb2YgdGhlIERCIEluc3RhbmNlIENsYXNzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvQ29uY2VwdHMuREJJbnN0YW5jZUNsYXNzLmh0bWwjVVNFUl9Db25maWd1cmVQcm9jZXNzb3IpIGluIHRoZSBBbWF6b24gUkRTIFVzZXIgR3VpZGUuXG4gKlxuICogQHNjaGVtYSBEYkluc3RhbmNlU3BlY1Byb2Nlc3NvckZlYXR1cmVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJJbnN0YW5jZVNwZWNQcm9jZXNzb3JGZWF0dXJlcyB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIERiSW5zdGFuY2VTcGVjUHJvY2Vzc29yRmVhdHVyZXMjbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlY1Byb2Nlc3NvckZlYXR1cmVzI3ZhbHVlXG4gICAqL1xuICByZWFkb25seSB2YWx1ZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdEYkluc3RhbmNlU3BlY1Byb2Nlc3NvckZlYXR1cmVzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9EYkluc3RhbmNlU3BlY1Byb2Nlc3NvckZlYXR1cmVzKG9iajogRGJJbnN0YW5jZVNwZWNQcm9jZXNzb3JGZWF0dXJlcyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ25hbWUnOiBvYmoubmFtZSxcbiAgICAndmFsdWUnOiBvYmoudmFsdWUsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogTWV0YWRhdGEgYXNzaWduZWQgdG8gYW4gQW1hem9uIFJEUyByZXNvdXJjZSBjb25zaXN0aW5nIG9mIGEga2V5LXZhbHVlIHBhaXIuXG4gKlxuICogQHNjaGVtYSBEYkluc3RhbmNlU3BlY1RhZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYkluc3RhbmNlU3BlY1RhZ3Mge1xuICAvKipcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlY1RhZ3Mja2V5XG4gICAqL1xuICByZWFkb25seSBrZXk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgRGJJbnN0YW5jZVNwZWNUYWdzI3ZhbHVlXG4gICAqL1xuICByZWFkb25seSB2YWx1ZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdEYkluc3RhbmNlU3BlY1RhZ3MnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0RiSW5zdGFuY2VTcGVjVGFncyhvYmo6IERiSW5zdGFuY2VTcGVjVGFncyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2tleSc6IG9iai5rZXksXG4gICAgJ3ZhbHVlJzogb2JqLnZhbHVlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEFXU1Jlc291cmNlUmVmZXJlbmNlIHByb3ZpZGVzIGFsbCB0aGUgdmFsdWVzIG5lY2Vzc2FyeSB0byByZWZlcmVuY2UgYW5vdGhlciBrOHMgcmVzb3VyY2UgZm9yIGZpbmRpbmcgdGhlIGlkZW50aWZpZXIoSWQvQVJOL05hbWUpXG4gKlxuICogQHNjaGVtYSBEYkluc3RhbmNlU3BlY0ttc0tleVJlZkZyb21cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYkluc3RhbmNlU3BlY0ttc0tleVJlZkZyb20ge1xuICAvKipcbiAgICogQHNjaGVtYSBEYkluc3RhbmNlU3BlY0ttc0tleVJlZkZyb20jbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdEYkluc3RhbmNlU3BlY0ttc0tleVJlZkZyb20nIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0RiSW5zdGFuY2VTcGVjS21zS2V5UmVmRnJvbShvYmo6IERiSW5zdGFuY2VTcGVjS21zS2V5UmVmRnJvbSB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ25hbWUnOiBvYmoubmFtZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuIl19
@@ -0,0 +1,114 @@
1
+ import { ApiObject, ApiObjectMetadata, GroupVersionKind } from 'cdk8s';
2
+ import { Construct } from 'constructs';
3
+ /**
4
+ * DBSubnetGroup is the Schema for the DBSubnetGroups API
5
+ *
6
+ * @schema DBSubnetGroup
7
+ */
8
+ export declare class DbSubnetGroup extends ApiObject {
9
+ /**
10
+ * Returns the apiVersion and kind for "DBSubnetGroup"
11
+ */
12
+ static readonly GVK: GroupVersionKind;
13
+ /**
14
+ * Renders a Kubernetes manifest for "DBSubnetGroup".
15
+ *
16
+ * This can be used to inline resource manifests inside other objects (e.g. as templates).
17
+ *
18
+ * @param props initialization props
19
+ */
20
+ static manifest(props?: DbSubnetGroupProps): any;
21
+ /**
22
+ * Defines a "DBSubnetGroup" API object
23
+ * @param scope the scope in which to define this object
24
+ * @param id a scope-local name for the object
25
+ * @param props initialization props
26
+ */
27
+ constructor(scope: Construct, id: string, props?: DbSubnetGroupProps);
28
+ /**
29
+ * Renders the object to Kubernetes JSON.
30
+ */
31
+ toJson(): any;
32
+ }
33
+ /**
34
+ * DBSubnetGroup is the Schema for the DBSubnetGroups API
35
+ *
36
+ * @schema DBSubnetGroup
37
+ */
38
+ export interface DbSubnetGroupProps {
39
+ /**
40
+ * @schema DBSubnetGroup#metadata
41
+ */
42
+ readonly metadata?: ApiObjectMetadata;
43
+ /**
44
+ * DBSubnetGroupSpec defines the desired state of DBSubnetGroup.
45
+ * Contains the details of an Amazon RDS DB subnet group.
46
+ * This data type is used as a response element in the DescribeDBSubnetGroups action.
47
+ *
48
+ * @schema DBSubnetGroup#spec
49
+ */
50
+ readonly spec?: DbSubnetGroupSpec;
51
+ }
52
+ /**
53
+ * Converts an object of type 'DbSubnetGroupProps' to JSON representation.
54
+ */
55
+ export declare function toJson_DbSubnetGroupProps(obj: DbSubnetGroupProps | undefined): Record<string, any> | undefined;
56
+ /**
57
+ * DBSubnetGroupSpec defines the desired state of DBSubnetGroup.
58
+ * Contains the details of an Amazon RDS DB subnet group.
59
+ * This data type is used as a response element in the DescribeDBSubnetGroups action.
60
+ *
61
+ * @schema DbSubnetGroupSpec
62
+ */
63
+ export interface DbSubnetGroupSpec {
64
+ /**
65
+ * The description for the DB subnet group.
66
+ *
67
+ * @schema DbSubnetGroupSpec#description
68
+ */
69
+ readonly description: string;
70
+ /**
71
+ * The name for the DB subnet group. This value is stored as a lowercase string.
72
+ * Constraints: Must contain no more than 255 letters, numbers, periods, underscores, spaces, or hyphens. Must not be default.
73
+ * Example: mySubnetgroup
74
+ *
75
+ * @schema DbSubnetGroupSpec#name
76
+ */
77
+ readonly name: string;
78
+ /**
79
+ * The EC2 Subnet IDs for the DB subnet group.
80
+ *
81
+ * @schema DbSubnetGroupSpec#subnetIDs
82
+ */
83
+ readonly subnetIDs: string[];
84
+ /**
85
+ * Tags to assign to the DB subnet group.
86
+ *
87
+ * @schema DbSubnetGroupSpec#tags
88
+ */
89
+ readonly tags?: DbSubnetGroupSpecTags[];
90
+ }
91
+ /**
92
+ * Converts an object of type 'DbSubnetGroupSpec' to JSON representation.
93
+ */
94
+ export declare function toJson_DbSubnetGroupSpec(obj: DbSubnetGroupSpec | undefined): Record<string, any> | undefined;
95
+ /**
96
+ * Metadata assigned to an Amazon RDS resource consisting of a key-value pair.
97
+ *
98
+ * @schema DbSubnetGroupSpecTags
99
+ */
100
+ export interface DbSubnetGroupSpecTags {
101
+ /**
102
+ * @schema DbSubnetGroupSpecTags#key
103
+ */
104
+ readonly key?: string;
105
+ /**
106
+ * @schema DbSubnetGroupSpecTags#value
107
+ */
108
+ readonly value?: string;
109
+ }
110
+ /**
111
+ * Converts an object of type 'DbSubnetGroupSpecTags' to JSON representation.
112
+ */
113
+ export declare function toJson_DbSubnetGroupSpecTags(obj: DbSubnetGroupSpecTags | undefined): Record<string, any> | undefined;
114
+ //# sourceMappingURL=rdsdbsubnetgroups-rds.services.k8s.aws.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rdsdbsubnetgroups-rds.services.k8s.aws.d.ts","sourceRoot":"","sources":["../../src/imports/rdsdbsubnetgroups-rds.services.k8s.aws.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC1C;;OAEG;IACH,gBAAuB,GAAG,EAAE,gBAAgB,CAG1C;IAEF;;;;;;OAMG;WACW,QAAQ,CAAC,KAAK,GAAE,kBAAuB,GAAG,GAAG;IAO3D;;;;;OAKG;gBACgB,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,kBAAuB;IAO/E;;OAEG;IACI,MAAM,IAAI,GAAG;CAQrB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAEtC;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAEnC;AAED;;GAEG;AAEH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAQ9G;AAGD;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAE7B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAEzC;AAED;;GAEG;AAEH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAU5G;AAGD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAEzB;AAED;;GAEG;AAEH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,qBAAqB,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAQpH"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toJson_DbSubnetGroupSpecTags = exports.toJson_DbSubnetGroupSpec = exports.toJson_DbSubnetGroupProps = exports.DbSubnetGroup = void 0;
4
+ // generated by cdk8s
5
+ const cdk8s_1 = require("cdk8s");
6
+ /**
7
+ * DBSubnetGroup is the Schema for the DBSubnetGroups API
8
+ *
9
+ * @schema DBSubnetGroup
10
+ */
11
+ class DbSubnetGroup extends cdk8s_1.ApiObject {
12
+ /**
13
+ * Defines a "DBSubnetGroup" API object
14
+ * @param scope the scope in which to define this object
15
+ * @param id a scope-local name for the object
16
+ * @param props initialization props
17
+ */
18
+ constructor(scope, id, props = {}) {
19
+ super(scope, id, {
20
+ ...DbSubnetGroup.GVK,
21
+ ...props,
22
+ });
23
+ }
24
+ /**
25
+ * Renders a Kubernetes manifest for "DBSubnetGroup".
26
+ *
27
+ * This can be used to inline resource manifests inside other objects (e.g. as templates).
28
+ *
29
+ * @param props initialization props
30
+ */
31
+ static manifest(props = {}) {
32
+ return {
33
+ ...DbSubnetGroup.GVK,
34
+ ...toJson_DbSubnetGroupProps(props),
35
+ };
36
+ }
37
+ /**
38
+ * Renders the object to Kubernetes JSON.
39
+ */
40
+ toJson() {
41
+ const resolved = super.toJson();
42
+ return {
43
+ ...DbSubnetGroup.GVK,
44
+ ...toJson_DbSubnetGroupProps(resolved),
45
+ };
46
+ }
47
+ }
48
+ exports.DbSubnetGroup = DbSubnetGroup;
49
+ /**
50
+ * Returns the apiVersion and kind for "DBSubnetGroup"
51
+ */
52
+ DbSubnetGroup.GVK = {
53
+ apiVersion: 'rds.services.k8s.aws/v1alpha1',
54
+ kind: 'DBSubnetGroup',
55
+ };
56
+ /**
57
+ * Converts an object of type 'DbSubnetGroupProps' to JSON representation.
58
+ */
59
+ /* eslint-disable max-len, quote-props */
60
+ function toJson_DbSubnetGroupProps(obj) {
61
+ if (obj === undefined) {
62
+ return undefined;
63
+ }
64
+ const result = {
65
+ 'metadata': obj.metadata,
66
+ 'spec': toJson_DbSubnetGroupSpec(obj.spec),
67
+ };
68
+ // filter undefined values
69
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
70
+ }
71
+ exports.toJson_DbSubnetGroupProps = toJson_DbSubnetGroupProps;
72
+ /**
73
+ * Converts an object of type 'DbSubnetGroupSpec' to JSON representation.
74
+ */
75
+ /* eslint-disable max-len, quote-props */
76
+ function toJson_DbSubnetGroupSpec(obj) {
77
+ var _a, _b;
78
+ if (obj === undefined) {
79
+ return undefined;
80
+ }
81
+ const result = {
82
+ 'description': obj.description,
83
+ 'name': obj.name,
84
+ 'subnetIDs': (_a = obj.subnetIDs) === null || _a === void 0 ? void 0 : _a.map(y => y),
85
+ 'tags': (_b = obj.tags) === null || _b === void 0 ? void 0 : _b.map(y => toJson_DbSubnetGroupSpecTags(y)),
86
+ };
87
+ // filter undefined values
88
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
89
+ }
90
+ exports.toJson_DbSubnetGroupSpec = toJson_DbSubnetGroupSpec;
91
+ /**
92
+ * Converts an object of type 'DbSubnetGroupSpecTags' to JSON representation.
93
+ */
94
+ /* eslint-disable max-len, quote-props */
95
+ function toJson_DbSubnetGroupSpecTags(obj) {
96
+ if (obj === undefined) {
97
+ return undefined;
98
+ }
99
+ const result = {
100
+ 'key': obj.key,
101
+ 'value': obj.value,
102
+ };
103
+ // filter undefined values
104
+ return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
105
+ }
106
+ exports.toJson_DbSubnetGroupSpecTags = toJson_DbSubnetGroupSpecTags;
107
+ /* eslint-enable max-len, quote-props */
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRzZGJzdWJuZXRncm91cHMtcmRzLnNlcnZpY2VzLms4cy5hd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1wb3J0cy9yZHNkYnN1Ym5ldGdyb3Vwcy1yZHMuc2VydmljZXMuazhzLmF3cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQkFBcUI7QUFDckIsaUNBQXVFO0FBSXZFOzs7O0dBSUc7QUFDSCxNQUFhLGFBQWMsU0FBUSxpQkFBUztJQXVCMUM7Ozs7O09BS0c7SUFDSCxZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUE0QixFQUFFO1FBQzdFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxhQUFhLENBQUMsR0FBRztZQUNwQixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBekJEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBNEIsRUFBRTtRQUNuRCxPQUFPO1lBQ0wsR0FBRyxhQUFhLENBQUMsR0FBRztZQUNwQixHQUFHLHlCQUF5QixDQUFDLEtBQUssQ0FBQztTQUNwQyxDQUFDO0lBQ0osQ0FBQztJQWVEOztPQUVHO0lBQ0ksTUFBTTtRQUNYLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVoQyxPQUFPO1lBQ0wsR0FBRyxhQUFhLENBQUMsR0FBRztZQUNwQixHQUFHLHlCQUF5QixDQUFDLFFBQVEsQ0FBQztTQUN2QyxDQUFDO0lBQ0osQ0FBQzs7QUE5Q0gsc0NBK0NDO0FBOUNDOztHQUVHO0FBQ29CLGlCQUFHLEdBQXFCO0lBQzdDLFVBQVUsRUFBRSwrQkFBK0I7SUFDM0MsSUFBSSxFQUFFLGVBQWU7Q0FDdEIsQ0FBQztBQWdFSjs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQix5QkFBeUIsQ0FBQyxHQUFtQztJQUMzRSxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7UUFBRSxPQUFPLFNBQVMsQ0FBQztLQUFFO0lBQzVDLE1BQU0sTUFBTSxHQUFHO1FBQ2IsVUFBVSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1FBQ3hCLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0tBQzNDLENBQUM7SUFDRiwwQkFBMEI7SUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQVJELDhEQVFDO0FBMkNEOztHQUVHO0FBQ0gseUNBQXlDO0FBQ3pDLFNBQWdCLHdCQUF3QixDQUFDLEdBQWtDOztJQUN6RSxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7UUFBRSxPQUFPLFNBQVMsQ0FBQztLQUFFO0lBQzVDLE1BQU0sTUFBTSxHQUFHO1FBQ2IsYUFBYSxFQUFFLEdBQUcsQ0FBQyxXQUFXO1FBQzlCLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNoQixXQUFXLFFBQUUsR0FBRyxDQUFDLFNBQVMsMENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sUUFBRSxHQUFHLENBQUMsSUFBSSwwQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUM1RCxDQUFDO0lBQ0YsMEJBQTBCO0lBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzFHLENBQUM7QUFWRCw0REFVQztBQXFCRDs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQiw0QkFBNEIsQ0FBQyxHQUFzQztJQUNqRixJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7UUFBRSxPQUFPLFNBQVMsQ0FBQztLQUFFO0lBQzVDLE1BQU0sTUFBTSxHQUFHO1FBQ2IsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHO1FBQ2QsT0FBTyxFQUFFLEdBQUcsQ0FBQyxLQUFLO0tBQ25CLENBQUM7SUFDRiwwQkFBMEI7SUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQVJELG9FQVFDO0FBQ0Qsd0NBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZ2VuZXJhdGVkIGJ5IGNkazhzXG5pbXBvcnQgeyBBcGlPYmplY3QsIEFwaU9iamVjdE1ldGFkYXRhLCBHcm91cFZlcnNpb25LaW5kIH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cblxuLyoqXG4gKiBEQlN1Ym5ldEdyb3VwIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBEQlN1Ym5ldEdyb3VwcyBBUElcbiAqXG4gKiBAc2NoZW1hIERCU3VibmV0R3JvdXBcbiAqL1xuZXhwb3J0IGNsYXNzIERiU3VibmV0R3JvdXAgZXh0ZW5kcyBBcGlPYmplY3Qge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYXBpVmVyc2lvbiBhbmQga2luZCBmb3IgXCJEQlN1Ym5ldEdyb3VwXCJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR1ZLOiBHcm91cFZlcnNpb25LaW5kID0ge1xuICAgIGFwaVZlcnNpb246ICdyZHMuc2VydmljZXMuazhzLmF3cy92MWFscGhhMScsXG4gICAga2luZDogJ0RCU3VibmV0R3JvdXAnLFxuICB9O1xuXG4gIC8qKlxuICAgKiBSZW5kZXJzIGEgS3ViZXJuZXRlcyBtYW5pZmVzdCBmb3IgXCJEQlN1Ym5ldEdyb3VwXCIuXG4gICAqXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gaW5saW5lIHJlc291cmNlIG1hbmlmZXN0cyBpbnNpZGUgb3RoZXIgb2JqZWN0cyAoZS5nLiBhcyB0ZW1wbGF0ZXMpLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFuaWZlc3QocHJvcHM6IERiU3VibmV0R3JvdXBQcm9wcyA9IHt9KTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uRGJTdWJuZXRHcm91cC5HVkssXG4gICAgICAuLi50b0pzb25fRGJTdWJuZXRHcm91cFByb3BzKHByb3BzKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBcIkRCU3VibmV0R3JvdXBcIiBBUEkgb2JqZWN0XG4gICAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgb2JqZWN0XG4gICAqIEBwYXJhbSBpZCBhIHNjb3BlLWxvY2FsIG5hbWUgZm9yIHRoZSBvYmplY3RcbiAgICogQHBhcmFtIHByb3BzIGluaXRpYWxpemF0aW9uIHByb3BzXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERiU3VibmV0R3JvdXBQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5EYlN1Ym5ldEdyb3VwLkdWSyxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIG9iamVjdCB0byBLdWJlcm5ldGVzIEpTT04uXG4gICAqL1xuICBwdWJsaWMgdG9Kc29uKCk6IGFueSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBzdXBlci50b0pzb24oKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5EYlN1Ym5ldEdyb3VwLkdWSyxcbiAgICAgIC4uLnRvSnNvbl9EYlN1Ym5ldEdyb3VwUHJvcHMocmVzb2x2ZWQpLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBEQlN1Ym5ldEdyb3VwIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBEQlN1Ym5ldEdyb3VwcyBBUElcbiAqXG4gKiBAc2NoZW1hIERCU3VibmV0R3JvdXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYlN1Ym5ldEdyb3VwUHJvcHMge1xuICAvKipcbiAgICogQHNjaGVtYSBEQlN1Ym5ldEdyb3VwI21ldGFkYXRhXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IEFwaU9iamVjdE1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBEQlN1Ym5ldEdyb3VwU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIERCU3VibmV0R3JvdXAuXG4gICAqIENvbnRhaW5zIHRoZSBkZXRhaWxzIG9mIGFuIEFtYXpvbiBSRFMgREIgc3VibmV0IGdyb3VwLlxuICAgKiBUaGlzIGRhdGEgdHlwZSBpcyB1c2VkIGFzIGEgcmVzcG9uc2UgZWxlbWVudCBpbiB0aGUgRGVzY3JpYmVEQlN1Ym5ldEdyb3VwcyBhY3Rpb24uXG4gICAqXG4gICAqIEBzY2hlbWEgREJTdWJuZXRHcm91cCNzcGVjXG4gICAqL1xuICByZWFkb25seSBzcGVjPzogRGJTdWJuZXRHcm91cFNwZWM7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnRGJTdWJuZXRHcm91cFByb3BzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9EYlN1Ym5ldEdyb3VwUHJvcHMob2JqOiBEYlN1Ym5ldEdyb3VwUHJvcHMgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdtZXRhZGF0YSc6IG9iai5tZXRhZGF0YSxcbiAgICAnc3BlYyc6IHRvSnNvbl9EYlN1Ym5ldEdyb3VwU3BlYyhvYmouc3BlYyksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogREJTdWJuZXRHcm91cFNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBEQlN1Ym5ldEdyb3VwLlxuICogQ29udGFpbnMgdGhlIGRldGFpbHMgb2YgYW4gQW1hem9uIFJEUyBEQiBzdWJuZXQgZ3JvdXAuXG4gKiBUaGlzIGRhdGEgdHlwZSBpcyB1c2VkIGFzIGEgcmVzcG9uc2UgZWxlbWVudCBpbiB0aGUgRGVzY3JpYmVEQlN1Ym5ldEdyb3VwcyBhY3Rpb24uXG4gKlxuICogQHNjaGVtYSBEYlN1Ym5ldEdyb3VwU3BlY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERiU3VibmV0R3JvdXBTcGVjIHtcbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIERCIHN1Ym5ldCBncm91cC5cbiAgICpcbiAgICogQHNjaGVtYSBEYlN1Ym5ldEdyb3VwU3BlYyNkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgZm9yIHRoZSBEQiBzdWJuZXQgZ3JvdXAuIFRoaXMgdmFsdWUgaXMgc3RvcmVkIGFzIGEgbG93ZXJjYXNlIHN0cmluZy5cbiAgICogQ29uc3RyYWludHM6IE11c3QgY29udGFpbiBubyBtb3JlIHRoYW4gMjU1IGxldHRlcnMsIG51bWJlcnMsIHBlcmlvZHMsIHVuZGVyc2NvcmVzLCBzcGFjZXMsIG9yIGh5cGhlbnMuIE11c3Qgbm90IGJlIGRlZmF1bHQuXG4gICAqIEV4YW1wbGU6IG15U3VibmV0Z3JvdXBcbiAgICpcbiAgICogQHNjaGVtYSBEYlN1Ym5ldEdyb3VwU3BlYyNuYW1lXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBFQzIgU3VibmV0IElEcyBmb3IgdGhlIERCIHN1Ym5ldCBncm91cC5cbiAgICpcbiAgICogQHNjaGVtYSBEYlN1Ym5ldEdyb3VwU3BlYyNzdWJuZXRJRHNcbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldElEczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gYXNzaWduIHRvIHRoZSBEQiBzdWJuZXQgZ3JvdXAuXG4gICAqXG4gICAqIEBzY2hlbWEgRGJTdWJuZXRHcm91cFNwZWMjdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IERiU3VibmV0R3JvdXBTcGVjVGFnc1tdO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0RiU3VibmV0R3JvdXBTcGVjJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9EYlN1Ym5ldEdyb3VwU3BlYyhvYmo6IERiU3VibmV0R3JvdXBTcGVjIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnZGVzY3JpcHRpb24nOiBvYmouZGVzY3JpcHRpb24sXG4gICAgJ25hbWUnOiBvYmoubmFtZSxcbiAgICAnc3VibmV0SURzJzogb2JqLnN1Ym5ldElEcz8ubWFwKHkgPT4geSksXG4gICAgJ3RhZ3MnOiBvYmoudGFncz8ubWFwKHkgPT4gdG9Kc29uX0RiU3VibmV0R3JvdXBTcGVjVGFncyh5KSksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogTWV0YWRhdGEgYXNzaWduZWQgdG8gYW4gQW1hem9uIFJEUyByZXNvdXJjZSBjb25zaXN0aW5nIG9mIGEga2V5LXZhbHVlIHBhaXIuXG4gKlxuICogQHNjaGVtYSBEYlN1Ym5ldEdyb3VwU3BlY1RhZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYlN1Ym5ldEdyb3VwU3BlY1RhZ3Mge1xuICAvKipcbiAgICogQHNjaGVtYSBEYlN1Ym5ldEdyb3VwU3BlY1RhZ3Mja2V5XG4gICAqL1xuICByZWFkb25seSBrZXk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgRGJTdWJuZXRHcm91cFNwZWNUYWdzI3ZhbHVlXG4gICAqL1xuICByZWFkb25seSB2YWx1ZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdEYlN1Ym5ldEdyb3VwU3BlY1RhZ3MnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0RiU3VibmV0R3JvdXBTcGVjVGFncyhvYmo6IERiU3VibmV0R3JvdXBTcGVjVGFncyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2tleSc6IG9iai5rZXksXG4gICAgJ3ZhbHVlJzogb2JqLnZhbHVlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4iXX0=