aws-delivlib 14.1.101 → 14.1.102
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.
|
@@ -27,7 +27,7 @@ class EcrMirror extends constructs_1.Construct {
|
|
|
27
27
|
this._project = new aws_cdk_lib_1.aws_codebuild.Project(this, 'EcrPushImages', {
|
|
28
28
|
environment: {
|
|
29
29
|
privileged: true,
|
|
30
|
-
buildImage: aws_cdk_lib_1.aws_codebuild.LinuxBuildImage.fromDockerRegistry('jsii/superchain:1-buster-slim', {
|
|
30
|
+
buildImage: aws_cdk_lib_1.aws_codebuild.LinuxBuildImage.fromDockerRegistry('public.ecr.aws/jsii/superchain:1-buster-slim', {
|
|
31
31
|
secretsManagerCredentials: props.dockerHubCredentials.secret,
|
|
32
32
|
}),
|
|
33
33
|
},
|
|
@@ -50,6 +50,8 @@ class EcrMirror extends constructs_1.Construct {
|
|
|
50
50
|
'docker login -u ${DOCKERHUB_USERNAME} -p ${DOCKERHUB_PASSWORD}',
|
|
51
51
|
// login to ecr so we can push to it
|
|
52
52
|
`aws ecr get-login-password | docker login --username AWS --password-stdin ${ecrRegistry}`,
|
|
53
|
+
// login to ecr-public so we can pull from it with improved rate limits
|
|
54
|
+
'aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws',
|
|
53
55
|
...commands,
|
|
54
56
|
],
|
|
55
57
|
},
|
|
@@ -59,6 +61,8 @@ class EcrMirror extends constructs_1.Construct {
|
|
|
59
61
|
})),
|
|
60
62
|
ssmSessionPermissions: true,
|
|
61
63
|
});
|
|
64
|
+
// Ensure the runner has PULL access to ECR-Public.
|
|
65
|
+
this._project.role.addManagedPolicy(aws_cdk_lib_1.aws_iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonElasticContainerRegistryPublicReadOnly'));
|
|
62
66
|
for (const image of props.sources) {
|
|
63
67
|
const result = image.bind({
|
|
64
68
|
scope: this,
|
|
@@ -108,14 +112,14 @@ class EcrMirror extends constructs_1.Construct {
|
|
|
108
112
|
});
|
|
109
113
|
}
|
|
110
114
|
}
|
|
111
|
-
createMirrorRepo(
|
|
112
|
-
if (this._repos.get(
|
|
115
|
+
createMirrorRepo(ecrRepositoryName) {
|
|
116
|
+
if (this._repos.get(ecrRepositoryName)) {
|
|
113
117
|
return;
|
|
114
118
|
}
|
|
115
|
-
const repository = new aws_cdk_lib_1.aws_ecr.Repository(this, `Repo${
|
|
116
|
-
repositoryName:
|
|
119
|
+
const repository = new aws_cdk_lib_1.aws_ecr.Repository(this, `Repo${ecrRepositoryName}`, {
|
|
120
|
+
repositoryName: ecrRepositoryName,
|
|
117
121
|
});
|
|
118
|
-
this._repos.set(
|
|
122
|
+
this._repos.set(ecrRepositoryName, repository);
|
|
119
123
|
}
|
|
120
124
|
/**
|
|
121
125
|
* Get the target ECR repository for the given repository name and tag.
|
|
@@ -157,4 +161,4 @@ class EcrMirrorAspect {
|
|
|
157
161
|
}
|
|
158
162
|
}
|
|
159
163
|
exports.EcrMirrorAspect = EcrMirrorAspect;
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNyLW1pcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVjci1taXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBU3FCO0FBQ3JCLDJDQUFtRDtBQStEbkQ7OztHQUdHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsc0JBQVM7SUFNdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBTEYsV0FBTSxHQUFnQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2hELGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQU1qRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsTUFBTSxXQUFXLEdBQUcsR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLFlBQVksbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxnQkFBZ0IsQ0FBQztRQUNqRyxNQUFNLFFBQVEsR0FBYSxFQUFFLENBQUM7UUFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQWtCLENBQUM7UUFFM0MsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdBQVcsRUFBRSxJQUEwQixFQUFFLEVBQUU7O1lBQ3ZFLE9BQU8sR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxHQUFHLElBQUksTUFBQSxJQUFJLENBQUMsWUFBWSxtQ0FBSSxZQUFZLEVBQUUsQ0FBQztRQUN2RyxDQUFDLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFD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TUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLFdBQVcsRUFBRTtvQkFDZixVQUFVLENBQUMsV0FBVyxHQUFHO3dCQUN2QixHQUFHLEdBQUc7d0JBQ04sS0FBSyxFQUFFLDJCQUFTLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPO3FCQUM3RSxDQUFDO29CQUNGLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ2pDLHFCQUFHLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUM3QzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0NBQ0Y7QUF0QkQsMENBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSUFzcGVjdCwgTGF6eSwgU3RhY2ssIFRva2VuLFxuICBhd3NfZWNyIGFzIGVjcixcbiAgYXdzX2NvZGVidWlsZCBhcyBjb2RlYnVpbGQsXG4gIGF3c19ldmVudHMgYXMgZXZlbnRzLFxuICBhd3NfZXZlbnRzX3RhcmdldHMgYXMgdGFyZ2V0cyxcbiAgYXdzX3MzX2Fzc2V0cyBhcyBzM0Fzc2V0cyxcbiAgYXdzX3NlY3JldHNtYW5hZ2VyIGFzIHNtLFxuICBjdXN0b21fcmVzb3VyY2VzIGFzIGNyLFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IE1pcnJvclNvdXJjZSB9IGZyb20gJy4vbWlycm9yLXNvdXJjZSc7XG5cbi8qKlxuICogQXV0aGVudGljYXRpb24gZGV0YWlscyBmb3IgRG9ja2VySHViLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZGVidWlsZC9sYXRlc3QvdXNlcmd1aWRlL2J1aWxkLXNwZWMtcmVmLmh0bWwjYnVpbGQtc3BlYy5lbnYuc2VjcmV0cy1tYW5hZ2VyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VySHViQ3JlZGVudGlhbHMge1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjcmV0IHRoYXQgY29udGFpbnMgdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBmb3IgRG9ja2VyaHViXG4gICAqL1xuICByZWFkb25seSBzZWNyZXQ6IHNtLklTZWNyZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWNyZXQga2V5IHRoYXQgY29udGFpbnMgdGhlIHVzZXJuYW1lIGluIHRoZSBzcGVjaWZpZWQgc2VjcmV0LlxuICAgKi9cbiAgcmVhZG9ubHkgdXNlcm5hbWVLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNlY3JldCBrZXkgdGhhdCBjb250YWlucyB0aGUgcGFzc3dvcmQgaW4gdGhlIHNwZWNpZmllZCBzZWNyZXQuXG4gICAqL1xuICByZWFkb25seSBwYXNzd29yZEtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIHN0YWdlIG9mIHRoZSBzZWNyZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdBV1NDVVJSRU5UJ1xuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvblN0YWdlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gaW5pdGlhbGl6ZSBFY3JSZWdpc3RyeVN5bmNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFY3JNaXJyb3JQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBpbWFnZXMgdG8ga2VlcCBzeW5jJ2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlczogTWlycm9yU291cmNlW107XG5cbiAgLyoqXG4gICAqIENyZWRlbnRpYWxzIHRvIHNpZ25pbmcgaW50byBEb2NrZXJodWIuXG4gICAqL1xuICByZWFkb25seSBkb2NrZXJIdWJDcmVkZW50aWFsczogRG9ja2VySHViQ3JlZGVudGlhbHM7XG5cbiAgLyoqXG4gICAqIFN5bmMgam9iIHJ1bnMgb24gYSBzY2hlZHVsZS5cbiAgICogVGhyb3dzIGFuIGVycm9yIGlmIG5laXRoZXIgdGhpcyBub3IgYGF1dG9TdGFydGAgYXJlIHNwZWNpZmllZC5cbiAgICogQGRlZmF1bHQgLSBkb2VzIG5vdCBydW4gb24gc2NoZWR1bGVcbiAgICovXG4gIHJlYWRvbmx5IHNjaGVkdWxlPzogZXZlbnRzLlNjaGVkdWxlO1xuXG4gIC8qKlxuICAgKiBTdGFydCB0aGUgc3luYyBqb2IgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGRlcGxveW1lbnQuXG4gICAqIFRoaXMgaW5qZWN0cyBhIGN1c3RvbSByZXNvdXJjZSB0aGF0IGlzIGV4ZWN1dGVkIGFzIHBhcnQgb2YgdGhlIGRlcGxveW1lbnQuXG4gICAqIFRocm93cyBhbiBlcnJvciBpZiBuZWl0aGVyIHRoaXMgbm9yIGBzY2hlZHVsZWAgYXJlIHNwZWNpZmllZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGF1dG9TdGFydD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogU3luY2hyb25pemUgaW1hZ2VzIGZyb20gRG9ja2VySHViIHRvIGFuIEVDUiByZWdpc3RyeSBpbiB0aGUgQVdTIGFjY291bnQuXG4gKiBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgdG8gd29ya2Fyb3VuZCBEb2NrZXJIdWIncyB0aHJvdHRsaW5nIG9uIHB1bGxzIGFuZCB1c2UgRUNSIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBFY3JNaXJyb3IgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlcG9zOiBNYXA8c3RyaW5nLCBlY3IuUmVwb3NpdG9yeT4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlcG9UYWdzU2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wcm9qZWN0OiBjb2RlYnVpbGQuUHJvamVjdDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRWNyTWlycm9yUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKCFwcm9wcy5zY2hlZHVsZSAmJiAhcHJvcHMuYXV0b1N0YXJ0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VpdGhlciBzY2hlZHVsZSBvciBhdXRvU3RhcnQgbXVzdCBiZSBwcm92aWRlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGVjclJlZ2lzdHJ5ID0gYCR7U3RhY2sub2Yoc2NvcGUpLmFjY291bnR9LmRrci5lY3IuJHtTdGFjay5vZihzY29wZSkucmVnaW9ufS5hbWF6b25hd3MuY29tYDtcbiAgICBjb25zdCBjb21tYW5kczogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBhc3NldHMgPSBuZXcgQXJyYXk8czNBc3NldHMuQXNzZXQ+KCk7XG5cbiAgICBjb25zdCBjb2RlQnVpbGRTZWNyZXRWYWx1ZSA9IChrZXk6IHN0cmluZywgYXV0aDogRG9ja2VySHViQ3JlZGVudGlhbHMpID0+IHtcbiAgICAgIHJldHVybiBgJHtwcm9wcy5kb2NrZXJIdWJDcmVkZW50aWFscy5zZWNyZXQuc2VjcmV0TmFtZX06JHtrZXl9OiR7YXV0aC52ZXJzaW9uU3RhZ2UgPz8gJ0FXU0NVUlJFTlQnfWA7XG4gICAgfTtcblxuICAgIGNvbnN0IHVzZXJuYW1lID0gY29kZUJ1aWxkU2VjcmV0VmFsdWUocHJvcHMuZG9ja2VySHViQ3JlZGVudGlhbHMudXNlcm5hbWVLZXksIHByb3BzLmRvY2tlckh1YkNyZWRlbnRpYWxzKTtcbiAgICBjb25zdCBwYXNzd29yZCA9IGNvZGVCdWlsZFNlY3JldFZhbHVlKHByb3BzLmRvY2tlckh1YkNyZWRlbnRpYWxzLnBhc3N3b3JkS2V5LCBwcm9wcy5kb2NrZXJIdWJDcmVkZW50aWFscyk7XG5cbiAgICB0aGlzLl9wcm9qZWN0ID0gbmV3IGNvZGVidWlsZC5Qcm9qZWN0KHRoaXMsICdFY3JQdXNoSW1hZ2VzJywge1xuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgcHJpdmlsZWdlZDogdHJ1ZSxcbiAgICAgICAgYnVpbGRJbWFnZTogY29kZWJ1aWxkLkxpbnV4QnVpbGRJbWFnZS5mcm9tRG9ja2VyUmVnaXN0cnkoJ2pzaWkvc3VwZXJjaGFpbjoxLWJ1c3Rlci1zbGltJywge1xuICAgICAgICAgIHNlY3JldHNNYW5hZ2VyQ3JlZGVudGlhbHM6IHByb3BzLmRvY2tlckh1YkNyZWRlbnRpYWxzLnNlY3JldCxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZXM6IHtcbiAgICAgICAgLy8gRG9ja2VySHViIGNyZWRlbnRpYWxzIHRvIGF2b2lkIHRocm90dGxpbmdcbiAgICAgICAgRE9DS0VSSFVCX1VTRVJOQU1FOiB7IHZhbHVlOiB1c2VybmFtZSwgdHlwZTogY29kZWJ1aWxkLkJ1aWxkRW52aXJvbm1lbnRWYXJpYWJsZVR5cGUuU0VDUkVUU19NQU5BR0VSIH0sXG4gICAgICAgIERPQ0tFUkhVQl9QQVNTV09SRDogeyB2YWx1ZTogcGFzc3dvcmQsIHR5cGU6IGNvZGVidWlsZC5CdWlsZEVudmlyb25tZW50VmFyaWFibGVUeXBlLlNFQ1JFVFNfTUFOQUdFUiB9LFxuICAgICAgfSxcbiAgICAgIGJ1aWxkU3BlYzogY29kZWJ1aWxkLkJ1aWxkU3BlYy5mcm9tT2JqZWN0KExhenkuYW55KHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2ZXJzaW9uOiAnMC4yJyxcbiAgICAgICAgICAgIHBoYXNlczoge1xuICAgICAgICAgICAgICBidWlsZDoge1xuICAgICAgICAgICAgICAgIGNvbW1hbmRzOiBbXG5cbiAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0IHRoZSBkb2NrZXIgZGFlbW9uXG4gICAgICAgICAgICAgICAgICAnbm9odXAgL3Vzci9iaW4vZG9ja2VyZCAtLWhvc3Q9dW5peDovLy92YXIvcnVuL2RvY2tlci5zb2NrIC0taG9zdD10Y3A6Ly8xMjcuMC4wLjE6MjM3NSAtLXN0b3JhZ2UtZHJpdmVyPW92ZXJsYXkyJicsXG4gICAgICAgICAgICAgICAgICAndGltZW91dCAxNSBzaCAtYyBcInVudGlsIGRvY2tlciBpbmZvOyBkbyBlY2hvIC47IHNsZWVwIDE7IGRvbmVcIicsXG5cbiAgICAgICAgICAgICAgICAgIC8vIGxvZ2luIHRvIGRvY2tlcmh1YiBzbyB3ZSB3b24ndCBnZXQgdGhyb3R0bGVkXG4gICAgICAgICAgICAgICAgICAnZG9ja2VyIGxvZ2luIC11ICR7RE9DS0VSSFVCX1VTRVJOQU1FfSAtcCAke0RPQ0tFUkhVQl9QQVNTV09SRH0nLFxuXG4gICAgICAgICAgICAgICAgICAvLyBsb2dpbiB0byBlY3Igc28gd2UgY2FuIHB1c2ggdG8gaXRcbiAgICAgICAgICAgICAgICAgIGBhd3MgZWNyIGdldC1sb2dpbi1wYXNzd29yZCB8IGRvY2tlciBsb2dpbiAtLXVzZXJuYW1lIEFXUyAtLXBhc3N3b3JkLXN0ZGluICR7ZWNyUmVnaXN0cnl9YCxcblxuICAgICAgICAgICAgICAgICAgLi4uY29tbWFuZHMsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgIH0pKSxcbiAgICAgIHNzbVNlc3Npb25QZXJtaXNzaW9uczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGZvciAoY29uc3QgaW1hZ2Ugb2YgcHJvcHMuc291cmNlcykge1xuICAgICAgY29uc3QgcmVzdWx0ID0gaW1hZ2UuYmluZCh7XG4gICAgICAgIHNjb3BlOiB0aGlzLFxuICAgICAgICBlY3JSZWdpc3RyeSxcbiAgICAgICAgc3luY0pvYjogdGhpcy5fcHJvamVjdCxcbiAgICAgIH0pO1xuICAgICAgY29tbWFuZHMucHVzaCguLi5yZXN1bHQuY29tbWFuZHMpO1xuXG4gICAgICBjb25zdCByZXBvVGFnID0gYCR7cmVzdWx0LnJlcG9zaXRvcnlOYW1lfToke3Jlc3VsdC50YWd9YDtcbiAgICAgIGlmICh0aGlzLl9yZXBvVGFnc1NlZW4uaGFzKHJlcG9UYWcpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTWlycm9yIHNvdXJjZSB3aXRoIHJlcG9zaXRvcnkgbmFtZSBbJHtyZXN1bHQucmVwb3NpdG9yeU5hbWV9XSBhbmQgdGFnIFske3Jlc3VsdC50YWd9XSBhbHJlYWR5IGV4aXN0cy5gKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3JlcG9UYWdzU2Vlbi5hZGQocmVwb1RhZyk7XG5cbiAgICAgIHRoaXMuY3JlYXRlTWlycm9yUmVwbyhyZXN1bHQucmVwb3NpdG9yeU5hbWUpO1xuXG4gICAgICBjb25zdCBlY3JJbWFnZVVyaSA9IGAke2VjclJlZ2lzdHJ5fS8ke3Jlc3VsdC5yZXBvc2l0b3J5TmFtZX06JHtyZXN1bHQudGFnfWA7XG4gICAgICBjb21tYW5kcy5wdXNoKGBkb2NrZXIgcHVzaCAke2VjckltYWdlVXJpfWApO1xuXG4gICAgICAvLyBjbGVhbiBhZnRlciBlYWNoIHB1c2ggc28gdGhhdCB3ZSBkb24ndCBmaWxsdXAgZGlzayBzcGFjZVxuICAgICAgLy8gcG9zc2libHkgZmFpbGluZyB0aGUgbmV4dCBwdWxsLlxuICAgICAgY29tbWFuZHMucHVzaCgnZG9ja2VyIGltYWdlIHBydW5lIC0tYWxsIC0tZm9yY2UnKTtcbiAgICB9XG5cbiAgICAvLyBDb2RlQnVpbGQgbmVlZHMgdG8gcmVhZCB0aGUgc2VjcmV0IHRvIHJlc29sdmUgZW52aXJvbm1lbnQgdmFyaWFibGVzXG4gICAgcHJvcHMuZG9ja2VySHViQ3JlZGVudGlhbHMuc2VjcmV0LmdyYW50UmVhZCh0aGlzLl9wcm9qZWN0KTtcblxuICAgIGVjci5BdXRob3JpemF0aW9uVG9rZW4uZ3JhbnRSZWFkKHRoaXMuX3Byb2plY3QpO1xuICAgIHRoaXMuX3JlcG9zLmZvckVhY2goKHIsIF8pID0+IHIuZ3JhbnRQdWxsUHVzaCh0aGlzLl9wcm9qZWN0KSk7XG5cbiAgICAvLyB0aGlzIHByb2plY3QgbmVlZHMgdG8gZG93bmxvYWQgdGhlIGFzc2V0cyBzbyBpdCBjYW4gYnVpbGQgdGhlbVxuICAgIGFzc2V0cy5mb3JFYWNoKGEgPT4gYS5ncmFudFJlYWQodGhpcy5fcHJvamVjdCkpO1xuXG4gICAgaWYgKHByb3BzLmF1dG9TdGFydCkge1xuICAgICAgbmV3IGNyLkF3c0N1c3RvbVJlc291cmNlKHRoaXMsICdCdWlsZEV4ZWN1dGlvbicsIHtcbiAgICAgICAgcG9saWN5OiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoeyByZXNvdXJjZXM6IFt0aGlzLl9wcm9qZWN0LnByb2plY3RBcm5dIH0pLFxuICAgICAgICBvblVwZGF0ZToge1xuICAgICAgICAgIGFjdGlvbjogJ3N0YXJ0QnVpbGQnLFxuICAgICAgICAgIHNlcnZpY2U6ICdDb2RlQnVpbGQnLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIHByb2plY3ROYW1lOiB0aGlzLl9wcm9qZWN0LnByb2plY3ROYW1lLFxuICAgICAgICAgICAgLy8gdG8gdGlnZ2VyIHRoZSBidWlsZCBvbiBldmVyeSB1cGRhdGVcbiAgICAgICAgICAgIGlkZW1wb3RlbmN5VG9rZW46IGAke0RhdGUubm93KCl9YCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3IuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKCdFY3JSZWdpc3RyeUV4ZWN1dGlvbicpLFxuXG4gICAgICAgICAgLy8gbmVlZCBzaW5jZSB0aGUgZGVmYXVsdCByZXBvbnNlIGlmIGdyZWF0ZXIgdGhhbiB0aGUgNGsgbGltaXQgZm9yIGN1c3RvbSByZXNvdXJjZXMuXG4gICAgICAgICAgb3V0cHV0UGF0aHM6IFsnYnVpbGQuaWQnXSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5zY2hlZHVsZSkge1xuICAgICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdTY2hlZHVsZWRUcmlnZ2VyJywge1xuICAgICAgICBzY2hlZHVsZTogcHJvcHMuc2NoZWR1bGUsXG4gICAgICAgIHRhcmdldHM6IFtuZXcgdGFyZ2V0cy5Db2RlQnVpbGRQcm9qZWN0KHRoaXMuX3Byb2plY3QpXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTWlycm9yUmVwbyhyZXBvc2l0b3J5TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuX3JlcG9zLmdldChyZXBvc2l0b3J5TmFtZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZXBvc2l0b3J5ID0gbmV3IGVjci5SZXBvc2l0b3J5KHRoaXMsIGBSZXBvJHtyZXBvc2l0b3J5TmFtZX1gLCB7XG4gICAgICByZXBvc2l0b3J5TmFtZTogcmVwb3NpdG9yeU5hbWUsXG4gICAgfSk7XG4gICAgdGhpcy5fcmVwb3Muc2V0KHJlcG9zaXRvcnlOYW1lLCByZXBvc2l0b3J5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHRhcmdldCBFQ1IgcmVwb3NpdG9yeSBmb3IgdGhlIGdpdmVuIHJlcG9zaXRvcnkgbmFtZSBhbmQgdGFnLlxuICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIEVDUiByZXBvc2l0b3J5IHdpdGggdGhpcyBuYW1lXG4gICAqIEBwYXJhbSB0YWcgdGhlIHRhZyBmb3IgdGhlIHJlcG9zaXRvcnksIGRlZmF1bHRzIHRvICdsYXRlc3QnXG4gICAqL1xuICBwdWJsaWMgZWNyUmVwb3NpdG9yeShyZXBvc2l0b3J5TmFtZTogc3RyaW5nKTogZWNyLklSZXBvc2l0b3J5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fcmVwb3MuZ2V0KHJlcG9zaXRvcnlOYW1lKTtcbiAgfVxufTtcblxuLyoqXG4gKiBBbiBhc3BlY3QgdGhhdCB3YWxrcyB0aHJvdWdoIHRoZSBjb25zdHJ1Y3QgdHJlZSBhbmQgcmVwbGFjZXMgQ29kZUJ1aWxkIGpvYnMgd2l0aCBEb2NrZXIgaW1hZ2VzXG4gKiB3aXRoIEVDUiBlcXVpdmFsZW50cyBmb3VuZCBpbiB0aGUgRWNyTWlycm9yLlxuICovXG5leHBvcnQgY2xhc3MgRWNyTWlycm9yQXNwZWN0IGltcGxlbWVudHMgSUFzcGVjdCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbWlycm9yOiBFY3JNaXJyb3IpIHt9XG5cbiAgcHVibGljIHZpc2l0KGNvbnN0cnVjdDogSUNvbnN0cnVjdCkge1xuICAgIGlmIChjb25zdHJ1Y3QgaW5zdGFuY2VvZiBjb2RlYnVpbGQuUHJvamVjdCkge1xuICAgICAgY29uc3QgY2ZucHJvamVjdCA9IGNvbnN0cnVjdC5ub2RlLmRlZmF1bHRDaGlsZCBhcyBjb2RlYnVpbGQuQ2ZuUHJvamVjdDtcbiAgICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGNmbnByb2plY3QuZW52aXJvbm1lbnQpKSB7XG4gICAgICAgIGNvbnN0IGVudiA9IGNmbnByb2plY3QuZW52aXJvbm1lbnQgYXMgY29kZWJ1aWxkLkNmblByb2plY3QuRW52aXJvbm1lbnRQcm9wZXJ0eTtcbiAgICAgICAgY29uc3QgaW1hZ2VOYW1lID0gZW52LmltYWdlLnNwbGl0KCc6JylbMF07XG4gICAgICAgIGNvbnN0IHRhZyA9IGVudi5pbWFnZS5zcGxpdCgnOicpWzFdO1xuICAgICAgICBjb25zdCByZXBsYWNlbWVudCA9IHRoaXMubWlycm9yLmVjclJlcG9zaXRvcnkoaW1hZ2VOYW1lKTtcbiAgICAgICAgaWYgKHJlcGxhY2VtZW50KSB7XG4gICAgICAgICAgY2ZucHJvamVjdC5lbnZpcm9ubWVudCA9IHtcbiAgICAgICAgICAgIC4uLmVudixcbiAgICAgICAgICAgIGltYWdlOiBjb2RlYnVpbGQuTGludXhCdWlsZEltYWdlLmZyb21FY3JSZXBvc2l0b3J5KHJlcGxhY2VtZW50LCB0YWcpLmltYWdlSWQsXG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXBsYWNlbWVudC5ncmFudFB1bGwoY29uc3RydWN0KTtcbiAgICAgICAgICBlY3IuQXV0aG9yaXphdGlvblRva2VuLmdyYW50UmVhZChjb25zdHJ1Y3QpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNyLW1pcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVjci1taXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBVXFCO0FBQ3JCLDJDQUFtRDtBQStEbkQ7OztHQUdHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsc0JBQVM7SUFNdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBTEYsV0FBTSxHQUFnQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2hELGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQU1qRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsTUFBTSxXQUFXLEdBQUcsR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLFlBQVksbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxnQkFBZ0IsQ0FBQztRQUNqRyxNQUFNLFFBQVEsR0FBYSxFQUFFLENBQUM7UUFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQWtCLENBQUM7UUFFM0MsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdBQVcsRUFBRSxJQUEwQixFQUFFLEVBQUU7O1lBQ3ZFLE9BQU8sR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxHQUFHLElBQUksTUFBQSxJQUFJLENBQUMsWUFBWSxtQ0FBSSxZQUFZLEVBQUUsQ0FBQztRQUN2RyxDQUFDLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFD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LENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQy9DLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxXQUF1RCxDQUFDO2dCQUMvRSxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLFdBQVcsRUFBRTtvQkFDZixVQUFVLENBQUMsV0FBVyxHQUFHO3dCQUN2QixHQUFHLEdBQUc7d0JBQ04sS0FBSyxFQUFFLDJCQUFTLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPO3FCQUM3RSxDQUFDO29CQUNGLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ2pDLHFCQUFHLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUM3QzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0NBQ0Y7QUF0QkQsMENBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSUFzcGVjdCwgTGF6eSwgU3RhY2ssIFRva2VuLFxuICBhd3NfZWNyIGFzIGVjcixcbiAgYXdzX2NvZGVidWlsZCBhcyBjb2RlYnVpbGQsXG4gIGF3c19ldmVudHMgYXMgZXZlbnRzLFxuICBhd3NfZXZlbnRzX3RhcmdldHMgYXMgdGFyZ2V0cyxcbiAgYXdzX2lhbSBhcyBpYW0sXG4gIGF3c19zM19hc3NldHMgYXMgczNBc3NldHMsXG4gIGF3c19zZWNyZXRzbWFuYWdlciBhcyBzbSxcbiAgY3VzdG9tX3Jlc291cmNlcyBhcyBjcixcbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBNaXJyb3JTb3VyY2UgfSBmcm9tICcuL21pcnJvci1zb3VyY2UnO1xuXG4vKipcbiAqIEF1dGhlbnRpY2F0aW9uIGRldGFpbHMgZm9yIERvY2tlckh1Yi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2RlYnVpbGQvbGF0ZXN0L3VzZXJndWlkZS9idWlsZC1zcGVjLXJlZi5odG1sI2J1aWxkLXNwZWMuZW52LnNlY3JldHMtbWFuYWdlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckh1YkNyZWRlbnRpYWxzIHtcblxuICAvKipcbiAgICogVGhlIHNlY3JldCB0aGF0IGNvbnRhaW5zIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgZm9yIERvY2tlcmh1YlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0OiBzbS5JU2VjcmV0O1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjcmV0IGtleSB0aGF0IGNvbnRhaW5zIHRoZSB1c2VybmFtZSBpbiB0aGUgc3BlY2lmaWVkIHNlY3JldC5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJuYW1lS2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWNyZXQga2V5IHRoYXQgY29udGFpbnMgdGhlIHBhc3N3b3JkIGluIHRoZSBzcGVjaWZpZWQgc2VjcmV0LlxuICAgKi9cbiAgcmVhZG9ubHkgcGFzc3dvcmRLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiBzdGFnZSBvZiB0aGUgc2VjcmV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnQVdTQ1VSUkVOVCdcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25TdGFnZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGluaXRpYWxpemUgRWNyUmVnaXN0cnlTeW5jXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWNyTWlycm9yUHJvcHMge1xuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgaW1hZ2VzIHRvIGtlZXAgc3luYydlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZXM6IE1pcnJvclNvdXJjZVtdO1xuXG4gIC8qKlxuICAgKiBDcmVkZW50aWFscyB0byBzaWduaW5nIGludG8gRG9ja2VyaHViLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VySHViQ3JlZGVudGlhbHM6IERvY2tlckh1YkNyZWRlbnRpYWxzO1xuXG4gIC8qKlxuICAgKiBTeW5jIGpvYiBydW5zIG9uIGEgc2NoZWR1bGUuXG4gICAqIFRocm93cyBhbiBlcnJvciBpZiBuZWl0aGVyIHRoaXMgbm9yIGBhdXRvU3RhcnRgIGFyZSBzcGVjaWZpZWQuXG4gICAqIEBkZWZhdWx0IC0gZG9lcyBub3QgcnVuIG9uIHNjaGVkdWxlXG4gICAqL1xuICByZWFkb25seSBzY2hlZHVsZT86IGV2ZW50cy5TY2hlZHVsZTtcblxuICAvKipcbiAgICogU3RhcnQgdGhlIHN5bmMgam9iIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBkZXBsb3ltZW50LlxuICAgKiBUaGlzIGluamVjdHMgYSBjdXN0b20gcmVzb3VyY2UgdGhhdCBpcyBleGVjdXRlZCBhcyBwYXJ0IG9mIHRoZSBkZXBsb3ltZW50LlxuICAgKiBUaHJvd3MgYW4gZXJyb3IgaWYgbmVpdGhlciB0aGlzIG5vciBgc2NoZWR1bGVgIGFyZSBzcGVjaWZpZWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhdXRvU3RhcnQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFN5bmNocm9uaXplIGltYWdlcyBmcm9tIERvY2tlckh1YiB0byBhbiBFQ1IgcmVnaXN0cnkgaW4gdGhlIEFXUyBhY2NvdW50LlxuICogVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIHRvIHdvcmthcm91bmQgRG9ja2VySHViJ3MgdGhyb3R0bGluZyBvbiBwdWxscyBhbmQgdXNlIEVDUiBpbnN0ZWFkLlxuICovXG5leHBvcnQgY2xhc3MgRWNyTWlycm9yIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9yZXBvczogTWFwPHN0cmluZywgZWNyLlJlcG9zaXRvcnk+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXBvVGFnc1NlZW4gPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJvamVjdDogY29kZWJ1aWxkLlByb2plY3Q7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEVjck1pcnJvclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmICghcHJvcHMuc2NoZWR1bGUgJiYgIXByb3BzLmF1dG9TdGFydCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFaXRoZXIgc2NoZWR1bGUgb3IgYXV0b1N0YXJ0IG11c3QgYmUgcHJvdmlkZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBlY3JSZWdpc3RyeSA9IGAke1N0YWNrLm9mKHNjb3BlKS5hY2NvdW50fS5ka3IuZWNyLiR7U3RhY2sub2Yoc2NvcGUpLnJlZ2lvbn0uYW1hem9uYXdzLmNvbWA7XG4gICAgY29uc3QgY29tbWFuZHM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3QgYXNzZXRzID0gbmV3IEFycmF5PHMzQXNzZXRzLkFzc2V0PigpO1xuXG4gICAgY29uc3QgY29kZUJ1aWxkU2VjcmV0VmFsdWUgPSAoa2V5OiBzdHJpbmcsIGF1dGg6IERvY2tlckh1YkNyZWRlbnRpYWxzKSA9PiB7XG4gICAgICByZXR1cm4gYCR7cHJvcHMuZG9ja2VySHViQ3JlZGVudGlhbHMuc2VjcmV0LnNlY3JldE5hbWV9OiR7a2V5fToke2F1dGgudmVyc2lvblN0YWdlID8/ICdBV1NDVVJSRU5UJ31gO1xuICAgIH07XG5cbiAgICBjb25zdCB1c2VybmFtZSA9IGNvZGVCdWlsZFNlY3JldFZhbHVlKHByb3BzLmRvY2tlckh1YkNyZWRlbnRpYWxzLnVzZXJuYW1lS2V5LCBwcm9wcy5kb2NrZXJIdWJDcmVkZW50aWFscyk7XG4gICAgY29uc3QgcGFzc3dvcmQgPSBjb2RlQnVpbGRTZWNyZXRWYWx1ZShwcm9wcy5kb2NrZXJIdWJDcmVkZW50aWFscy5wYXNzd29yZEtleSwgcHJvcHMuZG9ja2VySHViQ3JlZGVudGlhbHMpO1xuXG4gICAgdGhpcy5fcHJvamVjdCA9IG5ldyBjb2RlYnVpbGQuUHJvamVjdCh0aGlzLCAnRWNyUHVzaEltYWdlcycsIHtcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIHByaXZpbGVnZWQ6IHRydWUsXG4gICAgICAgIGJ1aWxkSW1hZ2U6IGNvZGVidWlsZC5MaW51eEJ1aWxkSW1hZ2UuZnJvbURvY2tlclJlZ2lzdHJ5KCdwdWJsaWMuZWNyLmF3cy9qc2lpL3N1cGVyY2hhaW46MS1idXN0ZXItc2xpbScsIHtcbiAgICAgICAgICBzZWNyZXRzTWFuYWdlckNyZWRlbnRpYWxzOiBwcm9wcy5kb2NrZXJIdWJDcmVkZW50aWFscy5zZWNyZXQsXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICAgIGVudmlyb25tZW50VmFyaWFibGVzOiB7XG4gICAgICAgIC8vIERvY2tlckh1YiBjcmVkZW50aWFscyB0byBhdm9pZCB0aHJvdHRsaW5nXG4gICAgICAgIERPQ0tFUkhVQl9VU0VSTkFNRTogeyB2YWx1ZTogdXNlcm5hbWUsIHR5cGU6IGNvZGVidWlsZC5CdWlsZEVudmlyb25tZW50VmFyaWFibGVUeXBlLlNFQ1JFVFNfTUFOQUdFUiB9LFxuICAgICAgICBET0NLRVJIVUJfUEFTU1dPUkQ6IHsgdmFsdWU6IHBhc3N3b3JkLCB0eXBlOiBjb2RlYnVpbGQuQnVpbGRFbnZpcm9ubWVudFZhcmlhYmxlVHlwZS5TRUNSRVRTX01BTkFHRVIgfSxcbiAgICAgIH0sXG4gICAgICBidWlsZFNwZWM6IGNvZGVidWlsZC5CdWlsZFNwZWMuZnJvbU9iamVjdChMYXp5LmFueSh7XG4gICAgICAgIHByb2R1Y2U6ICgpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmVyc2lvbjogJzAuMicsXG4gICAgICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICAgICAgYnVpbGQ6IHtcbiAgICAgICAgICAgICAgICBjb21tYW5kczogW1xuXG4gICAgICAgICAgICAgICAgICAvLyBzdGFydCB0aGUgZG9ja2VyIGRhZW1vblxuICAgICAgICAgICAgICAgICAgJ25vaHVwIC91c3IvYmluL2RvY2tlcmQgLS1ob3N0PXVuaXg6Ly8vdmFyL3J1bi9kb2NrZXIuc29jayAtLWhvc3Q9dGNwOi8vMTI3LjAuMC4xOjIzNzUgLS1zdG9yYWdlLWRyaXZlcj1vdmVybGF5MiYnLFxuICAgICAgICAgICAgICAgICAgJ3RpbWVvdXQgMTUgc2ggLWMgXCJ1bnRpbCBkb2NrZXIgaW5mbzsgZG8gZWNobyAuOyBzbGVlcCAxOyBkb25lXCInLFxuXG4gICAgICAgICAgICAgICAgICAvLyBsb2dpbiB0byBkb2NrZXJodWIgc28gd2Ugd29uJ3QgZ2V0IHRocm90dGxlZFxuICAgICAgICAgICAgICAgICAgJ2RvY2tlciBsb2dpbiAtdSAke0RPQ0tFUkhVQl9VU0VSTkFNRX0gLXAgJHtET0NLRVJIVUJfUEFTU1dPUkR9JyxcblxuICAgICAgICAgICAgICAgICAgLy8gbG9naW4gdG8gZWNyIHNvIHdlIGNhbiBwdXNoIHRvIGl0XG4gICAgICAgICAgICAgICAgICBgYXdzIGVjciBnZXQtbG9naW4tcGFzc3dvcmQgfCBkb2NrZXIgbG9naW4gLS11c2VybmFtZSBBV1MgLS1wYXNzd29yZC1zdGRpbiAke2VjclJlZ2lzdHJ5fWAsXG5cbiAgICAgICAgICAgICAgICAgIC8vIGxvZ2luIHRvIGVjci1wdWJsaWMgc28gd2UgY2FuIHB1bGwgZnJvbSBpdCB3aXRoIGltcHJvdmVkIHJhdGUgbGltaXRzXG4gICAgICAgICAgICAgICAgICAnYXdzIGVjci1wdWJsaWMgZ2V0LWxvZ2luLXBhc3N3b3JkIC0tcmVnaW9uIHVzLWVhc3QtMSB8IGRvY2tlciBsb2dpbiAtLXVzZXJuYW1lIEFXUyAtLXBhc3N3b3JkLXN0ZGluIHB1YmxpYy5lY3IuYXdzJyxcblxuICAgICAgICAgICAgICAgICAgLi4uY29tbWFuZHMsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgIH0pKSxcbiAgICAgIHNzbVNlc3Npb25QZXJtaXNzaW9uczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIEVuc3VyZSB0aGUgcnVubmVyIGhhcyBQVUxMIGFjY2VzcyB0byBFQ1ItUHVibGljLlxuICAgIHRoaXMuX3Byb2plY3Qucm9sZSEuYWRkTWFuYWdlZFBvbGljeShpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ0FtYXpvbkVsYXN0aWNDb250YWluZXJSZWdpc3RyeVB1YmxpY1JlYWRPbmx5JykpO1xuXG4gICAgZm9yIChjb25zdCBpbWFnZSBvZiBwcm9wcy5zb3VyY2VzKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBpbWFnZS5iaW5kKHtcbiAgICAgICAgc2NvcGU6IHRoaXMsXG4gICAgICAgIGVjclJlZ2lzdHJ5LFxuICAgICAgICBzeW5jSm9iOiB0aGlzLl9wcm9qZWN0LFxuICAgICAgfSk7XG4gICAgICBjb21tYW5kcy5wdXNoKC4uLnJlc3VsdC5jb21tYW5kcyk7XG5cbiAgICAgIGNvbnN0IHJlcG9UYWcgPSBgJHtyZXN1bHQucmVwb3NpdG9yeU5hbWV9OiR7cmVzdWx0LnRhZ31gO1xuICAgICAgaWYgKHRoaXMuX3JlcG9UYWdzU2Vlbi5oYXMocmVwb1RhZykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXJyb3Igc291cmNlIHdpdGggcmVwb3NpdG9yeSBuYW1lIFske3Jlc3VsdC5yZXBvc2l0b3J5TmFtZX1dIGFuZCB0YWcgWyR7cmVzdWx0LnRhZ31dIGFscmVhZHkgZXhpc3RzLmApO1xuICAgICAgfVxuICAgICAgdGhpcy5fcmVwb1RhZ3NTZWVuLmFkZChyZXBvVGFnKTtcblxuICAgICAgdGhpcy5jcmVhdGVNaXJyb3JSZXBvKHJlc3VsdC5yZXBvc2l0b3J5TmFtZSk7XG5cbiAgICAgIGNvbnN0IGVjckltYWdlVXJpID0gYCR7ZWNyUmVnaXN0cnl9LyR7cmVzdWx0LnJlcG9zaXRvcnlOYW1lfToke3Jlc3VsdC50YWd9YDtcbiAgICAgIGNvbW1hbmRzLnB1c2goYGRvY2tlciBwdXNoICR7ZWNySW1hZ2VVcml9YCk7XG5cbiAgICAgIC8vIGNsZWFuIGFmdGVyIGVhY2ggcHVzaCBzbyB0aGF0IHdlIGRvbid0IGZpbGx1cCBkaXNrIHNwYWNlXG4gICAgICAvLyBwb3NzaWJseSBmYWlsaW5nIHRoZSBuZXh0IHB1bGwuXG4gICAgICBjb21tYW5kcy5wdXNoKCdkb2NrZXIgaW1hZ2UgcHJ1bmUgLS1hbGwgLS1mb3JjZScpO1xuICAgIH1cblxuICAgIC8vIENvZGVCdWlsZCBuZWVkcyB0byByZWFkIHRoZSBzZWNyZXQgdG8gcmVzb2x2ZSBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgICBwcm9wcy5kb2NrZXJIdWJDcmVkZW50aWFscy5zZWNyZXQuZ3JhbnRSZWFkKHRoaXMuX3Byb2plY3QpO1xuXG4gICAgZWNyLkF1dGhvcml6YXRpb25Ub2tlbi5ncmFudFJlYWQodGhpcy5fcHJvamVjdCk7XG4gICAgdGhpcy5fcmVwb3MuZm9yRWFjaCgociwgXykgPT4gci5ncmFudFB1bGxQdXNoKHRoaXMuX3Byb2plY3QpKTtcblxuICAgIC8vIHRoaXMgcHJvamVjdCBuZWVkcyB0byBkb3dubG9hZCB0aGUgYXNzZXRzIHNvIGl0IGNhbiBidWlsZCB0aGVtXG4gICAgYXNzZXRzLmZvckVhY2goYSA9PiBhLmdyYW50UmVhZCh0aGlzLl9wcm9qZWN0KSk7XG5cbiAgICBpZiAocHJvcHMuYXV0b1N0YXJ0KSB7XG4gICAgICBuZXcgY3IuQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0J1aWxkRXhlY3V0aW9uJywge1xuICAgICAgICBwb2xpY3k6IGNyLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7IHJlc291cmNlczogW3RoaXMuX3Byb2plY3QucHJvamVjdEFybl0gfSksXG4gICAgICAgIG9uVXBkYXRlOiB7XG4gICAgICAgICAgYWN0aW9uOiAnc3RhcnRCdWlsZCcsXG4gICAgICAgICAgc2VydmljZTogJ0NvZGVCdWlsZCcsXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgcHJvamVjdE5hbWU6IHRoaXMuX3Byb2plY3QucHJvamVjdE5hbWUsXG4gICAgICAgICAgICAvLyB0byB0aWdnZXIgdGhlIGJ1aWxkIG9uIGV2ZXJ5IHVwZGF0ZVxuICAgICAgICAgICAgaWRlbXBvdGVuY3lUb2tlbjogYCR7RGF0ZS5ub3coKX1gLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjci5QaHlzaWNhbFJlc291cmNlSWQub2YoJ0VjclJlZ2lzdHJ5RXhlY3V0aW9uJyksXG5cbiAgICAgICAgICAvLyBuZWVkIHNpbmNlIHRoZSBkZWZhdWx0IHJlcG9uc2UgaWYgZ3JlYXRlciB0aGFuIHRoZSA0ayBsaW1pdCBmb3IgY3VzdG9tIHJlc291cmNlcy5cbiAgICAgICAgICBvdXRwdXRQYXRoczogWydidWlsZC5pZCddLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnNjaGVkdWxlKSB7XG4gICAgICBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ1NjaGVkdWxlZFRyaWdnZXInLCB7XG4gICAgICAgIHNjaGVkdWxlOiBwcm9wcy5zY2hlZHVsZSxcbiAgICAgICAgdGFyZ2V0czogW25ldyB0YXJnZXRzLkNvZGVCdWlsZFByb2plY3QodGhpcy5fcHJvamVjdCldLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVNaXJyb3JSZXBvKGVjclJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5fcmVwb3MuZ2V0KGVjclJlcG9zaXRvcnlOYW1lKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBuZXcgZWNyLlJlcG9zaXRvcnkodGhpcywgYFJlcG8ke2VjclJlcG9zaXRvcnlOYW1lfWAsIHtcbiAgICAgIHJlcG9zaXRvcnlOYW1lOiBlY3JSZXBvc2l0b3J5TmFtZSxcbiAgICB9KTtcbiAgICB0aGlzLl9yZXBvcy5zZXQoZWNyUmVwb3NpdG9yeU5hbWUsIHJlcG9zaXRvcnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdGFyZ2V0IEVDUiByZXBvc2l0b3J5IGZvciB0aGUgZ2l2ZW4gcmVwb3NpdG9yeSBuYW1lIGFuZCB0YWcuXG4gICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgRUNSIHJlcG9zaXRvcnkgd2l0aCB0aGlzIG5hbWVcbiAgICogQHBhcmFtIHRhZyB0aGUgdGFnIGZvciB0aGUgcmVwb3NpdG9yeSwgZGVmYXVsdHMgdG8gJ2xhdGVzdCdcbiAgICovXG4gIHB1YmxpYyBlY3JSZXBvc2l0b3J5KHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpOiBlY3IuSVJlcG9zaXRvcnkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9yZXBvcy5nZXQocmVwb3NpdG9yeU5hbWUpO1xuICB9XG59O1xuXG4vKipcbiAqIEFuIGFzcGVjdCB0aGF0IHdhbGtzIHRocm91Z2ggdGhlIGNvbnN0cnVjdCB0cmVlIGFuZCByZXBsYWNlcyBDb2RlQnVpbGQgam9icyB3aXRoIERvY2tlciBpbWFnZXNcbiAqIHdpdGggRUNSIGVxdWl2YWxlbnRzIGZvdW5kIGluIHRoZSBFY3JNaXJyb3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBFY3JNaXJyb3JBc3BlY3QgaW1wbGVtZW50cyBJQXNwZWN0IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtaXJyb3I6IEVjck1pcnJvcikge31cblxuICBwdWJsaWMgdmlzaXQoY29uc3RydWN0OiBJQ29uc3RydWN0KSB7XG4gICAgaWYgKGNvbnN0cnVjdCBpbnN0YW5jZW9mIGNvZGVidWlsZC5Qcm9qZWN0KSB7XG4gICAgICBjb25zdCBjZm5wcm9qZWN0ID0gY29uc3RydWN0Lm5vZGUuZGVmYXVsdENoaWxkIGFzIGNvZGVidWlsZC5DZm5Qcm9qZWN0O1xuICAgICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoY2ZucHJvamVjdC5lbnZpcm9ubWVudCkpIHtcbiAgICAgICAgY29uc3QgZW52ID0gY2ZucHJvamVjdC5lbnZpcm9ubWVudCBhcyBjb2RlYnVpbGQuQ2ZuUHJvamVjdC5FbnZpcm9ubWVudFByb3BlcnR5O1xuICAgICAgICBjb25zdCBpbWFnZU5hbWUgPSBlbnYuaW1hZ2Uuc3BsaXQoJzonKVswXTtcbiAgICAgICAgY29uc3QgdGFnID0gZW52LmltYWdlLnNwbGl0KCc6JylbMV07XG4gICAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gdGhpcy5taXJyb3IuZWNyUmVwb3NpdG9yeShpbWFnZU5hbWUpO1xuICAgICAgICBpZiAocmVwbGFjZW1lbnQpIHtcbiAgICAgICAgICBjZm5wcm9qZWN0LmVudmlyb25tZW50ID0ge1xuICAgICAgICAgICAgLi4uZW52LFxuICAgICAgICAgICAgaW1hZ2U6IGNvZGVidWlsZC5MaW51eEJ1aWxkSW1hZ2UuZnJvbUVjclJlcG9zaXRvcnkocmVwbGFjZW1lbnQsIHRhZykuaW1hZ2VJZCxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJlcGxhY2VtZW50LmdyYW50UHVsbChjb25zdHJ1Y3QpO1xuICAgICAgICAgIGVjci5BdXRob3JpemF0aW9uVG9rZW4uZ3JhbnRSZWFkKGNvbnN0cnVjdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -53,13 +53,26 @@ export declare abstract class MirrorSource {
|
|
|
53
53
|
protected readonly repositoryName: string;
|
|
54
54
|
protected readonly tag: string;
|
|
55
55
|
protected readonly directory?: string | undefined;
|
|
56
|
+
protected readonly ecrRepositoryName: string;
|
|
56
57
|
/**
|
|
57
58
|
* Configure an image from DockerHub.
|
|
58
59
|
*
|
|
59
60
|
* @param image e.g jsii/superchain
|
|
60
61
|
* @param tag optional, defaults to 'latest'
|
|
62
|
+
*
|
|
63
|
+
* @deprecated This method's name inaccurately expresses that the image comes
|
|
64
|
+
* from DockerHub, when any publicly-accessible repository can be used. Prefer
|
|
65
|
+
* using `fromImageName(string, string?)` instead, which is more aptly named.
|
|
61
66
|
*/
|
|
62
67
|
static fromDockerHub(image: string, tag?: string): MirrorSource;
|
|
68
|
+
/**
|
|
69
|
+
* Configure an image from DockerHub or a repository-qualified image name.
|
|
70
|
+
*
|
|
71
|
+
* @param image e.g public.ecr.aws/jsii/superchain
|
|
72
|
+
* @param tag optional, defaults to 'latest'
|
|
73
|
+
* @param ecrRepositoryName the name of the ECR Repository to use (e.g: jsii/superchain)
|
|
74
|
+
*/
|
|
75
|
+
static fromPublicImage(image: string, tag?: string, ecrRepositoryName?: string): MirrorSource;
|
|
63
76
|
/**
|
|
64
77
|
* DEPRECATED
|
|
65
78
|
* @deprecated use fromDir()
|
|
@@ -11,8 +11,22 @@ class MirrorSource {
|
|
|
11
11
|
*
|
|
12
12
|
* @param image e.g jsii/superchain
|
|
13
13
|
* @param tag optional, defaults to 'latest'
|
|
14
|
+
*
|
|
15
|
+
* @deprecated This method's name inaccurately expresses that the image comes
|
|
16
|
+
* from DockerHub, when any publicly-accessible repository can be used. Prefer
|
|
17
|
+
* using `fromImageName(string, string?)` instead, which is more aptly named.
|
|
14
18
|
*/
|
|
15
19
|
static fromDockerHub(image, tag = 'latest') {
|
|
20
|
+
return this.fromPublicImage(image, tag);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Configure an image from DockerHub or a repository-qualified image name.
|
|
24
|
+
*
|
|
25
|
+
* @param image e.g public.ecr.aws/jsii/superchain
|
|
26
|
+
* @param tag optional, defaults to 'latest'
|
|
27
|
+
* @param ecrRepositoryName the name of the ECR Repository to use (e.g: jsii/superchain)
|
|
28
|
+
*/
|
|
29
|
+
static fromPublicImage(image, tag = 'latest', ecrRepositoryName = image.includes('/') ? image : `library/${image}`) {
|
|
16
30
|
class DockerHubMirrorSource extends MirrorSource {
|
|
17
31
|
constructor() {
|
|
18
32
|
if (image.includes(':')) {
|
|
@@ -20,16 +34,16 @@ class MirrorSource {
|
|
|
20
34
|
}
|
|
21
35
|
// simulates DockerHub by perfixing library/ to official images
|
|
22
36
|
const repositoryName = image.includes('/') ? image : `library/${image}`;
|
|
23
|
-
super(repositoryName, tag, undefined);
|
|
37
|
+
super(repositoryName, tag, undefined, ecrRepositoryName);
|
|
24
38
|
}
|
|
25
39
|
bind(options) {
|
|
26
|
-
const ecrImageUri = `${options.ecrRegistry}/${this.
|
|
40
|
+
const ecrImageUri = `${options.ecrRegistry}/${this.ecrRepositoryName}:${this.tag}`;
|
|
27
41
|
return {
|
|
28
42
|
commands: [
|
|
29
43
|
`docker pull ${this.repositoryName}:${this.tag}`,
|
|
30
44
|
`docker tag ${this.repositoryName}:${this.tag} ${ecrImageUri}`,
|
|
31
45
|
],
|
|
32
|
-
repositoryName: this.
|
|
46
|
+
repositoryName: this.ecrRepositoryName,
|
|
33
47
|
tag: this.tag,
|
|
34
48
|
};
|
|
35
49
|
}
|
|
@@ -62,7 +76,7 @@ class MirrorSource {
|
|
|
62
76
|
if (options.syncJob) {
|
|
63
77
|
asset.grantRead(options.syncJob);
|
|
64
78
|
}
|
|
65
|
-
const ecrImageUri = `${options.ecrRegistry}/${this.
|
|
79
|
+
const ecrImageUri = `${options.ecrRegistry}/${this.ecrRepositoryName}:${this.tag}`;
|
|
66
80
|
const cmdFlags = [];
|
|
67
81
|
cmdFlags.push('--pull');
|
|
68
82
|
cmdFlags.push('-t', ecrImageUri);
|
|
@@ -78,18 +92,19 @@ class MirrorSource {
|
|
|
78
92
|
`unzip ${zipFile} -d ${tmpDir}`,
|
|
79
93
|
`docker build ${cmdFlags.join(' ')} ${tmpDir}`,
|
|
80
94
|
],
|
|
81
|
-
repositoryName: this.
|
|
95
|
+
repositoryName: this.ecrRepositoryName,
|
|
82
96
|
tag: this.tag,
|
|
83
97
|
};
|
|
84
98
|
}
|
|
85
99
|
}
|
|
86
100
|
return new DirectoryMirrorSource();
|
|
87
101
|
}
|
|
88
|
-
constructor(repositoryName, tag, directory) {
|
|
102
|
+
constructor(repositoryName, tag, directory, ecrRepositoryName = repositoryName) {
|
|
89
103
|
this.repositoryName = repositoryName;
|
|
90
104
|
this.tag = tag;
|
|
91
105
|
this.directory = directory;
|
|
106
|
+
this.ecrRepositoryName = ecrRepositoryName;
|
|
92
107
|
}
|
|
93
108
|
}
|
|
94
109
|
exports.MirrorSource = MirrorSource;
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlycm9yLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1pcnJvci1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBR3FCO0FBc0RyQjs7R0FFRztBQUNILE1BQXNCLFlBQVk7SUFFaEM7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWEsRUFBRSxNQUFjLFFBQVE7UUFDL0QsTUFBTSxxQkFBc0IsU0FBUSxZQUFZO1lBQzlDO2dCQUNFLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO2lCQUMvQztnQkFDRCwrREFBK0Q7Z0JBQy9ELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxLQUFLLEVBQUUsQ0FBQztnQkFDeEUsS0FBSyxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUVNLElBQUksQ0FBQyxPQUFnQztnQkFDMUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoRixPQUFPO29CQUNMLFFBQVEsRUFBRTt3QkFDUixlQUFlLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTt3QkFDaEQsY0FBYyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksV0FBVyxFQUFFO3FCQUMvRDtvQkFDRCxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7b0JBQ25DLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztpQkFDZCxDQUFDO1lBQ0osQ0FBQztTQUNGO1FBRUQsT0FBTyxJQUFJLHFCQUFxQixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBaUIsRUFBRSxjQUFzQixFQUFFLEdBQVk7UUFDakYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQWlCLEVBQUUsY0FBc0IsRUFBRSxPQUFxQyxFQUFFO1FBQ3RHLE1BQU0scUJBQXNCLFNBQVEsWUFBWTtZQUM5Qzs7Z0JBQ0UsS0FBSyxDQUFDLGNBQWMsRUFBRSxNQUFBLElBQUksQ0FBQyxHQUFHLG1DQUFJLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN6RCxDQUFDO1lBRU0sSUFBSSxDQUFDLE9BQWdDOztnQkFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSwyQkFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLGVBQWUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQUEsSUFBSSxDQUFDLFNBQVMsbUNBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBVSxFQUFFLENBQUMsQ0FBQztnQkFDbkosSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO29CQUNuQixLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDbEM7Z0JBQ0QsTUFBTSxXQUFXLEdBQUcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNoRixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3hCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUVqQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQ2xCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQy9GO2dCQUVELE1BQU0sT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsTUFBTSxDQUFDO2dCQUM3QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO2dCQUVuQyxPQUFPO29CQUNMLFFBQVEsRUFBRTt3QkFDUixVQUFVLE9BQU8sSUFBSSxNQUFNLEVBQUU7d0JBQzdCLGFBQWEsS0FBSyxDQUFDLFdBQVcsSUFBSSxPQUFPLEVBQUU7d0JBQzNDLFNBQVMsT0FBTyxPQUFPLE1BQU0sRUFBRTt3QkFDL0IsZ0JBQWdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxFQUFFO3FCQUMvQztvQkFDRCxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7b0JBQ25DLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztpQkFDZCxDQUFDO1lBQ0osQ0FBQztTQUNGO1FBQ0QsT0FBTyxJQUFJLHFCQUFxQixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELFlBQXVDLGNBQXNCLEVBQXFCLEdBQVcsRUFBcUIsU0FBa0I7UUFBN0YsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFBcUIsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFxQixjQUFTLEdBQVQsU0FBUyxDQUFTO0lBQ3BJLENBQUM7Q0FNRjtBQS9GRCxvQ0ErRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhd3NfY29kZWJ1aWxkIGFzIGNvZGVidWlsZCxcbiAgYXdzX3MzX2Fzc2V0cyBhcyBzM0Fzc2V0cyxcbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWlycm9yU291cmNlQmluZE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHRhcmdldCBFQ1IgcmVnaXN0cnlcbiAgICovXG4gIHJlYWRvbmx5IGVjclJlZ2lzdHJ5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgc2NvcGUgdG8gYXR0YWNoIGFueSBjb25zdHJ1Y3RzIHRoYXQgbWF5IGFsc28gYmUgbmVlZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdDtcblxuICAvKipcbiAgICogVGhlIENvZGVCdWlsZCBwcm9qZWN0IHRoYXQgd2lsbCBydW4gdGhlIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIERvY2tlckh1YiBhbmQgRUNSLlxuICAgKiBAZGVmYXVsdCAtIGVpdGhlciBubyBzeW5jIGpvYiBpcyBwcmVzZW50IG9yIGl0J3Mgbm90IGRlZmluZWQgeWV0LlxuICAgKi9cbiAgcmVhZG9ubHkgc3luY0pvYj86IGNvZGVidWlsZC5JUHJvamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNaXJyb3JTb3VyY2VDb25maWcge1xuICAvKipcbiAgICogVGhlIGNvbW1hbmRzIHRvIHJ1biB0byByZXRyaWV2ZSB0aGUgZG9ja2VyIGltYWdlLlxuICAgKiBlLmcuIFsnZG9ja2VyIHB1bGwgPGltYWdlLWlkPiddXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0YXJnZXQgRUNSIHJlcG9zaXRvcnkuXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFnIHRvIGJlIHVzZSBmb3IgdGhlIHRhcmdldCBFQ1IgaW1hZ2UuXG4gICAqL1xuICByZWFkb25seSB0YWc6IHN0cmluZztcbn1cblxuLyoqIEFkZGl0aW9uYWwgb3B0aW9ucyB3aGVuIGNvbmZpZ3VyaW5nIGEgTWlycm9yIFNvdXJjZSBmcm9tIGEgbG9jYWwgZGlyZWN0b3J5ICovXG5leHBvcnQgaW50ZXJmYWNlIE1pcnJvclNvdXJjZURpcmVjdG9yeU9wdGlvbnMge1xuICAvKipcbiAgICogVGFnIG9mIHRoZSBidWlsdCBpbWFnZS5cbiAgICogQGRlZmF1bHQgJ2xhdGVzdCdcbiAgICovXG4gIHJlYWRvbmx5IHRhZz86IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQgYXJncyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGJ1aWxkIGFyZ3MgYXJlIHBhc3NlZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRBcmdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBTb3VyY2Ugb2YgdGhlIGltYWdlLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTWlycm9yU291cmNlIHtcblxuICAvKipcbiAgICogQ29uZmlndXJlIGFuIGltYWdlIGZyb20gRG9ja2VySHViLlxuICAgKlxuICAgKiBAcGFyYW0gaW1hZ2UgZS5nIGpzaWkvc3VwZXJjaGFpblxuICAgKiBAcGFyYW0gdGFnIG9wdGlvbmFsLCBkZWZhdWx0cyB0byAnbGF0ZXN0J1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRG9ja2VySHViKGltYWdlOiBzdHJpbmcsIHRhZzogc3RyaW5nID0gJ2xhdGVzdCcpOiBNaXJyb3JTb3VyY2Uge1xuICAgIGNsYXNzIERvY2tlckh1Yk1pcnJvclNvdXJjZSBleHRlbmRzIE1pcnJvclNvdXJjZSB7XG4gICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaWYgKGltYWdlLmluY2x1ZGVzKCc6JykpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ltYWdlIG11c3Qgbm90IGluY2x1ZGUgdGFnJyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gc2ltdWxhdGVzIERvY2tlckh1YiBieSBwZXJmaXhpbmcgbGlicmFyeS8gdG8gb2ZmaWNpYWwgaW1hZ2VzXG4gICAgICAgIGNvbnN0IHJlcG9zaXRvcnlOYW1lID0gaW1hZ2UuaW5jbHVkZXMoJy8nKSA/IGltYWdlIDogYGxpYnJhcnkvJHtpbWFnZX1gO1xuICAgICAgICBzdXBlcihyZXBvc2l0b3J5TmFtZSwgdGFnLCB1bmRlZmluZWQpO1xuICAgICAgfVxuXG4gICAgICBwdWJsaWMgYmluZChvcHRpb25zOiBNaXJyb3JTb3VyY2VCaW5kT3B0aW9ucykge1xuICAgICAgICBjb25zdCBlY3JJbWFnZVVyaSA9IGAke29wdGlvbnMuZWNyUmVnaXN0cnl9LyR7dGhpcy5yZXBvc2l0b3J5TmFtZX06JHt0aGlzLnRhZ31gO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICBgZG9ja2VyIHB1bGwgJHt0aGlzLnJlcG9zaXRvcnlOYW1lfToke3RoaXMudGFnfWAsXG4gICAgICAgICAgICBgZG9ja2VyIHRhZyAke3RoaXMucmVwb3NpdG9yeU5hbWV9OiR7dGhpcy50YWd9ICR7ZWNySW1hZ2VVcml9YCxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlcG9zaXRvcnlOYW1lOiB0aGlzLnJlcG9zaXRvcnlOYW1lLFxuICAgICAgICAgIHRhZzogdGhpcy50YWcsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEb2NrZXJIdWJNaXJyb3JTb3VyY2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBERVBSRUNBVEVEXG4gICAqIEBkZXByZWNhdGVkIHVzZSBmcm9tRGlyKClcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbURpcmVjdG9yeShkaXJlY3Rvcnk6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgdGFnPzogc3RyaW5nKTogTWlycm9yU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tRGlyKGRpcmVjdG9yeSwgcmVwb3NpdG9yeU5hbWUsIHsgdGFnIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBhbiBpbWFnZSBmcm9tIGEgbG9jYWwgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAcGFyYW0gZGlyZWN0b3J5IFBhdGggdG8gZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIERvY2tlcmZpbGUuXG4gICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBSZXBvc2l0b3J5IG5hbWUgb2YgdGhlIGJ1aWx0IGltYWdlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRGlyKGRpcmVjdG9yeTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBvcHRzOiBNaXJyb3JTb3VyY2VEaXJlY3RvcnlPcHRpb25zID0ge30pOiBNaXJyb3JTb3VyY2Uge1xuICAgIGNsYXNzIERpcmVjdG9yeU1pcnJvclNvdXJjZSBleHRlbmRzIE1pcnJvclNvdXJjZSB7XG4gICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIocmVwb3NpdG9yeU5hbWUsIG9wdHMudGFnID8/ICdsYXRlc3QnLCBkaXJlY3RvcnkpO1xuICAgICAgfVxuXG4gICAgICBwdWJsaWMgYmluZChvcHRpb25zOiBNaXJyb3JTb3VyY2VCaW5kT3B0aW9ucykge1xuICAgICAgICBjb25zdCBhc3NldCA9IG5ldyBzM0Fzc2V0cy5Bc3NldChvcHRpb25zLnNjb3BlLCBgQnVpbGRDb250ZXh0JHt0aGlzLmRpcmVjdG9yeX0ke0pTT04uc3RyaW5naWZ5KG9wdHMuYnVpbGRBcmdzID8/IHt9KX1gLCB7IHBhdGg6IHRoaXMuZGlyZWN0b3J5ISB9KTtcbiAgICAgICAgaWYgKG9wdGlvbnMuc3luY0pvYikge1xuICAgICAgICAgIGFzc2V0LmdyYW50UmVhZChvcHRpb25zLnN5bmNKb2IpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVjckltYWdlVXJpID0gYCR7b3B0aW9ucy5lY3JSZWdpc3RyeX0vJHt0aGlzLnJlcG9zaXRvcnlOYW1lfToke3RoaXMudGFnfWA7XG4gICAgICAgIGNvbnN0IGNtZEZsYWdzID0gW107XG4gICAgICAgIGNtZEZsYWdzLnB1c2goJy0tcHVsbCcpO1xuICAgICAgICBjbWRGbGFncy5wdXNoKCctdCcsIGVjckltYWdlVXJpKTtcblxuICAgICAgICBpZiAob3B0cy5idWlsZEFyZ3MpIHtcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhvcHRzLmJ1aWxkQXJncykuZm9yRWFjaCgoW2ssIHZdKSA9PiBjbWRGbGFncy5wdXNoKCctLWJ1aWxkLWFyZycsIGAke2t9PSR7dn1gKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB6aXBGaWxlID0gYCR7dGhpcy5yZXBvc2l0b3J5TmFtZX0uemlwYDtcbiAgICAgICAgY29uc3QgdG1wRGlyID0gdGhpcy5yZXBvc2l0b3J5TmFtZTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICBgcm0gLXJmICR7emlwRmlsZX0gJHt0bXBEaXJ9YCxcbiAgICAgICAgICAgIGBhd3MgczMgY3AgJHthc3NldC5zM09iamVjdFVybH0gJHt6aXBGaWxlfWAsXG4gICAgICAgICAgICBgdW56aXAgJHt6aXBGaWxlfSAtZCAke3RtcERpcn1gLFxuICAgICAgICAgICAgYGRvY2tlciBidWlsZCAke2NtZEZsYWdzLmpvaW4oJyAnKX0gJHt0bXBEaXJ9YCxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlcG9zaXRvcnlOYW1lOiB0aGlzLnJlcG9zaXRvcnlOYW1lLFxuICAgICAgICAgIHRhZzogdGhpcy50YWcsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGlyZWN0b3J5TWlycm9yU291cmNlKCk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFnOiBzdHJpbmcsIHByb3RlY3RlZCByZWFkb25seSBkaXJlY3Rvcnk/OiBzdHJpbmcpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBCaW5kIHRoZSBzb3VyY2Ugd2l0aCB0aGUgRWNyTWlycm9yIGNvbnN0cnVjdC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBiaW5kKG9wdGlvbnM6IE1pcnJvclNvdXJjZUJpbmRPcHRpb25zKTogTWlycm9yU291cmNlQ29uZmlnO1xufVxuIl19
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlycm9yLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1pcnJvci1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBR3FCO0FBc0RyQjs7R0FFRztBQUNILE1BQXNCLFlBQVk7SUFFaEM7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFhLEVBQUUsTUFBYyxRQUFRO1FBQy9ELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBYSxFQUFFLE1BQWMsUUFBUSxFQUFFLG9CQUE0QixLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxFQUFFO1FBQy9JLE1BQU0scUJBQXNCLFNBQVEsWUFBWTtZQUM5QztnQkFDRSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztpQkFDL0M7Z0JBQ0QsK0RBQStEO2dCQUMvRCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxFQUFFLENBQUM7Z0JBQ3hFLEtBQUssQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQzNELENBQUM7WUFFTSxJQUFJLENBQUMsT0FBZ0M7Z0JBQzFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNuRixPQUFPO29CQUNMLFFBQVEs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LEVBQ3RCLEdBQVcsRUFDWCxTQUFrQixFQUNsQixvQkFBb0IsY0FBYztRQUhsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ1gsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWlCO0lBRXZELENBQUM7Q0FNRjtBQW5IRCxvQ0FtSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhd3NfY29kZWJ1aWxkIGFzIGNvZGVidWlsZCxcbiAgYXdzX3MzX2Fzc2V0cyBhcyBzM0Fzc2V0cyxcbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWlycm9yU291cmNlQmluZE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHRhcmdldCBFQ1IgcmVnaXN0cnlcbiAgICovXG4gIHJlYWRvbmx5IGVjclJlZ2lzdHJ5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgc2NvcGUgdG8gYXR0YWNoIGFueSBjb25zdHJ1Y3RzIHRoYXQgbWF5IGFsc28gYmUgbmVlZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdDtcblxuICAvKipcbiAgICogVGhlIENvZGVCdWlsZCBwcm9qZWN0IHRoYXQgd2lsbCBydW4gdGhlIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIERvY2tlckh1YiBhbmQgRUNSLlxuICAgKiBAZGVmYXVsdCAtIGVpdGhlciBubyBzeW5jIGpvYiBpcyBwcmVzZW50IG9yIGl0J3Mgbm90IGRlZmluZWQgeWV0LlxuICAgKi9cbiAgcmVhZG9ubHkgc3luY0pvYj86IGNvZGVidWlsZC5JUHJvamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNaXJyb3JTb3VyY2VDb25maWcge1xuICAvKipcbiAgICogVGhlIGNvbW1hbmRzIHRvIHJ1biB0byByZXRyaWV2ZSB0aGUgZG9ja2VyIGltYWdlLlxuICAgKiBlLmcuIFsnZG9ja2VyIHB1bGwgPGltYWdlLWlkPiddXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0YXJnZXQgRUNSIHJlcG9zaXRvcnkuXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFnIHRvIGJlIHVzZSBmb3IgdGhlIHRhcmdldCBFQ1IgaW1hZ2UuXG4gICAqL1xuICByZWFkb25seSB0YWc6IHN0cmluZztcbn1cblxuLyoqIEFkZGl0aW9uYWwgb3B0aW9ucyB3aGVuIGNvbmZpZ3VyaW5nIGEgTWlycm9yIFNvdXJjZSBmcm9tIGEgbG9jYWwgZGlyZWN0b3J5ICovXG5leHBvcnQgaW50ZXJmYWNlIE1pcnJvclNvdXJjZURpcmVjdG9yeU9wdGlvbnMge1xuICAvKipcbiAgICogVGFnIG9mIHRoZSBidWlsdCBpbWFnZS5cbiAgICogQGRlZmF1bHQgJ2xhdGVzdCdcbiAgICovXG4gIHJlYWRvbmx5IHRhZz86IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQgYXJncyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGJ1aWxkIGFyZ3MgYXJlIHBhc3NlZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRBcmdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBTb3VyY2Ugb2YgdGhlIGltYWdlLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTWlycm9yU291cmNlIHtcblxuICAvKipcbiAgICogQ29uZmlndXJlIGFuIGltYWdlIGZyb20gRG9ja2VySHViLlxuICAgKlxuICAgKiBAcGFyYW0gaW1hZ2UgZS5nIGpzaWkvc3VwZXJjaGFpblxuICAgKiBAcGFyYW0gdGFnIG9wdGlvbmFsLCBkZWZhdWx0cyB0byAnbGF0ZXN0J1xuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIG1ldGhvZCdzIG5hbWUgaW5hY2N1cmF0ZWx5IGV4cHJlc3NlcyB0aGF0IHRoZSBpbWFnZSBjb21lc1xuICAgKiBmcm9tIERvY2tlckh1Yiwgd2hlbiBhbnkgcHVibGljbHktYWNjZXNzaWJsZSByZXBvc2l0b3J5IGNhbiBiZSB1c2VkLiBQcmVmZXJcbiAgICogdXNpbmcgYGZyb21JbWFnZU5hbWUoc3RyaW5nLCBzdHJpbmc/KWAgaW5zdGVhZCwgd2hpY2ggaXMgbW9yZSBhcHRseSBuYW1lZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbURvY2tlckh1YihpbWFnZTogc3RyaW5nLCB0YWc6IHN0cmluZyA9ICdsYXRlc3QnKTogTWlycm9yU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tUHVibGljSW1hZ2UoaW1hZ2UsIHRhZyk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIGFuIGltYWdlIGZyb20gRG9ja2VySHViIG9yIGEgcmVwb3NpdG9yeS1xdWFsaWZpZWQgaW1hZ2UgbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIGltYWdlIGUuZyBwdWJsaWMuZWNyLmF3cy9qc2lpL3N1cGVyY2hhaW5cbiAgICogQHBhcmFtIHRhZyBvcHRpb25hbCwgZGVmYXVsdHMgdG8gJ2xhdGVzdCdcbiAgICogQHBhcmFtIGVjclJlcG9zaXRvcnlOYW1lIHRoZSBuYW1lIG9mIHRoZSBFQ1IgUmVwb3NpdG9yeSB0byB1c2UgKGUuZzoganNpaS9zdXBlcmNoYWluKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUHVibGljSW1hZ2UoaW1hZ2U6IHN0cmluZywgdGFnOiBzdHJpbmcgPSAnbGF0ZXN0JywgZWNyUmVwb3NpdG9yeU5hbWU6IHN0cmluZyA9IGltYWdlLmluY2x1ZGVzKCcvJykgPyBpbWFnZSA6IGBsaWJyYXJ5LyR7aW1hZ2V9YCk6IE1pcnJvclNvdXJjZSB7XG4gICAgY2xhc3MgRG9ja2VySHViTWlycm9yU291cmNlIGV4dGVuZHMgTWlycm9yU291cmNlIHtcbiAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoaW1hZ2UuaW5jbHVkZXMoJzonKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignaW1hZ2UgbXVzdCBub3QgaW5jbHVkZSB0YWcnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzaW11bGF0ZXMgRG9ja2VySHViIGJ5IHBlcmZpeGluZyBsaWJyYXJ5LyB0byBvZmZpY2lhbCBpbWFnZXNcbiAgICAgICAgY29uc3QgcmVwb3NpdG9yeU5hbWUgPSBpbWFnZS5pbmNsdWRlcygnLycpID8gaW1hZ2UgOiBgbGlicmFyeS8ke2ltYWdlfWA7XG4gICAgICAgIHN1cGVyKHJlcG9zaXRvcnlOYW1lLCB0YWcsIHVuZGVmaW5lZCwgZWNyUmVwb3NpdG9yeU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBwdWJsaWMgYmluZChvcHRpb25zOiBNaXJyb3JTb3VyY2VCaW5kT3B0aW9ucyk6IE1pcnJvclNvdXJjZUNvbmZpZyB7XG4gICAgICAgIGNvbnN0IGVjckltYWdlVXJpID0gYCR7b3B0aW9ucy5lY3JSZWdpc3RyeX0vJHt0aGlzLmVjclJlcG9zaXRvcnlOYW1lfToke3RoaXMudGFnfWA7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAgIGBkb2NrZXIgcHVsbCAke3RoaXMucmVwb3NpdG9yeU5hbWV9OiR7dGhpcy50YWd9YCxcbiAgICAgICAgICAgIGBkb2NrZXIgdGFnICR7dGhpcy5yZXBvc2l0b3J5TmFtZX06JHt0aGlzLnRhZ30gJHtlY3JJbWFnZVVyaX1gLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVwb3NpdG9yeU5hbWU6IHRoaXMuZWNyUmVwb3NpdG9yeU5hbWUsXG4gICAgICAgICAgdGFnOiB0aGlzLnRhZyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERvY2tlckh1Yk1pcnJvclNvdXJjZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERFUFJFQ0FURURcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGZyb21EaXIoKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRGlyZWN0b3J5KGRpcmVjdG9yeTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCB0YWc/OiBzdHJpbmcpOiBNaXJyb3JTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLmZyb21EaXIoZGlyZWN0b3J5LCByZXBvc2l0b3J5TmFtZSwgeyB0YWcgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIGFuIGltYWdlIGZyb20gYSBsb2NhbCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBwYXJhbSBkaXJlY3RvcnkgUGF0aCB0byBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgRG9ja2VyZmlsZS5cbiAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFJlcG9zaXRvcnkgbmFtZSBvZiB0aGUgYnVpbHQgaW1hZ2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21EaXIoZGlyZWN0b3J5OiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIG9wdHM6IE1pcnJvclNvdXJjZURpcmVjdG9yeU9wdGlvbnMgPSB7fSk6IE1pcnJvclNvdXJjZSB7XG4gICAgY2xhc3MgRGlyZWN0b3J5TWlycm9yU291cmNlIGV4dGVuZHMgTWlycm9yU291cmNlIHtcbiAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihyZXBvc2l0b3J5TmFtZSwgb3B0cy50YWcgPz8gJ2xhdGVzdCcsIGRpcmVjdG9yeSk7XG4gICAgICB9XG5cbiAgICAgIHB1YmxpYyBiaW5kKG9wdGlvbnM6IE1pcnJvclNvdXJjZUJpbmRPcHRpb25zKTogTWlycm9yU291cmNlQ29uZmlnIHtcbiAgICAgICAgY29uc3QgYXNzZXQgPSBuZXcgczNBc3NldHMuQXNzZXQob3B0aW9ucy5zY29wZSwgYEJ1aWxkQ29udGV4dCR7dGhpcy5kaXJlY3Rvcnl9JHtKU09OLnN0cmluZ2lmeShvcHRzLmJ1aWxkQXJncyA/PyB7fSl9YCwgeyBwYXRoOiB0aGlzLmRpcmVjdG9yeSEgfSk7XG4gICAgICAgIGlmIChvcHRpb25zLnN5bmNKb2IpIHtcbiAgICAgICAgICBhc3NldC5ncmFudFJlYWQob3B0aW9ucy5zeW5jSm9iKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlY3JJbWFnZVVyaSA9IGAke29wdGlvbnMuZWNyUmVnaXN0cnl9LyR7dGhpcy5lY3JSZXBvc2l0b3J5TmFtZX06JHt0aGlzLnRhZ31gO1xuICAgICAgICBjb25zdCBjbWRGbGFncyA9IFtdO1xuICAgICAgICBjbWRGbGFncy5wdXNoKCctLXB1bGwnKTtcbiAgICAgICAgY21kRmxhZ3MucHVzaCgnLXQnLCBlY3JJbWFnZVVyaSk7XG5cbiAgICAgICAgaWYgKG9wdHMuYnVpbGRBcmdzKSB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMob3B0cy5idWlsZEFyZ3MpLmZvckVhY2goKFtrLCB2XSkgPT4gY21kRmxhZ3MucHVzaCgnLS1idWlsZC1hcmcnLCBgJHtrfT0ke3Z9YCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgemlwRmlsZSA9IGAke3RoaXMucmVwb3NpdG9yeU5hbWV9LnppcGA7XG4gICAgICAgIGNvbnN0IHRtcERpciA9IHRoaXMucmVwb3NpdG9yeU5hbWU7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb21tYW5kczogW1xuICAgICAgICAgICAgYHJtIC1yZiAke3ppcEZpbGV9ICR7dG1wRGlyfWAsXG4gICAgICAgICAgICBgYXdzIHMzIGNwICR7YXNzZXQuczNPYmplY3RVcmx9ICR7emlwRmlsZX1gLFxuICAgICAgICAgICAgYHVuemlwICR7emlwRmlsZX0gLWQgJHt0bXBEaXJ9YCxcbiAgICAgICAgICAgIGBkb2NrZXIgYnVpbGQgJHtjbWRGbGFncy5qb2luKCcgJyl9ICR7dG1wRGlyfWAsXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXBvc2l0b3J5TmFtZTogdGhpcy5lY3JSZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgICB0YWc6IHRoaXMudGFnLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IERpcmVjdG9yeU1pcnJvclNvdXJjZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVwb3NpdG9yeU5hbWU6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFnOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpcmVjdG9yeT86IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWNyUmVwb3NpdG9yeU5hbWUgPSByZXBvc2l0b3J5TmFtZSxcbiAgKSB7XG4gIH1cblxuICAvKipcbiAgICogQmluZCB0aGUgc291cmNlIHdpdGggdGhlIEVjck1pcnJvciBjb25zdHJ1Y3QuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYmluZChvcHRpb25zOiBNaXJyb3JTb3VyY2VCaW5kT3B0aW9ucyk6IE1pcnJvclNvdXJjZUNvbmZpZztcbn1cbiJdfQ==
|