@aws-cdk/aws-imagebuilder-alpha 2.230.0-alpha.0 → 2.232.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/image.js ADDED
@@ -0,0 +1,357 @@
1
+ "use strict";
2
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
3
+ var useValue = arguments.length > 2;
4
+ for (var i = 0; i < initializers.length; i++) {
5
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
6
+ }
7
+ return useValue ? value : void 0;
8
+ };
9
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
10
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
11
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
12
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
13
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
14
+ var _, done = false;
15
+ for (var i = decorators.length - 1; i >= 0; i--) {
16
+ var context = {};
17
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
18
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
19
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
20
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
21
+ if (kind === "accessor") {
22
+ if (result === void 0) continue;
23
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
24
+ if (_ = accept(result.get)) descriptor.get = _;
25
+ if (_ = accept(result.set)) descriptor.set = _;
26
+ if (_ = accept(result.init)) initializers.unshift(_);
27
+ }
28
+ else if (_ = accept(result)) {
29
+ if (kind === "field") initializers.unshift(_);
30
+ else descriptor[key] = _;
31
+ }
32
+ }
33
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
34
+ done = true;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.Image = exports.ImageType = exports.ImageArchitecture = void 0;
38
+ const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
39
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
40
+ const cdk = require("aws-cdk-lib");
41
+ const iam = require("aws-cdk-lib/aws-iam");
42
+ const aws_imagebuilder_1 = require("aws-cdk-lib/aws-imagebuilder");
43
+ const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
44
+ const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
45
+ const base_image_1 = require("./base-image");
46
+ const infrastructure_configuration_1 = require("./infrastructure-configuration");
47
+ const constants_1 = require("./private/constants");
48
+ const image_and_pipeline_props_helper_1 = require("./private/image-and-pipeline-props-helper");
49
+ const policy_helper_1 = require("./private/policy-helper");
50
+ const IMAGE_SYMBOL = Symbol.for('@aws-cdk/aws-imagebuilder-alpha.Image');
51
+ /**
52
+ * The architecture of the image
53
+ */
54
+ var ImageArchitecture;
55
+ (function (ImageArchitecture) {
56
+ /**
57
+ * 64 bit architecture with the ARM instruction set
58
+ */
59
+ ImageArchitecture["ARM64"] = "arm64";
60
+ /**
61
+ * 64 bit architecture with x86 instruction set
62
+ */
63
+ ImageArchitecture["X86_64"] = "x86_64";
64
+ })(ImageArchitecture || (exports.ImageArchitecture = ImageArchitecture = {}));
65
+ /**
66
+ * The type of the image
67
+ */
68
+ var ImageType;
69
+ (function (ImageType) {
70
+ /**
71
+ * Indicates the image produced is an AMI
72
+ */
73
+ ImageType["AMI"] = "AMI";
74
+ /**
75
+ * Indicates the image produced is a Docker image
76
+ */
77
+ ImageType["DOCKER"] = "DOCKER";
78
+ })(ImageType || (exports.ImageType = ImageType = {}));
79
+ /**
80
+ * A new or imported Image
81
+ */
82
+ class ImageBase extends cdk.Resource {
83
+ /**
84
+ * Grant custom actions to the given grantee for the image
85
+ *
86
+ * @param grantee The principal
87
+ * @param actions The list of actions
88
+ */
89
+ grant(grantee, ...actions) {
90
+ return iam.Grant.addToPrincipal({
91
+ grantee,
92
+ resourceArns: [this.imageArn],
93
+ actions,
94
+ });
95
+ }
96
+ /**
97
+ * Grants the default permissions for building an image to the provided execution role.
98
+ *
99
+ * @param grantee The execution role used for the image build.
100
+ */
101
+ grantDefaultExecutionRolePermissions(grantee) {
102
+ const policies = (0, policy_helper_1.defaultExecutionRolePolicy)(this);
103
+ return policies.map((policy) => iam.Grant.addToPrincipal({
104
+ grantee: grantee,
105
+ resourceArns: policy.resources,
106
+ actions: policy.actions,
107
+ conditions: policy.conditions,
108
+ scope: this,
109
+ }));
110
+ }
111
+ /**
112
+ * Grant read permissions to the given grantee for the image
113
+ *
114
+ * @param grantee The principal
115
+ */
116
+ grantRead(grantee) {
117
+ return this.grant(grantee, 'imagebuilder:GetImage');
118
+ }
119
+ /**
120
+ * Converts the image to a BaseImage, to use as the parent image in an image recipe
121
+ */
122
+ toBaseImage() {
123
+ return base_image_1.BaseImage.fromImage(this);
124
+ }
125
+ /**
126
+ * Converts the image to a ContainerBaseImage, to use as the parent image in a container recipe
127
+ */
128
+ toContainerBaseImage() {
129
+ return base_image_1.BaseContainerImage.fromImage(this);
130
+ }
131
+ }
132
+ /**
133
+ * Represents an EC2 Image Builder Image.
134
+ *
135
+ * @see https://docs.aws.amazon.com/imagebuilder/latest/userguide/create-images.html
136
+ */
137
+ let Image = (() => {
138
+ let _classDecorators = [prop_injectable_1.propertyInjectable];
139
+ let _classDescriptor;
140
+ let _classExtraInitializers = [];
141
+ let _classThis;
142
+ let _classSuper = ImageBase;
143
+ let _instanceExtraInitializers = [];
144
+ let _grantDefaultExecutionRolePermissions_decorators;
145
+ var Image = class extends _classSuper {
146
+ static { _classThis = this; }
147
+ static {
148
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
149
+ _grantDefaultExecutionRolePermissions_decorators = [(0, metadata_resource_1.MethodMetadata)()];
150
+ __esDecorate(this, null, _grantDefaultExecutionRolePermissions_decorators, { kind: "method", name: "grantDefaultExecutionRolePermissions", static: false, private: false, access: { has: obj => "grantDefaultExecutionRolePermissions" in obj, get: obj => obj.grantDefaultExecutionRolePermissions }, metadata: _metadata }, null, _instanceExtraInitializers);
151
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
152
+ Image = _classThis = _classDescriptor.value;
153
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
154
+ }
155
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.Image", version: "2.232.0-alpha.0" };
156
+ /** Uniquely identifies this class. */
157
+ static PROPERTY_INJECTION_ID = '@aws-cdk.aws-imagebuilder-alpha.Image';
158
+ /**
159
+ * Import an existing image given its ARN
160
+ */
161
+ static fromImageArn(scope, id, imageArn) {
162
+ return this.fromImageAttributes(scope, id, { imageArn });
163
+ }
164
+ /**
165
+ * Import an existing image given its name. The provided name must be normalized by converting all alphabetical
166
+ * characters to lowercase, and replacing all spaces and underscores with hyphens.
167
+ */
168
+ static fromImageName(scope, id, imageName) {
169
+ return this.fromImageAttributes(scope, id, { imageName });
170
+ }
171
+ /**
172
+ * Import an existing image by providing its attributes. If the image name is provided as an attribute, it must be
173
+ * normalized by converting all alphabetical characters to lowercase, and replacing all spaces and underscores with
174
+ * hyphens.
175
+ */
176
+ static fromImageAttributes(scope, id, attrs) {
177
+ try {
178
+ jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_ImageAttributes(attrs);
179
+ }
180
+ catch (error) {
181
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
182
+ Error.captureStackTrace(error, this.fromImageAttributes);
183
+ }
184
+ throw error;
185
+ }
186
+ if (!attrs.imageArn && !attrs.imageName) {
187
+ throw new cdk.ValidationError('either imageArn or imageName is required', scope);
188
+ }
189
+ const imageArn = attrs.imageArn ??
190
+ cdk.Stack.of(scope).formatArn({
191
+ service: 'imagebuilder',
192
+ resource: 'image',
193
+ resourceName: `${attrs.imageName}/${attrs.imageVersion ?? constants_1.LATEST_VERSION}`,
194
+ });
195
+ const [imageName, imageVersion] = (() => {
196
+ if (attrs.imageName) {
197
+ return [attrs.imageName, attrs.imageVersion ?? constants_1.LATEST_VERSION];
198
+ }
199
+ const imageNameVersion = cdk.Stack.of(scope).splitArn(imageArn, cdk.ArnFormat.SLASH_RESOURCE_NAME).resourceName;
200
+ const imageNameVersionSplit = cdk.Fn.split('/', imageNameVersion);
201
+ return [cdk.Fn.select(0, imageNameVersionSplit), cdk.Fn.select(1, imageNameVersionSplit)];
202
+ })();
203
+ class Import extends ImageBase {
204
+ imageArn = imageArn;
205
+ imageName = imageName;
206
+ imageVersion = imageVersion;
207
+ }
208
+ return new Import(scope, id);
209
+ }
210
+ /**
211
+ * Return whether the given object is an Image.
212
+ */
213
+ static isImage(x) {
214
+ return x !== null && typeof x === 'object' && IMAGE_SYMBOL in x;
215
+ }
216
+ /**
217
+ * The ARN of the image
218
+ */
219
+ imageArn = __runInitializers(this, _instanceExtraInitializers);
220
+ /**
221
+ * The name of the image
222
+ */
223
+ imageName;
224
+ /**
225
+ * The version of the image
226
+ */
227
+ imageVersion;
228
+ /**
229
+ * The AMI ID of the EC2 AMI, or URI for the container
230
+ *
231
+ * @attribute
232
+ */
233
+ imageId;
234
+ /**
235
+ * The infrastructure configuration used for the image build
236
+ */
237
+ infrastructureConfiguration;
238
+ /**
239
+ * The execution role used for the image build
240
+ */
241
+ executionRole;
242
+ props;
243
+ constructor(scope, id, props) {
244
+ super(scope, id);
245
+ try {
246
+ jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_ImageProps(props);
247
+ }
248
+ catch (error) {
249
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
250
+ Error.captureStackTrace(error, Image);
251
+ }
252
+ throw error;
253
+ }
254
+ // Enhanced CDK Analytics Telemetry
255
+ (0, metadata_resource_1.addConstructMetadata)(this, props);
256
+ Object.defineProperty(this, IMAGE_SYMBOL, { value: true });
257
+ this.props = props;
258
+ this.infrastructureConfiguration =
259
+ props.infrastructureConfiguration ?? new infrastructure_configuration_1.InfrastructureConfiguration(this, 'InfrastructureConfiguration');
260
+ this.executionRole = (0, policy_helper_1.getExecutionRole)(this, (grantee) => this.grantDefaultExecutionRolePermissions(grantee), {
261
+ ...props,
262
+ imageLogGroup: props.logGroup,
263
+ });
264
+ const [image, recipe] = this.createImageFromRecipe(props);
265
+ this.imageName = this.getResourceNameAttribute(image.attrName);
266
+ this.imageArn = image.attrArn;
267
+ if (recipe._isImageRecipe()) {
268
+ this.imageId = image.attrImageId;
269
+ this.imageVersion = recipe.imageRecipeVersion;
270
+ }
271
+ else if (recipe._isContainerRecipe()) {
272
+ this.imageId = image.attrImageUri;
273
+ this.imageVersion = recipe.containerRecipeVersion;
274
+ }
275
+ else {
276
+ throw new cdk.ValidationError('recipe must either be an image recipe or container recipe', this);
277
+ }
278
+ }
279
+ /**
280
+ * Grants the default permissions for building an image to the provided execution role.
281
+ *
282
+ * @param grantee The execution role used for the image build.
283
+ */
284
+ grantDefaultExecutionRolePermissions(grantee) {
285
+ const policies = (0, policy_helper_1.defaultExecutionRolePolicy)(this, this.props);
286
+ return policies.map((policy) => iam.Grant.addToPrincipal({
287
+ grantee: grantee,
288
+ resourceArns: policy.resources,
289
+ actions: policy.actions,
290
+ conditions: policy.conditions,
291
+ scope: this,
292
+ }));
293
+ }
294
+ /**
295
+ * Creates a CfnImage resource from the recipe and props provided.
296
+ *
297
+ * @param props Props input for the construct
298
+ * @private
299
+ */
300
+ createImageFromRecipe(props) {
301
+ const recipe = props.recipe;
302
+ if (infrastructure_configuration_1.InfrastructureConfiguration.isInfrastructureConfiguration(this.infrastructureConfiguration)) {
303
+ this.infrastructureConfiguration._bind({ isContainerBuild: recipe._isContainerRecipe() });
304
+ }
305
+ if (recipe._isImageRecipe() && recipe._isContainerRecipe()) {
306
+ throw new cdk.ValidationError('the recipe cannot be both an IImageRecipe and an IContainerRecipe', this);
307
+ }
308
+ if (!recipe._isImageRecipe() && !recipe._isContainerRecipe()) {
309
+ throw new cdk.ValidationError('the recipe must either be an IImageRecipe or IContainerRecipe', this);
310
+ }
311
+ const image = new aws_imagebuilder_1.CfnImage(this, 'Resource', {
312
+ ...(recipe._isImageRecipe() && { imageRecipeArn: recipe.imageRecipeArn }),
313
+ ...(recipe._isContainerRecipe() && { containerRecipeArn: recipe.containerRecipeArn }),
314
+ infrastructureConfigurationArn: this.infrastructureConfiguration.infrastructureConfigurationArn,
315
+ distributionConfigurationArn: props.distributionConfiguration?.distributionConfigurationArn,
316
+ executionRole: this.executionRole?.roleArn,
317
+ enhancedImageMetadataEnabled: props.enhancedImageMetadataEnabled,
318
+ loggingConfiguration: this.buildLoggingConfiguration(props),
319
+ imageTestsConfiguration: (0, image_and_pipeline_props_helper_1.buildImageTestsConfiguration)(props),
320
+ imageScanningConfiguration: (0, image_and_pipeline_props_helper_1.buildImageScanningConfiguration)(this, props),
321
+ workflows: (0, image_and_pipeline_props_helper_1.buildWorkflows)(props),
322
+ deletionSettings: this.buildDeletionSettings(props),
323
+ tags: props.tags,
324
+ });
325
+ return [image, recipe];
326
+ }
327
+ /**
328
+ * Generates the loggingConfiguration property into the `LoggingConfiguration` type in the CloudFormation L1
329
+ * definition.
330
+ *
331
+ * @param props Props input for the construct
332
+ */
333
+ buildLoggingConfiguration(props) {
334
+ if (!props.logGroup) {
335
+ return undefined;
336
+ }
337
+ return { logGroupName: props.logGroup.logGroupName };
338
+ }
339
+ /**
340
+ * Generates the deletionSettings property into the `DeletionSettings` type in the CloudFormation L1 definition.
341
+ *
342
+ * @param props Props input for the construct
343
+ */
344
+ buildDeletionSettings(props) {
345
+ if (props.deletionExecutionRole === undefined) {
346
+ return undefined;
347
+ }
348
+ return { executionRole: props.deletionExecutionRole.roleArn };
349
+ }
350
+ static {
351
+ __runInitializers(_classThis, _classExtraInitializers);
352
+ }
353
+ };
354
+ return Image = _classThis;
355
+ })();
356
+ exports.Image = Image;
357
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBbUM7QUFFbkMsMkNBQTJDO0FBQzNDLG1FQUF3RDtBQUV4RCw4RUFBOEY7QUFDOUYsMEVBQTBFO0FBRTFFLDZDQUE2RDtBQUU3RCxpRkFBMkc7QUFDM0csbURBQXFEO0FBQ3JELCtGQUltRDtBQUNuRCwyREFBdUY7QUFJdkYsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0FBd016RTs7R0FFRztBQUNILElBQVksaUJBVVg7QUFWRCxXQUFZLGlCQUFpQjtJQUMzQjs7T0FFRztJQUNILG9DQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILHNDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFWVyxpQkFBaUIsaUNBQWpCLGlCQUFpQixRQVU1QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxTQVVYO0FBVkQsV0FBWSxTQUFTO0lBQ25COztPQUVHO0lBQ0gsd0JBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsOEJBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVZXLFNBQVMseUJBQVQsU0FBUyxRQVVwQjtBQUVEOztHQUVHO0FBQ0gsTUFBZSxTQUFVLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUFnQjNDOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLE9BQXVCLEVBQUUsR0FBRyxPQUFpQjtRQUN4RCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQzlCLE9BQU87WUFDUCxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzdCLE9BQU87U0FDUixDQUFDLENBQUM7S0FDSjtJQUVEOzs7O09BSUc7SUFDSSxvQ0FBb0MsQ0FBQyxPQUF1QjtRQUNqRSxNQUFNLFFBQVEsR0FBRyxJQUFBLDBDQUEwQixFQUFDLElBQUks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QUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN0RDtRQUVEOzs7O1dBSUc7UUFDSyxxQkFBcUIsQ0FBQyxLQUFpQjtZQUM3QyxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDOUMsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztZQUVELE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQy9EOztZQTlOVSx1REFBSzs7Ozs7QUFBTCxzQkFBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBlY3IgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjcic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBDZm5JbWFnZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pbWFnZWJ1aWxkZXInO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSwgTWV0aG9kTWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBCYXNlQ29udGFpbmVySW1hZ2UsIEJhc2VJbWFnZSB9IGZyb20gJy4vYmFzZS1pbWFnZSc7XG5pbXBvcnQgeyBJRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vZGlzdHJpYnV0aW9uLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgSUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbiwgSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9pbmZyYXN0cnVjdHVyZS1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IExBVEVTVF9WRVJTSU9OIH0gZnJvbSAnLi9wcml2YXRlL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBidWlsZEltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uLFxuICBidWlsZEltYWdlVGVzdHNDb25maWd1cmF0aW9uLFxuICBidWlsZFdvcmtmbG93cyxcbn0gZnJvbSAnLi9wcml2YXRlL2ltYWdlLWFuZC1waXBlbGluZS1wcm9wcy1oZWxwZXInO1xuaW1wb3J0IHsgZGVmYXVsdEV4ZWN1dGlvblJvbGVQb2xpY3ksIGdldEV4ZWN1dGlvblJvbGUgfSBmcm9tICcuL3ByaXZhdGUvcG9saWN5LWhlbHBlcic7XG5pbXBvcnQgeyBJUmVjaXBlQmFzZSB9IGZyb20gJy4vcmVjaXBlLWJhc2UnO1xuaW1wb3J0IHsgV29ya2Zsb3dDb25maWd1cmF0aW9uIH0gZnJvbSAnLi93b3JrZmxvdyc7XG5cbmNvbnN0IElNQUdFX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL2F3cy1pbWFnZWJ1aWxkZXItYWxwaGEuSW1hZ2UnKTtcblxuLyoqXG4gKiBBbiBFQzIgSW1hZ2UgQnVpbGRlciBJbWFnZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElJbWFnZSBleHRlbmRzIGNkay5JUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgaW1hZ2VcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGltYWdlXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgaW1hZ2VcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdyYW50IGN1c3RvbSBhY3Rpb25zIHRvIHRoZSBnaXZlbiBncmFudGVlIGZvciB0aGUgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbFxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgbGlzdCBvZiBhY3Rpb25zXG4gICAqL1xuICBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50cyB0aGUgZGVmYXVsdCBwZXJtaXNzaW9ucyBmb3IgYnVpbGRpbmcgYW4gaW1hZ2UgdG8gdGhlIHByb3ZpZGVkIGV4ZWN1dGlvbiByb2xlLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgZXhlY3V0aW9uIHJvbGUgdXNlZCBmb3IgdGhlIGltYWdlIGJ1aWxkLlxuICAgKi9cbiAgZ3JhbnREZWZhdWx0RXhlY3V0aW9uUm9sZVBlcm1pc3Npb25zKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50W107XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsXG4gICAqL1xuICBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBpbWFnZSB0byBhIEJhc2VJbWFnZSwgdG8gdXNlIGFzIHRoZSBwYXJlbnQgaW1hZ2UgaW4gYW4gaW1hZ2UgcmVjaXBlXG4gICAqL1xuICB0b0Jhc2VJbWFnZSgpOiBCYXNlSW1hZ2U7XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBpbWFnZSB0byBhIENvbnRhaW5lckJhc2VJbWFnZSwgdG8gdXNlIGFzIHRoZSBwYXJlbnQgaW1hZ2UgaW4gYSBjb250YWluZXIgcmVjaXBlXG4gICAqL1xuICB0b0NvbnRhaW5lckJhc2VJbWFnZSgpOiBCYXNlQ29udGFpbmVySW1hZ2U7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYW4gSW1hZ2UgcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSByZWNpcGUgdGhhdCBkZWZpbmVzIHRoZSBiYXNlIGltYWdlLCBjb21wb25lbnRzLCBhbmQgY3VzdG9taXphdGlvbnMgdXNlZCB0byBidWlsZCB0aGUgaW1hZ2UuIFRoaXMgY2FuIGVpdGhlciBiZVxuICAgKiBhbiBpbWFnZSByZWNpcGUsIG9yIGEgY29udGFpbmVyIHJlY2lwZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlY2lwZTogSVJlY2lwZUJhc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBpbmZyYXN0cnVjdHVyZSBjb25maWd1cmF0aW9uIHVzZWQgZm9yIGJ1aWxkaW5nIHRoZSBpbWFnZS5cbiAgICpcbiAgICogQSBkZWZhdWx0IGluZnJhc3RydWN0dXJlIGNvbmZpZ3VyYXRpb24gd2lsbCBiZSB1c2VkIGlmIG9uZSBpcyBub3QgcHJvdmlkZWQuXG4gICAqXG4gICAqIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gd2lsbCBjcmVhdGUgYW4gaW5zdGFuY2UgcHJvZmlsZSBhbmQgcm9sZSB3aXRoIG1pbmltYWwgcGVybWlzc2lvbnMgbmVlZGVkIHRvIGJ1aWxkIHRoZVxuICAgKiBpbWFnZSwgYXR0YWNoZWQgdG8gdGhlIEVDMiBpbnN0YW5jZS5cbiAgICpcbiAgICogSU1EU3YyIHdpbGwgYmUgcmVxdWlyZWQgYnkgZGVmYXVsdCBvbiB0aGUgaW5zdGFuY2VzIHVzZWQgdG8gYnVpbGQgYW5kIHRlc3QgdGhlIGltYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFuIGluZnJhc3RydWN0dXJlIGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBjcmVhdGVkIHdpdGggdGhlIGRlZmF1bHQgc2V0dGluZ3NcbiAgICovXG4gIHJlYWRvbmx5IGluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbj86IElJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBkaXN0cmlidXRpb24gY29uZmlndXJhdGlvbiB1c2VkIGZvciBkaXN0cmlidXRpbmcgdGhlIGltYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBkaXN0cmlidXRpb25Db25maWd1cmF0aW9uPzogSURpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHdvcmtmbG93IGNvbmZpZ3VyYXRpb25zIHVzZWQgdG8gYnVpbGQgdGhlIGltYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEltYWdlIEJ1aWxkZXIgd2lsbCB1c2UgYSBkZWZhdWx0IHNldCBvZiB3b3JrZmxvd3MgZm9yIHRoZSBidWlsZCB0byBidWlsZCwgdGVzdCwgYW5kIGRpc3RyaWJ1dGUgdGhlXG4gICAqIGltYWdlXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd3M/OiBXb3JrZmxvd0NvbmZpZ3VyYXRpb25bXTtcblxuICAvKipcbiAgICogVGhlIGV4ZWN1dGlvbiByb2xlIHVzZWQgdG8gcGVyZm9ybSB3b3JrZmxvdyBhY3Rpb25zIHRvIGJ1aWxkIHRoZSBpbWFnZS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhlIEltYWdlIEJ1aWxkZXIgU2VydmljZSBMaW5rZWQgUm9sZSAoU0xSKSB3aWxsIGJlIGNyZWF0ZWQgYXV0b21hdGljYWxseSBhbmQgdXNlZCBhcyB0aGUgZXhlY3V0aW9uXG4gICAqIHJvbGUuIEhvd2V2ZXIsIHdoZW4gcHJvdmlkaW5nIGEgY3VzdG9tIHNldCBvZiBpbWFnZSB3b3JrZmxvd3MgZm9yIHRoZSBpbWFnZSwgYW4gZXhlY3V0aW9uIHJvbGUgd2lsbCBiZVxuICAgKiBnZW5lcmF0ZWQgd2l0aCB0aGUgbWluaW1hbCBwZXJtaXNzaW9ucyBuZWVkZWQgdG8gZXhlY3V0ZSB0aGUgd29ya2Zsb3dzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEltYWdlIEJ1aWxkZXIgd2lsbCB1c2UgdGhlIFNMUiBpZiBwb3NzaWJsZS4gT3RoZXJ3aXNlLCBhbiBleGVjdXRpb24gcm9sZSB3aWxsIGJlIGdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0aW9uUm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIGxvZyBncm91cCB0byB1c2UgZm9yIHRoZSBpbWFnZS4gQnkgZGVmYXVsdCwgYSBsb2cgZ3JvdXAgd2lsbCBiZSBjcmVhdGVkIHdpdGggdGhlIGZvcm1hdFxuICAgKiBgL2F3cy9pbWFnZWJ1aWxkZXIvPGltYWdlLW5hbWU+YFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbG9nIGdyb3VwIHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXA/OiBsb2dzLklMb2dHcm91cDtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgSW1hZ2UgQnVpbGRlciBrZWVwcyBhIHNuYXBzaG90IG9mIHRoZSB2dWxuZXJhYmlsaXR5IHNjYW5zIHRoYXQgQW1hem9uIEluc3BlY3RvciBydW5zIGFnYWluc3QgdGhlXG4gICAqIGJ1aWxkIGluc3RhbmNlIHdoZW4geW91IGNyZWF0ZSBhIG5ldyBpbWFnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlU2Nhbm5pbmdFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGNvbnRhaW5lciByZXBvc2l0b3J5IHRoYXQgQW1hem9uIEluc3BlY3RvciBzY2FucyB0byBpZGVudGlmeSBmaW5kaW5ncyBmb3IgeW91ciBjb250YWluZXIgaW1hZ2VzLiBJZiBhXG4gICAqIHJlcG9zaXRvcnkgaXMgbm90IHByb3ZpZGVkLCBJbWFnZSBCdWlsZGVyIGNyZWF0ZXMgYSByZXBvc2l0b3J5IG5hbWVkIGBpbWFnZS1idWlsZGVyLWltYWdlLXNjYW5uaW5nLXJlcG9zaXRvcnlgXG4gICAqIGZvciB2dWxuZXJhYmlsaXR5IHNjYW5uaW5nLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGlmIHNjYW5uaW5nIGlzIGVuYWJsZWQsIGEgcmVwb3NpdG9yeSB3aWxsIGJlIGNyZWF0ZWQgYnkgSW1hZ2UgQnVpbGRlciBpZiBvbmUgaXMgbm90IHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBpbWFnZVNjYW5uaW5nRWNyUmVwb3NpdG9yeT86IGVjci5JUmVwb3NpdG9yeTtcblxuICAvKipcbiAgICogVGhlIHRhZ3MgZm9yIEltYWdlIEJ1aWxkZXIgdG8gYXBwbHkgdG8gdGhlIG91dHB1dCBjb250YWluZXIgaW1hZ2UgdGhhdCBBbWF6b24gSW5zcGVjdG9yIHNjYW5zLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBpbWFnZVNjYW5uaW5nRWNyVGFncz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBJZiBlbmFibGVkLCBjb2xsZWN0cyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBpbWFnZSBiZWluZyBjcmVhdGVkLCBpbmNsdWRpbmcgdGhlIG9wZXJhdGluZyBzeXN0ZW0gKE9TKVxuICAgKiB2ZXJzaW9uIGFuZCBwYWNrYWdlIGxpc3QgZm9yIHRoZSBBTUkuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuaGFuY2VkSW1hZ2VNZXRhZGF0YUVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJ1biB0ZXN0cyBhZnRlciBidWlsZGluZyBhbiBpbWFnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VUZXN0c0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZXhlY3V0aW9uIHJvbGUgdG8gdXNlIGZvciBkZWxldGluZyB0aGUgaW1hZ2UgYXMgd2VsbCBhcyB0aGUgdW5kZXJseWluZyByZXNvdXJjZXMsIHN1Y2ggYXMgdGhlIEFNSXMsIHNuYXBzaG90cyxcbiAgICogYW5kIGNvbnRhaW5lcnMuIFRoaXMgcm9sZSBzaG91bGQgY29udGFpbiByZXNvdXJjZSBsaWZlY3ljbGUgcGVybWlzc2lvbnMgcmVxdWlyZWQgdG8gZGVsZXRlIHRoZSB1bmRlcmx5aW5nXG4gICAqIEFNSXMvY29udGFpbmVycy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBleGVjdXRpb24gcm9sZS4gT25seSB0aGUgSW1hZ2UgQnVpbGRlciBpbWFnZSB3aWxsIGJlIGRlbGV0ZWQuXG4gICAqL1xuICByZWFkb25seSBkZWxldGlvbkV4ZWN1dGlvblJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWdzIHRvIGFwcGx5IHRvIHRoZSBpbWFnZVxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhbiBFQzIgSW1hZ2UgQnVpbGRlciBpbWFnZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBpbWFnZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlcml2ZWQgZnJvbSB0aGUgaW1hZ2VOYW1lXG4gICAqL1xuICByZWFkb25seSBpbWFnZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGltYWdlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVyaXZlZCBmcm9tIHRoZSBpbWFnZUFyblxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgaW1hZ2VcbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIGltYWdlLCB4LngueFxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VWZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBhcmNoaXRlY3R1cmUgb2YgdGhlIGltYWdlXG4gKi9cbmV4cG9ydCBlbnVtIEltYWdlQXJjaGl0ZWN0dXJlIHtcbiAgLyoqXG4gICAqIDY0IGJpdCBhcmNoaXRlY3R1cmUgd2l0aCB0aGUgQVJNIGluc3RydWN0aW9uIHNldFxuICAgKi9cbiAgQVJNNjQgPSAnYXJtNjQnLFxuXG4gIC8qKlxuICAgKiA2NCBiaXQgYXJjaGl0ZWN0dXJlIHdpdGggeDg2IGluc3RydWN0aW9uIHNldFxuICAgKi9cbiAgWDg2XzY0ID0gJ3g4Nl82NCcsXG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgdGhlIGltYWdlXG4gKi9cbmV4cG9ydCBlbnVtIEltYWdlVHlwZSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIGltYWdlIHByb2R1Y2VkIGlzIGFuIEFNSVxuICAgKi9cbiAgQU1JID0gJ0FNSScsXG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgaW1hZ2UgcHJvZHVjZWQgaXMgYSBEb2NrZXIgaW1hZ2VcbiAgICovXG4gIERPQ0tFUiA9ICdET0NLRVInLFxufVxuXG4vKipcbiAqIEEgbmV3IG9yIGltcG9ydGVkIEltYWdlXG4gKi9cbmFic3RyYWN0IGNsYXNzIEltYWdlQmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElJbWFnZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBpbWFnZVxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgaW1hZ2VBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGltYWdlXG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSBpbWFnZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIGltYWdlXG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSBpbWFnZVZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnQgY3VzdG9tIGFjdGlvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsXG4gICAqIEBwYXJhbSBhY3Rpb25zIFRoZSBsaXN0IG9mIGFjdGlvbnNcbiAgICovXG4gIHB1YmxpYyBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMuaW1hZ2VBcm5dLFxuICAgICAgYWN0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgdGhlIGRlZmF1bHQgcGVybWlzc2lvbnMgZm9yIGJ1aWxkaW5nIGFuIGltYWdlIHRvIHRoZSBwcm92aWRlZCBleGVjdXRpb24gcm9sZS5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIGV4ZWN1dGlvbiByb2xlIHVzZWQgZm9yIHRoZSBpbWFnZSBidWlsZC5cbiAgICovXG4gIHB1YmxpYyBncmFudERlZmF1bHRFeGVjdXRpb25Sb2xlUGVybWlzc2lvbnMoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnRbXSB7XG4gICAgY29uc3QgcG9saWNpZXMgPSBkZWZhdWx0RXhlY3V0aW9uUm9sZVBvbGljeSh0aGlzKTtcbiAgICByZXR1cm4gcG9saWNpZXMubWFwKChwb2xpY3kpID0+XG4gICAgICBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgICBncmFudGVlOiBncmFudGVlLFxuICAgICAgICByZXNvdXJjZUFybnM6IHBvbGljeS5yZXNvdXJjZXMsXG4gICAgICAgIGFjdGlvbnM6IHBvbGljeS5hY3Rpb25zLFxuICAgICAgICBjb25kaXRpb25zOiBwb2xpY3kuY29uZGl0aW9ucyxcbiAgICAgICAgc2NvcGU6IHRoaXMsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRSZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAnaW1hZ2VidWlsZGVyOkdldEltYWdlJyk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIGltYWdlIHRvIGEgQmFzZUltYWdlLCB0byB1c2UgYXMgdGhlIHBhcmVudCBpbWFnZSBpbiBhbiBpbWFnZSByZWNpcGVcbiAgICovXG4gIHB1YmxpYyB0b0Jhc2VJbWFnZSgpOiBCYXNlSW1hZ2Uge1xuICAgIHJldHVybiBCYXNlSW1hZ2UuZnJvbUltYWdlKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBpbWFnZSB0byBhIENvbnRhaW5lckJhc2VJbWFnZSwgdG8gdXNlIGFzIHRoZSBwYXJlbnQgaW1hZ2UgaW4gYSBjb250YWluZXIgcmVjaXBlXG4gICAqL1xuICBwdWJsaWMgdG9Db250YWluZXJCYXNlSW1hZ2UoKTogQmFzZUNvbnRhaW5lckltYWdlIHtcbiAgICByZXR1cm4gQmFzZUNvbnRhaW5lckltYWdlLmZyb21JbWFnZSh0aGlzKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gRUMyIEltYWdlIEJ1aWxkZXIgSW1hZ2UuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW1hZ2VidWlsZGVyL2xhdGVzdC91c2VyZ3VpZGUvY3JlYXRlLWltYWdlcy5odG1sXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBJbWFnZSBleHRlbmRzIEltYWdlQmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWltYWdlYnVpbGRlci1hbHBoYS5JbWFnZSc7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBpbWFnZSBnaXZlbiBpdHMgQVJOXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbWFnZUFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBpbWFnZUFybjogc3RyaW5nKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tSW1hZ2VBdHRyaWJ1dGVzKHNjb3BlLCBpZCwgeyBpbWFnZUFybiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgaW1hZ2UgZ2l2ZW4gaXRzIG5hbWUuIFRoZSBwcm92aWRlZCBuYW1lIG11c3QgYmUgbm9ybWFsaXplZCBieSBjb252ZXJ0aW5nIGFsbCBhbHBoYWJldGljYWxcbiAgICogY2hhcmFjdGVycyB0byBsb3dlcmNhc2UsIGFuZCByZXBsYWNpbmcgYWxsIHNwYWNlcyBhbmQgdW5kZXJzY29yZXMgd2l0aCBoeXBoZW5zLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tSW1hZ2VOYW1lKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGltYWdlTmFtZTogc3RyaW5nKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tSW1hZ2VBdHRyaWJ1dGVzKHNjb3BlLCBpZCwgeyBpbWFnZU5hbWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGltYWdlIGJ5IHByb3ZpZGluZyBpdHMgYXR0cmlidXRlcy4gSWYgdGhlIGltYWdlIG5hbWUgaXMgcHJvdmlkZWQgYXMgYW4gYXR0cmlidXRlLCBpdCBtdXN0IGJlXG4gICAqIG5vcm1hbGl6ZWQgYnkgY29udmVydGluZyBhbGwgYWxwaGFiZXRpY2FsIGNoYXJhY3RlcnMgdG8gbG93ZXJjYXNlLCBhbmQgcmVwbGFjaW5nIGFsbCBzcGFjZXMgYW5kIHVuZGVyc2NvcmVzIHdpdGhcbiAgICogaHlwaGVucy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUltYWdlQXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogSW1hZ2VBdHRyaWJ1dGVzKTogSUltYWdlIHtcbiAgICBpZiAoIWF0dHJzLmltYWdlQXJuICYmICFhdHRycy5pbWFnZU5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdlaXRoZXIgaW1hZ2VBcm4gb3IgaW1hZ2VOYW1lIGlzIHJlcXVpcmVkJywgc2NvcGUpO1xuICAgIH1cblxuICAgIGNvbnN0IGltYWdlQXJuID1cbiAgICAgIGF0dHJzLmltYWdlQXJuID8/XG4gICAgICBjZGsuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICAgIHNlcnZpY2U6ICdpbWFnZWJ1aWxkZXInLFxuICAgICAgICByZXNvdXJjZTogJ2ltYWdlJyxcbiAgICAgICAgcmVzb3VyY2VOYW1lOiBgJHthdHRycy5pbWFnZU5hbWV9LyR7YXR0cnMuaW1hZ2VWZXJzaW9uID8/IExBVEVTVF9WRVJTSU9OfWAsXG4gICAgICB9KTtcblxuICAgIGNvbnN0IFtpbWFnZU5hbWUsIGltYWdlVmVyc2lvbl0gPSAoKCkgPT4ge1xuICAgICAgaWYgKGF0dHJzLmltYWdlTmFtZSkge1xuICAgICAgICByZXR1cm4gW2F0dHJzLmltYWdlTmFtZSwgYXR0cnMuaW1hZ2VWZXJzaW9uID8/IExBVEVTVF9WRVJTSU9OXTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaW1hZ2VOYW1lVmVyc2lvbiA9IGNkay5TdGFjay5vZihzY29wZSkuc3BsaXRBcm4oaW1hZ2VBcm4sIGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSkucmVzb3VyY2VOYW1lITtcblxuICAgICAgY29uc3QgaW1hZ2VOYW1lVmVyc2lvblNwbGl0ID0gY2RrLkZuLnNwbGl0KCcvJywgaW1hZ2VOYW1lVmVyc2lvbik7XG4gICAgICByZXR1cm4gW2Nkay5Gbi5zZWxlY3QoMCwgaW1hZ2VOYW1lVmVyc2lvblNwbGl0KSwgY2RrLkZuLnNlbGVjdCgxLCBpbWFnZU5hbWVWZXJzaW9uU3BsaXQpXTtcbiAgICB9KSgpO1xuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgSW1hZ2VCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBpbWFnZUFybiA9IGltYWdlQXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGltYWdlTmFtZSA9IGltYWdlTmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBpbWFnZVZlcnNpb24gPSBpbWFnZVZlcnNpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGFuIEltYWdlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0ltYWdlKHg6IGFueSk6IHggaXMgSW1hZ2Uge1xuICAgIHJldHVybiB4ICE9PSBudWxsICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiBJTUFHRV9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBpbWFnZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGltYWdlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBpbWFnZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGltYWdlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgaW1hZ2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbWFnZVZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFNSSBJRCBvZiB0aGUgRUMyIEFNSSwgb3IgVVJJIGZvciB0aGUgY29udGFpbmVyXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbWFnZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpbmZyYXN0cnVjdHVyZSBjb25maWd1cmF0aW9uIHVzZWQgZm9yIHRoZSBpbWFnZSBidWlsZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbjogSUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGV4ZWN1dGlvbiByb2xlIHVzZWQgZm9yIHRoZSBpbWFnZSBidWlsZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGV4ZWN1dGlvblJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogSW1hZ2VQcm9wcztcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEltYWdlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIElNQUdFX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIHRoaXMuaW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uID1cbiAgICAgIHByb3BzLmluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbiA/PyBuZXcgSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uKHRoaXMsICdJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24nKTtcblxuICAgIHRoaXMuZXhlY3V0aW9uUm9sZSA9IGdldEV4ZWN1dGlvblJvbGUoXG4gICAgICB0aGlzLFxuICAgICAgKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKSA9PiB0aGlzLmdyYW50RGVmYXVsdEV4ZWN1dGlvblJvbGVQZXJtaXNzaW9ucyhncmFudGVlKSxcbiAgICAgIHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIGltYWdlTG9nR3JvdXA6IHByb3BzLmxvZ0dyb3VwLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgY29uc3QgW2ltYWdlLCByZWNpcGVdID0gdGhpcy5jcmVhdGVJbWFnZUZyb21SZWNpcGUocHJvcHMpO1xuXG4gICAgdGhpcy5pbWFnZU5hbWUgPSB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZShpbWFnZS5hdHRyTmFtZSk7XG4gICAgdGhpcy5pbWFnZUFybiA9IGltYWdlLmF0dHJBcm47XG5cbiAgICBpZiAocmVjaXBlLl9pc0ltYWdlUmVjaXBlKCkpIHtcbiAgICAgIHRoaXMuaW1hZ2VJZCA9IGltYWdlLmF0dHJJbWFnZUlkO1xuICAgICAgdGhpcy5pbWFnZVZlcnNpb24gPSByZWNpcGUuaW1hZ2VSZWNpcGVWZXJzaW9uO1xuICAgIH0gZWxzZSBpZiAocmVjaXBlLl9pc0NvbnRhaW5lclJlY2lwZSgpKSB7XG4gICAgICB0aGlzLmltYWdlSWQgPSBpbWFnZS5hdHRySW1hZ2VVcmk7XG4gICAgICB0aGlzLmltYWdlVmVyc2lvbiA9IHJlY2lwZS5jb250YWluZXJSZWNpcGVWZXJzaW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcigncmVjaXBlIG11c3QgZWl0aGVyIGJlIGFuIGltYWdlIHJlY2lwZSBvciBjb250YWluZXIgcmVjaXBlJywgdGhpcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyB0aGUgZGVmYXVsdCBwZXJtaXNzaW9ucyBmb3IgYnVpbGRpbmcgYW4gaW1hZ2UgdG8gdGhlIHByb3ZpZGVkIGV4ZWN1dGlvbiByb2xlLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgZXhlY3V0aW9uIHJvbGUgdXNlZCBmb3IgdGhlIGltYWdlIGJ1aWxkLlxuICAgKi9cbiAgQE1ldGhvZE1ldGFkYXRhKClcbiAgcHVibGljIGdyYW50RGVmYXVsdEV4ZWN1dGlvblJvbGVQZXJtaXNzaW9ucyhncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudFtdIHtcbiAgICBjb25zdCBwb2xpY2llcyA9IGRlZmF1bHRFeGVjdXRpb25Sb2xlUG9saWN5KHRoaXMsIHRoaXMucHJvcHMpO1xuICAgIHJldHVybiBwb2xpY2llcy5tYXAoKHBvbGljeSkgPT5cbiAgICAgIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICAgIGdyYW50ZWU6IGdyYW50ZWUsXG4gICAgICAgIHJlc291cmNlQXJuczogcG9saWN5LnJlc291cmNlcyxcbiAgICAgICAgYWN0aW9uczogcG9saWN5LmFjdGlvbnMsXG4gICAgICAgIGNvbmRpdGlvbnM6IHBvbGljeS5jb25kaXRpb25zLFxuICAgICAgICBzY29wZTogdGhpcyxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENmbkltYWdlIHJlc291cmNlIGZyb20gdGhlIHJlY2lwZSBhbmQgcHJvcHMgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBQcm9wcyBpbnB1dCBmb3IgdGhlIGNvbnN0cnVjdFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVJbWFnZUZyb21SZWNpcGUocHJvcHM6IEltYWdlUHJvcHMpOiBbQ2ZuSW1hZ2UsIElSZWNpcGVCYXNlXSB7XG4gICAgY29uc3QgcmVjaXBlID0gcHJvcHMucmVjaXBlO1xuICAgIGlmIChJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24uaXNJbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24odGhpcy5pbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb24pKSB7XG4gICAgICB0aGlzLmluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbi5fYmluZCh7IGlzQ29udGFpbmVyQnVpbGQ6IHJlY2lwZS5faXNDb250YWluZXJSZWNpcGUoKSB9KTtcbiAgICB9XG5cbiAgICBpZiAocmVjaXBlLl9pc0ltYWdlUmVjaXBlKCkgJiYgcmVjaXBlLl9pc0NvbnRhaW5lclJlY2lwZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcigndGhlIHJlY2lwZSBjYW5ub3QgYmUgYm90aCBhbiBJSW1hZ2VSZWNpcGUgYW5kIGFuIElDb250YWluZXJSZWNpcGUnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAoIXJlY2lwZS5faXNJbWFnZVJlY2lwZSgpICYmICFyZWNpcGUuX2lzQ29udGFpbmVyUmVjaXBlKCkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCd0aGUgcmVjaXBlIG11c3QgZWl0aGVyIGJlIGFuIElJbWFnZVJlY2lwZSBvciBJQ29udGFpbmVyUmVjaXBlJywgdGhpcyk7XG4gICAgfVxuXG4gICAgY29uc3QgaW1hZ2UgPSBuZXcgQ2ZuSW1hZ2UodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgLi4uKHJlY2lwZS5faXNJbWFnZVJlY2lwZSgpICYmIHsgaW1hZ2VSZWNpcGVBcm46IHJlY2lwZS5pbWFnZVJlY2lwZUFybiB9KSxcbiAgICAgIC4uLihyZWNpcGUuX2lzQ29udGFpbmVyUmVjaXBlKCkgJiYgeyBjb250YWluZXJSZWNpcGVBcm46IHJlY2lwZS5jb250YWluZXJSZWNpcGVBcm4gfSksXG4gICAgICBpbmZyYXN0cnVjdHVyZUNvbmZpZ3VyYXRpb25Bcm46IHRoaXMuaW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uLmluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbkFybixcbiAgICAgIGRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25Bcm46IHByb3BzLmRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24/LmRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb25Bcm4sXG4gICAgICBleGVjdXRpb25Sb2xlOiB0aGlzLmV4ZWN1dGlvblJvbGU/LnJvbGVBcm4sXG4gICAgICBlbmhhbmNlZEltYWdlTWV0YWRhdGFFbmFibGVkOiBwcm9wcy5lbmhhbmNlZEltYWdlTWV0YWRhdGFFbmFibGVkLFxuICAgICAgbG9nZ2luZ0NvbmZpZ3VyYXRpb246IHRoaXMuYnVpbGRMb2dnaW5nQ29uZmlndXJhdGlvbihwcm9wcyksXG4gICAgICBpbWFnZVRlc3RzQ29uZmlndXJhdGlvbjogYnVpbGRJbWFnZVRlc3RzQ29uZmlndXJhdGlvbjxJbWFnZVByb3BzLCBDZm5JbWFnZS5JbWFnZVRlc3RzQ29uZmlndXJhdGlvblByb3BlcnR5PihcbiAgICAgICAgcHJvcHMsXG4gICAgICApLFxuICAgICAgaW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb246IGJ1aWxkSW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb248XG4gICAgICAgIEltYWdlUHJvcHMsXG4gICAgICAgIENmbkltYWdlLkltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uUHJvcGVydHlcbiAgICAgID4odGhpcywgcHJvcHMpLFxuICAgICAgd29ya2Zsb3dzOiBidWlsZFdvcmtmbG93czxJbWFnZVByb3BzLCBDZm5JbWFnZS5Xb3JrZmxvd0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eVtdPihwcm9wcyksXG4gICAgICBkZWxldGlvblNldHRpbmdzOiB0aGlzLmJ1aWxkRGVsZXRpb25TZXR0aW5ncyhwcm9wcyksXG4gICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIFtpbWFnZSwgcmVjaXBlXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIGxvZ2dpbmdDb25maWd1cmF0aW9uIHByb3BlcnR5IGludG8gdGhlIGBMb2dnaW5nQ29uZmlndXJhdGlvbmAgdHlwZSBpbiB0aGUgQ2xvdWRGb3JtYXRpb24gTDFcbiAgICogZGVmaW5pdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIFByb3BzIGlucHV0IGZvciB0aGUgY29uc3RydWN0XG4gICAqL1xuICBwcml2YXRlIGJ1aWxkTG9nZ2luZ0NvbmZpZ3VyYXRpb24ocHJvcHM6IEltYWdlUHJvcHMpOiBDZm5JbWFnZS5JbWFnZUxvZ2dpbmdDb25maWd1cmF0aW9uUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGlmICghcHJvcHMubG9nR3JvdXApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgbG9nR3JvdXBOYW1lOiBwcm9wcy5sb2dHcm91cC5sb2dHcm91cE5hbWUgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIGRlbGV0aW9uU2V0dGluZ3MgcHJvcGVydHkgaW50byB0aGUgYERlbGV0aW9uU2V0dGluZ3NgIHR5cGUgaW4gdGhlIENsb3VkRm9ybWF0aW9uIEwxIGRlZmluaXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBQcm9wcyBpbnB1dCBmb3IgdGhlIGNvbnN0cnVjdFxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZERlbGV0aW9uU2V0dGluZ3MocHJvcHM6IEltYWdlUHJvcHMpOiBDZm5JbWFnZS5EZWxldGlvblNldHRpbmdzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGlmIChwcm9wcy5kZWxldGlvbkV4ZWN1dGlvblJvbGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4geyBleGVjdXRpb25Sb2xlOiBwcm9wcy5kZWxldGlvbkV4ZWN1dGlvblJvbGUucm9sZUFybiB9O1xuICB9XG59XG4iXX0=
package/lib/index.d.ts CHANGED
@@ -1,11 +1,13 @@
1
1
  export * from './component';
2
2
  export * from './container-recipe';
3
3
  export * from './distribution-configuration';
4
+ export * from './image';
4
5
  export * from './image-pipeline';
5
6
  export * from './image-recipe';
6
7
  export * from './infrastructure-configuration';
7
8
  export * from './lifecycle-policy';
8
9
  export * from './workflow';
10
+ export * from './amazon-managed-image';
9
11
  export * from './base-image';
10
12
  export * from './os-version';
11
13
  export * from './recipe-base';
package/lib/index.js CHANGED
@@ -18,12 +18,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  __exportStar(require("./component"), exports);
19
19
  __exportStar(require("./container-recipe"), exports);
20
20
  __exportStar(require("./distribution-configuration"), exports);
21
+ __exportStar(require("./image"), exports);
21
22
  __exportStar(require("./image-pipeline"), exports);
22
23
  __exportStar(require("./image-recipe"), exports);
23
24
  __exportStar(require("./infrastructure-configuration"), exports);
24
25
  __exportStar(require("./lifecycle-policy"), exports);
25
26
  __exportStar(require("./workflow"), exports);
27
+ __exportStar(require("./amazon-managed-image"), exports);
26
28
  __exportStar(require("./base-image"), exports);
27
29
  __exportStar(require("./os-version"), exports);
28
30
  __exportStar(require("./recipe-base"), exports);
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsOENBQThDOzs7Ozs7Ozs7Ozs7Ozs7O0FBRTlDLDhDQUE0QjtBQUM1QixxREFBbUM7QUFDbkMsK0RBQTZDO0FBQzdDLG1EQUFpQztBQUNqQyxpREFBK0I7QUFDL0IsaUVBQStDO0FBQy9DLHFEQUFtQztBQUNuQyw2Q0FBMkI7QUFFM0IsK0NBQTZCO0FBQzdCLCtDQUE2QjtBQUM3QixnREFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBV1M6OkltYWdlQnVpbGRlciBDbG91ZEZvcm1hdGlvbiBSZXNvdXJjZXM6XG5cbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29udGFpbmVyLXJlY2lwZSc7XG5leHBvcnQgKiBmcm9tICcuL2Rpc3RyaWJ1dGlvbi1jb25maWd1cmF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2UtcGlwZWxpbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS1yZWNpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9pbmZyYXN0cnVjdHVyZS1jb25maWd1cmF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGlmZWN5Y2xlLXBvbGljeSc7XG5leHBvcnQgKiBmcm9tICcuL3dvcmtmbG93JztcblxuZXhwb3J0ICogZnJvbSAnLi9iYXNlLWltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vb3MtdmVyc2lvbic7XG5leHBvcnQgKiBmcm9tICcuL3JlY2lwZS1iYXNlJztcbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsOENBQThDOzs7Ozs7Ozs7Ozs7Ozs7O0FBRTlDLDhDQUE0QjtBQUM1QixxREFBbUM7QUFDbkMsK0RBQTZDO0FBQzdDLDBDQUF3QjtBQUN4QixtREFBaUM7QUFDakMsaURBQStCO0FBQy9CLGlFQUErQztBQUMvQyxxREFBbUM7QUFDbkMsNkNBQTJCO0FBRTNCLHlEQUF1QztBQUN2QywrQ0FBNkI7QUFDN0IsK0NBQTZCO0FBQzdCLGdEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFXUzo6SW1hZ2VCdWlsZGVyIENsb3VkRm9ybWF0aW9uIFJlc291cmNlczpcblxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250YWluZXItcmVjaXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlzdHJpYnV0aW9uLWNvbmZpZ3VyYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZSc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlLXBpcGVsaW5lJztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2UtcmVjaXBlJztcbmV4cG9ydCAqIGZyb20gJy4vaW5mcmFzdHJ1Y3R1cmUtY29uZmlndXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpZmVjeWNsZS1wb2xpY3knO1xuZXhwb3J0ICogZnJvbSAnLi93b3JrZmxvdyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYW1hem9uLW1hbmFnZWQtaW1hZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlLWltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vb3MtdmVyc2lvbic7XG5leHBvcnQgKiBmcm9tICcuL3JlY2lwZS1iYXNlJztcbiJdfQ==
@@ -234,17 +234,6 @@ export interface InfrastructureConfigurationProps {
234
234
  [key: string]: string;
235
235
  };
236
236
  }
237
- /**
238
- * Context information passed when an Infrastructure Configuration is being consumed
239
- *
240
- * @internal
241
- */
242
- export interface InfrastructureConfigurationBindOptions {
243
- /**
244
- * Indicates whether the infrastructure configuration is being consumed inside of a container build
245
- */
246
- readonly isContainerBuild?: boolean;
247
- }
248
237
  /**
249
238
  * A new or imported Infrastructure Configuration
250
239
  */
@@ -315,9 +304,5 @@ export declare class InfrastructureConfiguration extends InfrastructureConfigura
315
304
  private readonly autoGeneratedInstanceProfileRole?;
316
305
  constructor(scope: Construct, id: string, props?: InfrastructureConfigurationProps);
317
306
  private validateInfrastructureConfigurationName;
318
- /**
319
- * @internal
320
- */
321
- _bind(options: InfrastructureConfigurationBindOptions): void;
322
307
  }
323
308
  export {};
@@ -125,7 +125,7 @@ let InfrastructureConfiguration = (() => {
125
125
  InfrastructureConfiguration = _classThis = _classDescriptor.value;
126
126
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
127
127
  }
128
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.InfrastructureConfiguration", version: "2.230.0-alpha.0" };
128
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.InfrastructureConfiguration", version: "2.232.0-alpha.0" };
129
129
  /** Uniquely identifies this class. */
130
130
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-imagebuilder-alpha.InfrastructureConfiguration';
131
131
  /**
@@ -367,8 +367,8 @@ export declare class LifecyclePolicy extends LifecyclePolicyBase {
367
367
  /**
368
368
  * Generates the action property into the `Action` type in the CloudFormation L1 definition.
369
369
  *
370
- * @param props The props passed as input to the construct
371
- * @param detail The lifecycle policy detail where the exclusion rules are
370
+ * @param resourceType The resource type of the lifecycle policy
371
+ * @param action The action being taken in the lifecycle policy rule
372
372
  * @private
373
373
  */
374
374
  private buildAction;
@@ -391,7 +391,7 @@ export declare class LifecyclePolicy extends LifecyclePolicyBase {
391
391
  /**
392
392
  * Validates a policy detail filter
393
393
  *
394
- * @param detail The lifecycle policy detail to validate filters for
394
+ * @param filter The lifecycle policy resource filter applied in the rule
395
395
  * @private
396
396
  */
397
397
  private validatePolicyDetailFilter;