@aws-cdk/aws-kinesisanalytics-flink-alpha 2.27.0-alpha.0 → 2.29.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/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.27.0",
11
+ "aws-cdk-lib": "^2.29.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -3011,7 +3011,7 @@
3011
3011
  "stability": "experimental"
3012
3012
  },
3013
3013
  "homepage": "https://github.com/aws/aws-cdk",
3014
- "jsiiVersion": "1.58.0 (build f8ba112)",
3014
+ "jsiiVersion": "1.60.1 (build 2799dc8)",
3015
3015
  "keywords": [
3016
3016
  "aws",
3017
3017
  "cdk",
@@ -3034,7 +3034,7 @@
3034
3034
  },
3035
3035
  "name": "@aws-cdk/aws-kinesisanalytics-flink-alpha",
3036
3036
  "readme": {
3037
- "markdown": "# Kinesis Analytics Flink\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis package provides constructs for creating Kinesis Analytics Flink\napplications. To learn more about using using managed Flink applications, see\nthe [AWS developer\nguide](https://docs.aws.amazon.com/kinesisanalytics/latest/java/).\n\n## Creating Flink Applications\n\nTo create a new Flink application, use the `Application` construct:\n\n```ts lit=test/integ.application.lit.ts\n///! show\nimport * as path from 'path';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();\n\n```\n\nThe `code` property can use `fromAsset` as shown above to reference a local jar\nfile in s3 or `fromBucket` to reference a file in s3.\n\n```ts lit=test/integ.application-code-from-bucket.lit.ts\nimport * as path from 'path';\nimport * as assets from 'aws-cdk-lib/aws-s3-assets';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppCodeFromBucketTest');\n\nconst asset = new assets.Asset(stack, 'CodeAsset', {\n path: path.join(__dirname, 'code-asset'),\n});\nconst bucket = asset.bucket;\nconst fileKey = asset.s3ObjectKey;\n\n///! show\nnew flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromBucket(bucket, fileKey),\n runtime: flink.Runtime.FLINK_1_11,\n});\n///! hide\n\napp.synth();\n\n```\n\nThe `propertyGroups` property provides a way of passing arbitrary runtime\nproperties to your Flink application. You can use the\naws-kinesisanalytics-runtime library to [retrieve these\nproperties](https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-properties.html#how-properties-access).\n\n```ts\ndeclare const bucket: s3.Bucket;\nconst flinkApp = new flink.Application(this, 'Application', {\n propertyGroups: {\n FlinkApplicationProperties: {\n inputStreamName: 'my-input-kinesis-stream',\n outputStreamName: 'my-output-kinesis-stream',\n },\n },\n // ...\n runtime: flink.Runtime.FLINK_1_13,\n code: flink.ApplicationCode.fromBucket(bucket, 'my-app.jar'),\n});\n```\n\nFlink applications also have specific configuration for passing parameters\nwhen the Flink job starts. These include parameters for checkpointing,\nsnapshotting, monitoring, and parallelism.\n\n```ts\ndeclare const bucket: s3.Bucket;\nconst flinkApp = new flink.Application(this, 'Application', {\n code: flink.ApplicationCode.fromBucket(bucket, 'my-app.jar'),\n runtime: flink.Runtime.FLINK_1_13,\n checkpointingEnabled: true, // default is true\n checkpointInterval: Duration.seconds(30), // default is 1 minute\n minPauseBetweenCheckpoints: Duration.seconds(10), // default is 5 seconds\n logLevel: flink.LogLevel.ERROR, // default is INFO\n metricsLevel: flink.MetricsLevel.PARALLELISM, // default is APPLICATION\n autoScalingEnabled: false, // default is true\n parallelism: 32, // default is 1\n parallelismPerKpu: 2, // default is 1\n snapshotsEnabled: false, // default is true\n logGroup: new logs.LogGroup(this, 'LogGroup'), // by default, a new LogGroup will be created\n});\n```\n"
3037
+ "markdown": "# Kinesis Analytics Flink\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis package provides constructs for creating Kinesis Analytics Flink\napplications. To learn more about using using managed Flink applications, see\nthe [AWS developer\nguide](https://docs.aws.amazon.com/kinesisanalytics/latest/java/).\n\n## Creating Flink Applications\n\nTo create a new Flink application, use the `Application` construct:\n\n```ts lit=test/integ.application.lit.ts\n///! show\nimport * as path from 'path';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();\n\n```\n\nThe `code` property can use `fromAsset` as shown above to reference a local jar\nfile in s3 or `fromBucket` to reference a file in s3.\n\n```ts lit=test/integ.application-code-from-bucket.lit.ts\nimport * as path from 'path';\nimport * as assets from 'aws-cdk-lib/aws-s3-assets';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppCodeFromBucketTest');\n\nconst asset = new assets.Asset(stack, 'CodeAsset', {\n path: path.join(__dirname, 'code-asset'),\n});\nconst bucket = asset.bucket;\nconst fileKey = asset.s3ObjectKey;\n\n///! show\nnew flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromBucket(bucket, fileKey),\n runtime: flink.Runtime.FLINK_1_11,\n});\n///! hide\n\napp.synth();\n\n```\n\nThe `propertyGroups` property provides a way of passing arbitrary runtime\nproperties to your Flink application. You can use the\naws-kinesisanalytics-runtime library to [retrieve these\nproperties](https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-properties.html#how-properties-access).\n\n```ts\ndeclare const bucket: s3.Bucket;\nconst flinkApp = new flink.Application(this, 'Application', {\n propertyGroups: {\n FlinkApplicationProperties: {\n inputStreamName: 'my-input-kinesis-stream',\n outputStreamName: 'my-output-kinesis-stream',\n },\n },\n // ...\n runtime: flink.Runtime.FLINK_1_13,\n code: flink.ApplicationCode.fromBucket(bucket, 'my-app.jar'),\n});\n```\n\nFlink applications also have specific configuration for passing parameters\nwhen the Flink job starts. These include parameters for checkpointing,\nsnapshotting, monitoring, and parallelism.\n\n```ts\ndeclare const bucket: s3.Bucket;\nconst flinkApp = new flink.Application(this, 'Application', {\n code: flink.ApplicationCode.fromBucket(bucket, 'my-app.jar'),\n runtime: flink.Runtime.FLINK_1_13,\n checkpointingEnabled: true, // default is true\n checkpointInterval: Duration.seconds(30), // default is 1 minute\n minPauseBetweenCheckpoints: Duration.seconds(10), // default is 5 seconds\n logLevel: flink.LogLevel.ERROR, // default is INFO\n metricsLevel: flink.MetricsLevel.PARALLELISM, // default is APPLICATION\n autoScalingEnabled: false, // default is true\n parallelism: 32, // default is 1\n parallelismPerKpu: 2, // default is 1\n snapshotsEnabled: false, // default is true\n logGroup: new logs.LogGroup(this, 'LogGroup'), // by default, a new LogGroup will be created\n});\n```\n"
3038
3038
  },
3039
3039
  "repository": {
3040
3040
  "directory": "packages/individual-packages/aws-kinesisanalytics-flink",
@@ -3080,7 +3080,7 @@
3080
3080
  "exampleMetadata": "lit=test/integ.application.lit.ts ! show infused",
3081
3081
  "resource": "AWS::KinesisAnalyticsV2::Application"
3082
3082
  },
3083
- "example": "import * as path from 'path';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
3083
+ "example": "import * as path from 'path';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
3084
3084
  "stability": "experimental",
3085
3085
  "summary": "The L2 construct for Flink Kinesis Data Applications."
3086
3086
  },
@@ -4038,7 +4038,7 @@
4038
4038
  "custom": {
4039
4039
  "exampleMetadata": "lit=test/integ.application.lit.ts ! show infused"
4040
4040
  },
4041
- "example": "import * as path from 'path';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
4041
+ "example": "import * as path from 'path';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
4042
4042
  "stability": "experimental",
4043
4043
  "summary": "Code configuration providing the location to a Flink application JAR file."
4044
4044
  },
@@ -4229,7 +4229,7 @@
4229
4229
  "custom": {
4230
4230
  "exampleMetadata": "lit=test/integ.application.lit.ts ! show infused"
4231
4231
  },
4232
- "example": "import * as path from 'path';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
4232
+ "example": "import * as path from 'path';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
4233
4233
  "stability": "experimental",
4234
4234
  "summary": "Props for creating an Application construct."
4235
4235
  },
@@ -5497,7 +5497,7 @@
5497
5497
  "custom": {
5498
5498
  "exampleMetadata": "lit=test/integ.application.lit.ts ! show infused"
5499
5499
  },
5500
- "example": "import * as path from 'path';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
5500
+ "example": "import * as path from 'path';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
5501
5501
  "stability": "experimental",
5502
5502
  "summary": "Available Flink runtimes for Kinesis Analytics."
5503
5503
  },
@@ -5623,6 +5623,6 @@
5623
5623
  "symbolId": "lib/types:Runtime"
5624
5624
  }
5625
5625
  },
5626
- "version": "2.27.0-alpha.0",
5626
+ "version": "2.29.0-alpha.0",
5627
5627
  "fingerprint": "**********"
5628
5628
  }
package/.jsii.tabl.json CHANGED
@@ -1,27 +1,27 @@
1
1
  {
2
2
  "version": "2",
3
- "toolVersion": "1.58.0",
3
+ "toolVersion": "1.60.1",
4
4
  "snippets": {
5
- "9a83f66cbf84472b059f9283cb21ed0820f418f3e22bfb64fb9a058bb150a807": {
5
+ "e34de55e9b475aa63dfdac01d52fc44a7aa6a1b57af865c3b3b0d9f7f00524bd": {
6
6
  "translations": {
7
7
  "python": {
8
- "source": "import path as path\nimport aws_cdk as core\nimport aws_cdk.aws_kinesisanalytics_flink_alpha as flink\nimport aws_cdk.aws_cloudwatch as cloudwatch\n\napp = core.App()\nstack = core.Stack(app, \"FlinkAppTest\")\n\nflink_app = flink.Application(stack, \"App\",\n code=flink.ApplicationCode.from_asset(path.join(__dirname, \"code-asset\")),\n runtime=flink.Runtime.FLINK_1_11\n)\n\ncloudwatch.Alarm(stack, \"Alarm\",\n metric=flink_app.metric_full_restarts(),\n evaluation_periods=1,\n threshold=3\n)\n\napp.synth()",
8
+ "source": "import path as path\nimport aws_cdk.aws_cloudwatch as cloudwatch\nimport aws_cdk as core\nimport aws_cdk.aws_kinesisanalytics_flink_alpha as flink\n\napp = core.App()\nstack = core.Stack(app, \"FlinkAppTest\")\n\nflink_app = flink.Application(stack, \"App\",\n code=flink.ApplicationCode.from_asset(path.join(__dirname, \"code-asset\")),\n runtime=flink.Runtime.FLINK_1_11\n)\n\ncloudwatch.Alarm(stack, \"Alarm\",\n metric=flink_app.metric_full_restarts(),\n evaluation_periods=1,\n threshold=3\n)\n\napp.synth()",
9
9
  "version": "2"
10
10
  },
11
11
  "csharp": {
12
- "source": "using Path;\nusing Amazon.CDK;\nusing Amazon.CDK.AWS.Kinesisanalytics.Flink.Alpha;\nusing Amazon.CDK.AWS.CloudWatch;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = new Application(stack, \"App\", new ApplicationProps {\n Code = ApplicationCode.FromAsset(Join(__dirname, \"code-asset\")),\n Runtime = Runtime.FLINK_1_11\n});\n\nnew Alarm(stack, \"Alarm\", new AlarmProps {\n Metric = flinkApp.MetricFullRestarts(),\n EvaluationPeriods = 1,\n Threshold = 3\n});\n\napp.Synth();",
12
+ "source": "using Path;\nusing Amazon.CDK.AWS.CloudWatch;\nusing Amazon.CDK;\nusing Amazon.CDK.AWS.Kinesisanalytics.Flink.Alpha;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = new Application(stack, \"App\", new ApplicationProps {\n Code = ApplicationCode.FromAsset(Join(__dirname, \"code-asset\")),\n Runtime = Runtime.FLINK_1_11\n});\n\nnew Alarm(stack, \"Alarm\", new AlarmProps {\n Metric = flinkApp.MetricFullRestarts(),\n EvaluationPeriods = 1,\n Threshold = 3\n});\n\napp.Synth();",
13
13
  "version": "1"
14
14
  },
15
15
  "java": {
16
- "source": "import path.*;\nimport software.amazon.awscdk.*;\nimport software.amazon.awscdk.services.kinesisanalytics.flink.alpha.*;\nimport software.amazon.awscdk.services.cloudwatch.*;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = Application.Builder.create(stack, \"App\")\n .code(ApplicationCode.fromAsset(join(__dirname, \"code-asset\")))\n .runtime(Runtime.FLINK_1_11)\n .build();\n\nAlarm.Builder.create(stack, \"Alarm\")\n .metric(flinkApp.metricFullRestarts())\n .evaluationPeriods(1)\n .threshold(3)\n .build();\n\napp.synth();",
16
+ "source": "import path.*;\nimport software.amazon.awscdk.services.cloudwatch.*;\nimport software.amazon.awscdk.*;\nimport software.amazon.awscdk.services.kinesisanalytics.flink.alpha.*;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = Application.Builder.create(stack, \"App\")\n .code(ApplicationCode.fromAsset(join(__dirname, \"code-asset\")))\n .runtime(Runtime.FLINK_1_11)\n .build();\n\nAlarm.Builder.create(stack, \"Alarm\")\n .metric(flinkApp.metricFullRestarts())\n .evaluationPeriods(1)\n .threshold(3)\n .build();\n\napp.synth();",
17
17
  "version": "1"
18
18
  },
19
19
  "go": {
20
- "source": "import path \"github.com/aws-samples/dummy/path\"\nimport core \"github.com/aws/aws-cdk-go/awscdk\"\nimport flink \"github.com/aws/aws-cdk-go/awscdkkinesisanalyticsflinkalpha\"\nimport cloudwatch \"github.com/aws/aws-cdk-go/awscdk\"\n\napp := core.NewApp()\nstack := core.NewStack(app, jsii.String(\"FlinkAppTest\"))\n\nflinkApp := flink.NewApplication(stack, jsii.String(\"App\"), &applicationProps{\n\tcode: flink.applicationCode.fromAsset(path.join(__dirname, jsii.String(\"code-asset\"))),\n\truntime: flink.runtime_FLINK_1_11(),\n})\n\ncloudwatch.NewAlarm(stack, jsii.String(\"Alarm\"), &alarmProps{\n\tmetric: flinkApp.metricFullRestarts(),\n\tevaluationPeriods: jsii.Number(1),\n\tthreshold: jsii.Number(3),\n})\n\napp.synth()",
20
+ "source": "import path \"github.com/aws-samples/dummy/path\"\nimport cloudwatch \"github.com/aws/aws-cdk-go/awscdk\"\nimport core \"github.com/aws/aws-cdk-go/awscdk\"\nimport flink \"github.com/aws/aws-cdk-go/awscdkkinesisanalyticsflinkalpha\"\n\napp := core.NewApp()\nstack := core.NewStack(app, jsii.String(\"FlinkAppTest\"))\n\nflinkApp := flink.NewApplication(stack, jsii.String(\"App\"), &applicationProps{\n\tcode: flink.applicationCode.fromAsset(path.join(__dirname, jsii.String(\"code-asset\"))),\n\truntime: flink.runtime_FLINK_1_11(),\n})\n\ncloudwatch.NewAlarm(stack, jsii.String(\"Alarm\"), &alarmProps{\n\tmetric: flinkApp.metricFullRestarts(),\n\tevaluationPeriods: jsii.Number(1),\n\tthreshold: jsii.Number(3),\n})\n\napp.synth()",
21
21
  "version": "1"
22
22
  },
23
23
  "$": {
24
- "source": "import * as path from 'path';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
24
+ "source": "import * as path from 'path';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
25
25
  "version": "0"
26
26
  }
27
27
  },
@@ -48,9 +48,10 @@
48
48
  "aws-cdk-lib.Stage#synth",
49
49
  "aws-cdk-lib.aws_cloudwatch.Alarm",
50
50
  "aws-cdk-lib.aws_cloudwatch.AlarmProps",
51
- "aws-cdk-lib.aws_cloudwatch.IMetric"
51
+ "aws-cdk-lib.aws_cloudwatch.IMetric",
52
+ "constructs.Construct"
52
53
  ],
53
- "fullSource": "///! show\nimport * as path from 'path';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();\n",
54
+ "fullSource": "///! show\nimport * as path from 'path';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();\n",
54
55
  "syntaxKindCounter": {
55
56
  "8": 2,
56
57
  "10": 8,
@@ -69,7 +70,7 @@
69
70
  "281": 5,
70
71
  "290": 1
71
72
  },
72
- "fqnsFingerprint": "ee19101f50093b02fcea715c58ade1c93990f9783285355a14aba382913162d9"
73
+ "fqnsFingerprint": "895da9bb208702b7e95dfaf39afc06a5b658f4efc48d8b6d2375383efc6ce32f"
73
74
  },
74
75
  "5f07703f347c0152a5b08697fae3d12084359084156d88a0ad7c5ea5248beae6": {
75
76
  "translations": {
@@ -119,7 +120,8 @@
119
120
  "aws-cdk-lib.aws_s3_assets.Asset",
120
121
  "aws-cdk-lib.aws_s3_assets.Asset#bucket",
121
122
  "aws-cdk-lib.aws_s3_assets.Asset#s3ObjectKey",
122
- "aws-cdk-lib.aws_s3_assets.AssetProps"
123
+ "aws-cdk-lib.aws_s3_assets.AssetProps",
124
+ "constructs.Construct"
123
125
  ],
124
126
  "fullSource": "import * as path from 'path';\nimport * as assets from 'aws-cdk-lib/aws-s3-assets';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppCodeFromBucketTest');\n\nconst asset = new assets.Asset(stack, 'CodeAsset', {\n path: path.join(__dirname, 'code-asset'),\n});\nconst bucket = asset.bucket;\nconst fileKey = asset.s3ObjectKey;\n\n///! show\nnew flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromBucket(bucket, fileKey),\n runtime: flink.Runtime.FLINK_1_11,\n});\n///! hide\n\napp.synth();\n",
125
127
  "syntaxKindCounter": {
@@ -139,7 +141,7 @@
139
141
  "281": 3,
140
142
  "290": 1
141
143
  },
142
- "fqnsFingerprint": "5a7c2653a4bc68add4160f71dc76de94a60fca966016287b542684cee4d5ea28"
144
+ "fqnsFingerprint": "882a3d5e10a007aea752e611f44b201cd8738b754cfa00313785e75bc3e9c641"
143
145
  },
144
146
  "bf19da6d0c3c17ef8c8bb9b4dff2184be744c50282bcb81d96d93597fb7c6d68": {
145
147
  "translations": {
@@ -183,7 +185,8 @@
183
185
  "@aws-cdk/aws-kinesisanalytics-flink-alpha.PropertyGroups",
184
186
  "@aws-cdk/aws-kinesisanalytics-flink-alpha.Runtime",
185
187
  "@aws-cdk/aws-kinesisanalytics-flink-alpha.Runtime#FLINK_1_13",
186
- "aws-cdk-lib.aws_s3.IBucket"
188
+ "aws-cdk-lib.aws_s3.IBucket",
189
+ "constructs.Construct"
187
190
  ],
188
191
  "fullSource": "// Hoisted imports begin after !show marker below\n/// !show\ndeclare const bucket: s3.Bucket;\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport { Duration, Stack } from 'aws-cdk-lib'; \nimport * as flink from '@aws-cdk/aws-kinesisanalytics-flink-alpha';\nimport * as logs from 'aws-cdk-lib/aws-logs';\nimport * as s3 from 'aws-cdk-lib/aws-s3';\n\nclass Fixture extends Stack { \n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\nconst flinkApp = new flink.Application(this, 'Application', {\n propertyGroups: {\n FlinkApplicationProperties: {\n inputStreamName: 'my-input-kinesis-stream',\n outputStreamName: 'my-output-kinesis-stream',\n },\n },\n // ...\n runtime: flink.Runtime.FLINK_1_13,\n code: flink.ApplicationCode.fromBucket(bucket, 'my-app.jar'),\n});\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}",
189
192
  "syntaxKindCounter": {
@@ -203,7 +206,7 @@
203
206
  "281": 6,
204
207
  "290": 1
205
208
  },
206
- "fqnsFingerprint": "1714ca413abd507faf534495227457504b541da72874bc92f0df584f2ce5ad6b"
209
+ "fqnsFingerprint": "d37ab9775659c1c2b3599be0111b202a834d2a2776b2bfb4f46d6d0b7dc0a8ab"
207
210
  },
208
211
  "89eccab115fe1f1739ae6ec49d75f867b155e31391f5356ee827dff3d8772f59": {
209
212
  "translations": {
@@ -254,7 +257,8 @@
254
257
  "aws-cdk-lib.Duration#seconds",
255
258
  "aws-cdk-lib.aws_logs.ILogGroup",
256
259
  "aws-cdk-lib.aws_logs.LogGroup",
257
- "aws-cdk-lib.aws_s3.IBucket"
260
+ "aws-cdk-lib.aws_s3.IBucket",
261
+ "constructs.Construct"
258
262
  ],
259
263
  "fullSource": "// Hoisted imports begin after !show marker below\n/// !show\ndeclare const bucket: s3.Bucket;\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport { Duration, Stack } from 'aws-cdk-lib'; \nimport * as flink from '@aws-cdk/aws-kinesisanalytics-flink-alpha';\nimport * as logs from 'aws-cdk-lib/aws-logs';\nimport * as s3 from 'aws-cdk-lib/aws-s3';\n\nclass Fixture extends Stack { \n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\nconst flinkApp = new flink.Application(this, 'Application', {\n code: flink.ApplicationCode.fromBucket(bucket, 'my-app.jar'),\n runtime: flink.Runtime.FLINK_1_13,\n checkpointingEnabled: true, // default is true\n checkpointInterval: Duration.seconds(30), // default is 1 minute\n minPauseBetweenCheckpoints: Duration.seconds(10), // default is 5 seconds\n logLevel: flink.LogLevel.ERROR, // default is INFO\n metricsLevel: flink.MetricsLevel.PARALLELISM, // default is APPLICATION\n autoScalingEnabled: false, // default is true\n parallelism: 32, // default is 1\n parallelismPerKpu: 2, // default is 1\n snapshotsEnabled: false, // default is true\n logGroup: new logs.LogGroup(this, 'LogGroup'), // by default, a new LogGroup will be created\n});\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}",
260
264
  "syntaxKindCounter": {
@@ -277,28 +281,28 @@
277
281
  "281": 12,
278
282
  "290": 1
279
283
  },
280
- "fqnsFingerprint": "8044588f1e2a9e4f2c71f95b5288f5ce2f6e92a63496fa616d2e4f114f09cc91"
284
+ "fqnsFingerprint": "46ef535d2880926d08a63c126be7a0030ee0582d2eef994a480c31a6834683eb"
281
285
  },
282
- "1f695bb437a6b0dcbbd5ec89b0235d02f1434fd5c6e52c2a003278fbf17fd5fc": {
286
+ "359117e2d3fef48b4cb44c2b9ca02eab93a2eb64d8812d5faf33b53509d7bec3": {
283
287
  "translations": {
284
288
  "python": {
285
- "source": "import path as path\nimport aws_cdk as core\nimport aws_cdk.aws_kinesisanalytics_flink_alpha as flink\nimport aws_cdk.aws_cloudwatch as cloudwatch\n\napp = core.App()\nstack = core.Stack(app, \"FlinkAppTest\")\n\nflink_app = flink.Application(stack, \"App\",\n code=flink.ApplicationCode.from_asset(path.join(__dirname, \"code-asset\")),\n runtime=flink.Runtime.FLINK_1_11\n)\n\ncloudwatch.Alarm(stack, \"Alarm\",\n metric=flink_app.metric_full_restarts(),\n evaluation_periods=1,\n threshold=3\n)\n\napp.synth()",
289
+ "source": "import path as path\nimport aws_cdk.aws_cloudwatch as cloudwatch\nimport aws_cdk as core\nimport aws_cdk.aws_kinesisanalytics_flink_alpha as flink\n\napp = core.App()\nstack = core.Stack(app, \"FlinkAppTest\")\n\nflink_app = flink.Application(stack, \"App\",\n code=flink.ApplicationCode.from_asset(path.join(__dirname, \"code-asset\")),\n runtime=flink.Runtime.FLINK_1_11\n)\n\ncloudwatch.Alarm(stack, \"Alarm\",\n metric=flink_app.metric_full_restarts(),\n evaluation_periods=1,\n threshold=3\n)\n\napp.synth()",
286
290
  "version": "2"
287
291
  },
288
292
  "csharp": {
289
- "source": "using Path;\nusing Amazon.CDK;\nusing Amazon.CDK.AWS.Kinesisanalytics.Flink.Alpha;\nusing Amazon.CDK.AWS.CloudWatch;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = new Application(stack, \"App\", new ApplicationProps {\n Code = ApplicationCode.FromAsset(Join(__dirname, \"code-asset\")),\n Runtime = Runtime.FLINK_1_11\n});\n\nnew Alarm(stack, \"Alarm\", new AlarmProps {\n Metric = flinkApp.MetricFullRestarts(),\n EvaluationPeriods = 1,\n Threshold = 3\n});\n\napp.Synth();",
293
+ "source": "using Path;\nusing Amazon.CDK.AWS.CloudWatch;\nusing Amazon.CDK;\nusing Amazon.CDK.AWS.Kinesisanalytics.Flink.Alpha;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = new Application(stack, \"App\", new ApplicationProps {\n Code = ApplicationCode.FromAsset(Join(__dirname, \"code-asset\")),\n Runtime = Runtime.FLINK_1_11\n});\n\nnew Alarm(stack, \"Alarm\", new AlarmProps {\n Metric = flinkApp.MetricFullRestarts(),\n EvaluationPeriods = 1,\n Threshold = 3\n});\n\napp.Synth();",
290
294
  "version": "1"
291
295
  },
292
296
  "java": {
293
- "source": "import path.*;\nimport software.amazon.awscdk.*;\nimport software.amazon.awscdk.services.kinesisanalytics.flink.alpha.*;\nimport software.amazon.awscdk.services.cloudwatch.*;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = Application.Builder.create(stack, \"App\")\n .code(ApplicationCode.fromAsset(join(__dirname, \"code-asset\")))\n .runtime(Runtime.FLINK_1_11)\n .build();\n\nAlarm.Builder.create(stack, \"Alarm\")\n .metric(flinkApp.metricFullRestarts())\n .evaluationPeriods(1)\n .threshold(3)\n .build();\n\napp.synth();",
297
+ "source": "import path.*;\nimport software.amazon.awscdk.services.cloudwatch.*;\nimport software.amazon.awscdk.*;\nimport software.amazon.awscdk.services.kinesisanalytics.flink.alpha.*;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = Application.Builder.create(stack, \"App\")\n .code(ApplicationCode.fromAsset(join(__dirname, \"code-asset\")))\n .runtime(Runtime.FLINK_1_11)\n .build();\n\nAlarm.Builder.create(stack, \"Alarm\")\n .metric(flinkApp.metricFullRestarts())\n .evaluationPeriods(1)\n .threshold(3)\n .build();\n\napp.synth();",
294
298
  "version": "1"
295
299
  },
296
300
  "go": {
297
- "source": "import path \"github.com/aws-samples/dummy/path\"\nimport core \"github.com/aws/aws-cdk-go/awscdk\"\nimport flink \"github.com/aws/aws-cdk-go/awscdkkinesisanalyticsflinkalpha\"\nimport cloudwatch \"github.com/aws/aws-cdk-go/awscdk\"\n\napp := core.NewApp()\nstack := core.NewStack(app, jsii.String(\"FlinkAppTest\"))\n\nflinkApp := flink.NewApplication(stack, jsii.String(\"App\"), &applicationProps{\n\tcode: flink.applicationCode.fromAsset(path.join(__dirname, jsii.String(\"code-asset\"))),\n\truntime: flink.runtime_FLINK_1_11(),\n})\n\ncloudwatch.NewAlarm(stack, jsii.String(\"Alarm\"), &alarmProps{\n\tmetric: flinkApp.metricFullRestarts(),\n\tevaluationPeriods: jsii.Number(1),\n\tthreshold: jsii.Number(3),\n})\n\napp.synth()",
301
+ "source": "import path \"github.com/aws-samples/dummy/path\"\nimport cloudwatch \"github.com/aws/aws-cdk-go/awscdk\"\nimport core \"github.com/aws/aws-cdk-go/awscdk\"\nimport flink \"github.com/aws/aws-cdk-go/awscdkkinesisanalyticsflinkalpha\"\n\napp := core.NewApp()\nstack := core.NewStack(app, jsii.String(\"FlinkAppTest\"))\n\nflinkApp := flink.NewApplication(stack, jsii.String(\"App\"), &applicationProps{\n\tcode: flink.applicationCode.fromAsset(path.join(__dirname, jsii.String(\"code-asset\"))),\n\truntime: flink.runtime_FLINK_1_11(),\n})\n\ncloudwatch.NewAlarm(stack, jsii.String(\"Alarm\"), &alarmProps{\n\tmetric: flinkApp.metricFullRestarts(),\n\tevaluationPeriods: jsii.Number(1),\n\tthreshold: jsii.Number(3),\n})\n\napp.synth()",
298
302
  "version": "1"
299
303
  },
300
304
  "$": {
301
- "source": "import * as path from 'path';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
305
+ "source": "import * as path from 'path';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
302
306
  "version": "0"
303
307
  }
304
308
  },
@@ -324,9 +328,10 @@
324
328
  "aws-cdk-lib.Stage#synth",
325
329
  "aws-cdk-lib.aws_cloudwatch.Alarm",
326
330
  "aws-cdk-lib.aws_cloudwatch.AlarmProps",
327
- "aws-cdk-lib.aws_cloudwatch.IMetric"
331
+ "aws-cdk-lib.aws_cloudwatch.IMetric",
332
+ "constructs.Construct"
328
333
  ],
329
- "fullSource": "///! show\nimport * as path from 'path';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();\n",
334
+ "fullSource": "///! show\nimport * as path from 'path';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();\n",
330
335
  "syntaxKindCounter": {
331
336
  "8": 2,
332
337
  "10": 8,
@@ -345,28 +350,28 @@
345
350
  "281": 5,
346
351
  "290": 1
347
352
  },
348
- "fqnsFingerprint": "ee19101f50093b02fcea715c58ade1c93990f9783285355a14aba382913162d9"
353
+ "fqnsFingerprint": "895da9bb208702b7e95dfaf39afc06a5b658f4efc48d8b6d2375383efc6ce32f"
349
354
  },
350
- "3ecbdecf5da207f5163b6892635f8a765480875b6a858a6791b0f2562518680d": {
355
+ "91f453794719cd160680c910fca79bd46c2875dc32be22b38d0d92c0706527ca": {
351
356
  "translations": {
352
357
  "python": {
353
- "source": "import path as path\nimport aws_cdk as core\nimport aws_cdk.aws_kinesisanalytics_flink_alpha as flink\nimport aws_cdk.aws_cloudwatch as cloudwatch\n\napp = core.App()\nstack = core.Stack(app, \"FlinkAppTest\")\n\nflink_app = flink.Application(stack, \"App\",\n code=flink.ApplicationCode.from_asset(path.join(__dirname, \"code-asset\")),\n runtime=flink.Runtime.FLINK_1_11\n)\n\ncloudwatch.Alarm(stack, \"Alarm\",\n metric=flink_app.metric_full_restarts(),\n evaluation_periods=1,\n threshold=3\n)\n\napp.synth()",
358
+ "source": "import path as path\nimport aws_cdk.aws_cloudwatch as cloudwatch\nimport aws_cdk as core\nimport aws_cdk.aws_kinesisanalytics_flink_alpha as flink\n\napp = core.App()\nstack = core.Stack(app, \"FlinkAppTest\")\n\nflink_app = flink.Application(stack, \"App\",\n code=flink.ApplicationCode.from_asset(path.join(__dirname, \"code-asset\")),\n runtime=flink.Runtime.FLINK_1_11\n)\n\ncloudwatch.Alarm(stack, \"Alarm\",\n metric=flink_app.metric_full_restarts(),\n evaluation_periods=1,\n threshold=3\n)\n\napp.synth()",
354
359
  "version": "2"
355
360
  },
356
361
  "csharp": {
357
- "source": "using Path;\nusing Amazon.CDK;\nusing Amazon.CDK.AWS.Kinesisanalytics.Flink.Alpha;\nusing Amazon.CDK.AWS.CloudWatch;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = new Application(stack, \"App\", new ApplicationProps {\n Code = ApplicationCode.FromAsset(Join(__dirname, \"code-asset\")),\n Runtime = Runtime.FLINK_1_11\n});\n\nnew Alarm(stack, \"Alarm\", new AlarmProps {\n Metric = flinkApp.MetricFullRestarts(),\n EvaluationPeriods = 1,\n Threshold = 3\n});\n\napp.Synth();",
362
+ "source": "using Path;\nusing Amazon.CDK.AWS.CloudWatch;\nusing Amazon.CDK;\nusing Amazon.CDK.AWS.Kinesisanalytics.Flink.Alpha;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = new Application(stack, \"App\", new ApplicationProps {\n Code = ApplicationCode.FromAsset(Join(__dirname, \"code-asset\")),\n Runtime = Runtime.FLINK_1_11\n});\n\nnew Alarm(stack, \"Alarm\", new AlarmProps {\n Metric = flinkApp.MetricFullRestarts(),\n EvaluationPeriods = 1,\n Threshold = 3\n});\n\napp.Synth();",
358
363
  "version": "1"
359
364
  },
360
365
  "java": {
361
- "source": "import path.*;\nimport software.amazon.awscdk.*;\nimport software.amazon.awscdk.services.kinesisanalytics.flink.alpha.*;\nimport software.amazon.awscdk.services.cloudwatch.*;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = Application.Builder.create(stack, \"App\")\n .code(ApplicationCode.fromAsset(join(__dirname, \"code-asset\")))\n .runtime(Runtime.FLINK_1_11)\n .build();\n\nAlarm.Builder.create(stack, \"Alarm\")\n .metric(flinkApp.metricFullRestarts())\n .evaluationPeriods(1)\n .threshold(3)\n .build();\n\napp.synth();",
366
+ "source": "import path.*;\nimport software.amazon.awscdk.services.cloudwatch.*;\nimport software.amazon.awscdk.*;\nimport software.amazon.awscdk.services.kinesisanalytics.flink.alpha.*;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = Application.Builder.create(stack, \"App\")\n .code(ApplicationCode.fromAsset(join(__dirname, \"code-asset\")))\n .runtime(Runtime.FLINK_1_11)\n .build();\n\nAlarm.Builder.create(stack, \"Alarm\")\n .metric(flinkApp.metricFullRestarts())\n .evaluationPeriods(1)\n .threshold(3)\n .build();\n\napp.synth();",
362
367
  "version": "1"
363
368
  },
364
369
  "go": {
365
- "source": "import path \"github.com/aws-samples/dummy/path\"\nimport core \"github.com/aws/aws-cdk-go/awscdk\"\nimport flink \"github.com/aws/aws-cdk-go/awscdkkinesisanalyticsflinkalpha\"\nimport cloudwatch \"github.com/aws/aws-cdk-go/awscdk\"\n\napp := core.NewApp()\nstack := core.NewStack(app, jsii.String(\"FlinkAppTest\"))\n\nflinkApp := flink.NewApplication(stack, jsii.String(\"App\"), &applicationProps{\n\tcode: flink.applicationCode.fromAsset(path.join(__dirname, jsii.String(\"code-asset\"))),\n\truntime: flink.runtime_FLINK_1_11(),\n})\n\ncloudwatch.NewAlarm(stack, jsii.String(\"Alarm\"), &alarmProps{\n\tmetric: flinkApp.metricFullRestarts(),\n\tevaluationPeriods: jsii.Number(1),\n\tthreshold: jsii.Number(3),\n})\n\napp.synth()",
370
+ "source": "import path \"github.com/aws-samples/dummy/path\"\nimport cloudwatch \"github.com/aws/aws-cdk-go/awscdk\"\nimport core \"github.com/aws/aws-cdk-go/awscdk\"\nimport flink \"github.com/aws/aws-cdk-go/awscdkkinesisanalyticsflinkalpha\"\n\napp := core.NewApp()\nstack := core.NewStack(app, jsii.String(\"FlinkAppTest\"))\n\nflinkApp := flink.NewApplication(stack, jsii.String(\"App\"), &applicationProps{\n\tcode: flink.applicationCode.fromAsset(path.join(__dirname, jsii.String(\"code-asset\"))),\n\truntime: flink.runtime_FLINK_1_11(),\n})\n\ncloudwatch.NewAlarm(stack, jsii.String(\"Alarm\"), &alarmProps{\n\tmetric: flinkApp.metricFullRestarts(),\n\tevaluationPeriods: jsii.Number(1),\n\tthreshold: jsii.Number(3),\n})\n\napp.synth()",
366
371
  "version": "1"
367
372
  },
368
373
  "$": {
369
- "source": "import * as path from 'path';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
374
+ "source": "import * as path from 'path';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
370
375
  "version": "0"
371
376
  }
372
377
  },
@@ -392,9 +397,10 @@
392
397
  "aws-cdk-lib.Stage#synth",
393
398
  "aws-cdk-lib.aws_cloudwatch.Alarm",
394
399
  "aws-cdk-lib.aws_cloudwatch.AlarmProps",
395
- "aws-cdk-lib.aws_cloudwatch.IMetric"
400
+ "aws-cdk-lib.aws_cloudwatch.IMetric",
401
+ "constructs.Construct"
396
402
  ],
397
- "fullSource": "///! show\nimport * as path from 'path';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();\n",
403
+ "fullSource": "///! show\nimport * as path from 'path';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();\n",
398
404
  "syntaxKindCounter": {
399
405
  "8": 2,
400
406
  "10": 8,
@@ -413,7 +419,7 @@
413
419
  "281": 5,
414
420
  "290": 1
415
421
  },
416
- "fqnsFingerprint": "ee19101f50093b02fcea715c58ade1c93990f9783285355a14aba382913162d9"
422
+ "fqnsFingerprint": "895da9bb208702b7e95dfaf39afc06a5b658f4efc48d8b6d2375383efc6ce32f"
417
423
  },
418
424
  "966827986094fa5eb687f9111aa23a0837692f4dc9706e95d08fae90fe310dd5": {
419
425
  "translations": {
@@ -478,26 +484,26 @@
478
484
  },
479
485
  "fqnsFingerprint": "b37bbb802597a42e24cf32749a28940abeb4022d75306a5c7c9ccb836ae36ea2"
480
486
  },
481
- "5266f667fb99949f19fd3277cfe7c7dadcb2803a851b6a9c130302c9dc1a548c": {
487
+ "3bd6a41fce883bc9ab9df51e7e635b09f47b57b58857f440f2fb7f0aad318e22": {
482
488
  "translations": {
483
489
  "python": {
484
- "source": "import path as path\nimport aws_cdk as core\nimport aws_cdk.aws_kinesisanalytics_flink_alpha as flink\nimport aws_cdk.aws_cloudwatch as cloudwatch\n\napp = core.App()\nstack = core.Stack(app, \"FlinkAppTest\")\n\nflink_app = flink.Application(stack, \"App\",\n code=flink.ApplicationCode.from_asset(path.join(__dirname, \"code-asset\")),\n runtime=flink.Runtime.FLINK_1_11\n)\n\ncloudwatch.Alarm(stack, \"Alarm\",\n metric=flink_app.metric_full_restarts(),\n evaluation_periods=1,\n threshold=3\n)\n\napp.synth()",
490
+ "source": "import path as path\nimport aws_cdk.aws_cloudwatch as cloudwatch\nimport aws_cdk as core\nimport aws_cdk.aws_kinesisanalytics_flink_alpha as flink\n\napp = core.App()\nstack = core.Stack(app, \"FlinkAppTest\")\n\nflink_app = flink.Application(stack, \"App\",\n code=flink.ApplicationCode.from_asset(path.join(__dirname, \"code-asset\")),\n runtime=flink.Runtime.FLINK_1_11\n)\n\ncloudwatch.Alarm(stack, \"Alarm\",\n metric=flink_app.metric_full_restarts(),\n evaluation_periods=1,\n threshold=3\n)\n\napp.synth()",
485
491
  "version": "2"
486
492
  },
487
493
  "csharp": {
488
- "source": "using Path;\nusing Amazon.CDK;\nusing Amazon.CDK.AWS.Kinesisanalytics.Flink.Alpha;\nusing Amazon.CDK.AWS.CloudWatch;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = new Application(stack, \"App\", new ApplicationProps {\n Code = ApplicationCode.FromAsset(Join(__dirname, \"code-asset\")),\n Runtime = Runtime.FLINK_1_11\n});\n\nnew Alarm(stack, \"Alarm\", new AlarmProps {\n Metric = flinkApp.MetricFullRestarts(),\n EvaluationPeriods = 1,\n Threshold = 3\n});\n\napp.Synth();",
494
+ "source": "using Path;\nusing Amazon.CDK.AWS.CloudWatch;\nusing Amazon.CDK;\nusing Amazon.CDK.AWS.Kinesisanalytics.Flink.Alpha;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = new Application(stack, \"App\", new ApplicationProps {\n Code = ApplicationCode.FromAsset(Join(__dirname, \"code-asset\")),\n Runtime = Runtime.FLINK_1_11\n});\n\nnew Alarm(stack, \"Alarm\", new AlarmProps {\n Metric = flinkApp.MetricFullRestarts(),\n EvaluationPeriods = 1,\n Threshold = 3\n});\n\napp.Synth();",
489
495
  "version": "1"
490
496
  },
491
497
  "java": {
492
- "source": "import path.*;\nimport software.amazon.awscdk.*;\nimport software.amazon.awscdk.services.kinesisanalytics.flink.alpha.*;\nimport software.amazon.awscdk.services.cloudwatch.*;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = Application.Builder.create(stack, \"App\")\n .code(ApplicationCode.fromAsset(join(__dirname, \"code-asset\")))\n .runtime(Runtime.FLINK_1_11)\n .build();\n\nAlarm.Builder.create(stack, \"Alarm\")\n .metric(flinkApp.metricFullRestarts())\n .evaluationPeriods(1)\n .threshold(3)\n .build();\n\napp.synth();",
498
+ "source": "import path.*;\nimport software.amazon.awscdk.services.cloudwatch.*;\nimport software.amazon.awscdk.*;\nimport software.amazon.awscdk.services.kinesisanalytics.flink.alpha.*;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = Application.Builder.create(stack, \"App\")\n .code(ApplicationCode.fromAsset(join(__dirname, \"code-asset\")))\n .runtime(Runtime.FLINK_1_11)\n .build();\n\nAlarm.Builder.create(stack, \"Alarm\")\n .metric(flinkApp.metricFullRestarts())\n .evaluationPeriods(1)\n .threshold(3)\n .build();\n\napp.synth();",
493
499
  "version": "1"
494
500
  },
495
501
  "go": {
496
- "source": "import path \"github.com/aws-samples/dummy/path\"\nimport core \"github.com/aws/aws-cdk-go/awscdk\"\nimport flink \"github.com/aws/aws-cdk-go/awscdkkinesisanalyticsflinkalpha\"\nimport cloudwatch \"github.com/aws/aws-cdk-go/awscdk\"\n\napp := core.NewApp()\nstack := core.NewStack(app, jsii.String(\"FlinkAppTest\"))\n\nflinkApp := flink.NewApplication(stack, jsii.String(\"App\"), &applicationProps{\n\tcode: flink.applicationCode.fromAsset(path.join(__dirname, jsii.String(\"code-asset\"))),\n\truntime: flink.runtime_FLINK_1_11(),\n})\n\ncloudwatch.NewAlarm(stack, jsii.String(\"Alarm\"), &alarmProps{\n\tmetric: flinkApp.metricFullRestarts(),\n\tevaluationPeriods: jsii.Number(1),\n\tthreshold: jsii.Number(3),\n})\n\napp.synth()",
502
+ "source": "import path \"github.com/aws-samples/dummy/path\"\nimport cloudwatch \"github.com/aws/aws-cdk-go/awscdk\"\nimport core \"github.com/aws/aws-cdk-go/awscdk\"\nimport flink \"github.com/aws/aws-cdk-go/awscdkkinesisanalyticsflinkalpha\"\n\napp := core.NewApp()\nstack := core.NewStack(app, jsii.String(\"FlinkAppTest\"))\n\nflinkApp := flink.NewApplication(stack, jsii.String(\"App\"), &applicationProps{\n\tcode: flink.applicationCode.fromAsset(path.join(__dirname, jsii.String(\"code-asset\"))),\n\truntime: flink.runtime_FLINK_1_11(),\n})\n\ncloudwatch.NewAlarm(stack, jsii.String(\"Alarm\"), &alarmProps{\n\tmetric: flinkApp.metricFullRestarts(),\n\tevaluationPeriods: jsii.Number(1),\n\tthreshold: jsii.Number(3),\n})\n\napp.synth()",
497
503
  "version": "1"
498
504
  },
499
505
  "$": {
500
- "source": "import * as path from 'path';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
506
+ "source": "import * as path from 'path';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
501
507
  "version": "0"
502
508
  }
503
509
  },
@@ -523,9 +529,10 @@
523
529
  "aws-cdk-lib.Stage#synth",
524
530
  "aws-cdk-lib.aws_cloudwatch.Alarm",
525
531
  "aws-cdk-lib.aws_cloudwatch.AlarmProps",
526
- "aws-cdk-lib.aws_cloudwatch.IMetric"
532
+ "aws-cdk-lib.aws_cloudwatch.IMetric",
533
+ "constructs.Construct"
527
534
  ],
528
- "fullSource": "///! show\nimport * as path from 'path';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();\n",
535
+ "fullSource": "///! show\nimport * as path from 'path';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();\n",
529
536
  "syntaxKindCounter": {
530
537
  "8": 2,
531
538
  "10": 8,
@@ -544,7 +551,7 @@
544
551
  "281": 5,
545
552
  "290": 1
546
553
  },
547
- "fqnsFingerprint": "ee19101f50093b02fcea715c58ade1c93990f9783285355a14aba382913162d9"
554
+ "fqnsFingerprint": "895da9bb208702b7e95dfaf39afc06a5b658f4efc48d8b6d2375383efc6ce32f"
548
555
  },
549
556
  "f5a80bf7918161f368caffc9a6e746a80127884d119326e5bcb6a4e0faa4e616": {
550
557
  "translations": {
@@ -594,7 +601,8 @@
594
601
  "aws-cdk-lib.Duration#seconds",
595
602
  "aws-cdk-lib.aws_logs.ILogGroup",
596
603
  "aws-cdk-lib.aws_logs.LogGroup",
597
- "aws-cdk-lib.aws_s3.IBucket"
604
+ "aws-cdk-lib.aws_s3.IBucket",
605
+ "constructs.Construct"
598
606
  ],
599
607
  "fullSource": "// Hoisted imports begin after !show marker below\n/// !show\ndeclare const bucket: s3.Bucket;\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport { Duration, Stack } from 'aws-cdk-lib'; \nimport * as flink from '@aws-cdk/aws-kinesisanalytics-flink-alpha';\nimport * as logs from 'aws-cdk-lib/aws-logs';\nimport * as s3 from 'aws-cdk-lib/aws-s3';\n\nclass Fixture extends Stack { \n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\nconst flinkApp = new flink.Application(this, 'Application', {\n code: flink.ApplicationCode.fromBucket(bucket, 'my-app.jar'),\n runtime: flink.Runtime.FLINK_1_13,\n checkpointingEnabled: true, // default is true\n checkpointInterval: Duration.seconds(30), // default is 1 minute\n minPauseBetweenCheckpoints: Duration.seconds(10), // default is 5 seconds\n logLevel: flink.LogLevel.ERROR, // default is INFO\n metricsLevel: flink.MetricsLevel.PARALLELISM, // default is APPLICATION\n autoScalingEnabled: false, // default is true\n parallelism: 32, // default is 1\n parallelismPerKpu: 2, // default is 1\n snapshotsEnabled: false, // default is true\n logGroup: new logs.LogGroup(this, 'LogGroup'), // by default, a new LogGroup will be created\n});\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}",
600
608
  "syntaxKindCounter": {
@@ -617,7 +625,7 @@
617
625
  "281": 12,
618
626
  "290": 1
619
627
  },
620
- "fqnsFingerprint": "8044588f1e2a9e4f2c71f95b5288f5ce2f6e92a63496fa616d2e4f114f09cc91"
628
+ "fqnsFingerprint": "46ef535d2880926d08a63c126be7a0030ee0582d2eef994a480c31a6834683eb"
621
629
  },
622
630
  "a94ad28544ed0016129662e03839c1aca389daa6e2fbe9408ada860f2e2f6118": {
623
631
  "translations": {
@@ -667,7 +675,8 @@
667
675
  "aws-cdk-lib.Duration#seconds",
668
676
  "aws-cdk-lib.aws_logs.ILogGroup",
669
677
  "aws-cdk-lib.aws_logs.LogGroup",
670
- "aws-cdk-lib.aws_s3.IBucket"
678
+ "aws-cdk-lib.aws_s3.IBucket",
679
+ "constructs.Construct"
671
680
  ],
672
681
  "fullSource": "// Hoisted imports begin after !show marker below\n/// !show\ndeclare const bucket: s3.Bucket;\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport { Duration, Stack } from 'aws-cdk-lib'; \nimport * as flink from '@aws-cdk/aws-kinesisanalytics-flink-alpha';\nimport * as logs from 'aws-cdk-lib/aws-logs';\nimport * as s3 from 'aws-cdk-lib/aws-s3';\n\nclass Fixture extends Stack { \n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\nconst flinkApp = new flink.Application(this, 'Application', {\n code: flink.ApplicationCode.fromBucket(bucket, 'my-app.jar'),\n runtime: flink.Runtime.FLINK_1_13,\n checkpointingEnabled: true, // default is true\n checkpointInterval: Duration.seconds(30), // default is 1 minute\n minPauseBetweenCheckpoints: Duration.seconds(10), // default is 5 seconds\n logLevel: flink.LogLevel.ERROR, // default is INFO\n metricsLevel: flink.MetricsLevel.PARALLELISM, // default is APPLICATION\n autoScalingEnabled: false, // default is true\n parallelism: 32, // default is 1\n parallelismPerKpu: 2, // default is 1\n snapshotsEnabled: false, // default is true\n logGroup: new logs.LogGroup(this, 'LogGroup'), // by default, a new LogGroup will be created\n});\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}",
673
682
  "syntaxKindCounter": {
@@ -690,7 +699,7 @@
690
699
  "281": 12,
691
700
  "290": 1
692
701
  },
693
- "fqnsFingerprint": "8044588f1e2a9e4f2c71f95b5288f5ce2f6e92a63496fa616d2e4f114f09cc91"
702
+ "fqnsFingerprint": "46ef535d2880926d08a63c126be7a0030ee0582d2eef994a480c31a6834683eb"
694
703
  },
695
704
  "3cbce467c559b4b2193c6d43044ee77d743570e180a72fd2b7be41f9bd408a5d": {
696
705
  "translations": {
@@ -733,7 +742,8 @@
733
742
  "@aws-cdk/aws-kinesisanalytics-flink-alpha.PropertyGroups",
734
743
  "@aws-cdk/aws-kinesisanalytics-flink-alpha.Runtime",
735
744
  "@aws-cdk/aws-kinesisanalytics-flink-alpha.Runtime#FLINK_1_13",
736
- "aws-cdk-lib.aws_s3.IBucket"
745
+ "aws-cdk-lib.aws_s3.IBucket",
746
+ "constructs.Construct"
737
747
  ],
738
748
  "fullSource": "// Hoisted imports begin after !show marker below\n/// !show\ndeclare const bucket: s3.Bucket;\n/// !hide\n// Hoisted imports ended before !hide marker above\n// Fixture with packages imported, but nothing else\nimport { Construct } from 'constructs';\nimport { Duration, Stack } from 'aws-cdk-lib'; \nimport * as flink from '@aws-cdk/aws-kinesisanalytics-flink-alpha';\nimport * as logs from 'aws-cdk-lib/aws-logs';\nimport * as s3 from 'aws-cdk-lib/aws-s3';\n\nclass Fixture extends Stack { \n constructor(scope: Construct, id: string) {\n super(scope, id);\n\n // Code snippet begins after !show marker below\n/// !show\n\nconst flinkApp = new flink.Application(this, 'Application', {\n propertyGroups: {\n FlinkApplicationProperties: {\n inputStreamName: 'my-input-kinesis-stream',\n outputStreamName: 'my-output-kinesis-stream',\n },\n },\n // ...\n runtime: flink.Runtime.FLINK_1_13,\n code: flink.ApplicationCode.fromBucket(bucket, 'my-app.jar'),\n});\n/// !hide\n// Code snippet ended before !hide marker above\n }\n}",
739
749
  "syntaxKindCounter": {
@@ -753,28 +763,28 @@
753
763
  "281": 6,
754
764
  "290": 1
755
765
  },
756
- "fqnsFingerprint": "1714ca413abd507faf534495227457504b541da72874bc92f0df584f2ce5ad6b"
766
+ "fqnsFingerprint": "d37ab9775659c1c2b3599be0111b202a834d2a2776b2bfb4f46d6d0b7dc0a8ab"
757
767
  },
758
- "4d1d063082d19882e21e3008971314ed896e2345636682b928ca5d4e41ba8ad5": {
768
+ "979e500f0a0b6babe1c9cfd1b2373d0b275f82f7c68933ae2701959a0dfa4f6e": {
759
769
  "translations": {
760
770
  "python": {
761
- "source": "import path as path\nimport aws_cdk as core\nimport aws_cdk.aws_kinesisanalytics_flink_alpha as flink\nimport aws_cdk.aws_cloudwatch as cloudwatch\n\napp = core.App()\nstack = core.Stack(app, \"FlinkAppTest\")\n\nflink_app = flink.Application(stack, \"App\",\n code=flink.ApplicationCode.from_asset(path.join(__dirname, \"code-asset\")),\n runtime=flink.Runtime.FLINK_1_11\n)\n\ncloudwatch.Alarm(stack, \"Alarm\",\n metric=flink_app.metric_full_restarts(),\n evaluation_periods=1,\n threshold=3\n)\n\napp.synth()",
771
+ "source": "import path as path\nimport aws_cdk.aws_cloudwatch as cloudwatch\nimport aws_cdk as core\nimport aws_cdk.aws_kinesisanalytics_flink_alpha as flink\n\napp = core.App()\nstack = core.Stack(app, \"FlinkAppTest\")\n\nflink_app = flink.Application(stack, \"App\",\n code=flink.ApplicationCode.from_asset(path.join(__dirname, \"code-asset\")),\n runtime=flink.Runtime.FLINK_1_11\n)\n\ncloudwatch.Alarm(stack, \"Alarm\",\n metric=flink_app.metric_full_restarts(),\n evaluation_periods=1,\n threshold=3\n)\n\napp.synth()",
762
772
  "version": "2"
763
773
  },
764
774
  "csharp": {
765
- "source": "using Path;\nusing Amazon.CDK;\nusing Amazon.CDK.AWS.Kinesisanalytics.Flink.Alpha;\nusing Amazon.CDK.AWS.CloudWatch;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = new Application(stack, \"App\", new ApplicationProps {\n Code = ApplicationCode.FromAsset(Join(__dirname, \"code-asset\")),\n Runtime = Runtime.FLINK_1_11\n});\n\nnew Alarm(stack, \"Alarm\", new AlarmProps {\n Metric = flinkApp.MetricFullRestarts(),\n EvaluationPeriods = 1,\n Threshold = 3\n});\n\napp.Synth();",
775
+ "source": "using Path;\nusing Amazon.CDK.AWS.CloudWatch;\nusing Amazon.CDK;\nusing Amazon.CDK.AWS.Kinesisanalytics.Flink.Alpha;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = new Application(stack, \"App\", new ApplicationProps {\n Code = ApplicationCode.FromAsset(Join(__dirname, \"code-asset\")),\n Runtime = Runtime.FLINK_1_11\n});\n\nnew Alarm(stack, \"Alarm\", new AlarmProps {\n Metric = flinkApp.MetricFullRestarts(),\n EvaluationPeriods = 1,\n Threshold = 3\n});\n\napp.Synth();",
766
776
  "version": "1"
767
777
  },
768
778
  "java": {
769
- "source": "import path.*;\nimport software.amazon.awscdk.*;\nimport software.amazon.awscdk.services.kinesisanalytics.flink.alpha.*;\nimport software.amazon.awscdk.services.cloudwatch.*;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = Application.Builder.create(stack, \"App\")\n .code(ApplicationCode.fromAsset(join(__dirname, \"code-asset\")))\n .runtime(Runtime.FLINK_1_11)\n .build();\n\nAlarm.Builder.create(stack, \"Alarm\")\n .metric(flinkApp.metricFullRestarts())\n .evaluationPeriods(1)\n .threshold(3)\n .build();\n\napp.synth();",
779
+ "source": "import path.*;\nimport software.amazon.awscdk.services.cloudwatch.*;\nimport software.amazon.awscdk.*;\nimport software.amazon.awscdk.services.kinesisanalytics.flink.alpha.*;\n\nApp app = new App();\nStack stack = new Stack(app, \"FlinkAppTest\");\n\nApplication flinkApp = Application.Builder.create(stack, \"App\")\n .code(ApplicationCode.fromAsset(join(__dirname, \"code-asset\")))\n .runtime(Runtime.FLINK_1_11)\n .build();\n\nAlarm.Builder.create(stack, \"Alarm\")\n .metric(flinkApp.metricFullRestarts())\n .evaluationPeriods(1)\n .threshold(3)\n .build();\n\napp.synth();",
770
780
  "version": "1"
771
781
  },
772
782
  "go": {
773
- "source": "import path \"github.com/aws-samples/dummy/path\"\nimport core \"github.com/aws/aws-cdk-go/awscdk\"\nimport flink \"github.com/aws/aws-cdk-go/awscdkkinesisanalyticsflinkalpha\"\nimport cloudwatch \"github.com/aws/aws-cdk-go/awscdk\"\n\napp := core.NewApp()\nstack := core.NewStack(app, jsii.String(\"FlinkAppTest\"))\n\nflinkApp := flink.NewApplication(stack, jsii.String(\"App\"), &applicationProps{\n\tcode: flink.applicationCode.fromAsset(path.join(__dirname, jsii.String(\"code-asset\"))),\n\truntime: flink.runtime_FLINK_1_11(),\n})\n\ncloudwatch.NewAlarm(stack, jsii.String(\"Alarm\"), &alarmProps{\n\tmetric: flinkApp.metricFullRestarts(),\n\tevaluationPeriods: jsii.Number(1),\n\tthreshold: jsii.Number(3),\n})\n\napp.synth()",
783
+ "source": "import path \"github.com/aws-samples/dummy/path\"\nimport cloudwatch \"github.com/aws/aws-cdk-go/awscdk\"\nimport core \"github.com/aws/aws-cdk-go/awscdk\"\nimport flink \"github.com/aws/aws-cdk-go/awscdkkinesisanalyticsflinkalpha\"\n\napp := core.NewApp()\nstack := core.NewStack(app, jsii.String(\"FlinkAppTest\"))\n\nflinkApp := flink.NewApplication(stack, jsii.String(\"App\"), &applicationProps{\n\tcode: flink.applicationCode.fromAsset(path.join(__dirname, jsii.String(\"code-asset\"))),\n\truntime: flink.runtime_FLINK_1_11(),\n})\n\ncloudwatch.NewAlarm(stack, jsii.String(\"Alarm\"), &alarmProps{\n\tmetric: flinkApp.metricFullRestarts(),\n\tevaluationPeriods: jsii.Number(1),\n\tthreshold: jsii.Number(3),\n})\n\napp.synth()",
774
784
  "version": "1"
775
785
  },
776
786
  "$": {
777
- "source": "import * as path from 'path';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
787
+ "source": "import * as path from 'path';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();",
778
788
  "version": "0"
779
789
  }
780
790
  },
@@ -800,9 +810,10 @@
800
810
  "aws-cdk-lib.Stage#synth",
801
811
  "aws-cdk-lib.aws_cloudwatch.Alarm",
802
812
  "aws-cdk-lib.aws_cloudwatch.AlarmProps",
803
- "aws-cdk-lib.aws_cloudwatch.IMetric"
813
+ "aws-cdk-lib.aws_cloudwatch.IMetric",
814
+ "constructs.Construct"
804
815
  ],
805
- "fullSource": "///! show\nimport * as path from 'path';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();\n",
816
+ "fullSource": "///! show\nimport * as path from 'path';\nimport * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';\nimport * as core from 'aws-cdk-lib';\nimport * as flink from '../lib';\n\nconst app = new core.App();\nconst stack = new core.Stack(app, 'FlinkAppTest');\n\nconst flinkApp = new flink.Application(stack, 'App', {\n code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),\n runtime: flink.Runtime.FLINK_1_11,\n});\n\nnew cloudwatch.Alarm(stack, 'Alarm', {\n metric: flinkApp.metricFullRestarts(),\n evaluationPeriods: 1,\n threshold: 3,\n});\n///! hide\n\napp.synth();\n",
806
817
  "syntaxKindCounter": {
807
818
  "8": 2,
808
819
  "10": 8,
@@ -821,7 +832,7 @@
821
832
  "281": 5,
822
833
  "290": 1
823
834
  },
824
- "fqnsFingerprint": "ee19101f50093b02fcea715c58ade1c93990f9783285355a14aba382913162d9"
835
+ "fqnsFingerprint": "895da9bb208702b7e95dfaf39afc06a5b658f4efc48d8b6d2375383efc6ce32f"
825
836
  }
826
837
  }
827
838
  }
@@ -34,7 +34,7 @@ class ApplicationCode {
34
34
  }
35
35
  exports.ApplicationCode = ApplicationCode;
36
36
  _a = JSII_RTTI_SYMBOL_1;
37
- ApplicationCode[_a] = { fqn: "@aws-cdk/aws-kinesisanalytics-flink-alpha.ApplicationCode", version: "2.27.0-alpha.0" };
37
+ ApplicationCode[_a] = { fqn: "@aws-cdk/aws-kinesisanalytics-flink-alpha.ApplicationCode", version: "2.29.0-alpha.0" };
38
38
  class BucketApplicationCode extends ApplicationCode {
39
39
  constructor(props) {
40
40
  super();
@@ -93,8 +93,7 @@ class AssetApplicationCode extends ApplicationCode {
93
93
  return this._asset;
94
94
  }
95
95
  get bucket() {
96
- var _b;
97
- return (_b = this._asset) === null || _b === void 0 ? void 0 : _b.bucket;
96
+ return this._asset?.bucket;
98
97
  }
99
98
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLWNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSx1REFBdUQ7QUFvQnZEOztHQUVHO0FBQ0gsTUFBc0IsZUFBZTtJQUNuQzs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQWtCLEVBQUUsT0FBZSxFQUFFLGFBQXNCO1FBQ2xGLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQztZQUMvQixNQUFNO1lBQ04sT0FBTztZQUNQLGFBQWE7U0FDZCxDQUFDLENBQUM7S0FDSjtJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZLEVBQUUsT0FBZ0M7UUFDcEUsT0FBTyxJQUFJLG9CQUFvQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztLQUNoRDs7QUF4QkgsMENBOEJDOzs7QUFRRCxNQUFNLHFCQUFzQixTQUFRLGVBQWU7SUFLakQsWUFBWSxLQUFpQztRQUMzQyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO0tBQzFDO0lBRU0sSUFBSSxDQUFDLE1BQWlCO1FBQzNCLE9BQU87WUFDTCxvQ0FBb0MsRUFBRTtnQkFDcEMsNEJBQTRCLEVBQUU7b0JBQzVCLFdBQVcsRUFBRTt3QkFDWCxpQkFBaUIsRUFBRTs0QkFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFPLENBQUMsU0FBUzs0QkFDakMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPOzRCQUNyQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7eUJBQ2xDO3FCQUNGO29CQUNELGVBQWUsRUFBRSxTQUFTO2lCQUMzQjthQUNGO1lBQ0QsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFPO1NBQ3JCLENBQUM7S0FDSDtDQUNGO0FBRUQsTUFBTSxvQkFBcUIsU0FBUSxlQUFlO0lBS2hELFlBQVksSUFBWSxFQUFFLE9BQWdDO1FBQ3hELEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7S0FDeEI7SUFFTSxJQUFJLENBQUMsS0FBZ0I7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUMvQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixHQUFHLElBQUksQ0FBQyxPQUFPO1NBQ2hCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUM1RTtRQUVELE9BQU87WUFDTCxvQ0FBb0MsRUFBRTtnQkFDcEMsNEJBQTRCLEVBQUU7b0JBQzVCLFdBQVcsRUFBRTt3QkFDWCxpQkFBaUIsRUFBRTs0QkFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVM7NEJBQ3ZDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVc7eUJBQ2pDO3FCQUNGO29CQUNELGVBQWUsRUFBRSxTQUFTO2lCQUMzQjthQUNGO1lBQ0QsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtTQUMzQixDQUFDO0tBQ0g7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7S0FDcEI7SUFFRCxJQUFJLE1BQU07O1FBQ1IsYUFBTyxJQUFJLENBQUMsTUFBTSwwQ0FBRSxNQUFNLENBQUM7S0FDNUI7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGthIGZyb20gJ2F3cy1jZGstbGliL2F3cy1raW5lc2lzYW5hbHl0aWNzJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBzM19hc3NldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBUaGUgcmV0dXJuIHR5cGUgb2Yge0BsaW5rIEFwcGxpY2F0aW9uQ29kZS5iaW5kfS4gVGhpcyByZXByZXNlbnRzXG4gKiBDbG91ZEZvcm1hdGlvbiBjb25maWd1cmF0aW9uIGFuZCBhbiBzMyBidWNrZXQgaG9sZGluZyB0aGUgRmxpbmsgYXBwbGljYXRpb25cbiAqIEpBUiBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uQ29kZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBMb3ctbGV2ZWwgQ2xvdWRmb3JtYXRpb24gQXBwbGljYXRpb25Db25maWd1cmF0aW9uUHJvcGVydHlcbiAgICovXG4gIHJlYWRvbmx5IGFwcGxpY2F0aW9uQ29kZUNvbmZpZ3VyYXRpb25Qcm9wZXJ0eToga2EuQ2ZuQXBwbGljYXRpb25WMi5BcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25Qcm9wZXJ0eTtcblxuICAvKipcbiAgICogUzMgQnVja2V0IHRoYXQgc3RvcmVzIHRoZSBGbGluayBhcHBsaWNhdGlvbiBjb2RlXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ6IHMzLklCdWNrZXQ7XG59XG5cbi8qKlxuICogQ29kZSBjb25maWd1cmF0aW9uIHByb3ZpZGluZyB0aGUgbG9jYXRpb24gdG8gYSBGbGluayBhcHBsaWNhdGlvbiBKQVIgZmlsZS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFwcGxpY2F0aW9uQ29kZSB7XG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgY29kZSBmcm9tIGFuIFMzIGJ1Y2tldC5cbiAgICpcbiAgICogQHBhcmFtIGJ1Y2tldCAtIGFuIHMzIGJ1Y2tldFxuICAgKiBAcGFyYW0gZmlsZUtleSAtIGEga2V5IHBvaW50aW5nIHRvIGEgRmxpbmsgSkFSIGZpbGVcbiAgICogQHBhcmFtIG9iamVjdFZlcnNpb24gLSBhbiBvcHRpb25hbCB2ZXJzaW9uIHN0cmluZyBmb3IgdGhlIHByb3ZpZGVkIGZpbGVLZXlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUJ1Y2tldChidWNrZXQ6IHMzLklCdWNrZXQsIGZpbGVLZXk6IHN0cmluZywgb2JqZWN0VmVyc2lvbj86IHN0cmluZyk6IEFwcGxpY2F0aW9uQ29kZSB7XG4gICAgcmV0dXJuIG5ldyBCdWNrZXRBcHBsaWNhdGlvbkNvZGUoe1xuICAgICAgYnVja2V0LFxuICAgICAgZmlsZUtleSxcbiAgICAgIG9iamVjdFZlcnNpb24sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVmZXJlbmNlIGNvZGUgZnJvbSBhIGxvY2FsIGRpcmVjdG9yeSBjb250YWluaW5nIGEgRmxpbmsgSkFSIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gYSBsb2NhbCBkaXJlY3RvcnkgcGF0aFxuICAgKiBAcGFybSBvcHRpb25zIC0gc3RhbmRhcmQgczMgQXNzZXRPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Bc3NldChwYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiBzM19hc3NldHMuQXNzZXRPcHRpb25zKTogQXBwbGljYXRpb25Db2RlIHtcbiAgICByZXR1cm4gbmV3IEFzc2V0QXBwbGljYXRpb25Db2RlKHBhdGgsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgbWV0aG9kIHRvIGxhemlseSBiaW5kIGFzc2V0IHJlc291cmNlcyB0byB0aGUgcGFyZW50IEZsaW5rQXBwbGljYXRpb24uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYmluZChzY29wZTogQ29uc3RydWN0KTogQXBwbGljYXRpb25Db2RlQ29uZmlnO1xufVxuXG5pbnRlcmZhY2UgQnVja2V0QXBwbGljYXRpb25Db2RlUHJvcHMge1xuICByZWFkb25seSBidWNrZXQ6IHMzLklCdWNrZXQ7XG4gIHJlYWRvbmx5IGZpbGVLZXk6IHN0cmluZztcbiAgcmVhZG9ubHkgb2JqZWN0VmVyc2lvbj86IHN0cmluZztcbn1cblxuY2xhc3MgQnVja2V0QXBwbGljYXRpb25Db2RlIGV4dGVuZHMgQXBwbGljYXRpb25Db2RlIHtcbiAgcHVibGljIHJlYWRvbmx5IGJ1Y2tldD86IHMzLklCdWNrZXQ7XG4gIHB1YmxpYyByZWFkb25seSBmaWxlS2V5OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBvYmplY3RWZXJzaW9uPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBCdWNrZXRBcHBsaWNhdGlvbkNvZGVQcm9wcykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5idWNrZXQgPSBwcm9wcy5idWNrZXQ7XG4gICAgdGhpcy5maWxlS2V5ID0gcHJvcHMuZmlsZUtleTtcbiAgICB0aGlzLm9iamVjdFZlcnNpb24gPSBwcm9wcy5vYmplY3RWZXJzaW9uO1xuICB9XG5cbiAgcHVibGljIGJpbmQoX3Njb3BlOiBDb25zdHJ1Y3QpOiBBcHBsaWNhdGlvbkNvZGVDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBsaWNhdGlvbkNvZGVDb25maWd1cmF0aW9uUHJvcGVydHk6IHtcbiAgICAgICAgYXBwbGljYXRpb25Db2RlQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIGNvZGVDb250ZW50OiB7XG4gICAgICAgICAgICBzM0NvbnRlbnRMb2NhdGlvbjoge1xuICAgICAgICAgICAgICBidWNrZXRBcm46IHRoaXMuYnVja2V0IS5idWNrZXRBcm4sXG4gICAgICAgICAgICAgIGZpbGVLZXk6IHRoaXMuZmlsZUtleSxcbiAgICAgICAgICAgICAgb2JqZWN0VmVyc2lvbjogdGhpcy5vYmplY3RWZXJzaW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvZGVDb250ZW50VHlwZTogJ1pJUEZJTEUnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGJ1Y2tldDogdGhpcy5idWNrZXQhLFxuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgQXNzZXRBcHBsaWNhdGlvbkNvZGUgZXh0ZW5kcyBBcHBsaWNhdGlvbkNvZGUge1xuICBwcml2YXRlIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zPzogczNfYXNzZXRzLkFzc2V0T3B0aW9ucztcbiAgcHJpdmF0ZSBfYXNzZXQ/OiBzM19hc3NldHMuQXNzZXQ7XG5cbiAgY29uc3RydWN0b3IocGF0aDogc3RyaW5nLCBvcHRpb25zPzogczNfYXNzZXRzLkFzc2V0T3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IEFwcGxpY2F0aW9uQ29kZUNvbmZpZyB7XG4gICAgdGhpcy5fYXNzZXQgPSBuZXcgczNfYXNzZXRzLkFzc2V0KHNjb3BlLCAnQ29kZScsIHtcbiAgICAgIHBhdGg6IHRoaXMucGF0aCxcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy5fYXNzZXQuaXNaaXBBcmNoaXZlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFzc2V0IG11c3QgYmUgYSAuemlwIGZpbGUgb3IgYSBkaXJlY3RvcnkgKCR7dGhpcy5wYXRofSlgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXBwbGljYXRpb25Db2RlQ29uZmlndXJhdGlvblByb3BlcnR5OiB7XG4gICAgICAgIGFwcGxpY2F0aW9uQ29kZUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICBjb2RlQ29udGVudDoge1xuICAgICAgICAgICAgczNDb250ZW50TG9jYXRpb246IHtcbiAgICAgICAgICAgICAgYnVja2V0QXJuOiB0aGlzLl9hc3NldC5idWNrZXQuYnVja2V0QXJuLFxuICAgICAgICAgICAgICBmaWxlS2V5OiB0aGlzLl9hc3NldC5zM09iamVjdEtleSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb2RlQ29udGVudFR5cGU6ICdaSVBGSUxFJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBidWNrZXQ6IHRoaXMuX2Fzc2V0LmJ1Y2tldCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0IGFzc2V0KCk6IHMzX2Fzc2V0cy5Bc3NldCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2Fzc2V0O1xuICB9XG5cbiAgZ2V0IGJ1Y2tldCgpOiBzMy5JQnVja2V0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fYXNzZXQ/LmJ1Y2tldDtcbiAgfVxufVxuIl19
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFwcGxpY2F0aW9uLWNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSx1REFBdUQ7QUFvQnZEOztHQUVHO0FBQ0gsTUFBc0IsZUFBZTtJQUNuQzs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQWtCLEVBQUUsT0FBZSxFQUFFLGFBQXNCO1FBQ2xGLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQztZQUMvQixNQUFNO1lBQ04sT0FBTztZQUNQLGFBQWE7U0FDZCxDQUFDLENBQUM7S0FDSjtJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZLEVBQUUsT0FBZ0M7UUFDcEUsT0FBTyxJQUFJLG9CQUFvQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztLQUNoRDs7QUF4QkgsMENBOEJDOzs7QUFRRCxNQUFNLHFCQUFzQixTQUFRLGVBQWU7SUFLakQsWUFBWSxLQUFpQztRQUMzQyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO0tBQzFDO0lBRU0sSUFBSSxDQUFDLE1BQWlCO1FBQzNCLE9BQU87WUFDTCxvQ0FBb0MsRUFBRTtnQkFDcEMsNEJBQTRCLEVBQUU7b0JBQzVCLFdBQVcsRUFBRTt3QkFDWCxpQkFBaUIsRUFBRTs0QkFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFPLENBQUMsU0FBUzs0QkFDakMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPOzRCQUNyQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7eUJBQ2xDO3FCQUNGO29CQUNELGVBQWUsRUFBRSxTQUFTO2lCQUMzQjthQUNGO1lBQ0QsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFPO1NBQ3JCLENBQUM7S0FDSDtDQUNGO0FBRUQsTUFBTSxvQkFBcUIsU0FBUSxlQUFlO0lBS2hELFlBQVksSUFBWSxFQUFFLE9BQWdDO1FBQ3hELEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7S0FDeEI7SUFFTSxJQUFJLENBQUMsS0FBZ0I7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUMvQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixHQUFHLElBQUksQ0FBQyxPQUFPO1NBQ2hCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUM1RTtRQUVELE9BQU87WUFDTCxvQ0FBb0MsRUFBRTtnQkFDcEMsNEJBQTRCLEVBQUU7b0JBQzVCLFdBQVcsRUFBRTt3QkFDWCxpQkFBaUIsRUFBRTs0QkFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVM7NEJBQ3ZDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVc7eUJBQ2pDO3FCQUNGO29CQUNELGVBQWUsRUFBRSxTQUFTO2lCQUMzQjthQUNGO1lBQ0QsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtTQUMzQixDQUFDO0tBQ0g7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7S0FDcEI7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO0tBQzVCO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBrYSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta2luZXNpc2FuYWx5dGljcyc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgczNfYXNzZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1hc3NldHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogVGhlIHJldHVybiB0eXBlIG9mIHtAbGluayBBcHBsaWNhdGlvbkNvZGUuYmluZH0uIFRoaXMgcmVwcmVzZW50c1xuICogQ2xvdWRGb3JtYXRpb24gY29uZmlndXJhdGlvbiBhbmQgYW4gczMgYnVja2V0IGhvbGRpbmcgdGhlIEZsaW5rIGFwcGxpY2F0aW9uXG4gKiBKQVIgZmlsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBsaWNhdGlvbkNvZGVDb25maWcge1xuICAvKipcbiAgICogTG93LWxldmVsIENsb3VkZm9ybWF0aW9uIEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvblByb3BlcnR5XG4gICAqL1xuICByZWFkb25seSBhcHBsaWNhdGlvbkNvZGVDb25maWd1cmF0aW9uUHJvcGVydHk6IGthLkNmbkFwcGxpY2F0aW9uVjIuQXBwbGljYXRpb25Db25maWd1cmF0aW9uUHJvcGVydHk7XG5cbiAgLyoqXG4gICAqIFMzIEJ1Y2tldCB0aGF0IHN0b3JlcyB0aGUgRmxpbmsgYXBwbGljYXRpb24gY29kZVxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0OiBzMy5JQnVja2V0O1xufVxuXG4vKipcbiAqIENvZGUgY29uZmlndXJhdGlvbiBwcm92aWRpbmcgdGhlIGxvY2F0aW9uIHRvIGEgRmxpbmsgYXBwbGljYXRpb24gSkFSIGZpbGUuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBcHBsaWNhdGlvbkNvZGUge1xuICAvKipcbiAgICogUmVmZXJlbmNlIGNvZGUgZnJvbSBhbiBTMyBidWNrZXQuXG4gICAqXG4gICAqIEBwYXJhbSBidWNrZXQgLSBhbiBzMyBidWNrZXRcbiAgICogQHBhcmFtIGZpbGVLZXkgLSBhIGtleSBwb2ludGluZyB0byBhIEZsaW5rIEpBUiBmaWxlXG4gICAqIEBwYXJhbSBvYmplY3RWZXJzaW9uIC0gYW4gb3B0aW9uYWwgdmVyc2lvbiBzdHJpbmcgZm9yIHRoZSBwcm92aWRlZCBmaWxlS2V5XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21CdWNrZXQoYnVja2V0OiBzMy5JQnVja2V0LCBmaWxlS2V5OiBzdHJpbmcsIG9iamVjdFZlcnNpb24/OiBzdHJpbmcpOiBBcHBsaWNhdGlvbkNvZGUge1xuICAgIHJldHVybiBuZXcgQnVja2V0QXBwbGljYXRpb25Db2RlKHtcbiAgICAgIGJ1Y2tldCxcbiAgICAgIGZpbGVLZXksXG4gICAgICBvYmplY3RWZXJzaW9uLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSBjb2RlIGZyb20gYSBsb2NhbCBkaXJlY3RvcnkgY29udGFpbmluZyBhIEZsaW5rIEpBUiBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIGEgbG9jYWwgZGlyZWN0b3J5IHBhdGhcbiAgICogQHBhcm0gb3B0aW9ucyAtIHN0YW5kYXJkIHMzIEFzc2V0T3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQXNzZXQocGF0aDogc3RyaW5nLCBvcHRpb25zPzogczNfYXNzZXRzLkFzc2V0T3B0aW9ucyk6IEFwcGxpY2F0aW9uQ29kZSB7XG4gICAgcmV0dXJuIG5ldyBBc3NldEFwcGxpY2F0aW9uQ29kZShwYXRoLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIG1ldGhvZCB0byBsYXppbHkgYmluZCBhc3NldCByZXNvdXJjZXMgdG8gdGhlIHBhcmVudCBGbGlua0FwcGxpY2F0aW9uLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IEFwcGxpY2F0aW9uQ29kZUNvbmZpZztcbn1cblxuaW50ZXJmYWNlIEJ1Y2tldEFwcGxpY2F0aW9uQ29kZVByb3BzIHtcbiAgcmVhZG9ubHkgYnVja2V0OiBzMy5JQnVja2V0O1xuICByZWFkb25seSBmaWxlS2V5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9iamVjdFZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmNsYXNzIEJ1Y2tldEFwcGxpY2F0aW9uQ29kZSBleHRlbmRzIEFwcGxpY2F0aW9uQ29kZSB7XG4gIHB1YmxpYyByZWFkb25seSBidWNrZXQ/OiBzMy5JQnVja2V0O1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsZUtleTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgb2JqZWN0VmVyc2lvbj86IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogQnVja2V0QXBwbGljYXRpb25Db2RlUHJvcHMpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYnVja2V0ID0gcHJvcHMuYnVja2V0O1xuICAgIHRoaXMuZmlsZUtleSA9IHByb3BzLmZpbGVLZXk7XG4gICAgdGhpcy5vYmplY3RWZXJzaW9uID0gcHJvcHMub2JqZWN0VmVyc2lvbjtcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKF9zY29wZTogQ29uc3RydWN0KTogQXBwbGljYXRpb25Db2RlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXBwbGljYXRpb25Db2RlQ29uZmlndXJhdGlvblByb3BlcnR5OiB7XG4gICAgICAgIGFwcGxpY2F0aW9uQ29kZUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICBjb2RlQ29udGVudDoge1xuICAgICAgICAgICAgczNDb250ZW50TG9jYXRpb246IHtcbiAgICAgICAgICAgICAgYnVja2V0QXJuOiB0aGlzLmJ1Y2tldCEuYnVja2V0QXJuLFxuICAgICAgICAgICAgICBmaWxlS2V5OiB0aGlzLmZpbGVLZXksXG4gICAgICAgICAgICAgIG9iamVjdFZlcnNpb246IHRoaXMub2JqZWN0VmVyc2lvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb2RlQ29udGVudFR5cGU6ICdaSVBGSUxFJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBidWNrZXQ6IHRoaXMuYnVja2V0ISxcbiAgICB9O1xuICB9XG59XG5cbmNsYXNzIEFzc2V0QXBwbGljYXRpb25Db2RlIGV4dGVuZHMgQXBwbGljYXRpb25Db2RlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucz86IHMzX2Fzc2V0cy5Bc3NldE9wdGlvbnM7XG4gIHByaXZhdGUgX2Fzc2V0PzogczNfYXNzZXRzLkFzc2V0O1xuXG4gIGNvbnN0cnVjdG9yKHBhdGg6IHN0cmluZywgb3B0aW9ucz86IHMzX2Fzc2V0cy5Bc3NldE9wdGlvbnMpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMucGF0aCA9IHBhdGg7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiBBcHBsaWNhdGlvbkNvZGVDb25maWcge1xuICAgIHRoaXMuX2Fzc2V0ID0gbmV3IHMzX2Fzc2V0cy5Bc3NldChzY29wZSwgJ0NvZGUnLCB7XG4gICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBpZiAoIXRoaXMuX2Fzc2V0LmlzWmlwQXJjaGl2ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBc3NldCBtdXN0IGJlIGEgLnppcCBmaWxlIG9yIGEgZGlyZWN0b3J5ICgke3RoaXMucGF0aH0pYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcGxpY2F0aW9uQ29kZUNvbmZpZ3VyYXRpb25Qcm9wZXJ0eToge1xuICAgICAgICBhcHBsaWNhdGlvbkNvZGVDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgY29kZUNvbnRlbnQ6IHtcbiAgICAgICAgICAgIHMzQ29udGVudExvY2F0aW9uOiB7XG4gICAgICAgICAgICAgIGJ1Y2tldEFybjogdGhpcy5fYXNzZXQuYnVja2V0LmJ1Y2tldEFybixcbiAgICAgICAgICAgICAgZmlsZUtleTogdGhpcy5fYXNzZXQuczNPYmplY3RLZXksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY29kZUNvbnRlbnRUeXBlOiAnWklQRklMRScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYnVja2V0OiB0aGlzLl9hc3NldC5idWNrZXQsXG4gICAgfTtcbiAgfVxuXG4gIGdldCBhc3NldCgpOiBzM19hc3NldHMuQXNzZXQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9hc3NldDtcbiAgfVxuXG4gIGdldCBidWNrZXQoKTogczMuSUJ1Y2tldCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2Fzc2V0Py5idWNrZXQ7XG4gIH1cbn1cbiJdfQ==
@@ -378,19 +378,18 @@ class Import extends ApplicationBase {
378
378
  */
379
379
  class Application extends ApplicationBase {
380
380
  constructor(scope, id, props) {
381
- var _b, _c, _d;
382
381
  super(scope, id, { physicalName: props.applicationName });
383
382
  try {
384
383
  jsiiDeprecationWarnings._aws_cdk_aws_kinesisanalytics_flink_alpha_ApplicationProps(props);
385
384
  }
386
385
  catch (error) {
387
386
  if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
388
- Error.captureStackTrace(error, this.constructor);
387
+ Error.captureStackTrace(error, Application);
389
388
  }
390
389
  throw error;
391
390
  }
392
391
  validation_1.validateFlinkApplicationProps(props);
393
- this.role = (_b = props.role) !== null && _b !== void 0 ? _b : new iam.Role(this, 'Role', {
392
+ this.role = props.role ?? new iam.Role(this, 'Role', {
394
393
  assumedBy: new iam.ServicePrincipal('kinesisanalytics.amazonaws.com'),
395
394
  });
396
395
  this.grantPrincipal = this.role;
@@ -419,12 +418,12 @@ class Application extends ApplicationBase {
419
418
  parallelismPerKpu: props.parallelismPerKpu,
420
419
  }),
421
420
  applicationSnapshotConfiguration: {
422
- snapshotsEnabled: (_c = props.snapshotsEnabled) !== null && _c !== void 0 ? _c : true,
421
+ snapshotsEnabled: props.snapshotsEnabled ?? true,
423
422
  },
424
423
  },
425
424
  });
426
425
  resource.node.addDependency(this.role);
427
- const logGroup = (_d = props.logGroup) !== null && _d !== void 0 ? _d : new logs.LogGroup(this, 'LogGroup');
426
+ const logGroup = props.logGroup ?? new logs.LogGroup(this, 'LogGroup');
428
427
  const logStream = new logs.LogStream(this, 'LogStream', { logGroup });
429
428
  /* Permit logging */
430
429
  this.role.addToPrincipalPolicy(new iam.PolicyStatement({
@@ -481,7 +480,7 @@ class Application extends ApplicationBase {
481
480
  }
482
481
  exports.Application = Application;
483
482
  _a = JSII_RTTI_SYMBOL_1;
484
- Application[_a] = { fqn: "@aws-cdk/aws-kinesisanalytics-flink-alpha.Application", version: "2.27.0-alpha.0" };
483
+ Application[_a] = { fqn: "@aws-cdk/aws-kinesisanalytics-flink-alpha.Application", version: "2.29.0-alpha.0" };
485
484
  function applicationArnComponents(resourceName) {
486
485
  return {
487
486
  service: 'kinesisanalytics',
@@ -489,4 +488,4 @@ function applicationArnComponents(resourceName) {
489
488
  resourceName,
490
489
  };
491
490
  }
492
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhcHBsaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5REFBeUQ7QUFDekQsMkNBQTJDO0FBQzNDLDJFQUE2RztBQUM3Ryw2Q0FBNkM7QUFDN0Msb0NBQW9DO0FBR3BDLDZFQUF5RTtBQUN6RSwrRkFBMEY7QUFDMUYscURBQWlHO0FBNFVqRzs7O0dBR0c7QUFDSCxNQUFlLGVBQWdCLFNBQVEsSUFBSSxDQUFDLFFBQVE7SUFRbEQsa0ZBQWtGO0lBQzNFLGVBQWUsQ0FBQyxlQUFvQztRQUN6RCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2hELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsVUFBa0IsRUFBRSxLQUFnQztRQUN6RCxPQUFPLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUMzQixTQUFTLEVBQUUsc0JBQXNCO1lBQ2pDLFVBQVU7WUFDVixhQUFhLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNwRCxHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ25CO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILFVBQVUsQ0FBQyxLQUFnQztRQUN6QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDaEU7SUFHRDs7Ozs7Ozs7T0FRRztJQUNILGNBQWMsQ0FBQyxLQUFnQztRQUM3QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFB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QUUsa0JBQWtCO1FBQzNCLFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLFlBQVk7S0FDYixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNsb3Vkd2F0Y2ggZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ2ZuQXBwbGljYXRpb25DbG91ZFdhdGNoTG9nZ2luZ09wdGlvblYyLCBDZm5BcHBsaWNhdGlvblYyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWtpbmVzaXNhbmFseXRpY3MnO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBjb3JlIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Db2RlIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1jb2RlJztcbmltcG9ydCB7IGVudmlyb25tZW50UHJvcGVydGllcyB9IGZyb20gJy4vcHJpdmF0ZS9lbnZpcm9ubWVudC1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IGZsaW5rQXBwbGljYXRpb25Db25maWd1cmF0aW9uIH0gZnJvbSAnLi9wcml2YXRlL2ZsaW5rLWFwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgdmFsaWRhdGVGbGlua0FwcGxpY2F0aW9uUHJvcHMgYXMgdmFsaWRhdGVBcHBsaWNhdGlvblByb3BzIH0gZnJvbSAnLi9wcml2YXRlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgTG9nTGV2ZWwsIE1ldHJpY3NMZXZlbCwgUHJvcGVydHlHcm91cHMsIFJ1bnRpbWUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZXhwcmVzc2luZyB0aGUgcHVibGljIHByb3BlcnRpZXMgb24gYm90aCBhbiBpbXBvcnRlZCBhbmRcbiAqIENESy1jcmVhdGVkIEZsaW5rIGFwcGxpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBcHBsaWNhdGlvbiBleHRlbmRzIGNvcmUuSVJlc291cmNlLCBpYW0uSUdyYW50YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgYXBwbGljYXRpb24gQVJOLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBhcHBsaWNhdGlvbkFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgRmxpbmsgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGFwcGxpY2F0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXBwbGljYXRpb24gSUFNIHJvbGUuXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIGFkZGluZyBhIHBvbGljeSBzdGF0ZW1lbnQgdG8gdGhlIGFwcGxpY2F0aW9uIHJvbGUuXG4gICAqL1xuICBhZGRUb1JvbGVQb2xpY3kocG9saWN5U3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KTogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmV0dXJuIGEgQ2xvdWRXYXRjaCBtZXRyaWMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgRmxpbmsgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBtZXRyaWNOYW1lIFRoZSBuYW1lIG9mIHRoZSBtZXRyaWNcbiAgICogQHBhcmFtIHByb3BzIEN1c3RvbWl6YXRpb24gcHJvcGVydGllc1xuICAgKi9cbiAgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBLaW5lc2lzIFByb2Nlc3NpbmcgVW5pdHMgdGhhdCBhcmUgdXNlZCB0byBydW4geW91ciBzdHJlYW1cbiAgICogcHJvY2Vzc2luZyBhcHBsaWNhdGlvbi4gVGhlIGF2ZXJhZ2UgbnVtYmVyIG9mIEtQVXMgdXNlZCBlYWNoIGhvdXJcbiAgICogZGV0ZXJtaW5lcyB0aGUgYmlsbGluZyBmb3IgeW91ciBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogVW5pdHM6IENvdW50XG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljS3B1cyhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBlbGFwc2VkIGR1cmluZyBhbiBvdXRhZ2UgZm9yIGZhaWxpbmcvcmVjb3ZlcmluZyBqb2JzLlxuICAgKlxuICAgKiBVbml0czogTWlsbGlzZWNvbmRzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljRG93bnRpbWUocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogVGhlIHRpbWUgdGhhdCB0aGUgam9iIGhhcyBiZWVuIHJ1bm5pbmcgd2l0aG91dCBpbnRlcnJ1cHRpb24uXG4gICAqXG4gICAqIFVuaXRzOiBNaWxsaXNlY29uZHNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBzYW1wbGUgY291bnQgb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY1VwdGltZShwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIHRpbWVzIHRoaXMgam9iIGhhcyBmdWxseSByZXN0YXJ0ZWQgc2luY2UgaXQgd2FzXG4gICAqIHN1Ym1pdHRlZC4gVGhpcyBtZXRyaWMgZG9lcyBub3QgbWVhc3VyZSBmaW5lLWdyYWluZWQgcmVzdGFydHMuXG4gICAqXG4gICAqIFVuaXRzOiBDb3VudFxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IHN1bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljRnVsbFJlc3RhcnRzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdGltZXMgY2hlY2twb2ludGluZyBoYXMgZmFpbGVkLlxuICAgKlxuICAgKiBVbml0czogQ291bnRcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBzdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY051bWJlck9mRmFpbGVkQ2hlY2twb2ludHMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogVGhlIHRpbWUgaXQgdG9vayB0byBjb21wbGV0ZSB0aGUgbGFzdCBjaGVja3BvaW50LlxuICAgKlxuICAgKiBVbml0czogTWlsbGlzZWNvbmRzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgbWF4aW11bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljTGFzdENoZWNrcG9pbnREdXJhdGlvbihwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgc2l6ZSBvZiB0aGUgbGFzdCBjaGVja3BvaW50LlxuICAgKlxuICAgKiBVbml0czogQnl0ZXNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBtYXhpbXVtIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNMYXN0Q2hlY2twb2ludFNpemUocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogVGhlIG92ZXJhbGwgcGVyY2VudGFnZSBvZiBDUFUgdXRpbGl6YXRpb24gYWNyb3NzIHRhc2sgbWFuYWdlcnMuIEZvclxuICAgKiBleGFtcGxlLCBpZiB0aGVyZSBhcmUgZml2ZSB0YXNrIG1hbmFnZXJzLCBLaW5lc2lzIERhdGEgQW5hbHl0aWNzIHB1Ymxpc2hlc1xuICAgKiBmaXZlIHNhbXBsZXMgb2YgdGhpcyBtZXRyaWMgcGVyIHJlcG9ydGluZyBpbnRlcnZhbC5cbiAgICpcbiAgICogVW5pdHM6IFBlcmNlbnRhZ2VcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNDcHVVdGlsaXphdGlvbihwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBPdmVyYWxsIGhlYXAgbWVtb3J5IHV0aWxpemF0aW9uIGFjcm9zcyB0YXNrIG1hbmFnZXJzLiBGb3IgZXhhbXBsZSwgaWYgdGhlcmVcbiAgICogYXJlIGZpdmUgdGFzayBtYW5hZ2VycywgS2luZXNpcyBEYXRhIEFuYWx5dGljcyBwdWJsaXNoZXMgZml2ZSBzYW1wbGVzIG9mXG4gICAqIHRoaXMgbWV0cmljIHBlciByZXBvcnRpbmcgaW50ZXJ2YWwuXG4gICAqXG4gICAqIFVuaXRzOiBQZXJjZW50YWdlXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljSGVhcE1lbW9yeVV0aWxpemF0aW9uKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSB0b3RhbCB0aW1lIHNwZW50IHBlcmZvcm1pbmcgb2xkIGdhcmJhZ2UgY29sbGVjdGlvbiBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBVbml0czogTWlsbGlzZWNvbmRzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgc3VtIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNPbGRHZW5lcmF0aW9uR0NUaW1lKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSB0b3RhbCBudW1iZXIgb2Ygb2xkIGdhcmJhZ2UgY29sbGVjdGlvbiBvcGVyYXRpb25zIHRoYXQgaGF2ZSBvY2N1cnJlZFxuICAgKiBhY3Jvc3MgYWxsIHRhc2sgbWFuYWdlcnMuXG4gICAqXG4gICAqIFVuaXRzOiBDb3VudFxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IHN1bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljT2xkR2VuZXJhdGlvbkdDQ291bnQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcblx0ICogVGhlIHRvdGFsIG51bWJlciBvZiBsaXZlIHRocmVhZHMgdXNlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIFVuaXRzOiBDb3VudFxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY1RocmVhZHNDb3VudChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIHJlY29yZHMgdGhpcyBhcHBsaWNhdGlvbiwgb3BlcmF0b3IsIG9yIHRhc2sgaGFzXG4gICAqIHJlY2VpdmVkLlxuICAgKlxuICAgKiBVbml0czogQ291bnRcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY051bVJlY29yZHNJbihwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIHJlY29yZHMgdGhpcyBhcHBsaWNhdGlvbiwgb3BlcmF0b3Igb3IgdGFzayBoYXNcbiAgICogcmVjZWl2ZWQgcGVyIHNlY29uZC5cbiAgICpcbiAgICogVW5pdHM6IENvdW50L1NlY29uZFxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uLCBPcGVyYXRvciwgVGFzaywgUGFyYWxsZWxpc21cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljTnVtUmVjb3Jkc0luUGVyU2Vjb25kKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgcmVjb3JkcyB0aGlzIGFwcGxpY2F0aW9uLCBvcGVyYXRvciBvciB0YXNrIGhhcyBlbWl0dGVkLlxuICAgKlxuICAgKiBVbml0czogQ291bnRcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY051bVJlY29yZHNPdXQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiByZWNvcmRzIHRoaXMgYXBwbGljYXRpb24sIG9wZXJhdG9yIG9yIHRhc2sgaGFzIGVtaXR0ZWRcbiAgICogcGVyIHNlY29uZC5cbiAgICpcbiAgICogVW5pdHM6IENvdW50L1NlY29uZFxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uLCBPcGVyYXRvciwgVGFzaywgUGFyYWxsZWxpc21cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljTnVtUmVjb3Jkc091dFBlclNlY29uZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHJlY29yZHMgdGhpcyBvcGVyYXRvciBvciB0YXNrIGhhcyBkcm9wcGVkIGR1ZSB0byBhcnJpdmluZyBsYXRlLlxuICAgKlxuICAgKiBVbml0czogQ291bnRcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IHN1bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljTnVtTGF0ZVJlY29yZHNEcm9wcGVkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSBsYXN0IHdhdGVybWFyayB0aGlzIGFwcGxpY2F0aW9uL29wZXJhdG9yL3Rhc2svdGhyZWFkIGhhcyByZWNlaXZlZC5cbiAgICpcbiAgICogVW5pdHM6IE1pbGxpc2Vjb25kc1xuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uLCBPcGVyYXRvciwgVGFzaywgUGFyYWxsZWxpc21cbiAgICpcbiAgICogQGRlZmF1bHQgbWF4aW11bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljQ3VycmVudElucHV0V2F0ZXJtYXJrKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSBsYXN0IHdhdGVybWFyayB0aGlzIGFwcGxpY2F0aW9uL29wZXJhdG9yL3Rhc2svdGhyZWFkIGhhcyByZWNlaXZlZC5cbiAgICpcbiAgICogVW5pdHM6IE1pbGxpc2Vjb25kc1xuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uLCBPcGVyYXRvciwgVGFzaywgUGFyYWxsZWxpc21cbiAgICpcbiAgICogQGRlZmF1bHQgbWF4aW11bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljQ3VycmVudE91dHB1dFdhdGVybWFyayhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIG1hbmFnZWQgbWVtb3J5IGN1cnJlbnRseSB1c2VkLlxuICAgKlxuICAgKiBVbml0czogQnl0ZXNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY01hbmFnZWRNZW1vcnlVc2VkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSB0b3RhbCBhbW91bnQgb2YgbWFuYWdlZCBtZW1vcnkuXG4gICAqXG4gICAqIFVuaXRzOiBCeXRlc1xuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uLCBPcGVyYXRvciwgVGFzaywgUGFyYWxsZWxpc21cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljTWFuYWdlZE1lbW9yeVRvdGFsKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIERlcml2ZWQgZnJvbSBtYW5hZ2VkTWVtb3J5VXNlZC9tYW5hZ2VkTWVtb3J5VG90YWwuXG4gICAqXG4gICAqIFVuaXRzOiBQZXJjZW50YWdlXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb24sIE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNNYW5hZ2VkTWVtb3J5VXRpbGl6YXRpb24ocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogVGhlIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgdGhpcyB0YXNrIG9yIG9wZXJhdG9yIGlzIGlkbGUgKGhhcyBubyBkYXRhIHRvXG4gICAqIHByb2Nlc3MpIHBlciBzZWNvbmQuIElkbGUgdGltZSBleGNsdWRlcyBiYWNrIHByZXNzdXJlZCB0aW1lLCBzbyBpZiB0aGUgdGFza1xuICAgKiBpcyBiYWNrIHByZXNzdXJlZCBpdCBpcyBub3QgaWRsZS5cbiAgICpcbiAgICogVW5pdHM6IE1pbGxpc2Vjb25kc1xuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNJZGxlVGltZU1zUGVyU2Vjb25kKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIChpbiBtaWxsaXNlY29uZHMpIHRoaXMgdGFzayBvciBvcGVyYXRvciBpcyBiYWNrIHByZXNzdXJlZCBwZXJcbiAgICogc2Vjb25kLlxuICAgKlxuICAgKiBVbml0czogTWlsbGlzZWNvbmRzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY0JhY2tQcmVzc3VyZWRUaW1lTXNQZXJTZWNvbmQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogVGhlIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgdGhpcyB0YXNrIG9yIG9wZXJhdG9yIGlzIGJ1c3kgKG5laXRoZXIgaWRsZSBub3JcbiAgICogYmFjayBwcmVzc3VyZWQpIHBlciBzZWNvbmQuIENhbiBiZSBOYU4sIGlmIHRoZSB2YWx1ZSBjb3VsZCBub3QgYmVcbiAgICogY2FsY3VsYXRlZC5cbiAgICpcbiAgICogVW5pdHM6IE1pbGxpc2Vjb25kc1xuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNCdXN5VGltZVBlck1zUGVyU2Vjb25kKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG59XG5cbi8qKlxuICogSW1wbGVtZW50cyB0aGUgZnVuY3Rpb25hbGl0eSBzaGFyZWQgYmV0d2VlbiBDREsgY3JlYXRlZCBhbmQgaW1wb3J0ZWRcbiAqIElBcHBsaWNhdGlvbnMuXG4gKi9cbmFic3RyYWN0IGNsYXNzIEFwcGxpY2F0aW9uQmFzZSBleHRlbmRzIGNvcmUuUmVzb3VyY2UgaW1wbGVtZW50cyBJQXBwbGljYXRpb24ge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYXBwbGljYXRpb25Bcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGFwcGxpY2F0aW9uTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvLyBJbXBsZW1lbnQgaWFtLklHcmFudGFibGUgaW50ZXJmYWNlXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgLyoqIEltcGxlbWVudCB0aGUgY29udmVuaWVuY2Uge0BsaW5rIElBcHBsaWNhdGlvbi5hZGRUb1ByaW5jaXBhbFBvbGljeX0gbWV0aG9kLiAqL1xuICBwdWJsaWMgYWRkVG9Sb2xlUG9saWN5KHBvbGljeVN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnJvbGUpIHtcbiAgICAgIHRoaXMucm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShwb2xpY3lTdGF0ZW1lbnQpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIENsb3VkV2F0Y2ggbWV0cmljIGFzc29jaWF0ZWQgd2l0aCB0aGlzIEZsaW5rIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBUaGUgbmFtZSBvZiB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBwcm9wcyBDdXN0b21pemF0aW9uIHByb3BlcnRpZXNcbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvS2luZXNpc0FuYWx5dGljcycsXG4gICAgICBtZXRyaWNOYW1lLFxuICAgICAgZGltZW5zaW9uc01hcDogeyBBcHBsaWNhdGlvbjogdGhpcy5hcHBsaWNhdGlvbk5hbWUgfSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pLmF0dGFjaFRvKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgS2luZXNpcyBQcm9jZXNzaW5nIFVuaXRzIHRoYXQgYXJlIHVzZWQgdG8gcnVuIHlvdXIgc3RyZWFtXG4gICAqIHByb2Nlc3NpbmcgYXBwbGljYXRpb24uIFRoZSBhdmVyYWdlIG51bWJlciBvZiBLUFVzIHVzZWQgZWFjaCBob3VyXG4gICAqIGRldGVybWluZXMgdGhlIGJpbGxpbmcgZm9yIHlvdXIgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIFVuaXRzOiBDb3VudFxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY0twdXMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0tQVXMnLCB7IHN0YXRpc3RpYzogJ0F2ZXJhZ2UnLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGVsYXBzZWQgZHVyaW5nIGFuIG91dGFnZSBmb3IgZmFpbGluZy9yZWNvdmVyaW5nIGpvYnMuXG4gICAqXG4gICAqIFVuaXRzOiBNaWxsaXNlY29uZHNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNEb3dudGltZShwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnZG93bnRpbWUnLCB7IHN0YXRpc3RpYzogJ0F2ZXJhZ2UnLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGltZSB0aGF0IHRoZSBqb2IgaGFzIGJlZW4gcnVubmluZyB3aXRob3V0IGludGVycnVwdGlvbi5cbiAgICpcbiAgICogVW5pdHM6IE1pbGxpc2Vjb25kc1xuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY1VwdGltZShwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygndXB0aW1lJywgeyBzdGF0aXN0aWM6ICdBdmVyYWdlJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiB0aW1lcyB0aGlzIGpvYiBoYXMgZnVsbHkgcmVzdGFydGVkIHNpbmNlIGl0IHdhc1xuICAgKiBzdWJtaXR0ZWQuIFRoaXMgbWV0cmljIGRvZXMgbm90IG1lYXN1cmUgZmluZS1ncmFpbmVkIHJlc3RhcnRzLlxuICAgKlxuICAgKiBVbml0czogQ291bnRcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBzdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY0Z1bGxSZXN0YXJ0cyhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnZnVsbFJlc3RhcnRzJywgeyBzdGF0aXN0aWM6ICdTdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHRpbWVzIGNoZWNrcG9pbnRpbmcgaGFzIGZhaWxlZC5cbiAgICpcbiAgICogVW5pdHM6IENvdW50XG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgc3VtIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNOdW1iZXJPZkZhaWxlZENoZWNrcG9pbnRzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdudW1iZXJPZkZhaWxlZENoZWNrcG9pbnRzJywgeyBzdGF0aXN0aWM6ICdTdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBpdCB0b29rIHRvIGNvbXBsZXRlIHRoZSBsYXN0IGNoZWNrcG9pbnQuXG4gICAqXG4gICAqIFVuaXRzOiBNaWxsaXNlY29uZHNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBtYXhpbXVtIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNMYXN0Q2hlY2twb2ludER1cmF0aW9uKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdsYXN0Q2hlY2twb2ludER1cmF0aW9uJywgeyBzdGF0aXN0aWM6ICdNYXhpbXVtJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRvdGFsIHNpemUgb2YgdGhlIGxhc3QgY2hlY2twb2ludC5cbiAgICpcbiAgICogVW5pdHM6IEJ5dGVzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgbWF4aW11bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljTGFzdENoZWNrcG9pbnRTaXplKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdsYXN0Q2hlY2twb2ludFNpemUnLCB7IHN0YXRpc3RpYzogJ01heGltdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgb3ZlcmFsbCBwZXJjZW50YWdlIG9mIENQVSB1dGlsaXphdGlvbiBhY3Jvc3MgdGFzayBtYW5hZ2Vycy4gRm9yXG4gICAqIGV4YW1wbGUsIGlmIHRoZXJlIGFyZSBmaXZlIHRhc2sgbWFuYWdlcnMsIEtpbmVzaXMgRGF0YSBBbmFseXRpY3MgcHVibGlzaGVzXG4gICAqIGZpdmUgc2FtcGxlcyBvZiB0aGlzIG1ldHJpYyBwZXIgcmVwb3J0aW5nIGludGVydmFsLlxuICAgKlxuICAgKiBVbml0czogUGVyY2VudGFnZVxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY0NwdVV0aWxpemF0aW9uKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdjcHVVdGlsaXphdGlvbicsIHsgc3RhdGlzdGljOiAnQXZlcmFnZScsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJhbGwgaGVhcCBtZW1vcnkgdXRpbGl6YXRpb24gYWNyb3NzIHRhc2sgbWFuYWdlcnMuIEZvciBleGFtcGxlLCBpZiB0aGVyZVxuICAgKiBhcmUgZml2ZSB0YXNrIG1hbmFnZXJzLCBLaW5lc2lzIERhdGEgQW5hbHl0aWNzIHB1Ymxpc2hlcyBmaXZlIHNhbXBsZXMgb2ZcbiAgICogdGhpcyBtZXRyaWMgcGVyIHJlcG9ydGluZyBpbnRlcnZhbC5cbiAgICpcbiAgICogVW5pdHM6IFBlcmNlbnRhZ2VcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNIZWFwTWVtb3J5VXRpbGl6YXRpb24ocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ2hlYXBNZW1vcnlVdGlsaXphdGlvbicsIHsgc3RhdGlzdGljOiAnQXZlcmFnZScsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0b3RhbCB0aW1lIHNwZW50IHBlcmZvcm1pbmcgb2xkIGdhcmJhZ2UgY29sbGVjdGlvbiBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBVbml0czogTWlsbGlzZWNvbmRzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgc3VtIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNPbGRHZW5lcmF0aW9uR0NUaW1lKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdvbGRHZW5lcmF0aW9uR0NUaW1lJywgeyBzdGF0aXN0aWM6ICdTdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIG9sZCBnYXJiYWdlIGNvbGxlY3Rpb24gb3BlcmF0aW9ucyB0aGF0IGhhdmUgb2NjdXJyZWRcbiAgICogYWNyb3NzIGFsbCB0YXNrIG1hbmFnZXJzLlxuICAgKlxuICAgKiBVbml0czogQ291bnRcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBzdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY09sZEdlbmVyYXRpb25HQ0NvdW50KHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdvbGRHZW5lcmF0aW9uR0NDb3VudCcsIHsgc3RhdGlzdGljOiAnU3VtJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiBsaXZlIHRocmVhZHMgdXNlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIFVuaXRzOiBDb3VudFxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY1RocmVhZHNDb3VudChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygndGhyZWFkc0NvdW50JywgeyBzdGF0aXN0aWM6ICdBdmVyYWdlJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiByZWNvcmRzIHRoaXMgYXBwbGljYXRpb24sIG9wZXJhdG9yLCBvciB0YXNrIGhhc1xuICAgKiByZWNlaXZlZC5cbiAgICpcbiAgICogVW5pdHM6IENvdW50XG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb24sIE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNOdW1SZWNvcmRzSW4ocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ251bVJlY29yZHNJbicsIHsgc3RhdGlzdGljOiAnQXZlcmFnZScsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgcmVjb3JkcyB0aGlzIGFwcGxpY2F0aW9uLCBvcGVyYXRvciBvciB0YXNrIGhhcyByZWNlaXZlZFxuICAgKiBwZXIgc2Vjb25kLlxuICAgKlxuICAgKiBVbml0czogQ291bnQvU2Vjb25kXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb24sIE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNOdW1SZWNvcmRzSW5QZXJTZWNvbmQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ251bVJlY29yZHNJblBlclNlY29uZCcsIHsgc3RhdGlzdGljOiAnQXZlcmFnZScsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgcmVjb3JkcyB0aGlzIGFwcGxpY2F0aW9uLCBvcGVyYXRvciBvciB0YXNrIGhhcyBlbWl0dGVkLlxuICAgKlxuICAgKiBVbml0czogQ291bnRcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY051bVJlY29yZHNPdXQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ251bVJlY29yZHNPdXQnLCB7IHN0YXRpc3RpYzogJ0F2ZXJhZ2UnLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIHJlY29yZHMgdGhpcyBhcHBsaWNhdGlvbiwgb3BlcmF0b3Igb3IgdGFzayBoYXMgZW1pdHRlZFxuICAgKiBwZXIgc2Vjb25kLlxuICAgKlxuICAgKiBVbml0czogQ291bnQvU2Vjb25kXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb24sIE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNOdW1SZWNvcmRzT3V0UGVyU2Vjb25kKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdudW1SZWNvcmRzT3V0UGVyU2Vjb25kJywgeyBzdGF0aXN0aWM6ICdBdmVyYWdlJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiByZWNvcmRzIHRoaXMgb3BlcmF0b3Igb3IgdGFzayBoYXMgZHJvcHBlZCBkdWUgdG8gYXJyaXZpbmdcbiAgICogbGF0ZS5cbiAgICpcbiAgICogVW5pdHM6IENvdW50XG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb24sIE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBzdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY051bUxhdGVSZWNvcmRzRHJvcHBlZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnbnVtTGF0ZVJlY29yZHNEcm9wcGVkJywgeyBzdGF0aXN0aWM6ICdTdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbGFzdCB3YXRlcm1hcmsgdGhpcyBhcHBsaWNhdGlvbi9vcGVyYXRvci90YXNrL3RocmVhZCBoYXMgcmVjZWl2ZWQuXG4gICAqXG4gICAqIFVuaXRzOiBNaWxsaXNlY29uZHNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IG1heGltdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY0N1cnJlbnRJbnB1dFdhdGVybWFyayhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnY3VycmVudElucHV0V2F0ZXJtYXJrJywgeyBzdGF0aXN0aWM6ICdNYXhpbXVtJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxhc3Qgd2F0ZXJtYXJrIHRoaXMgYXBwbGljYXRpb24vb3BlcmF0b3IvdGFzay90aHJlYWQgaGFzIHJlY2VpdmVkLlxuICAgKlxuICAgKiBVbml0czogTWlsbGlzZWNvbmRzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb24sIE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBtYXhpbXVtIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNDdXJyZW50T3V0cHV0V2F0ZXJtYXJrKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdjdXJyZW50T3V0cHV0V2F0ZXJtYXJrJywgeyBzdGF0aXN0aWM6ICdNYXhpbXVtJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiBtYW5hZ2VkIG1lbW9yeSBjdXJyZW50bHkgdXNlZC5cbiAgICpcbiAgICogVW5pdHM6IEJ5dGVzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb24sIE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNNYW5hZ2VkTWVtb3J5VXNlZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnbWFuYWdlZE1lbW9yeVVzZWQnLCB7IHN0YXRpc3RpYzogJ0F2ZXJhZ2UnLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgYW1vdW50IG9mIG1hbmFnZWQgbWVtb3J5LlxuICAgKlxuICAgKiBVbml0czogQnl0ZXNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY01hbmFnZWRNZW1vcnlUb3RhbChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnbWFuYWdlZE1lbW9yeVRvdGFsJywgeyBzdGF0aXN0aWM6ICdBdmVyYWdlJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVyaXZlZCBmcm9tIG1hbmFnZWRNZW1vcnlVc2VkL21hbmFnZWRNZW1vcnlUb3RhbC5cbiAgICpcbiAgICogVW5pdHM6IFBlcmNlbnRhZ2VcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY01hbmFnZWRNZW1vcnlVdGlsaXphdGlvbihwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnbWFuYWdlZE1lbW9yeVV0aWxpemF0aW9uJywgeyBzdGF0aXN0aWM6ICdBdmVyYWdlJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgdGhpcyB0YXNrIG9yIG9wZXJhdG9yIGlzIGlkbGUgKGhhcyBubyBkYXRhIHRvXG4gICAqIHByb2Nlc3MpIHBlciBzZWNvbmQuIElkbGUgdGltZSBleGNsdWRlcyBiYWNrIHByZXNzdXJlZCB0aW1lLCBzbyBpZiB0aGUgdGFza1xuICAgKiBpcyBiYWNrIHByZXNzdXJlZCBpdCBpcyBub3QgaWRsZS5cbiAgICpcbiAgICogVW5pdHM6IE1pbGxpc2Vjb25kc1xuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNJZGxlVGltZU1zUGVyU2Vjb25kKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdpZGxlVGltZU1zUGVyU2Vjb25kJywgeyBzdGF0aXN0aWM6ICdBdmVyYWdlJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgdGhpcyB0YXNrIG9yIG9wZXJhdG9yIGlzIGJhY2sgcHJlc3N1cmVkIHBlclxuICAgKiBzZWNvbmQuXG4gICAqXG4gICAqIFVuaXRzOiBNaWxsaXNlY29uZHNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBPcGVyYXRvciwgVGFzaywgUGFyYWxsZWxpc21cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljQmFja1ByZXNzdXJlZFRpbWVNc1BlclNlY29uZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnYmFja1ByZXNzdXJlZFRpbWVNc1BlclNlY29uZCcsIHsgc3RhdGlzdGljOiAnQXZlcmFnZScsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIChpbiBtaWxsaXNlY29uZHMpIHRoaXMgdGFzayBvciBvcGVyYXRvciBpcyBidXN5IChuZWl0aGVyIGlkbGUgbm9yXG4gICAqIGJhY2sgcHJlc3N1cmVkKSBwZXIgc2Vjb25kLiBDYW4gYmUgTmFOLCBpZiB0aGUgdmFsdWUgY291bGQgbm90IGJlXG4gICAqIGNhbGN1bGF0ZWQuXG4gICAqXG4gICAqIFVuaXRzOiBNaWxsaXNlY29uZHNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBPcGVyYXRvciwgVGFzaywgUGFyYWxsZWxpc21cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljQnVzeVRpbWVQZXJNc1BlclNlY29uZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnYnVzeVRpbWVQZXJNc1BlclNlY29uZCcsIHsgc3RhdGlzdGljOiAnQXZlcmFnZScsIC4uLnByb3BzIH0pO1xuICB9XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIGNyZWF0aW5nIGFuIEFwcGxpY2F0aW9uIGNvbnN0cnVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBsaWNhdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIEEgbmFtZSBmb3IgeW91ciBBcHBsaWNhdGlvbiB0aGF0IGlzIHVuaXF1ZSB0byBhbiBBV1MgYWNjb3VudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBDbG91ZEZvcm1hdGlvbi1nZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgYXBwbGljYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgRmxpbmsgdmVyc2lvbiB0byB1c2UgZm9yIHRoaXMgYXBwbGljYXRpb24uXG4gICAqL1xuICByZWFkb25seSBydW50aW1lOiBSdW50aW1lO1xuXG4gIC8qKlxuICAgKiBUaGUgRmxpbmsgY29kZSBhc3NldCB0byBydW4uXG4gICAqL1xuICByZWFkb25seSBjb2RlOiBBcHBsaWNhdGlvbkNvZGU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY2hlY2twb2ludGluZyBpcyBlbmFibGVkIHdoaWxlIHlvdXIgYXBwbGljYXRpb24gcnVucy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2twb2ludGluZ0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgaW50ZXJ2YWwgYmV0d2VlbiBjaGVja3BvaW50cy5cbiAgICpcbiAgICogQGRlZmF1bHQgMSBtaW51dGVcbiAgICovXG4gIHJlYWRvbmx5IGNoZWNrcG9pbnRJbnRlcnZhbD86IGNvcmUuRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIGFtb3VudCBvZiB0aW1lIGluIHRvIHdhaXQgYWZ0ZXIgYSBjaGVja3BvaW50IGZpbmlzaGVzIHRvIHN0YXJ0XG4gICAqIGEgbmV3IGNoZWNrcG9pbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IDUgc2Vjb25kc1xuICAgKi9cbiAgcmVhZG9ubHkgbWluUGF1c2VCZXR3ZWVuQ2hlY2twb2ludHM/OiBjb3JlLkR1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbGV2ZWwgb2YgbG9nIHZlcmJvc2l0eSBmcm9tIHRoZSBGbGluayBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgRmxpbmtMb2dMZXZlbC5JTkZPXG4gICAqL1xuICByZWFkb25seSBsb2dMZXZlbD86IExvZ0xldmVsO1xuXG4gIC8qKlxuICAgKiBEZXNjcmliZXMgdGhlIGdyYW51bGFyaXR5IG9mIHRoZSBDbG91ZFdhdGNoIG1ldHJpY3MgZm9yIGFuIGFwcGxpY2F0aW9uLlxuICAgKiBVc2UgY2F1dGlvbiB3aXRoIFBhcmFsbGVsaXNtIGxldmVsIG1ldHJpY3MuIFBhcmFsbGVsaXNtIGdyYW51bGFyaXR5IGxvZ3NcbiAgICogbWV0cmljcyBmb3IgZWFjaCBwYXJhbGxlbCB0aHJlYWQgYW5kIGNhbiBxdWlja2x5IGJlY29tZSBleHBlbnNpdmUgd2hlblxuICAgKiBwYXJhbGxlbGlzbSBpcyBoaWdoIChlLmcuID4gNjQpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBNZXRyaWNzTGV2ZWwuQVBQTElDQVRJT05cbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY3NMZXZlbD86IE1ldHJpY3NMZXZlbDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgS2luZXNpcyBEYXRhIEFuYWx5dGljcyBzZXJ2aWNlIGNhbiBpbmNyZWFzZSB0aGUgcGFyYWxsZWxpc20gb2ZcbiAgICogdGhlIGFwcGxpY2F0aW9uIGluIHJlc3BvbnNlIHRvIHJlc291cmNlIHVzYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhdXRvU2NhbGluZ0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5pdGlhbCBwYXJhbGxlbGlzbSBmb3IgdGhlIGFwcGxpY2F0aW9uLiBLaW5lc2lzIERhdGEgQW5hbHl0aWNzIGNhblxuICAgKiBzdG9wIHRoZSBhcHAsIGluY3JlYXNlIHRoZSBwYXJhbGxlbGlzbSwgYW5kIHN0YXJ0IHRoZSBhcHAgYWdhaW4gaWZcbiAgICogYXV0b1NjYWxpbmdFbmFibGVkIGlzIHRydWUgKHRoZSBkZWZhdWx0IHZhbHVlKS5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYWxsZWxpc20/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBGbGluayBwYXJhbGxlbGlzbSBhbGxvd2VkIHBlciBLaW5lc2lzIFByb2Nlc3NpbmcgVW5pdCAoS1BVKS5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYWxsZWxpc21QZXJLcHU/OiBudW1iZXJcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBGbGluayBzbmFwc2hvdHMgYXJlIGVuYWJsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNuYXBzaG90c0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIFByb3BlcnR5R3JvdXBzLiBZb3UgY2FuIHVzZSB0aGVzZSBwcm9wZXJ0eSBncm91cHMgdG8gcGFzc1xuICAgKiBhcmJpdHJhcnkgcnVudGltZSBjb25maWd1cmF0aW9uIHZhbHVlcyB0byB5b3VyIEZsaW5rIGFwcC5cbiAgICpcbiAgICogQGRlZmF1bHQgTm8gcHJvcGVydHkgZ3JvdXAgY29uZmlndXJhdGlvbiBwcm92aWRlZCB0byB0aGUgRmxpbmsgYXBwXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0eUdyb3Vwcz86IFByb3BlcnR5R3JvdXBzO1xuXG4gIC8qKlxuICAgKiBBIHJvbGUgdG8gdXNlIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvIHlvdXIgYXBwbGljYXRpb24uIFByZWZlciBvbWl0dGluZ1xuICAgKiB0aGlzIHByb3BlcnR5IGFuZCB1c2luZyB0aGUgZGVmYXVsdCByb2xlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmV3IFJvbGUgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlIGEgUmVtb3ZhbFBvbGljeSB0byBvdmVycmlkZSB0aGUgZGVmYXVsdC5cbiAgICpcbiAgICogQGRlZmF1bHQgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogY29yZS5SZW1vdmFsUG9saWN5O1xuXG4gIC8qKlxuICAgKiBUaGUgbG9nIGdyb3VwIHRvIHNlbmQgbG9nIGVudHJpZXMgdG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IENESydzIGRlZmF1bHQgTG9nR3JvdXBcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG59XG5cbi8qKlxuICogQW4gaW1wb3J0ZWQgRmxpbmsgYXBwbGljYXRpb24uXG4gKi9cbmNsYXNzIEltcG9ydCBleHRlbmRzIEFwcGxpY2F0aW9uQmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG4gIHB1YmxpYyByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuICBwdWJsaWMgcmVhZG9ubHkgYXBwbGljYXRpb25OYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBhcHBsaWNhdGlvbkFybjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiB7IGFwcGxpY2F0aW9uQXJuOiBzdHJpbmcsIGFwcGxpY2F0aW9uTmFtZTogc3RyaW5nIH0pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gSW1wb3J0ZWQgYXBwbGljYXRpb25zIGhhdmUgbm8gYXNzb2NpYXRlZCByb2xlIG9yIGdyYW50UHJpbmNpcGFsXG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IG5ldyBpYW0uVW5rbm93blByaW5jaXBhbCh7IHJlc291cmNlOiB0aGlzIH0pO1xuICAgIHRoaXMucm9sZSA9IHVuZGVmaW5lZDtcblxuICAgIHRoaXMuYXBwbGljYXRpb25Bcm4gPSBhdHRycy5hcHBsaWNhdGlvbkFybjtcbiAgICB0aGlzLmFwcGxpY2F0aW9uTmFtZSA9IGF0dHJzLmFwcGxpY2F0aW9uTmFtZTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBMMiBjb25zdHJ1Y3QgZm9yIEZsaW5rIEtpbmVzaXMgRGF0YSBBcHBsaWNhdGlvbnMuXG4gKlxuICogQHJlc291cmNlIEFXUzo6S2luZXNpc0FuYWx5dGljc1YyOjpBcHBsaWNhdGlvblxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uIGV4dGVuZHMgQXBwbGljYXRpb25CYXNlIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBGbGluayBhcHBsaWNhdGlvbiBkZWZpbmVkIG91dHNpZGUgb2YgQ0RLIGNvZGUgYnlcbiAgICogYXBwbGljYXRpb25OYW1lLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQXBwbGljYXRpb25OYW1lKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGFwcGxpY2F0aW9uTmFtZTogc3RyaW5nKTogSUFwcGxpY2F0aW9uIHtcbiAgICBjb25zdCBhcHBsaWNhdGlvbkFybiA9IGNvcmUuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybihhcHBsaWNhdGlvbkFybkNvbXBvbmVudHMoYXBwbGljYXRpb25OYW1lKSk7XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHsgYXBwbGljYXRpb25Bcm4sIGFwcGxpY2F0aW9uTmFtZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgYXBwbGljYXRpb24gZGVmaW5lZCBvdXRzaWRlIG9mIENESyBjb2RlIGJ5XG4gICAqIGFwcGxpY2F0aW9uQXJuLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQXBwbGljYXRpb25Bcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXBwbGljYXRpb25Bcm46IHN0cmluZyk6IElBcHBsaWNhdGlvbiB7XG4gICAgY29uc3QgYXBwbGljYXRpb25OYW1lID0gY29yZS5TdGFjay5vZihzY29wZSkuc3BsaXRBcm4oYXBwbGljYXRpb25Bcm4sIGNvcmUuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLnJlc291cmNlTmFtZTtcbiAgICBpZiAoIWFwcGxpY2F0aW9uTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBhcHBsaWNhdGlvbkFybiBmb3IgZnJvbUFwcGxpY2F0aW9uQXJuICgke2FwcGxpY2F0aW9uQXJufSkgbXVzdCBpbmNsdWRlIHJlc291cmNlIG5hbWVgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHsgYXBwbGljYXRpb25Bcm4sIGFwcGxpY2F0aW9uTmFtZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBhcHBsaWNhdGlvbkFybjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgYXBwbGljYXRpb25OYW1lOiBzdHJpbmc7XG5cbiAgLy8gUm9sZSBtdXN0IGJlIG9wdGlvbmFsIGZvciBKU0lJIGNvbXBhdGliaWxpdHlcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgcHVibGljIHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXBwbGljYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgeyBwaHlzaWNhbE5hbWU6IHByb3BzLmFwcGxpY2F0aW9uTmFtZSB9KTtcbiAgICB2YWxpZGF0ZUFwcGxpY2F0aW9uUHJvcHMocHJvcHMpO1xuXG4gICAgdGhpcy5yb2xlID0gcHJvcHMucm9sZSA/PyBuZXcgaWFtLlJvbGUodGhpcywgJ1JvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgna2luZXNpc2FuYWx5dGljcy5hbWF6b25hd3MuY29tJyksXG4gICAgfSk7XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXMucm9sZTtcblxuICAgIC8vIFBlcm1pdCBtZXRyaWMgcHVibGlzaGluZyB0byBDbG91ZFdhdGNoXG4gICAgdGhpcy5yb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFsnY2xvdWR3YXRjaDpQdXRNZXRyaWNEYXRhJ10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGNvZGUgPSBwcm9wcy5jb2RlLmJpbmQodGhpcyk7XG4gICAgY29kZS5idWNrZXQuZ3JhbnRSZWFkKHRoaXMpO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ2ZuQXBwbGljYXRpb25WMih0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBhcHBsaWNhdGlvbk5hbWU6IHByb3BzLmFwcGxpY2F0aW9uTmFtZSxcbiAgICAgIHJ1bnRpbWVFbnZpcm9ubWVudDogcHJvcHMucnVudGltZS52YWx1ZSxcbiAgICAgIHNlcnZpY2VFeGVjdXRpb25Sb2xlOiB0aGlzLnJvbGUucm9sZUFybixcbiAgICAgIGFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAuLi5jb2RlLmFwcGxpY2F0aW9uQ29kZUNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSxcbiAgICAgICAgZW52aXJvbm1lbnRQcm9wZXJ0aWVzOiBlbnZpcm9ubWVudFByb3BlcnRpZXMocHJvcHMucHJvcGVydHlHcm91cHMpLFxuICAgICAgICBmbGlua0FwcGxpY2F0aW9uQ29uZmlndXJhdGlvbjogZmxpbmtBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24oe1xuICAgICAgICAgIGNoZWNrcG9pbnRpbmdFbmFibGVkOiBwcm9wcy5jaGVja3BvaW50aW5nRW5hYmxlZCxcbiAgICAgICAgICBjaGVja3BvaW50SW50ZXJ2YWw6IHByb3BzLmNoZWNrcG9pbnRJbnRlcnZhbCxcbiAgICAgICAgICBtaW5QYXVzZUJldHdlZW5DaGVja3BvaW50czogcHJvcHMubWluUGF1c2VCZXR3ZWVuQ2hlY2twb2ludHMsXG4gICAgICAgICAgbG9nTGV2ZWw6IHByb3BzLmxvZ0xldmVsLFxuICAgICAgICAgIG1ldHJpY3NMZXZlbDogcHJvcHMubWV0cmljc0xldmVsLFxuICAgICAgICAgIGF1dG9TY2FsaW5nRW5hYmxlZDogcHJvcHMuYXV0b1NjYWxpbmdFbmFibGVkLFxuICAgICAgICAgIHBhcmFsbGVsaXNtOiBwcm9wcy5wYXJhbGxlbGlzbSxcbiAgICAgICAgICBwYXJhbGxlbGlzbVBlcktwdTogcHJvcHMucGFyYWxsZWxpc21QZXJLcHUsXG4gICAgICAgIH0pLFxuICAgICAgICBhcHBsaWNhdGlvblNuYXBzaG90Q29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIHNuYXBzaG90c0VuYWJsZWQ6IHByb3BzLnNuYXBzaG90c0VuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmVzb3VyY2Uubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMucm9sZSk7XG5cbiAgICBjb25zdCBsb2dHcm91cCA9IHByb3BzLmxvZ0dyb3VwID8/IG5ldyBsb2dzLkxvZ0dyb3VwKHRoaXMsICdMb2dHcm91cCcpO1xuICAgIGNvbnN0IGxvZ1N0cmVhbSA9IG5ldyBsb2dzLkxvZ1N0cmVhbSh0aGlzLCAnTG9nU3RyZWFtJywgeyBsb2dHcm91cCB9KTtcblxuICAgIC8qIFBlcm1pdCBsb2dnaW5nICovXG5cbiAgICB0aGlzLnJvbGUuYWRkVG9QcmluY2lwYWxQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogWydsb2dzOkRlc2NyaWJlTG9nR3JvdXBzJ10sXG4gICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgY29yZS5TdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgICAgIHNlcnZpY2U6ICdsb2dzJyxcbiAgICAgICAgICByZXNvdXJjZTogJ2xvZy1ncm91cCcsXG4gICAgICAgICAgYXJuRm9ybWF0OiBjb3JlLkFybkZvcm1hdC5DT0xPTl9SRVNPVVJDRV9OQU1FLFxuICAgICAgICAgIHJlc291cmNlTmFtZTogJyonLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSkpO1xuXG4gICAgdGhpcy5yb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFsnbG9nczpEZXNjcmliZUxvZ1N0cmVhbXMnXSxcbiAgICAgIHJlc291cmNlczogW2xvZ0dyb3VwLmxvZ0dyb3VwQXJuXSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCBsb2dTdHJlYW1Bcm4gPSBgYXJuOiR7Y29yZS5Bd3MuUEFSVElUSU9OfTpsb2dzOiR7Y29yZS5Bd3MuUkVHSU9OfToke2NvcmUuQXdzLkFDQ09VTlRfSUR9OmxvZy1ncm91cDoke2xvZ0dyb3VwLmxvZ0dyb3VwTmFtZX06bG9nLXN0cmVhbToke2xvZ1N0cmVhbS5sb2dTdHJlYW1OYW1lfWA7XG4gICAgdGhpcy5yb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFsnbG9nczpQdXRMb2dFdmVudHMnXSxcbiAgICAgIHJlc291cmNlczogW2xvZ1N0cmVhbUFybl0sXG4gICAgfSkpO1xuXG4gICAgbmV3IENmbkFwcGxpY2F0aW9uQ2xvdWRXYXRjaExvZ2dpbmdPcHRpb25WMih0aGlzLCAnTG9nZ2luZ09wdGlvbicsIHtcbiAgICAgIGFwcGxpY2F0aW9uTmFtZTogcmVzb3VyY2UucmVmLFxuICAgICAgY2xvdWRXYXRjaExvZ2dpbmdPcHRpb246IHtcbiAgICAgICAgbG9nU3RyZWFtQXJuLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuYXBwbGljYXRpb25OYW1lID0gdGhpcy5nZXRSZXNvdXJjZU5hbWVBdHRyaWJ1dGUocmVzb3VyY2UucmVmKTtcbiAgICB0aGlzLmFwcGxpY2F0aW9uQXJuID0gdGhpcy5nZXRSZXNvdXJjZUFybkF0dHJpYnV0ZShcbiAgICAgIGNvcmUuU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKGFwcGxpY2F0aW9uQXJuQ29tcG9uZW50cyhyZXNvdXJjZS5yZWYpKSxcbiAgICAgIGFwcGxpY2F0aW9uQXJuQ29tcG9uZW50cyh0aGlzLnBoeXNpY2FsTmFtZSksXG4gICAgKTtcblxuICAgIHJlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5LCB7XG4gICAgICBkZWZhdWx0OiBjb3JlLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhcHBsaWNhdGlvbkFybkNvbXBvbmVudHMocmVzb3VyY2VOYW1lOiBzdHJpbmcpOiBjb3JlLkFybkNvbXBvbmVudHMge1xuICByZXR1cm4ge1xuICAgIHNlcnZpY2U6ICdraW5lc2lzYW5hbHl0aWNzJyxcbiAgICByZXNvdXJjZTogJ2FwcGxpY2F0aW9uJyxcbiAgICByZXNvdXJjZU5hbWUsXG4gIH07XG59XG4iXX0=
491
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhcHBsaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5REFBeUQ7QUFDekQsMkNBQTJDO0FBQzNDLDJFQUE2RztBQUM3Ryw2Q0FBNkM7QUFDN0Msb0NBQW9DO0FBR3BDLDZFQUF5RTtBQUN6RSwrRkFBMEY7QUFDMUYscURBQWlHO0FBNFVqRzs7O0dBR0c7QUFDSCxNQUFlLGVBQWdCLFNBQVEsSUFBSSxDQUFDLFFBQVE7SUFRbEQsa0ZBQWtGO0lBQzNFLGVBQWUsQ0FBQyxlQUFvQztRQUN6RCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2hELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsVUFBa0IsRUFBRSxLQUFnQztRQUN6RCxPQUFPLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUMzQixTQUFTLEVBQUUsc0JBQXNCO1lBQ2pDLFVBQVU7WUFDVixhQUFhLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNwRCxHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ25CO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILFVBQVUsQ0FBQyxLQUFnQztRQUN6QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDaEU7SUFHRDs7Ozs7Ozs7T0FRRztJQUNILGNBQWMsQ0FBQyxLQUFnQztRQUM3QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFB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TCxPQUFPLEVBQUUsa0JBQWtCO1FBQzNCLFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLFlBQVk7S0FDYixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNsb3Vkd2F0Y2ggZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ2ZuQXBwbGljYXRpb25DbG91ZFdhdGNoTG9nZ2luZ09wdGlvblYyLCBDZm5BcHBsaWNhdGlvblYyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWtpbmVzaXNhbmFseXRpY3MnO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBjb3JlIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Db2RlIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1jb2RlJztcbmltcG9ydCB7IGVudmlyb25tZW50UHJvcGVydGllcyB9IGZyb20gJy4vcHJpdmF0ZS9lbnZpcm9ubWVudC1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IGZsaW5rQXBwbGljYXRpb25Db25maWd1cmF0aW9uIH0gZnJvbSAnLi9wcml2YXRlL2ZsaW5rLWFwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgdmFsaWRhdGVGbGlua0FwcGxpY2F0aW9uUHJvcHMgYXMgdmFsaWRhdGVBcHBsaWNhdGlvblByb3BzIH0gZnJvbSAnLi9wcml2YXRlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgTG9nTGV2ZWwsIE1ldHJpY3NMZXZlbCwgUHJvcGVydHlHcm91cHMsIFJ1bnRpbWUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZXhwcmVzc2luZyB0aGUgcHVibGljIHByb3BlcnRpZXMgb24gYm90aCBhbiBpbXBvcnRlZCBhbmRcbiAqIENESy1jcmVhdGVkIEZsaW5rIGFwcGxpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBcHBsaWNhdGlvbiBleHRlbmRzIGNvcmUuSVJlc291cmNlLCBpYW0uSUdyYW50YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgYXBwbGljYXRpb24gQVJOLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBhcHBsaWNhdGlvbkFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgRmxpbmsgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGFwcGxpY2F0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXBwbGljYXRpb24gSUFNIHJvbGUuXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIGFkZGluZyBhIHBvbGljeSBzdGF0ZW1lbnQgdG8gdGhlIGFwcGxpY2F0aW9uIHJvbGUuXG4gICAqL1xuICBhZGRUb1JvbGVQb2xpY3kocG9saWN5U3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KTogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmV0dXJuIGEgQ2xvdWRXYXRjaCBtZXRyaWMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgRmxpbmsgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBtZXRyaWNOYW1lIFRoZSBuYW1lIG9mIHRoZSBtZXRyaWNcbiAgICogQHBhcmFtIHByb3BzIEN1c3RvbWl6YXRpb24gcHJvcGVydGllc1xuICAgKi9cbiAgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBLaW5lc2lzIFByb2Nlc3NpbmcgVW5pdHMgdGhhdCBhcmUgdXNlZCB0byBydW4geW91ciBzdHJlYW1cbiAgICogcHJvY2Vzc2luZyBhcHBsaWNhdGlvbi4gVGhlIGF2ZXJhZ2UgbnVtYmVyIG9mIEtQVXMgdXNlZCBlYWNoIGhvdXJcbiAgICogZGV0ZXJtaW5lcyB0aGUgYmlsbGluZyBmb3IgeW91ciBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogVW5pdHM6IENvdW50XG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljS3B1cyhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBlbGFwc2VkIGR1cmluZyBhbiBvdXRhZ2UgZm9yIGZhaWxpbmcvcmVjb3ZlcmluZyBqb2JzLlxuICAgKlxuICAgKiBVbml0czogTWlsbGlzZWNvbmRzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljRG93bnRpbWUocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogVGhlIHRpbWUgdGhhdCB0aGUgam9iIGhhcyBiZWVuIHJ1bm5pbmcgd2l0aG91dCBpbnRlcnJ1cHRpb24uXG4gICAqXG4gICAqIFVuaXRzOiBNaWxsaXNlY29uZHNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBzYW1wbGUgY291bnQgb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY1VwdGltZShwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIHRpbWVzIHRoaXMgam9iIGhhcyBmdWxseSByZXN0YXJ0ZWQgc2luY2UgaXQgd2FzXG4gICAqIHN1Ym1pdHRlZC4gVGhpcyBtZXRyaWMgZG9lcyBub3QgbWVhc3VyZSBmaW5lLWdyYWluZWQgcmVzdGFydHMuXG4gICAqXG4gICAqIFVuaXRzOiBDb3VudFxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IHN1bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljRnVsbFJlc3RhcnRzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdGltZXMgY2hlY2twb2ludGluZyBoYXMgZmFpbGVkLlxuICAgKlxuICAgKiBVbml0czogQ291bnRcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBzdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY051bWJlck9mRmFpbGVkQ2hlY2twb2ludHMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogVGhlIHRpbWUgaXQgdG9vayB0byBjb21wbGV0ZSB0aGUgbGFzdCBjaGVja3BvaW50LlxuICAgKlxuICAgKiBVbml0czogTWlsbGlzZWNvbmRzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgbWF4aW11bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljTGFzdENoZWNrcG9pbnREdXJhdGlvbihwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgc2l6ZSBvZiB0aGUgbGFzdCBjaGVja3BvaW50LlxuICAgKlxuICAgKiBVbml0czogQnl0ZXNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBtYXhpbXVtIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNMYXN0Q2hlY2twb2ludFNpemUocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogVGhlIG92ZXJhbGwgcGVyY2VudGFnZSBvZiBDUFUgdXRpbGl6YXRpb24gYWNyb3NzIHRhc2sgbWFuYWdlcnMuIEZvclxuICAgKiBleGFtcGxlLCBpZiB0aGVyZSBhcmUgZml2ZSB0YXNrIG1hbmFnZXJzLCBLaW5lc2lzIERhdGEgQW5hbHl0aWNzIHB1Ymxpc2hlc1xuICAgKiBmaXZlIHNhbXBsZXMgb2YgdGhpcyBtZXRyaWMgcGVyIHJlcG9ydGluZyBpbnRlcnZhbC5cbiAgICpcbiAgICogVW5pdHM6IFBlcmNlbnRhZ2VcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNDcHVVdGlsaXphdGlvbihwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBPdmVyYWxsIGhlYXAgbWVtb3J5IHV0aWxpemF0aW9uIGFjcm9zcyB0YXNrIG1hbmFnZXJzLiBGb3IgZXhhbXBsZSwgaWYgdGhlcmVcbiAgICogYXJlIGZpdmUgdGFzayBtYW5hZ2VycywgS2luZXNpcyBEYXRhIEFuYWx5dGljcyBwdWJsaXNoZXMgZml2ZSBzYW1wbGVzIG9mXG4gICAqIHRoaXMgbWV0cmljIHBlciByZXBvcnRpbmcgaW50ZXJ2YWwuXG4gICAqXG4gICAqIFVuaXRzOiBQZXJjZW50YWdlXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljSGVhcE1lbW9yeVV0aWxpemF0aW9uKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSB0b3RhbCB0aW1lIHNwZW50IHBlcmZvcm1pbmcgb2xkIGdhcmJhZ2UgY29sbGVjdGlvbiBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBVbml0czogTWlsbGlzZWNvbmRzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgc3VtIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNPbGRHZW5lcmF0aW9uR0NUaW1lKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSB0b3RhbCBudW1iZXIgb2Ygb2xkIGdhcmJhZ2UgY29sbGVjdGlvbiBvcGVyYXRpb25zIHRoYXQgaGF2ZSBvY2N1cnJlZFxuICAgKiBhY3Jvc3MgYWxsIHRhc2sgbWFuYWdlcnMuXG4gICAqXG4gICAqIFVuaXRzOiBDb3VudFxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IHN1bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljT2xkR2VuZXJhdGlvbkdDQ291bnQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcblx0ICogVGhlIHRvdGFsIG51bWJlciBvZiBsaXZlIHRocmVhZHMgdXNlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIFVuaXRzOiBDb3VudFxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY1RocmVhZHNDb3VudChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIHJlY29yZHMgdGhpcyBhcHBsaWNhdGlvbiwgb3BlcmF0b3IsIG9yIHRhc2sgaGFzXG4gICAqIHJlY2VpdmVkLlxuICAgKlxuICAgKiBVbml0czogQ291bnRcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY051bVJlY29yZHNJbihwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIHJlY29yZHMgdGhpcyBhcHBsaWNhdGlvbiwgb3BlcmF0b3Igb3IgdGFzayBoYXNcbiAgICogcmVjZWl2ZWQgcGVyIHNlY29uZC5cbiAgICpcbiAgICogVW5pdHM6IENvdW50L1NlY29uZFxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uLCBPcGVyYXRvciwgVGFzaywgUGFyYWxsZWxpc21cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljTnVtUmVjb3Jkc0luUGVyU2Vjb25kKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgcmVjb3JkcyB0aGlzIGFwcGxpY2F0aW9uLCBvcGVyYXRvciBvciB0YXNrIGhhcyBlbWl0dGVkLlxuICAgKlxuICAgKiBVbml0czogQ291bnRcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY051bVJlY29yZHNPdXQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiByZWNvcmRzIHRoaXMgYXBwbGljYXRpb24sIG9wZXJhdG9yIG9yIHRhc2sgaGFzIGVtaXR0ZWRcbiAgICogcGVyIHNlY29uZC5cbiAgICpcbiAgICogVW5pdHM6IENvdW50L1NlY29uZFxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uLCBPcGVyYXRvciwgVGFzaywgUGFyYWxsZWxpc21cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljTnVtUmVjb3Jkc091dFBlclNlY29uZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHJlY29yZHMgdGhpcyBvcGVyYXRvciBvciB0YXNrIGhhcyBkcm9wcGVkIGR1ZSB0byBhcnJpdmluZyBsYXRlLlxuICAgKlxuICAgKiBVbml0czogQ291bnRcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IHN1bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljTnVtTGF0ZVJlY29yZHNEcm9wcGVkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSBsYXN0IHdhdGVybWFyayB0aGlzIGFwcGxpY2F0aW9uL29wZXJhdG9yL3Rhc2svdGhyZWFkIGhhcyByZWNlaXZlZC5cbiAgICpcbiAgICogVW5pdHM6IE1pbGxpc2Vjb25kc1xuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uLCBPcGVyYXRvciwgVGFzaywgUGFyYWxsZWxpc21cbiAgICpcbiAgICogQGRlZmF1bHQgbWF4aW11bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljQ3VycmVudElucHV0V2F0ZXJtYXJrKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSBsYXN0IHdhdGVybWFyayB0aGlzIGFwcGxpY2F0aW9uL29wZXJhdG9yL3Rhc2svdGhyZWFkIGhhcyByZWNlaXZlZC5cbiAgICpcbiAgICogVW5pdHM6IE1pbGxpc2Vjb25kc1xuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uLCBPcGVyYXRvciwgVGFzaywgUGFyYWxsZWxpc21cbiAgICpcbiAgICogQGRlZmF1bHQgbWF4aW11bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljQ3VycmVudE91dHB1dFdhdGVybWFyayhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIG1hbmFnZWQgbWVtb3J5IGN1cnJlbnRseSB1c2VkLlxuICAgKlxuICAgKiBVbml0czogQnl0ZXNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY01hbmFnZWRNZW1vcnlVc2VkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSB0b3RhbCBhbW91bnQgb2YgbWFuYWdlZCBtZW1vcnkuXG4gICAqXG4gICAqIFVuaXRzOiBCeXRlc1xuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uLCBPcGVyYXRvciwgVGFzaywgUGFyYWxsZWxpc21cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljTWFuYWdlZE1lbW9yeVRvdGFsKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIERlcml2ZWQgZnJvbSBtYW5hZ2VkTWVtb3J5VXNlZC9tYW5hZ2VkTWVtb3J5VG90YWwuXG4gICAqXG4gICAqIFVuaXRzOiBQZXJjZW50YWdlXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb24sIE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNNYW5hZ2VkTWVtb3J5VXRpbGl6YXRpb24ocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogVGhlIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgdGhpcyB0YXNrIG9yIG9wZXJhdG9yIGlzIGlkbGUgKGhhcyBubyBkYXRhIHRvXG4gICAqIHByb2Nlc3MpIHBlciBzZWNvbmQuIElkbGUgdGltZSBleGNsdWRlcyBiYWNrIHByZXNzdXJlZCB0aW1lLCBzbyBpZiB0aGUgdGFza1xuICAgKiBpcyBiYWNrIHByZXNzdXJlZCBpdCBpcyBub3QgaWRsZS5cbiAgICpcbiAgICogVW5pdHM6IE1pbGxpc2Vjb25kc1xuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNJZGxlVGltZU1zUGVyU2Vjb25kKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIChpbiBtaWxsaXNlY29uZHMpIHRoaXMgdGFzayBvciBvcGVyYXRvciBpcyBiYWNrIHByZXNzdXJlZCBwZXJcbiAgICogc2Vjb25kLlxuICAgKlxuICAgKiBVbml0czogTWlsbGlzZWNvbmRzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY0JhY2tQcmVzc3VyZWRUaW1lTXNQZXJTZWNvbmQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogVGhlIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgdGhpcyB0YXNrIG9yIG9wZXJhdG9yIGlzIGJ1c3kgKG5laXRoZXIgaWRsZSBub3JcbiAgICogYmFjayBwcmVzc3VyZWQpIHBlciBzZWNvbmQuIENhbiBiZSBOYU4sIGlmIHRoZSB2YWx1ZSBjb3VsZCBub3QgYmVcbiAgICogY2FsY3VsYXRlZC5cbiAgICpcbiAgICogVW5pdHM6IE1pbGxpc2Vjb25kc1xuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNCdXN5VGltZVBlck1zUGVyU2Vjb25kKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG59XG5cbi8qKlxuICogSW1wbGVtZW50cyB0aGUgZnVuY3Rpb25hbGl0eSBzaGFyZWQgYmV0d2VlbiBDREsgY3JlYXRlZCBhbmQgaW1wb3J0ZWRcbiAqIElBcHBsaWNhdGlvbnMuXG4gKi9cbmFic3RyYWN0IGNsYXNzIEFwcGxpY2F0aW9uQmFzZSBleHRlbmRzIGNvcmUuUmVzb3VyY2UgaW1wbGVtZW50cyBJQXBwbGljYXRpb24ge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYXBwbGljYXRpb25Bcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGFwcGxpY2F0aW9uTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvLyBJbXBsZW1lbnQgaWFtLklHcmFudGFibGUgaW50ZXJmYWNlXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgLyoqIEltcGxlbWVudCB0aGUgY29udmVuaWVuY2Uge0BsaW5rIElBcHBsaWNhdGlvbi5hZGRUb1ByaW5jaXBhbFBvbGljeX0gbWV0aG9kLiAqL1xuICBwdWJsaWMgYWRkVG9Sb2xlUG9saWN5KHBvbGljeVN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnJvbGUpIHtcbiAgICAgIHRoaXMucm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShwb2xpY3lTdGF0ZW1lbnQpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIENsb3VkV2F0Y2ggbWV0cmljIGFzc29jaWF0ZWQgd2l0aCB0aGlzIEZsaW5rIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBUaGUgbmFtZSBvZiB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBwcm9wcyBDdXN0b21pemF0aW9uIHByb3BlcnRpZXNcbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvS2luZXNpc0FuYWx5dGljcycsXG4gICAgICBtZXRyaWNOYW1lLFxuICAgICAgZGltZW5zaW9uc01hcDogeyBBcHBsaWNhdGlvbjogdGhpcy5hcHBsaWNhdGlvbk5hbWUgfSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pLmF0dGFjaFRvKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgS2luZXNpcyBQcm9jZXNzaW5nIFVuaXRzIHRoYXQgYXJlIHVzZWQgdG8gcnVuIHlvdXIgc3RyZWFtXG4gICAqIHByb2Nlc3NpbmcgYXBwbGljYXRpb24uIFRoZSBhdmVyYWdlIG51bWJlciBvZiBLUFVzIHVzZWQgZWFjaCBob3VyXG4gICAqIGRldGVybWluZXMgdGhlIGJpbGxpbmcgZm9yIHlvdXIgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIFVuaXRzOiBDb3VudFxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY0twdXMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0tQVXMnLCB7IHN0YXRpc3RpYzogJ0F2ZXJhZ2UnLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGVsYXBzZWQgZHVyaW5nIGFuIG91dGFnZSBmb3IgZmFpbGluZy9yZWNvdmVyaW5nIGpvYnMuXG4gICAqXG4gICAqIFVuaXRzOiBNaWxsaXNlY29uZHNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNEb3dudGltZShwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnZG93bnRpbWUnLCB7IHN0YXRpc3RpYzogJ0F2ZXJhZ2UnLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGltZSB0aGF0IHRoZSBqb2IgaGFzIGJlZW4gcnVubmluZyB3aXRob3V0IGludGVycnVwdGlvbi5cbiAgICpcbiAgICogVW5pdHM6IE1pbGxpc2Vjb25kc1xuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY1VwdGltZShwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygndXB0aW1lJywgeyBzdGF0aXN0aWM6ICdBdmVyYWdlJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiB0aW1lcyB0aGlzIGpvYiBoYXMgZnVsbHkgcmVzdGFydGVkIHNpbmNlIGl0IHdhc1xuICAgKiBzdWJtaXR0ZWQuIFRoaXMgbWV0cmljIGRvZXMgbm90IG1lYXN1cmUgZmluZS1ncmFpbmVkIHJlc3RhcnRzLlxuICAgKlxuICAgKiBVbml0czogQ291bnRcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBzdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY0Z1bGxSZXN0YXJ0cyhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnZnVsbFJlc3RhcnRzJywgeyBzdGF0aXN0aWM6ICdTdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHRpbWVzIGNoZWNrcG9pbnRpbmcgaGFzIGZhaWxlZC5cbiAgICpcbiAgICogVW5pdHM6IENvdW50XG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgc3VtIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNOdW1iZXJPZkZhaWxlZENoZWNrcG9pbnRzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdudW1iZXJPZkZhaWxlZENoZWNrcG9pbnRzJywgeyBzdGF0aXN0aWM6ICdTdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBpdCB0b29rIHRvIGNvbXBsZXRlIHRoZSBsYXN0IGNoZWNrcG9pbnQuXG4gICAqXG4gICAqIFVuaXRzOiBNaWxsaXNlY29uZHNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBtYXhpbXVtIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNMYXN0Q2hlY2twb2ludER1cmF0aW9uKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdsYXN0Q2hlY2twb2ludER1cmF0aW9uJywgeyBzdGF0aXN0aWM6ICdNYXhpbXVtJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRvdGFsIHNpemUgb2YgdGhlIGxhc3QgY2hlY2twb2ludC5cbiAgICpcbiAgICogVW5pdHM6IEJ5dGVzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgbWF4aW11bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljTGFzdENoZWNrcG9pbnRTaXplKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdsYXN0Q2hlY2twb2ludFNpemUnLCB7IHN0YXRpc3RpYzogJ01heGltdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgb3ZlcmFsbCBwZXJjZW50YWdlIG9mIENQVSB1dGlsaXphdGlvbiBhY3Jvc3MgdGFzayBtYW5hZ2Vycy4gRm9yXG4gICAqIGV4YW1wbGUsIGlmIHRoZXJlIGFyZSBmaXZlIHRhc2sgbWFuYWdlcnMsIEtpbmVzaXMgRGF0YSBBbmFseXRpY3MgcHVibGlzaGVzXG4gICAqIGZpdmUgc2FtcGxlcyBvZiB0aGlzIG1ldHJpYyBwZXIgcmVwb3J0aW5nIGludGVydmFsLlxuICAgKlxuICAgKiBVbml0czogUGVyY2VudGFnZVxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY0NwdVV0aWxpemF0aW9uKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdjcHVVdGlsaXphdGlvbicsIHsgc3RhdGlzdGljOiAnQXZlcmFnZScsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJhbGwgaGVhcCBtZW1vcnkgdXRpbGl6YXRpb24gYWNyb3NzIHRhc2sgbWFuYWdlcnMuIEZvciBleGFtcGxlLCBpZiB0aGVyZVxuICAgKiBhcmUgZml2ZSB0YXNrIG1hbmFnZXJzLCBLaW5lc2lzIERhdGEgQW5hbHl0aWNzIHB1Ymxpc2hlcyBmaXZlIHNhbXBsZXMgb2ZcbiAgICogdGhpcyBtZXRyaWMgcGVyIHJlcG9ydGluZyBpbnRlcnZhbC5cbiAgICpcbiAgICogVW5pdHM6IFBlcmNlbnRhZ2VcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNIZWFwTWVtb3J5VXRpbGl6YXRpb24ocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ2hlYXBNZW1vcnlVdGlsaXphdGlvbicsIHsgc3RhdGlzdGljOiAnQXZlcmFnZScsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0b3RhbCB0aW1lIHNwZW50IHBlcmZvcm1pbmcgb2xkIGdhcmJhZ2UgY29sbGVjdGlvbiBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBVbml0czogTWlsbGlzZWNvbmRzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgc3VtIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNPbGRHZW5lcmF0aW9uR0NUaW1lKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdvbGRHZW5lcmF0aW9uR0NUaW1lJywgeyBzdGF0aXN0aWM6ICdTdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIG9sZCBnYXJiYWdlIGNvbGxlY3Rpb24gb3BlcmF0aW9ucyB0aGF0IGhhdmUgb2NjdXJyZWRcbiAgICogYWNyb3NzIGFsbCB0YXNrIG1hbmFnZXJzLlxuICAgKlxuICAgKiBVbml0czogQ291bnRcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBzdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY09sZEdlbmVyYXRpb25HQ0NvdW50KHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdvbGRHZW5lcmF0aW9uR0NDb3VudCcsIHsgc3RhdGlzdGljOiAnU3VtJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiBsaXZlIHRocmVhZHMgdXNlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIFVuaXRzOiBDb3VudFxuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IEFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY1RocmVhZHNDb3VudChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygndGhyZWFkc0NvdW50JywgeyBzdGF0aXN0aWM6ICdBdmVyYWdlJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiByZWNvcmRzIHRoaXMgYXBwbGljYXRpb24sIG9wZXJhdG9yLCBvciB0YXNrIGhhc1xuICAgKiByZWNlaXZlZC5cbiAgICpcbiAgICogVW5pdHM6IENvdW50XG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb24sIE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNOdW1SZWNvcmRzSW4ocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ251bVJlY29yZHNJbicsIHsgc3RhdGlzdGljOiAnQXZlcmFnZScsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgcmVjb3JkcyB0aGlzIGFwcGxpY2F0aW9uLCBvcGVyYXRvciBvciB0YXNrIGhhcyByZWNlaXZlZFxuICAgKiBwZXIgc2Vjb25kLlxuICAgKlxuICAgKiBVbml0czogQ291bnQvU2Vjb25kXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb24sIE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNOdW1SZWNvcmRzSW5QZXJTZWNvbmQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ251bVJlY29yZHNJblBlclNlY29uZCcsIHsgc3RhdGlzdGljOiAnQXZlcmFnZScsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgcmVjb3JkcyB0aGlzIGFwcGxpY2F0aW9uLCBvcGVyYXRvciBvciB0YXNrIGhhcyBlbWl0dGVkLlxuICAgKlxuICAgKiBVbml0czogQ291bnRcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY051bVJlY29yZHNPdXQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ251bVJlY29yZHNPdXQnLCB7IHN0YXRpc3RpYzogJ0F2ZXJhZ2UnLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIHJlY29yZHMgdGhpcyBhcHBsaWNhdGlvbiwgb3BlcmF0b3Igb3IgdGFzayBoYXMgZW1pdHRlZFxuICAgKiBwZXIgc2Vjb25kLlxuICAgKlxuICAgKiBVbml0czogQ291bnQvU2Vjb25kXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb24sIE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNOdW1SZWNvcmRzT3V0UGVyU2Vjb25kKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdudW1SZWNvcmRzT3V0UGVyU2Vjb25kJywgeyBzdGF0aXN0aWM6ICdBdmVyYWdlJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiByZWNvcmRzIHRoaXMgb3BlcmF0b3Igb3IgdGFzayBoYXMgZHJvcHBlZCBkdWUgdG8gYXJyaXZpbmdcbiAgICogbGF0ZS5cbiAgICpcbiAgICogVW5pdHM6IENvdW50XG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb24sIE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBzdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY051bUxhdGVSZWNvcmRzRHJvcHBlZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnbnVtTGF0ZVJlY29yZHNEcm9wcGVkJywgeyBzdGF0aXN0aWM6ICdTdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbGFzdCB3YXRlcm1hcmsgdGhpcyBhcHBsaWNhdGlvbi9vcGVyYXRvci90YXNrL3RocmVhZCBoYXMgcmVjZWl2ZWQuXG4gICAqXG4gICAqIFVuaXRzOiBNaWxsaXNlY29uZHNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IG1heGltdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY0N1cnJlbnRJbnB1dFdhdGVybWFyayhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnY3VycmVudElucHV0V2F0ZXJtYXJrJywgeyBzdGF0aXN0aWM6ICdNYXhpbXVtJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxhc3Qgd2F0ZXJtYXJrIHRoaXMgYXBwbGljYXRpb24vb3BlcmF0b3IvdGFzay90aHJlYWQgaGFzIHJlY2VpdmVkLlxuICAgKlxuICAgKiBVbml0czogTWlsbGlzZWNvbmRzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb24sIE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBtYXhpbXVtIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNDdXJyZW50T3V0cHV0V2F0ZXJtYXJrKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdjdXJyZW50T3V0cHV0V2F0ZXJtYXJrJywgeyBzdGF0aXN0aWM6ICdNYXhpbXVtJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiBtYW5hZ2VkIG1lbW9yeSBjdXJyZW50bHkgdXNlZC5cbiAgICpcbiAgICogVW5pdHM6IEJ5dGVzXG4gICAqXG4gICAqIFJlcG9ydGluZyBMZXZlbDogQXBwbGljYXRpb24sIE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNNYW5hZ2VkTWVtb3J5VXNlZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnbWFuYWdlZE1lbW9yeVVzZWQnLCB7IHN0YXRpc3RpYzogJ0F2ZXJhZ2UnLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgYW1vdW50IG9mIG1hbmFnZWQgbWVtb3J5LlxuICAgKlxuICAgKiBVbml0czogQnl0ZXNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY01hbmFnZWRNZW1vcnlUb3RhbChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnbWFuYWdlZE1lbW9yeVRvdGFsJywgeyBzdGF0aXN0aWM6ICdBdmVyYWdlJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVyaXZlZCBmcm9tIG1hbmFnZWRNZW1vcnlVc2VkL21hbmFnZWRNZW1vcnlUb3RhbC5cbiAgICpcbiAgICogVW5pdHM6IFBlcmNlbnRhZ2VcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBBcHBsaWNhdGlvbiwgT3BlcmF0b3IsIFRhc2ssIFBhcmFsbGVsaXNtXG4gICAqXG4gICAqIEBkZWZhdWx0IGF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIG1ldHJpY01hbmFnZWRNZW1vcnlVdGlsaXphdGlvbihwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnbWFuYWdlZE1lbW9yeVV0aWxpemF0aW9uJywgeyBzdGF0aXN0aWM6ICdBdmVyYWdlJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgdGhpcyB0YXNrIG9yIG9wZXJhdG9yIGlzIGlkbGUgKGhhcyBubyBkYXRhIHRvXG4gICAqIHByb2Nlc3MpIHBlciBzZWNvbmQuIElkbGUgdGltZSBleGNsdWRlcyBiYWNrIHByZXNzdXJlZCB0aW1lLCBzbyBpZiB0aGUgdGFza1xuICAgKiBpcyBiYWNrIHByZXNzdXJlZCBpdCBpcyBub3QgaWRsZS5cbiAgICpcbiAgICogVW5pdHM6IE1pbGxpc2Vjb25kc1xuICAgKlxuICAgKiBSZXBvcnRpbmcgTGV2ZWw6IE9wZXJhdG9yLCBUYXNrLCBQYXJhbGxlbGlzbVxuICAgKlxuICAgKiBAZGVmYXVsdCBhdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBtZXRyaWNJZGxlVGltZU1zUGVyU2Vjb25kKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdpZGxlVGltZU1zUGVyU2Vjb25kJywgeyBzdGF0aXN0aWM6ICdBdmVyYWdlJywgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgdGhpcyB0YXNrIG9yIG9wZXJhdG9yIGlzIGJhY2sgcHJlc3N1cmVkIHBlclxuICAgKiBzZWNvbmQuXG4gICAqXG4gICAqIFVuaXRzOiBNaWxsaXNlY29uZHNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBPcGVyYXRvciwgVGFzaywgUGFyYWxsZWxpc21cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljQmFja1ByZXNzdXJlZFRpbWVNc1BlclNlY29uZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnYmFja1ByZXNzdXJlZFRpbWVNc1BlclNlY29uZCcsIHsgc3RhdGlzdGljOiAnQXZlcmFnZScsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIChpbiBtaWxsaXNlY29uZHMpIHRoaXMgdGFzayBvciBvcGVyYXRvciBpcyBidXN5IChuZWl0aGVyIGlkbGUgbm9yXG4gICAqIGJhY2sgcHJlc3N1cmVkKSBwZXIgc2Vjb25kLiBDYW4gYmUgTmFOLCBpZiB0aGUgdmFsdWUgY291bGQgbm90IGJlXG4gICAqIGNhbGN1bGF0ZWQuXG4gICAqXG4gICAqIFVuaXRzOiBNaWxsaXNlY29uZHNcbiAgICpcbiAgICogUmVwb3J0aW5nIExldmVsOiBPcGVyYXRvciwgVGFzaywgUGFyYWxsZWxpc21cbiAgICpcbiAgICogQGRlZmF1bHQgYXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgbWV0cmljQnVzeVRpbWVQZXJNc1BlclNlY29uZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnYnVzeVRpbWVQZXJNc1BlclNlY29uZCcsIHsgc3RhdGlzdGljOiAnQXZlcmFnZScsIC4uLnByb3BzIH0pO1xuICB9XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIGNyZWF0aW5nIGFuIEFwcGxpY2F0aW9uIGNvbnN0cnVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBsaWNhdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIEEgbmFtZSBmb3IgeW91ciBBcHBsaWNhdGlvbiB0aGF0IGlzIHVuaXF1ZSB0byBhbiBBV1MgYWNjb3VudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBDbG91ZEZvcm1hdGlvbi1nZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgYXBwbGljYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgRmxpbmsgdmVyc2lvbiB0byB1c2UgZm9yIHRoaXMgYXBwbGljYXRpb24uXG4gICAqL1xuICByZWFkb25seSBydW50aW1lOiBSdW50aW1lO1xuXG4gIC8qKlxuICAgKiBUaGUgRmxpbmsgY29kZSBhc3NldCB0byBydW4uXG4gICAqL1xuICByZWFkb25seSBjb2RlOiBBcHBsaWNhdGlvbkNvZGU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY2hlY2twb2ludGluZyBpcyBlbmFibGVkIHdoaWxlIHlvdXIgYXBwbGljYXRpb24gcnVucy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2twb2ludGluZ0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgaW50ZXJ2YWwgYmV0d2VlbiBjaGVja3BvaW50cy5cbiAgICpcbiAgICogQGRlZmF1bHQgMSBtaW51dGVcbiAgICovXG4gIHJlYWRvbmx5IGNoZWNrcG9pbnRJbnRlcnZhbD86IGNvcmUuRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIGFtb3VudCBvZiB0aW1lIGluIHRvIHdhaXQgYWZ0ZXIgYSBjaGVja3BvaW50IGZpbmlzaGVzIHRvIHN0YXJ0XG4gICAqIGEgbmV3IGNoZWNrcG9pbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IDUgc2Vjb25kc1xuICAgKi9cbiAgcmVhZG9ubHkgbWluUGF1c2VCZXR3ZWVuQ2hlY2twb2ludHM/OiBjb3JlLkR1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbGV2ZWwgb2YgbG9nIHZlcmJvc2l0eSBmcm9tIHRoZSBGbGluayBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgRmxpbmtMb2dMZXZlbC5JTkZPXG4gICAqL1xuICByZWFkb25seSBsb2dMZXZlbD86IExvZ0xldmVsO1xuXG4gIC8qKlxuICAgKiBEZXNjcmliZXMgdGhlIGdyYW51bGFyaXR5IG9mIHRoZSBDbG91ZFdhdGNoIG1ldHJpY3MgZm9yIGFuIGFwcGxpY2F0aW9uLlxuICAgKiBVc2UgY2F1dGlvbiB3aXRoIFBhcmFsbGVsaXNtIGxldmVsIG1ldHJpY3MuIFBhcmFsbGVsaXNtIGdyYW51bGFyaXR5IGxvZ3NcbiAgICogbWV0cmljcyBmb3IgZWFjaCBwYXJhbGxlbCB0aHJlYWQgYW5kIGNhbiBxdWlja2x5IGJlY29tZSBleHBlbnNpdmUgd2hlblxuICAgKiBwYXJhbGxlbGlzbSBpcyBoaWdoIChlLmcuID4gNjQpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBNZXRyaWNzTGV2ZWwuQVBQTElDQVRJT05cbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY3NMZXZlbD86IE1ldHJpY3NMZXZlbDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgS2luZXNpcyBEYXRhIEFuYWx5dGljcyBzZXJ2aWNlIGNhbiBpbmNyZWFzZSB0aGUgcGFyYWxsZWxpc20gb2ZcbiAgICogdGhlIGFwcGxpY2F0aW9uIGluIHJlc3BvbnNlIHRvIHJlc291cmNlIHVzYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhdXRvU2NhbGluZ0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5pdGlhbCBwYXJhbGxlbGlzbSBmb3IgdGhlIGFwcGxpY2F0aW9uLiBLaW5lc2lzIERhdGEgQW5hbHl0aWNzIGNhblxuICAgKiBzdG9wIHRoZSBhcHAsIGluY3JlYXNlIHRoZSBwYXJhbGxlbGlzbSwgYW5kIHN0YXJ0IHRoZSBhcHAgYWdhaW4gaWZcbiAgICogYXV0b1NjYWxpbmdFbmFibGVkIGlzIHRydWUgKHRoZSBkZWZhdWx0IHZhbHVlKS5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYWxsZWxpc20/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBGbGluayBwYXJhbGxlbGlzbSBhbGxvd2VkIHBlciBLaW5lc2lzIFByb2Nlc3NpbmcgVW5pdCAoS1BVKS5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYWxsZWxpc21QZXJLcHU/OiBudW1iZXJcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBGbGluayBzbmFwc2hvdHMgYXJlIGVuYWJsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNuYXBzaG90c0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIFByb3BlcnR5R3JvdXBzLiBZb3UgY2FuIHVzZSB0aGVzZSBwcm9wZXJ0eSBncm91cHMgdG8gcGFzc1xuICAgKiBhcmJpdHJhcnkgcnVudGltZSBjb25maWd1cmF0aW9uIHZhbHVlcyB0byB5b3VyIEZsaW5rIGFwcC5cbiAgICpcbiAgICogQGRlZmF1bHQgTm8gcHJvcGVydHkgZ3JvdXAgY29uZmlndXJhdGlvbiBwcm92aWRlZCB0byB0aGUgRmxpbmsgYXBwXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0eUdyb3Vwcz86IFByb3BlcnR5R3JvdXBzO1xuXG4gIC8qKlxuICAgKiBBIHJvbGUgdG8gdXNlIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvIHlvdXIgYXBwbGljYXRpb24uIFByZWZlciBvbWl0dGluZ1xuICAgKiB0aGlzIHByb3BlcnR5IGFuZCB1c2luZyB0aGUgZGVmYXVsdCByb2xlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmV3IFJvbGUgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlIGEgUmVtb3ZhbFBvbGljeSB0byBvdmVycmlkZSB0aGUgZGVmYXVsdC5cbiAgICpcbiAgICogQGRlZmF1bHQgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogY29yZS5SZW1vdmFsUG9saWN5O1xuXG4gIC8qKlxuICAgKiBUaGUgbG9nIGdyb3VwIHRvIHNlbmQgbG9nIGVudHJpZXMgdG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IENESydzIGRlZmF1bHQgTG9nR3JvdXBcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG59XG5cbi8qKlxuICogQW4gaW1wb3J0ZWQgRmxpbmsgYXBwbGljYXRpb24uXG4gKi9cbmNsYXNzIEltcG9ydCBleHRlbmRzIEFwcGxpY2F0aW9uQmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG4gIHB1YmxpYyByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuICBwdWJsaWMgcmVhZG9ubHkgYXBwbGljYXRpb25OYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBhcHBsaWNhdGlvbkFybjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiB7IGFwcGxpY2F0aW9uQXJuOiBzdHJpbmcsIGFwcGxpY2F0aW9uTmFtZTogc3RyaW5nIH0pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gSW1wb3J0ZWQgYXBwbGljYXRpb25zIGhhdmUgbm8gYXNzb2NpYXRlZCByb2xlIG9yIGdyYW50UHJpbmNpcGFsXG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IG5ldyBpYW0uVW5rbm93blByaW5jaXBhbCh7IHJlc291cmNlOiB0aGlzIH0pO1xuICAgIHRoaXMucm9sZSA9IHVuZGVmaW5lZDtcblxuICAgIHRoaXMuYXBwbGljYXRpb25Bcm4gPSBhdHRycy5hcHBsaWNhdGlvbkFybjtcbiAgICB0aGlzLmFwcGxpY2F0aW9uTmFtZSA9IGF0dHJzLmFwcGxpY2F0aW9uTmFtZTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBMMiBjb25zdHJ1Y3QgZm9yIEZsaW5rIEtpbmVzaXMgRGF0YSBBcHBsaWNhdGlvbnMuXG4gKlxuICogQHJlc291cmNlIEFXUzo6S2luZXNpc0FuYWx5dGljc1YyOjpBcHBsaWNhdGlvblxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uIGV4dGVuZHMgQXBwbGljYXRpb25CYXNlIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBGbGluayBhcHBsaWNhdGlvbiBkZWZpbmVkIG91dHNpZGUgb2YgQ0RLIGNvZGUgYnlcbiAgICogYXBwbGljYXRpb25OYW1lLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQXBwbGljYXRpb25OYW1lKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGFwcGxpY2F0aW9uTmFtZTogc3RyaW5nKTogSUFwcGxpY2F0aW9uIHtcbiAgICBjb25zdCBhcHBsaWNhdGlvbkFybiA9IGNvcmUuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybihhcHBsaWNhdGlvbkFybkNvbXBvbmVudHMoYXBwbGljYXRpb25OYW1lKSk7XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHsgYXBwbGljYXRpb25Bcm4sIGFwcGxpY2F0aW9uTmFtZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgYXBwbGljYXRpb24gZGVmaW5lZCBvdXRzaWRlIG9mIENESyBjb2RlIGJ5XG4gICAqIGFwcGxpY2F0aW9uQXJuLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQXBwbGljYXRpb25Bcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXBwbGljYXRpb25Bcm46IHN0cmluZyk6IElBcHBsaWNhdGlvbiB7XG4gICAgY29uc3QgYXBwbGljYXRpb25OYW1lID0gY29yZS5TdGFjay5vZihzY29wZSkuc3BsaXRBcm4oYXBwbGljYXRpb25Bcm4sIGNvcmUuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLnJlc291cmNlTmFtZTtcbiAgICBpZiAoIWFwcGxpY2F0aW9uTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBhcHBsaWNhdGlvbkFybiBmb3IgZnJvbUFwcGxpY2F0aW9uQXJuICgke2FwcGxpY2F0aW9uQXJufSkgbXVzdCBpbmNsdWRlIHJlc291cmNlIG5hbWVgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHsgYXBwbGljYXRpb25Bcm4sIGFwcGxpY2F0aW9uTmFtZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBhcHBsaWNhdGlvbkFybjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgYXBwbGljYXRpb25OYW1lOiBzdHJpbmc7XG5cbiAgLy8gUm9sZSBtdXN0IGJlIG9wdGlvbmFsIGZvciBKU0lJIGNvbXBhdGliaWxpdHlcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgcHVibGljIHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXBwbGljYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgeyBwaHlzaWNhbE5hbWU6IHByb3BzLmFwcGxpY2F0aW9uTmFtZSB9KTtcbiAgICB2YWxpZGF0ZUFwcGxpY2F0aW9uUHJvcHMocHJvcHMpO1xuXG4gICAgdGhpcy5yb2xlID0gcHJvcHMucm9sZSA/PyBuZXcgaWFtLlJvbGUodGhpcywgJ1JvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgna2luZXNpc2FuYWx5dGljcy5hbWF6b25hd3MuY29tJyksXG4gICAgfSk7XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXMucm9sZTtcblxuICAgIC8vIFBlcm1pdCBtZXRyaWMgcHVibGlzaGluZyB0byBDbG91ZFdhdGNoXG4gICAgdGhpcy5yb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFsnY2xvdWR3YXRjaDpQdXRNZXRyaWNEYXRhJ10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGNvZGUgPSBwcm9wcy5jb2RlLmJpbmQodGhpcyk7XG4gICAgY29kZS5idWNrZXQuZ3JhbnRSZWFkKHRoaXMpO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ2ZuQXBwbGljYXRpb25WMih0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBhcHBsaWNhdGlvbk5hbWU6IHByb3BzLmFwcGxpY2F0aW9uTmFtZSxcbiAgICAgIHJ1bnRpbWVFbnZpcm9ubWVudDogcHJvcHMucnVudGltZS52YWx1ZSxcbiAgICAgIHNlcnZpY2VFeGVjdXRpb25Sb2xlOiB0aGlzLnJvbGUucm9sZUFybixcbiAgICAgIGFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAuLi5jb2RlLmFwcGxpY2F0aW9uQ29kZUNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSxcbiAgICAgICAgZW52aXJvbm1lbnRQcm9wZXJ0aWVzOiBlbnZpcm9ubWVudFByb3BlcnRpZXMocHJvcHMucHJvcGVydHlHcm91cHMpLFxuICAgICAgICBmbGlua0FwcGxpY2F0aW9uQ29uZmlndXJhdGlvbjogZmxpbmtBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24oe1xuICAgICAgICAgIGNoZWNrcG9pbnRpbmdFbmFibGVkOiBwcm9wcy5jaGVja3BvaW50aW5nRW5hYmxlZCxcbiAgICAgICAgICBjaGVja3BvaW50SW50ZXJ2YWw6IHByb3BzLmNoZWNrcG9pbnRJbnRlcnZhbCxcbiAgICAgICAgICBtaW5QYXVzZUJldHdlZW5DaGVja3BvaW50czogcHJvcHMubWluUGF1c2VCZXR3ZWVuQ2hlY2twb2ludHMsXG4gICAgICAgICAgbG9nTGV2ZWw6IHByb3BzLmxvZ0xldmVsLFxuICAgICAgICAgIG1ldHJpY3NMZXZlbDogcHJvcHMubWV0cmljc0xldmVsLFxuICAgICAgICAgIGF1dG9TY2FsaW5nRW5hYmxlZDogcHJvcHMuYXV0b1NjYWxpbmdFbmFibGVkLFxuICAgICAgICAgIHBhcmFsbGVsaXNtOiBwcm9wcy5wYXJhbGxlbGlzbSxcbiAgICAgICAgICBwYXJhbGxlbGlzbVBlcktwdTogcHJvcHMucGFyYWxsZWxpc21QZXJLcHUsXG4gICAgICAgIH0pLFxuICAgICAgICBhcHBsaWNhdGlvblNuYXBzaG90Q29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIHNuYXBzaG90c0VuYWJsZWQ6IHByb3BzLnNuYXBzaG90c0VuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmVzb3VyY2Uubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMucm9sZSk7XG5cbiAgICBjb25zdCBsb2dHcm91cCA9IHByb3BzLmxvZ0dyb3VwID8/IG5ldyBsb2dzLkxvZ0dyb3VwKHRoaXMsICdMb2dHcm91cCcpO1xuICAgIGNvbnN0IGxvZ1N0cmVhbSA9IG5ldyBsb2dzLkxvZ1N0cmVhbSh0aGlzLCAnTG9nU3RyZWFtJywgeyBsb2dHcm91cCB9KTtcblxuICAgIC8qIFBlcm1pdCBsb2dnaW5nICovXG5cbiAgICB0aGlzLnJvbGUuYWRkVG9QcmluY2lwYWxQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogWydsb2dzOkRlc2NyaWJlTG9nR3JvdXBzJ10sXG4gICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgY29yZS5TdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgICAgIHNlcnZpY2U6ICdsb2dzJyxcbiAgICAgICAgICByZXNvdXJjZTogJ2xvZy1ncm91cCcsXG4gICAgICAgICAgYXJuRm9ybWF0OiBjb3JlLkFybkZvcm1hdC5DT0xPTl9SRVNPVVJDRV9OQU1FLFxuICAgICAgICAgIHJlc291cmNlTmFtZTogJyonLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSkpO1xuXG4gICAgdGhpcy5yb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFsnbG9nczpEZXNjcmliZUxvZ1N0cmVhbXMnXSxcbiAgICAgIHJlc291cmNlczogW2xvZ0dyb3VwLmxvZ0dyb3VwQXJuXSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCBsb2dTdHJlYW1Bcm4gPSBgYXJuOiR7Y29yZS5Bd3MuUEFSVElUSU9OfTpsb2dzOiR7Y29yZS5Bd3MuUkVHSU9OfToke2NvcmUuQXdzLkFDQ09VTlRfSUR9OmxvZy1ncm91cDoke2xvZ0dyb3VwLmxvZ0dyb3VwTmFtZX06bG9nLXN0cmVhbToke2xvZ1N0cmVhbS5sb2dTdHJlYW1OYW1lfWA7XG4gICAgdGhpcy5yb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFsnbG9nczpQdXRMb2dFdmVudHMnXSxcbiAgICAgIHJlc291cmNlczogW2xvZ1N0cmVhbUFybl0sXG4gICAgfSkpO1xuXG4gICAgbmV3IENmbkFwcGxpY2F0aW9uQ2xvdWRXYXRjaExvZ2dpbmdPcHRpb25WMih0aGlzLCAnTG9nZ2luZ09wdGlvbicsIHtcbiAgICAgIGFwcGxpY2F0aW9uTmFtZTogcmVzb3VyY2UucmVmLFxuICAgICAgY2xvdWRXYXRjaExvZ2dpbmdPcHRpb246IHtcbiAgICAgICAgbG9nU3RyZWFtQXJuLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuYXBwbGljYXRpb25OYW1lID0gdGhpcy5nZXRSZXNvdXJjZU5hbWVBdHRyaWJ1dGUocmVzb3VyY2UucmVmKTtcbiAgICB0aGlzLmFwcGxpY2F0aW9uQXJuID0gdGhpcy5nZXRSZXNvdXJjZUFybkF0dHJpYnV0ZShcbiAgICAgIGNvcmUuU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKGFwcGxpY2F0aW9uQXJuQ29tcG9uZW50cyhyZXNvdXJjZS5yZWYpKSxcbiAgICAgIGFwcGxpY2F0aW9uQXJuQ29tcG9uZW50cyh0aGlzLnBoeXNpY2FsTmFtZSksXG4gICAgKTtcblxuICAgIHJlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5LCB7XG4gICAgICBkZWZhdWx0OiBjb3JlLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhcHBsaWNhdGlvbkFybkNvbXBvbmVudHMocmVzb3VyY2VOYW1lOiBzdHJpbmcpOiBjb3JlLkFybkNvbXBvbmVudHMge1xuICByZXR1cm4ge1xuICAgIHNlcnZpY2U6ICdraW5lc2lzYW5hbHl0aWNzJyxcbiAgICByZXNvdXJjZTogJ2FwcGxpY2F0aW9uJyxcbiAgICByZXNvdXJjZU5hbWUsXG4gIH07XG59XG4iXX0=
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.environmentProperties = void 0;
4
4
  function environmentProperties(propertyGroups) {
5
- const entries = Object.entries(propertyGroups !== null && propertyGroups !== void 0 ? propertyGroups : {});
5
+ const entries = Object.entries(propertyGroups ?? {});
6
6
  if (entries.length === 0) {
7
7
  return;
8
8
  }
@@ -14,4 +14,4 @@ function environmentProperties(propertyGroups) {
14
14
  };
15
15
  }
16
16
  exports.environmentProperties = environmentProperties;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtcHJvcGVydGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVudmlyb25tZW50LXByb3BlcnRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsU0FBZ0IscUJBQXFCLENBQUMsY0FBK0I7SUFDbkUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLGFBQWQsY0FBYyxjQUFkLGNBQWMsR0FBSSxFQUFFLENBQUMsQ0FBQztJQUNyRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3hCLE9BQU87S0FDUjtJQUVELE9BQU87UUFDTCxjQUFjLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLGVBQWUsRUFBRSxFQUFFO1lBQ25CLFdBQVcsRUFBRSxHQUFHO1NBQ2pCLENBQUMsQ0FBQztLQUNKLENBQUM7QUFDSixDQUFDO0FBWkQsc0RBWUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBrYSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta2luZXNpc2FuYWx5dGljcyc7XG5pbXBvcnQgeyBQcm9wZXJ0eUdyb3VwcyB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudmlyb25tZW50UHJvcGVydGllcyhwcm9wZXJ0eUdyb3Vwcz86IFByb3BlcnR5R3JvdXBzKToga2EuQ2ZuQXBwbGljYXRpb25WMi5FbnZpcm9ubWVudFByb3BlcnRpZXNQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyhwcm9wZXJ0eUdyb3VwcyA/PyB7fSk7XG4gIGlmIChlbnRyaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcHJvcGVydHlHcm91cHM6IGVudHJpZXMubWFwKChbaWQsIG1hcF0pID0+ICh7XG4gICAgICBwcm9wZXJ0eUdyb3VwSWQ6IGlkLFxuICAgICAgcHJvcGVydHlNYXA6IG1hcCxcbiAgICB9KSksXG4gIH07XG59XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtcHJvcGVydGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVudmlyb25tZW50LXByb3BlcnRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsU0FBZ0IscUJBQXFCLENBQUMsY0FBK0I7SUFDbkUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLENBQUM7SUFDckQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN4QixPQUFPO0tBQ1I7SUFFRCxPQUFPO1FBQ0wsY0FBYyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQyxlQUFlLEVBQUUsRUFBRTtZQUNuQixXQUFXLEVBQUUsR0FBRztTQUNqQixDQUFDLENBQUM7S0FDSixDQUFDO0FBQ0osQ0FBQztBQVpELHNEQVlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMga2EgZnJvbSAnYXdzLWNkay1saWIvYXdzLWtpbmVzaXNhbmFseXRpY3MnO1xuaW1wb3J0IHsgUHJvcGVydHlHcm91cHMgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnZpcm9ubWVudFByb3BlcnRpZXMocHJvcGVydHlHcm91cHM/OiBQcm9wZXJ0eUdyb3Vwcyk6IGthLkNmbkFwcGxpY2F0aW9uVjIuRW52aXJvbm1lbnRQcm9wZXJ0aWVzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXMocHJvcGVydHlHcm91cHMgPz8ge30pO1xuICBpZiAoZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHByb3BlcnR5R3JvdXBzOiBlbnRyaWVzLm1hcCgoW2lkLCBtYXBdKSA9PiAoe1xuICAgICAgcHJvcGVydHlHcm91cElkOiBpZCxcbiAgICAgIHByb3BlcnR5TWFwOiBtYXAsXG4gICAgfSkpLFxuICB9O1xufVxuIl19
@@ -10,11 +10,10 @@ exports.flinkApplicationConfiguration = void 0;
10
10
  * whenever config in one of the nested groupings.
11
11
  */
12
12
  function flinkApplicationConfiguration(config) {
13
- var _a, _b;
14
13
  const checkpointConfiguration = configFor({
15
14
  checkpointingEnabled: config.checkpointingEnabled,
16
- checkpointInterval: (_a = config.checkpointInterval) === null || _a === void 0 ? void 0 : _a.toMilliseconds(),
17
- minPauseBetweenCheckpoints: (_b = config.minPauseBetweenCheckpoints) === null || _b === void 0 ? void 0 : _b.toMilliseconds(),
15
+ checkpointInterval: config.checkpointInterval?.toMilliseconds(),
16
+ minPauseBetweenCheckpoints: config.minPauseBetweenCheckpoints?.toMilliseconds(),
18
17
  });
19
18
  const monitoringConfiguration = configFor({
20
19
  logLevel: config.logLevel,
@@ -48,4 +47,4 @@ function configFor(config) {
48
47
  function isEmptyObj(obj) {
49
48
  return Object.values(obj).every(v => v === undefined);
50
49
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxpbmstYXBwbGljYXRpb24tY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZsaW5rLWFwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeUJBOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQiw2QkFBNkIsQ0FBQyxNQUFxQzs7SUFDakYsTUFBTSx1QkFBdUIsR0FBRyxTQUFTLENBQUM7UUFDeEMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLG9CQUFvQjtRQUNqRCxrQkFBa0IsUUFBRSxNQUFNLENBQUMsa0JBQWtCLDBDQUFFLGNBQWMsRUFBRTtRQUMvRCwwQkFBMEIsUUFBRSxNQUFNLENBQUMsMEJBQTBCLDBDQUFFLGNBQWMsRUFBRTtLQUNoRixDQUFDLENBQUM7SUFFSCxNQUFNLHVCQUF1QixHQUFHLFNBQVMsQ0FBQztRQUN4QyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7UUFDekIsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZO0tBQ2xDLENBQUMsQ0FBQztJQUVILE1BQU0sd0JBQXdCLEdBQUcsU0FBUyxDQUFDO1FBQ3pDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxrQkFBa0I7UUFDN0MsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1FBQy9CLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7S0FDNUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSx3QkFBd0IsR0FBRztRQUMvQix1QkFBdUI7UUFDdkIsdUJBQXVCO1FBQ3ZCLHdCQUF3QjtLQUN6QixDQUFDO0lBRUYsSUFBSSxVQUFVLENBQUMsd0JBQXdCLENBQUMsRUFBRTtRQUN4QyxPQUFPO0tBQ1I7SUFFRCxPQUFPLHdCQUF3QixDQUFDO0FBQ2xDLENBQUM7QUE3QkQsc0VBNkJDO0FBRUQsU0FBUyxTQUFTLENBQUMsTUFBZ0M7SUFDakQsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdEIsT0FBTztLQUNSO0lBRUQsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULGlCQUFpQixFQUFFLFFBQVE7S0FDNUIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxHQUE2QjtJQUMvQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb3JlIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IExvZ0xldmVsLCBNZXRyaWNzTGV2ZWwgfSBmcm9tICcuLi90eXBlcyc7XG5cbmludGVyZmFjZSBGbGlua0FwcGxpY2F0aW9uQ29uZmlndXJhdGlvbiBleHRlbmRzXG4gIENoZWNrcG9pbnRDb25maWd1cmF0aW9uLFxuICBNb25pdG9yaW5nQ29uZmlndXJhdGlvbixcbiAgUGFyYWxsZWxpc21Db25maWd1cmF0aW9uIHt9XG5cbmludGVyZmFjZSBDaGVja3BvaW50Q29uZmlndXJhdGlvbiB7XG4gIGNoZWNrcG9pbnRpbmdFbmFibGVkPzogYm9vbGVhbjtcbiAgY2hlY2twb2ludEludGVydmFsPzogY29yZS5EdXJhdGlvbjtcbiAgbWluUGF1c2VCZXR3ZWVuQ2hlY2twb2ludHM/OiBjb3JlLkR1cmF0aW9uO1xufVxuXG5pbnRlcmZhY2UgTW9uaXRvcmluZ0NvbmZpZ3VyYXRpb24ge1xuICBsb2dMZXZlbD86IExvZ0xldmVsO1xuICBtZXRyaWNzTGV2ZWw/OiBNZXRyaWNzTGV2ZWw7XG59XG5cbmludGVyZmFjZSBQYXJhbGxlbGlzbUNvbmZpZ3VyYXRpb24ge1xuICBhdXRvU2NhbGluZ0VuYWJsZWQ/OiBib29sZWFuO1xuICBwYXJhbGxlbGlzbT86IG51bWJlcjtcbiAgcGFyYWxsZWxpc21QZXJLcHU/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQnVpbGQgdGhlIG5lc3RlZCBDZm4gRmxpbmtBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gb2JqZWN0LiBUaGlzIGZ1bmN0aW9uXG4gKiBkb2Vzbid0IHJldHVybiBlbXB0eSBjb25maWcgb2JqZWN0cywgcmV0dXJuaW5nIHRoZSBtaW5pbWFsIGNvbmZpZyBuZWVkZWQgdG9cbiAqIGV4cHJlc3MgdGhlIHN1cHBsaWVkIHByb3BlcnRpZXMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBhbHNvIGhhbmRsZXMgdGhlIHF1aXJreSBjb25maWdUeXBlOiAnQ1VTVE9NJyBzZXR0aW5nIHJlcXVpcmVkXG4gKiB3aGVuZXZlciBjb25maWcgaW4gb25lIG9mIHRoZSBuZXN0ZWQgZ3JvdXBpbmdzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmxpbmtBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24oY29uZmlnOiBGbGlua0FwcGxpY2F0aW9uQ29uZmlndXJhdGlvbikge1xuICBjb25zdCBjaGVja3BvaW50Q29uZmlndXJhdGlvbiA9IGNvbmZpZ0Zvcih7XG4gICAgY2hlY2twb2ludGluZ0VuYWJsZWQ6IGNvbmZpZy5jaGVja3BvaW50aW5nRW5hYmxlZCxcbiAgICBjaGVja3BvaW50SW50ZXJ2YWw6IGNvbmZpZy5jaGVja3BvaW50SW50ZXJ2YWw/LnRvTWlsbGlzZWNvbmRzKCksXG4gICAgbWluUGF1c2VCZXR3ZWVuQ2hlY2twb2ludHM6IGNvbmZpZy5taW5QYXVzZUJldHdlZW5DaGVja3BvaW50cz8udG9NaWxsaXNlY29uZHMoKSxcbiAgfSk7XG5cbiAgY29uc3QgbW9uaXRvcmluZ0NvbmZpZ3VyYXRpb24gPSBjb25maWdGb3Ioe1xuICAgIGxvZ0xldmVsOiBjb25maWcubG9nTGV2ZWwsXG4gICAgbWV0cmljc0xldmVsOiBjb25maWcubWV0cmljc0xldmVsLFxuICB9KTtcblxuICBjb25zdCBwYXJhbGxlbGlzbUNvbmZpZ3VyYXRpb24gPSBjb25maWdGb3Ioe1xuICAgIGF1dG9TY2FsaW5nRW5hYmxlZDogY29uZmlnLmF1dG9TY2FsaW5nRW5hYmxlZCxcbiAgICBwYXJhbGxlbGlzbTogY29uZmlnLnBhcmFsbGVsaXNtLFxuICAgIHBhcmFsbGVsaXNtUGVyS3B1OiBjb25maWcucGFyYWxsZWxpc21QZXJLcHUsXG4gIH0pO1xuXG4gIGNvbnN0IGFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbiA9IHtcbiAgICBjaGVja3BvaW50Q29uZmlndXJhdGlvbixcbiAgICBtb25pdG9yaW5nQ29uZmlndXJhdGlvbixcbiAgICBwYXJhbGxlbGlzbUNvbmZpZ3VyYXRpb24sXG4gIH07XG5cbiAgaWYgKGlzRW1wdHlPYmooYXBwbGljYXRpb25Db25maWd1cmF0aW9uKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJldHVybiBhcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb247XG59XG5cbmZ1bmN0aW9uIGNvbmZpZ0Zvcihjb25maWc6IHtba2V5OiBzdHJpbmddOiB1bmtub3dufSkge1xuICBpZiAoaXNFbXB0eU9iaihjb25maWcpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5jb25maWcsXG4gICAgY29uZmlndXJhdGlvblR5cGU6ICdDVVNUT00nLFxuICB9O1xufVxuXG5mdW5jdGlvbiBpc0VtcHR5T2JqKG9iajoge1trZXk6IHN0cmluZ106IHVua25vd259KSB7XG4gIHJldHVybiBPYmplY3QudmFsdWVzKG9iaikuZXZlcnkodiA9PiB2ID09PSB1bmRlZmluZWQpO1xufVxuIl19
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxpbmstYXBwbGljYXRpb24tY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZsaW5rLWFwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeUJBOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQiw2QkFBNkIsQ0FBQyxNQUFxQztJQUNqRixNQUFNLHVCQUF1QixHQUFHLFNBQVMsQ0FBQztRQUN4QyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsb0JBQW9CO1FBQ2pELGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxjQUFjLEVBQUU7UUFDL0QsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLDBCQUEwQixFQUFFLGNBQWMsRUFBRTtLQUNoRixDQUFDLENBQUM7SUFFSCxNQUFNLHVCQUF1QixHQUFHLFNBQVMsQ0FBQztRQUN4QyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7UUFDekIsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZO0tBQ2xDLENBQUMsQ0FBQztJQUVILE1BQU0sd0JBQXdCLEdBQUcsU0FBUyxDQUFDO1FBQ3pDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxrQkFBa0I7UUFDN0MsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1FBQy9CLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7S0FDNUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSx3QkFBd0IsR0FBRztRQUMvQix1QkFBdUI7UUFDdkIsdUJBQXVCO1FBQ3ZCLHdCQUF3QjtLQUN6QixDQUFDO0lBRUYsSUFBSSxVQUFVLENBQUMsd0JBQXdCLENBQUMsRUFBRTtRQUN4QyxPQUFPO0tBQ1I7SUFFRCxPQUFPLHdCQUF3QixDQUFDO0FBQ2xDLENBQUM7QUE3QkQsc0VBNkJDO0FBRUQsU0FBUyxTQUFTLENBQUMsTUFBZ0M7SUFDakQsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdEIsT0FBTztLQUNSO0lBRUQsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULGlCQUFpQixFQUFFLFFBQVE7S0FDNUIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxHQUE2QjtJQUMvQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb3JlIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IExvZ0xldmVsLCBNZXRyaWNzTGV2ZWwgfSBmcm9tICcuLi90eXBlcyc7XG5cbmludGVyZmFjZSBGbGlua0FwcGxpY2F0aW9uQ29uZmlndXJhdGlvbiBleHRlbmRzXG4gIENoZWNrcG9pbnRDb25maWd1cmF0aW9uLFxuICBNb25pdG9yaW5nQ29uZmlndXJhdGlvbixcbiAgUGFyYWxsZWxpc21Db25maWd1cmF0aW9uIHt9XG5cbmludGVyZmFjZSBDaGVja3BvaW50Q29uZmlndXJhdGlvbiB7XG4gIGNoZWNrcG9pbnRpbmdFbmFibGVkPzogYm9vbGVhbjtcbiAgY2hlY2twb2ludEludGVydmFsPzogY29yZS5EdXJhdGlvbjtcbiAgbWluUGF1c2VCZXR3ZWVuQ2hlY2twb2ludHM/OiBjb3JlLkR1cmF0aW9uO1xufVxuXG5pbnRlcmZhY2UgTW9uaXRvcmluZ0NvbmZpZ3VyYXRpb24ge1xuICBsb2dMZXZlbD86IExvZ0xldmVsO1xuICBtZXRyaWNzTGV2ZWw/OiBNZXRyaWNzTGV2ZWw7XG59XG5cbmludGVyZmFjZSBQYXJhbGxlbGlzbUNvbmZpZ3VyYXRpb24ge1xuICBhdXRvU2NhbGluZ0VuYWJsZWQ/OiBib29sZWFuO1xuICBwYXJhbGxlbGlzbT86IG51bWJlcjtcbiAgcGFyYWxsZWxpc21QZXJLcHU/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQnVpbGQgdGhlIG5lc3RlZCBDZm4gRmxpbmtBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gb2JqZWN0LiBUaGlzIGZ1bmN0aW9uXG4gKiBkb2Vzbid0IHJldHVybiBlbXB0eSBjb25maWcgb2JqZWN0cywgcmV0dXJuaW5nIHRoZSBtaW5pbWFsIGNvbmZpZyBuZWVkZWQgdG9cbiAqIGV4cHJlc3MgdGhlIHN1cHBsaWVkIHByb3BlcnRpZXMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBhbHNvIGhhbmRsZXMgdGhlIHF1aXJreSBjb25maWdUeXBlOiAnQ1VTVE9NJyBzZXR0aW5nIHJlcXVpcmVkXG4gKiB3aGVuZXZlciBjb25maWcgaW4gb25lIG9mIHRoZSBuZXN0ZWQgZ3JvdXBpbmdzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmxpbmtBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24oY29uZmlnOiBGbGlua0FwcGxpY2F0aW9uQ29uZmlndXJhdGlvbikge1xuICBjb25zdCBjaGVja3BvaW50Q29uZmlndXJhdGlvbiA9IGNvbmZpZ0Zvcih7XG4gICAgY2hlY2twb2ludGluZ0VuYWJsZWQ6IGNvbmZpZy5jaGVja3BvaW50aW5nRW5hYmxlZCxcbiAgICBjaGVja3BvaW50SW50ZXJ2YWw6IGNvbmZpZy5jaGVja3BvaW50SW50ZXJ2YWw/LnRvTWlsbGlzZWNvbmRzKCksXG4gICAgbWluUGF1c2VCZXR3ZWVuQ2hlY2twb2ludHM6IGNvbmZpZy5taW5QYXVzZUJldHdlZW5DaGVja3BvaW50cz8udG9NaWxsaXNlY29uZHMoKSxcbiAgfSk7XG5cbiAgY29uc3QgbW9uaXRvcmluZ0NvbmZpZ3VyYXRpb24gPSBjb25maWdGb3Ioe1xuICAgIGxvZ0xldmVsOiBjb25maWcubG9nTGV2ZWwsXG4gICAgbWV0cmljc0xldmVsOiBjb25maWcubWV0cmljc0xldmVsLFxuICB9KTtcblxuICBjb25zdCBwYXJhbGxlbGlzbUNvbmZpZ3VyYXRpb24gPSBjb25maWdGb3Ioe1xuICAgIGF1dG9TY2FsaW5nRW5hYmxlZDogY29uZmlnLmF1dG9TY2FsaW5nRW5hYmxlZCxcbiAgICBwYXJhbGxlbGlzbTogY29uZmlnLnBhcmFsbGVsaXNtLFxuICAgIHBhcmFsbGVsaXNtUGVyS3B1OiBjb25maWcucGFyYWxsZWxpc21QZXJLcHUsXG4gIH0pO1xuXG4gIGNvbnN0IGFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbiA9IHtcbiAgICBjaGVja3BvaW50Q29uZmlndXJhdGlvbixcbiAgICBtb25pdG9yaW5nQ29uZmlndXJhdGlvbixcbiAgICBwYXJhbGxlbGlzbUNvbmZpZ3VyYXRpb24sXG4gIH07XG5cbiAgaWYgKGlzRW1wdHlPYmooYXBwbGljYXRpb25Db25maWd1cmF0aW9uKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJldHVybiBhcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb247XG59XG5cbmZ1bmN0aW9uIGNvbmZpZ0Zvcihjb25maWc6IHtba2V5OiBzdHJpbmddOiB1bmtub3dufSkge1xuICBpZiAoaXNFbXB0eU9iaihjb25maWcpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5jb25maWcsXG4gICAgY29uZmlndXJhdGlvblR5cGU6ICdDVVNUT00nLFxuICB9O1xufVxuXG5mdW5jdGlvbiBpc0VtcHR5T2JqKG9iajoge1trZXk6IHN0cmluZ106IHVua25vd259KSB7XG4gIHJldHVybiBPYmplY3QudmFsdWVzKG9iaikuZXZlcnkodiA9PiB2ID09PSB1bmRlZmluZWQpO1xufVxuIl19
package/lib/types.js CHANGED
@@ -45,7 +45,7 @@ class Runtime {
45
45
  }
46
46
  exports.Runtime = Runtime;
47
47
  _a = JSII_RTTI_SYMBOL_1;
48
- Runtime[_a] = { fqn: "@aws-cdk/aws-kinesisanalytics-flink-alpha.Runtime", version: "2.27.0-alpha.0" };
48
+ Runtime[_a] = { fqn: "@aws-cdk/aws-kinesisanalytics-flink-alpha.Runtime", version: "2.29.0-alpha.0" };
49
49
  /** Flink Version 1.6 */
50
50
  Runtime.FLINK_1_6 = Runtime.of('FLINK-1_6');
51
51
  /** Flink Version 1.8 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-cdk/aws-kinesisanalytics-flink-alpha",
3
- "version": "2.27.0-alpha.0",
3
+ "version": "2.29.0-alpha.0",
4
4
  "description": "A CDK Construct Library for Kinesis Analytics Flink applications",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -77,18 +77,18 @@
77
77
  },
78
78
  "license": "Apache-2.0",
79
79
  "devDependencies": {
80
- "@aws-cdk/cdk-build-tools": "2.27.0",
81
- "@aws-cdk/integ-runner": "2.27.0",
82
- "@aws-cdk/pkglint": "2.27.0",
83
- "@types/jest": "^27.5.0",
80
+ "@aws-cdk/cdk-build-tools": "2.29.0",
81
+ "@aws-cdk/integ-runner": "2.29.0",
82
+ "@aws-cdk/pkglint": "2.29.0",
83
+ "@types/jest": "^27.5.2",
84
84
  "jest": "^27.5.1",
85
- "aws-cdk-lib": "2.27.0",
85
+ "aws-cdk-lib": "2.29.0",
86
86
  "constructs": "^10.0.0"
87
87
  },
88
88
  "dependencies": {},
89
89
  "homepage": "https://github.com/aws/aws-cdk",
90
90
  "peerDependencies": {
91
- "aws-cdk-lib": "^2.27.0",
91
+ "aws-cdk-lib": "^2.29.0",
92
92
  "constructs": "^10.0.0"
93
93
  },
94
94
  "engines": {