UNPKG

projen

Version:

CDK for software projects

96 lines 13.2 kB
"use strict"; var _a, _b; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConstructLibraryAws = exports.AwsCdkConstructLibrary = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const semver = require("semver"); const auto_discover_1 = require("./auto-discover"); const awscdk_deps_js_1 = require("./awscdk-deps-js"); const integ_runner_1 = require("./integ-runner"); const cdk_1 = require("../cdk"); const dependencies_1 = require("../dependencies"); /** * AWS CDK construct library project * * A multi-language (jsii) construct library which vends constructs designed to * use within the AWS CDK with a friendly workflow and automatic publishing to * the construct catalog. * * @pjid awscdk-construct */ class AwsCdkConstructLibrary extends cdk_1.ConstructLibrary { constructor(options) { const cdkMajorVersion = semver.parse(options.cdkVersion)?.major; super({ peerDependencyOptions: cdkMajorVersion === 1 ? { pinnedDevDependency: false, } : undefined, workflowNodeVersion: options.minNodeVersion ?? "lts/*", ...options, }); this.cdkDeps = new awscdk_deps_js_1.AwsCdkDepsJs(this, { // since this we are a library, dependencies should be added a peers dependencyType: dependencies_1.DependencyType.PEER, ...options, }); new auto_discover_1.AutoDiscover(this, { srcdir: this.srcdir, testdir: this.testdir, lambdaOptions: options.lambdaOptions, tsconfigPath: this.tsconfigDev.fileName, cdkDeps: this.cdkDeps, lambdaAutoDiscover: options.lambdaAutoDiscover ?? true, edgeLambdaAutoDiscover: options.edgeLambdaAutoDiscover ?? true, singletonLambdaAutoDiscover: options.singletonLambdaAutoDiscover ?? true, lambdaExtensionAutoDiscover: options.lambdaExtensionAutoDiscover ?? true, integrationTestAutoDiscover: options.integrationTestAutoDiscover ?? true, }); if (options.experimentalIntegRunner) { new integ_runner_1.IntegRunner(this); } } /** * The target CDK version for this library. */ get cdkVersion() { return this.cdkDeps.cdkVersion; } /** * @deprecated use `cdkVersion` */ get version() { return this.cdkVersion; } /** * Adds dependencies to AWS CDK modules. * * Since this is a library project, dependencies will be added as peer dependencies. * * @param deps names of cdk modules (e.g. `@aws-cdk/aws-lambda`). * @deprecated Not supported in v2. For v1, use `project.cdkDeps.addV1Dependencies()` */ addCdkDependencies(...deps) { return this.cdkDeps.addV1Dependencies(...deps); } /** * Adds AWS CDK modules as dev dependencies. * * @param deps names of cdk modules (e.g. `@aws-cdk/aws-lambda`). * @deprecated Not supported in v2. For v1, use `project.cdkDeps.addV1DevDependencies()` */ addCdkTestDependencies(...deps) { return this.cdkDeps.addV1DevDependencies(...deps); } } exports.AwsCdkConstructLibrary = AwsCdkConstructLibrary; _a = JSII_RTTI_SYMBOL_1; AwsCdkConstructLibrary[_a] = { fqn: "projen.awscdk.AwsCdkConstructLibrary", version: "0.99.51" }; /** @deprecated use `AwsCdkConstructLibrary` */ class ConstructLibraryAws extends AwsCdkConstructLibrary { } exports.ConstructLibraryAws = ConstructLibraryAws; _b = JSII_RTTI_SYMBOL_1; ConstructLibraryAws[_b] = { fqn: "projen.awscdk.ConstructLibraryAws", version: "0.99.51" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2RrLWNvbnN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXdzY2RrLWNvbnN0cnVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlDQUFpQztBQUNqQyxtREFBK0M7QUFFL0MscURBQWdEO0FBQ2hELGlEQUE2QztBQUc3QyxnQ0FBMEM7QUFDMUMsa0RBQWlEO0FBb0VqRDs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsc0JBQXVCLFNBQVEsc0JBQWdCO0lBRzFELFlBQVksT0FBc0M7UUFDaEQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxDQUFDO1FBRWhFLEtBQUssQ0FBQztZQUNKLHFCQUFxQixFQUNuQixlQUFlLEtBQUssQ0FBQztnQkFDbkIsQ0FBQyxDQUFDO29CQUNFLG1CQUFtQixFQUFFLEtBQUs7aUJBQzNCO2dCQUNILENBQUMsQ0FBQyxTQUFTO1lBQ2YsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLGNBQWMsSUFBSSxPQUFPO1lBQ3RELEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSw2QkFBWSxDQUFDLElBQUksRUFBRTtZQUNwQyxvRUFBb0U7WUFDcEUsY0FBYyxFQUFFLDZCQUFjLENBQUMsSUFBSTtZQUNuQyxHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLDRCQUFZLENBQUMsSUFBSSxFQUFFO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhO1lBQ3BDLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVE7WUFDdkMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxJQUFJO1lBQ3RELHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxzQkFBc0IsSUFBSSxJQUFJO1lBQzlELDJCQUEyQixFQUFFLE9BQU8sQ0FBQywyQkFBMkIsSUFBSSxJQUFJO1lBQ3hFLDJCQUEyQixFQUFFLE9BQU8sQ0FBQywyQkFBMkIsSUFBSSxJQUFJO1lBQ3hFLDJCQUEyQixFQUFFLE9BQU8sQ0FBQywyQkFBMkIsSUFBSSxJQUFJO1NBQ3pFLENBQUMsQ0FBQztRQUVILElBQUksT0FBTyxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDcEMsSUFBSSwwQkFBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksa0JBQWtCLENBQUMsR0FBRyxJQUFjO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLHNCQUFzQixDQUFDLEdBQUcsSUFBYztRQUM3QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDOztBQTNFSCx3REE0RUM7OztBQUtELCtDQUErQztBQUMvQyxNQUFhLG1CQUFvQixTQUFRLHNCQUFzQjs7QUFBL0Qsa0RBQWtFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gXCJzZW12ZXJcIjtcbmltcG9ydCB7IEF1dG9EaXNjb3ZlciB9IGZyb20gXCIuL2F1dG8tZGlzY292ZXJcIjtcbmltcG9ydCB0eXBlIHsgQXdzQ2RrRGVwcywgQXdzQ2RrRGVwc0NvbW1vbk9wdGlvbnMgfSBmcm9tIFwiLi9hd3NjZGstZGVwc1wiO1xuaW1wb3J0IHsgQXdzQ2RrRGVwc0pzIH0gZnJvbSBcIi4vYXdzY2RrLWRlcHMtanNcIjtcbmltcG9ydCB7IEludGVnUnVubmVyIH0gZnJvbSBcIi4vaW50ZWctcnVubmVyXCI7XG5pbXBvcnQgdHlwZSB7IExhbWJkYUZ1bmN0aW9uQ29tbW9uT3B0aW9ucyB9IGZyb20gXCIuL2xhbWJkYS1mdW5jdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gXCIuLi9jZGtcIjtcbmltcG9ydCB7IENvbnN0cnVjdExpYnJhcnkgfSBmcm9tIFwiLi4vY2RrXCI7XG5pbXBvcnQgeyBEZXBlbmRlbmN5VHlwZSB9IGZyb20gXCIuLi9kZXBlbmRlbmNpZXNcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgQXdzQ2RrQ29uc3RydWN0TGlicmFyeWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXdzQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnNcbiAgZXh0ZW5kcyBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucywgQXdzQ2RrRGVwc0NvbW1vbk9wdGlvbnMge1xuICAvKipcbiAgICogQXV0b21hdGljYWxseSBhZGRzIGFuIGBhd3NfbGFtYmRhLkZ1bmN0aW9uYCBmb3IgZWFjaCBgLmxhbWJkYS50c2AgaGFuZGxlclxuICAgKiBpbiB5b3VyIHNvdXJjZSB0cmVlLiBJZiB0aGlzIGlzIGRpc2FibGVkLCB5b3UgZWl0aGVyIG5lZWQgdG8gZXhwbGljaXRseVxuICAgKiBjYWxsIGBhd3NfbGFtYmRhLkZ1bmN0aW9uLmF1dG9EaXNjb3ZlcigpYCBvciBkZWZpbmUgYSBgbmV3XG4gICAqIGF3c19sYW1iZGEuRnVuY3Rpb24oKWAgZm9yIGVhY2ggaGFuZGxlci5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhQXV0b0Rpc2NvdmVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSBhZGRzIGFuIGBjbG91ZGZyb250LmV4cGVyaW1lbnRhbC5FZGdlRnVuY3Rpb25gIGZvciBlYWNoXG4gICAqIGAuZWRnZS1sYW1iZGEudHNgIGhhbmRsZXIgaW4geW91ciBzb3VyY2UgdHJlZS4gSWYgdGhpcyBpcyBkaXNhYmxlZCwgeW91IGNhblxuICAgKiBtYW51YWxseSBhZGQgYW4gYGF3c2Nkay5BdXRvRGlzY292ZXJgIGNvbXBvbmVudCB0byB5b3VyIHByb2plY3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVkZ2VMYW1iZGFBdXRvRGlzY292ZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGFkZHMgYW4gYGF3c2Nkay5TaW5nbGV0b25GdW5jdGlvbmAgZm9yIGVhY2hcbiAgICogYC5zaW5nbGV0b24tbGFtYmRhLnRzYCBoYW5kbGVyIGluIHlvdXIgc291cmNlIHRyZWUuIElmIHRoaXMgaXMgZGlzYWJsZWQsIHlvdSBjYW5cbiAgICogbWFudWFsbHkgYWRkIGFuIGBhd3NjZGsuQXV0b0Rpc2NvdmVyYCBjb21wb25lbnQgdG8geW91ciBwcm9qZWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBzaW5nbGV0b25MYW1iZGFBdXRvRGlzY292ZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGFkZHMgYW4gYGF3c2Nkay5MYW1iZGFFeHRlbnNpb25gIGZvciBlYWNoIGAubGFtYmRhLWV4dGVuc2lvbi50c2BcbiAgICogZW50cnlwb2ludCBpbiB5b3VyIHNvdXJjZSB0cmVlLiBJZiB0aGlzIGlzIGRpc2FibGVkLCB5b3UgY2FuIG1hbnVhbGx5IGFkZCBhblxuICAgKiBgYXdzY2RrLkF1dG9EaXNjb3ZlcmAgY29tcG9uZW50IHRvIHlvdXIgcHJvamVjdFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFFeHRlbnNpb25BdXRvRGlzY292ZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IGRpc2NvdmVycyBhbmQgY3JlYXRlcyBpbnRlZ3JhdGlvbiB0ZXN0cyBmb3IgZWFjaCBgLmludGVnLnRzYFxuICAgKiBmaWxlIHVuZGVyIHlvdXIgdGVzdCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGludGVncmF0aW9uVGVzdEF1dG9EaXNjb3Zlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBleHBlcmltZW50YWwgc3VwcG9ydCBmb3IgdGhlIEFXUyBDREsgaW50ZWctcnVubmVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBleHBlcmltZW50YWxJbnRlZ1J1bm5lcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbW1vbiBvcHRpb25zIGZvciBhbGwgQVdTIExhbWJkYSBmdW5jdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBvcHRpb25zXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFPcHRpb25zPzogTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zO1xufVxuXG4vKipcbiAqIEFXUyBDREsgY29uc3RydWN0IGxpYnJhcnkgcHJvamVjdFxuICpcbiAqIEEgbXVsdGktbGFuZ3VhZ2UgKGpzaWkpIGNvbnN0cnVjdCBsaWJyYXJ5IHdoaWNoIHZlbmRzIGNvbnN0cnVjdHMgZGVzaWduZWQgdG9cbiAqIHVzZSB3aXRoaW4gdGhlIEFXUyBDREsgd2l0aCBhIGZyaWVuZGx5IHdvcmtmbG93IGFuZCBhdXRvbWF0aWMgcHVibGlzaGluZyB0b1xuICogdGhlIGNvbnN0cnVjdCBjYXRhbG9nLlxuICpcbiAqIEBwamlkIGF3c2Nkay1jb25zdHJ1Y3RcbiAqL1xuZXhwb3J0IGNsYXNzIEF3c0Nka0NvbnN0cnVjdExpYnJhcnkgZXh0ZW5kcyBDb25zdHJ1Y3RMaWJyYXJ5IHtcbiAgcHVibGljIHJlYWRvbmx5IGNka0RlcHM6IEF3c0Nka0RlcHM7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQXdzQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMpIHtcbiAgICBjb25zdCBjZGtNYWpvclZlcnNpb24gPSBzZW12ZXIucGFyc2Uob3B0aW9ucy5jZGtWZXJzaW9uKT8ubWFqb3I7XG5cbiAgICBzdXBlcih7XG4gICAgICBwZWVyRGVwZW5kZW5jeU9wdGlvbnM6XG4gICAgICAgIGNka01ham9yVmVyc2lvbiA9PT0gMVxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBwaW5uZWREZXZEZXBlbmRlbmN5OiBmYWxzZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHdvcmtmbG93Tm9kZVZlcnNpb246IG9wdGlvbnMubWluTm9kZVZlcnNpb24gPz8gXCJsdHMvKlwiLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIHRoaXMuY2RrRGVwcyA9IG5ldyBBd3NDZGtEZXBzSnModGhpcywge1xuICAgICAgLy8gc2luY2UgdGhpcyB3ZSBhcmUgYSBsaWJyYXJ5LCBkZXBlbmRlbmNpZXMgc2hvdWxkIGJlIGFkZGVkIGEgcGVlcnNcbiAgICAgIGRlcGVuZGVuY3lUeXBlOiBEZXBlbmRlbmN5VHlwZS5QRUVSLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIG5ldyBBdXRvRGlzY292ZXIodGhpcywge1xuICAgICAgc3JjZGlyOiB0aGlzLnNyY2RpcixcbiAgICAgIHRlc3RkaXI6IHRoaXMudGVzdGRpcixcbiAgICAgIGxhbWJkYU9wdGlvbnM6IG9wdGlvbnMubGFtYmRhT3B0aW9ucyxcbiAgICAgIHRzY29uZmlnUGF0aDogdGhpcy50c2NvbmZpZ0Rldi5maWxlTmFtZSxcbiAgICAgIGNka0RlcHM6IHRoaXMuY2RrRGVwcyxcbiAgICAgIGxhbWJkYUF1dG9EaXNjb3Zlcjogb3B0aW9ucy5sYW1iZGFBdXRvRGlzY292ZXIgPz8gdHJ1ZSxcbiAgICAgIGVkZ2VMYW1iZGFBdXRvRGlzY292ZXI6IG9wdGlvbnMuZWRnZUxhbWJkYUF1dG9EaXNjb3ZlciA/PyB0cnVlLFxuICAgICAgc2luZ2xldG9uTGFtYmRhQXV0b0Rpc2NvdmVyOiBvcHRpb25zLnNpbmdsZXRvbkxhbWJkYUF1dG9EaXNjb3ZlciA/PyB0cnVlLFxuICAgICAgbGFtYmRhRXh0ZW5zaW9uQXV0b0Rpc2NvdmVyOiBvcHRpb25zLmxhbWJkYUV4dGVuc2lvbkF1dG9EaXNjb3ZlciA/PyB0cnVlLFxuICAgICAgaW50ZWdyYXRpb25UZXN0QXV0b0Rpc2NvdmVyOiBvcHRpb25zLmludGVncmF0aW9uVGVzdEF1dG9EaXNjb3ZlciA/PyB0cnVlLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMuZXhwZXJpbWVudGFsSW50ZWdSdW5uZXIpIHtcbiAgICAgIG5ldyBJbnRlZ1J1bm5lcih0aGlzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRhcmdldCBDREsgdmVyc2lvbiBmb3IgdGhpcyBsaWJyYXJ5LlxuICAgKi9cbiAgcHVibGljIGdldCBjZGtWZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmNka0RlcHMuY2RrVmVyc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGNka1ZlcnNpb25gXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZlcnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY2RrVmVyc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGRlcGVuZGVuY2llcyB0byBBV1MgQ0RLIG1vZHVsZXMuXG4gICAqXG4gICAqIFNpbmNlIHRoaXMgaXMgYSBsaWJyYXJ5IHByb2plY3QsIGRlcGVuZGVuY2llcyB3aWxsIGJlIGFkZGVkIGFzIHBlZXIgZGVwZW5kZW5jaWVzLlxuICAgKlxuICAgKiBAcGFyYW0gZGVwcyBuYW1lcyBvZiBjZGsgbW9kdWxlcyAoZS5nLiBgQGF3cy1jZGsvYXdzLWxhbWJkYWApLlxuICAgKiBAZGVwcmVjYXRlZCBOb3Qgc3VwcG9ydGVkIGluIHYyLiBGb3IgdjEsIHVzZSBgcHJvamVjdC5jZGtEZXBzLmFkZFYxRGVwZW5kZW5jaWVzKClgXG4gICAqL1xuICBwdWJsaWMgYWRkQ2RrRGVwZW5kZW5jaWVzKC4uLmRlcHM6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIHRoaXMuY2RrRGVwcy5hZGRWMURlcGVuZGVuY2llcyguLi5kZXBzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIEFXUyBDREsgbW9kdWxlcyBhcyBkZXYgZGVwZW5kZW5jaWVzLlxuICAgKlxuICAgKiBAcGFyYW0gZGVwcyBuYW1lcyBvZiBjZGsgbW9kdWxlcyAoZS5nLiBgQGF3cy1jZGsvYXdzLWxhbWJkYWApLlxuICAgKiBAZGVwcmVjYXRlZCBOb3Qgc3VwcG9ydGVkIGluIHYyLiBGb3IgdjEsIHVzZSBgcHJvamVjdC5jZGtEZXBzLmFkZFYxRGV2RGVwZW5kZW5jaWVzKClgXG4gICAqL1xuICBwdWJsaWMgYWRkQ2RrVGVzdERlcGVuZGVuY2llcyguLi5kZXBzOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiB0aGlzLmNka0RlcHMuYWRkVjFEZXZEZXBlbmRlbmNpZXMoLi4uZGVwcyk7XG4gIH1cbn1cblxuLyoqIEBkZXByZWNhdGVkIHVzZSBgQXdzQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnNgICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cnVjdExpYnJhcnlBd3NPcHRpb25zIGV4dGVuZHMgQXdzQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMge31cblxuLyoqIEBkZXByZWNhdGVkIHVzZSBgQXdzQ2RrQ29uc3RydWN0TGlicmFyeWAgKi9cbmV4cG9ydCBjbGFzcyBDb25zdHJ1Y3RMaWJyYXJ5QXdzIGV4dGVuZHMgQXdzQ2RrQ29uc3RydWN0TGlicmFyeSB7fVxuIl19