awscdk-resources-mongodbatlas
Version:
MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources
82 lines • 12.7 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AtlasBasicPrivateEndpoint = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
// Copyright 2023 MongoDB Inc
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
const ec2 = require("aws-cdk-lib/aws-ec2");
const constructs_1 = require("constructs");
const index_1 = require("../../index");
const atlas_basic_1 = require("../atlas-basic");
/** @type {*} */
const privateEndpointDefaults = {
region: "us-east-1",
vpcEndpointType: "Interface",
cloudProvider: "AWS",
};
/**
* @description
* @export
* @class AtlasBasicPrivateEndpoint
* @extends {Construct}
*/
class AtlasBasicPrivateEndpoint extends constructs_1.Construct {
/**
* Creates an instance of AtlasBasicPrivateEndpoint.
* @param {Construct} scope
* @param {string} id
* @param {AtlasBasicPrivateEndpointProps} props
* @memberof AtlasBasicPrivateEndpoint
*/
constructor(scope, id, props) {
super(scope, id);
validate(props);
// Validation for atlas basic would be delegated to the library
this.atlasBasic = new atlas_basic_1.AtlasBasic(this, "atlas-basic-".concat(id), {
profile: props.profile,
...props.atlasBasicProps,
});
const region = props.region || privateEndpointDefaults.region;
this.privateEndpointService = new index_1.CfnPrivateEndpointService(this, "atlas-private-endpoint-service-".concat(id), {
profile: props.profile,
projectId: this.atlasBasic.mProject.attrId,
region: region.toUpperCase().replace(/-/g, "_"),
cloudProvider: index_1.CfnPrivateEndpointServicePropsCloudProvider.AWS,
});
this.awsPrivateEndpoint = new ec2.CfnVPCEndpoint(this, "aws-private-endpoint-service-".concat(id), {
serviceName: this.privateEndpointService.attrEndpointServiceName,
subnetIds: [props.privateEndpointProps.awsSubnetId],
vpcEndpointType: privateEndpointDefaults.vpcEndpointType,
vpcId: props.privateEndpointProps.awsVpcId,
});
this.awsPrivateEndpoint.addDependency(this.privateEndpointService);
this.privateEndpointAws = new index_1.CfnPrivateEndpointAws(this, "atlas-private-endpoint-".concat(id), {
profile: props.profile,
projectId: this.atlasBasic.mProject.attrId,
endpointServiceId: this.privateEndpointService.attrId,
id: this.awsPrivateEndpoint.ref,
});
this.privateEndpointAws.addDependency(this.awsPrivateEndpoint);
}
}
exports.AtlasBasicPrivateEndpoint = AtlasBasicPrivateEndpoint;
_a = JSII_RTTI_SYMBOL_1;
AtlasBasicPrivateEndpoint[_a] = { fqn: "awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint", version: "3.13.1" };
const validate = (props) => {
if (!props.atlasBasicProps.projectProps.orgId) {
throw Error("Validation error: orgId is not defined");
}
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbDMtcmVzb3VyY2VzL2F0bGFzLWJhc2ljLXByaXZhdGUtZW5kcG9pbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxtRUFBbUU7QUFDbkUsMENBQTBDO0FBQzFDLEVBQUU7QUFDRixrREFBa0Q7QUFDbEQsRUFBRTtBQUNGLHNFQUFzRTtBQUN0RSxvRUFBb0U7QUFDcEUsMkVBQTJFO0FBQzNFLHNFQUFzRTtBQUN0RSxpQ0FBaUM7QUFFakMsMkNBQTJDO0FBQzNDLDJDQUF1QztBQUN2Qyx1Q0FJcUI7QUFDckIsZ0RBQTRDO0FBRzVDLGdCQUFnQjtBQUNoQixNQUFNLHVCQUF1QixHQUFHO0lBQzlCLE1BQU0sRUFBRSxXQUFXO0lBQ25CLGVBQWUsRUFBRSxXQUFXO0lBQzVCLGFBQWEsRUFBRSxLQUFLO0NBQ3JCLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILE1BQWEseUJBQTBCLFNBQVEsc0JBQVM7SUFNdEQ7Ozs7OztPQU1HO0lBQ0gsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBcUM7UUFFckMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEIsK0RBQStEO1FBQy9ELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSx3QkFBVSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ2hFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixHQUFHLEtBQUssQ0FBQyxlQUFlO1NBQ3pCLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksdUJBQXVCLENBQUMsTUFBTSxDQUFDO1FBRTlELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLGlDQUF5QixDQUN6RCxJQUFJLEVBQ0osaUNBQWlDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUM1QztZQUNFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTTtZQUMxQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO1lBQy9DLGFBQWEsRUFBRSxtREFBMkMsQ0FBQyxHQUFHO1NBQy9ELENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQzlDLElBQUksRUFDSiwrQkFBK0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQzFDO1lBQ0UsV0FBVyxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUI7WUFDaEUsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQztZQUNuRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsZUFBZTtZQUN4RCxLQUFLLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFFBQVE7U0FDM0MsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSw2QkFBcUIsQ0FDakQsSUFBSSxFQUNKLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFDcEM7WUFDRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU07WUFDMUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU07WUFDckQsRUFBRSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHO1NBQ2hDLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDakUsQ0FBQzs7QUFoRUgsOERBaUVDOzs7QUFFRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQXFDLEVBQUUsRUFBRTtJQUN6RCxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUMsTUFBTSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjMgTW9uZ29EQiBJbmNcbi8vXG4vLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4vL1xuLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbi8vXG4vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4vLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4vLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbi8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbi8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG5pbXBvcnQgKiBhcyBlYzIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBDZm5Qcml2YXRlRW5kcG9pbnRBd3MsXG4gIENmblByaXZhdGVFbmRwb2ludFNlcnZpY2UsXG4gIENmblByaXZhdGVFbmRwb2ludFNlcnZpY2VQcm9wc0Nsb3VkUHJvdmlkZXIsXG59IGZyb20gXCIuLi8uLi9pbmRleFwiO1xuaW1wb3J0IHsgQXRsYXNCYXNpYyB9IGZyb20gXCIuLi9hdGxhcy1iYXNpY1wiO1xuaW1wb3J0IHsgQXRsYXNCYXNpY1Byb3BzIH0gZnJvbSBcIi4uL2NvbW1vbi9wcm9wc1wiO1xuXG4vKiogQHR5cGUgeyp9ICovXG5jb25zdCBwcml2YXRlRW5kcG9pbnREZWZhdWx0cyA9IHtcbiAgcmVnaW9uOiBcInVzLWVhc3QtMVwiLFxuICB2cGNFbmRwb2ludFR5cGU6IFwiSW50ZXJmYWNlXCIsXG4gIGNsb3VkUHJvdmlkZXI6IFwiQVdTXCIsXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogQGV4cG9ydFxuICogQGNsYXNzIEF0bGFzQmFzaWNQcml2YXRlRW5kcG9pbnRcbiAqIEBleHRlbmRzIHtDb25zdHJ1Y3R9XG4gKi9cbmV4cG9ydCBjbGFzcyBBdGxhc0Jhc2ljUHJpdmF0ZUVuZHBvaW50IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgYXRsYXNCYXNpYzogQXRsYXNCYXNpYztcbiAgcmVhZG9ubHkgcHJpdmF0ZUVuZHBvaW50U2VydmljZTogQ2ZuUHJpdmF0ZUVuZHBvaW50U2VydmljZTtcbiAgcmVhZG9ubHkgYXdzUHJpdmF0ZUVuZHBvaW50OiBlYzIuQ2ZuVlBDRW5kcG9pbnQ7XG4gIHJlYWRvbmx5IHByaXZhdGVFbmRwb2ludEF3czogQ2ZuUHJpdmF0ZUVuZHBvaW50QXdzO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEF0bGFzQmFzaWNQcml2YXRlRW5kcG9pbnQuXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0fSBzY29wZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWRcbiAgICogQHBhcmFtIHtBdGxhc0Jhc2ljUHJpdmF0ZUVuZHBvaW50UHJvcHN9IHByb3BzXG4gICAqIEBtZW1iZXJvZiBBdGxhc0Jhc2ljUHJpdmF0ZUVuZHBvaW50XG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEF0bGFzQmFzaWNQcml2YXRlRW5kcG9pbnRQcm9wc1xuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHZhbGlkYXRlKHByb3BzKTtcbiAgICAvLyBWYWxpZGF0aW9uIGZvciBhdGxhcyBiYXNpYyB3b3VsZCBiZSBkZWxlZ2F0ZWQgdG8gdGhlIGxpYnJhcnlcbiAgICB0aGlzLmF0bGFzQmFzaWMgPSBuZXcgQXRsYXNCYXNpYyh0aGlzLCBcImF0bGFzLWJhc2ljLVwiLmNvbmNhdChpZCksIHtcbiAgICAgIHByb2ZpbGU6IHByb3BzLnByb2ZpbGUsXG4gICAgICAuLi5wcm9wcy5hdGxhc0Jhc2ljUHJvcHMsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZWdpb24gPSBwcm9wcy5yZWdpb24gfHwgcHJpdmF0ZUVuZHBvaW50RGVmYXVsdHMucmVnaW9uO1xuXG4gICAgdGhpcy5wcml2YXRlRW5kcG9pbnRTZXJ2aWNlID0gbmV3IENmblByaXZhdGVFbmRwb2ludFNlcnZpY2UoXG4gICAgICB0aGlzLFxuICAgICAgXCJhdGxhcy1wcml2YXRlLWVuZHBvaW50LXNlcnZpY2UtXCIuY29uY2F0KGlkKSxcbiAgICAgIHtcbiAgICAgICAgcHJvZmlsZTogcHJvcHMucHJvZmlsZSxcbiAgICAgICAgcHJvamVjdElkOiB0aGlzLmF0bGFzQmFzaWMubVByb2plY3QuYXR0cklkLFxuICAgICAgICByZWdpb246IHJlZ2lvbi50b1VwcGVyQ2FzZSgpLnJlcGxhY2UoLy0vZywgXCJfXCIpLFxuICAgICAgICBjbG91ZFByb3ZpZGVyOiBDZm5Qcml2YXRlRW5kcG9pbnRTZXJ2aWNlUHJvcHNDbG91ZFByb3ZpZGVyLkFXUyxcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5hd3NQcml2YXRlRW5kcG9pbnQgPSBuZXcgZWMyLkNmblZQQ0VuZHBvaW50KFxuICAgICAgdGhpcyxcbiAgICAgIFwiYXdzLXByaXZhdGUtZW5kcG9pbnQtc2VydmljZS1cIi5jb25jYXQoaWQpLFxuICAgICAge1xuICAgICAgICBzZXJ2aWNlTmFtZTogdGhpcy5wcml2YXRlRW5kcG9pbnRTZXJ2aWNlLmF0dHJFbmRwb2ludFNlcnZpY2VOYW1lLFxuICAgICAgICBzdWJuZXRJZHM6IFtwcm9wcy5wcml2YXRlRW5kcG9pbnRQcm9wcy5hd3NTdWJuZXRJZF0sXG4gICAgICAgIHZwY0VuZHBvaW50VHlwZTogcHJpdmF0ZUVuZHBvaW50RGVmYXVsdHMudnBjRW5kcG9pbnRUeXBlLFxuICAgICAgICB2cGNJZDogcHJvcHMucHJpdmF0ZUVuZHBvaW50UHJvcHMuYXdzVnBjSWQsXG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuYXdzUHJpdmF0ZUVuZHBvaW50LmFkZERlcGVuZGVuY3kodGhpcy5wcml2YXRlRW5kcG9pbnRTZXJ2aWNlKTtcblxuICAgIHRoaXMucHJpdmF0ZUVuZHBvaW50QXdzID0gbmV3IENmblByaXZhdGVFbmRwb2ludEF3cyhcbiAgICAgIHRoaXMsXG4gICAgICBcImF0bGFzLXByaXZhdGUtZW5kcG9pbnQtXCIuY29uY2F0KGlkKSxcbiAgICAgIHtcbiAgICAgICAgcHJvZmlsZTogcHJvcHMucHJvZmlsZSxcbiAgICAgICAgcHJvamVjdElkOiB0aGlzLmF0bGFzQmFzaWMubVByb2plY3QuYXR0cklkLFxuICAgICAgICBlbmRwb2ludFNlcnZpY2VJZDogdGhpcy5wcml2YXRlRW5kcG9pbnRTZXJ2aWNlLmF0dHJJZCxcbiAgICAgICAgaWQ6IHRoaXMuYXdzUHJpdmF0ZUVuZHBvaW50LnJlZixcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5wcml2YXRlRW5kcG9pbnRBd3MuYWRkRGVwZW5kZW5jeSh0aGlzLmF3c1ByaXZhdGVFbmRwb2ludCk7XG4gIH1cbn1cblxuY29uc3QgdmFsaWRhdGUgPSAocHJvcHM6IEF0bGFzQmFzaWNQcml2YXRlRW5kcG9pbnRQcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLmF0bGFzQmFzaWNQcm9wcy5wcm9qZWN0UHJvcHMub3JnSWQpIHtcbiAgICB0aHJvdyBFcnJvcihcIlZhbGlkYXRpb24gZXJyb3I6IG9yZ0lkIGlzIG5vdCBkZWZpbmVkXCIpO1xuICB9XG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogQGV4cG9ydFxuICogQGludGVyZmFjZSBBdGxhc0Jhc2ljUHJpdmF0ZUVuZHBvaW50UHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdGxhc0Jhc2ljUHJpdmF0ZUVuZHBvaW50UHJvcHMge1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQVdTIFJlZ2lvblxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCB1cy1lYXN0LTFcbiAgICogQG1lbWJlcm9mIEF0bGFzUHJpdmF0ZUVuZHBvaW50UHJvcHNcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBAdHlwZSB7QXRsYXNCYXNpY1Byb3BzfVxuICAgKiBAbWVtYmVyb2YgQXRsYXNQcml2YXRlRW5kcG9pbnRQcm9wc1xuICAgKi9cbiAgcmVhZG9ubHkgYXRsYXNCYXNpY1Byb3BzOiBBdGxhc0Jhc2ljUHJvcHM7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQHR5cGUge0NmblByaXZhdGVFbmRwb2ludFByb3BzfVxuICAgKiBAbWVtYmVyb2YgQXRsYXNQcml2YXRlRW5kcG9pbnRQcm9wc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUVuZHBvaW50UHJvcHM6IFByaXZhdGVFbmRwb2ludFByb3BzO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogQGV4cG9ydFxuICogQGludGVyZmFjZSBQcml2YXRlRW5kcG9pbnRQcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFByaXZhdGVFbmRwb2ludFByb3BzIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBV1MgVlBDIElEIChsaWtlOiB2cGMteHh4eHh4eHh4eHh4eHh4eCkgKFVzZWQgRm9yIENyZWF0aW5nIHRoZSBBV1MgVlBDIEVuZHBvaW50KVxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgUHJpdmF0ZUVuZHBvaW50UHJvcHNcbiAgICovXG4gIHJlYWRvbmx5IGF3c1ZwY0lkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQVdTIFZQQyBTdWJuZXQgSUQgKGxpa2U6IHN1Ym5ldC14eHh4eHh4eHh4eHh4eHh4eCkgKFVzZWQgRm9yIENyZWF0aW5nIHRoZSBBV1MgVlBDIEVuZHBvaW50KVxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgUHJpdmF0ZUVuZHBvaW50UHJvcHNcbiAgICovXG4gIHJlYWRvbmx5IGF3c1N1Ym5ldElkOiBzdHJpbmc7XG59XG4iXX0=