@codedrifters/configulator 0.0.75 → 0.0.77
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/LICENSE +1 -1
- package/README.md +570 -159
- package/lib/aws/aws-deployment-config.js +11 -11
- package/lib/aws/aws-deployment-target.d.ts +1 -44
- package/lib/aws/aws-deployment-target.js +7 -49
- package/lib/pnpm/pnpm-workspace.d.ts +85 -0
- package/lib/pnpm/pnpm-workspace.js +22 -1
- package/lib/projects/monorepo-project.js +14 -7
- package/lib/projects/typescript-project.js +56 -7
- package/lib/versions.d.ts +4 -4
- package/lib/versions.js +5 -5
- package/lib/workflows/aws-deploy-workflow.d.ts +2 -1
- package/lib/workflows/aws-deploy-workflow.js +4 -4
- package/package.json +7 -9
- package/.jsii +0 -23
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AwsDeploymentConfig = void 0;
|
|
4
4
|
const node_path_1 = require("node:path");
|
|
5
|
+
const utils_1 = require("@codedrifters/utils");
|
|
5
6
|
const projen_1 = require("projen");
|
|
6
|
-
const aws_deployment_target_1 = require("./aws-deployment-target");
|
|
7
7
|
const turbo_1 = require("../turbo");
|
|
8
8
|
/*******************************************************************************
|
|
9
9
|
*
|
|
@@ -84,39 +84,39 @@ class AwsDeploymentConfig extends projen_1.Component {
|
|
|
84
84
|
* @returns All production deployment targets.
|
|
85
85
|
*/
|
|
86
86
|
get prodTargets() {
|
|
87
|
-
return this.awsDeploymentTargets.filter((target) => target.awsStageType ===
|
|
87
|
+
return this.awsDeploymentTargets.filter((target) => target.awsStageType === utils_1.AWS_STAGE_TYPE.PROD);
|
|
88
88
|
}
|
|
89
89
|
get prodTargetsForCI() {
|
|
90
|
-
return this.awsDeploymentTargets.filter((target) => target.awsStageType ===
|
|
90
|
+
return this.awsDeploymentTargets.filter((target) => target.awsStageType === utils_1.AWS_STAGE_TYPE.PROD && target.ciDeployment);
|
|
91
91
|
}
|
|
92
92
|
get prodTargetsForLocal() {
|
|
93
|
-
return this.awsDeploymentTargets.filter((target) => target.awsStageType ===
|
|
93
|
+
return this.awsDeploymentTargets.filter((target) => target.awsStageType === utils_1.AWS_STAGE_TYPE.PROD && target.localDeployment);
|
|
94
94
|
}
|
|
95
95
|
/**
|
|
96
96
|
*
|
|
97
97
|
* @returns All stage deployment targets.
|
|
98
98
|
*/
|
|
99
99
|
get stageTargets() {
|
|
100
|
-
return this.awsDeploymentTargets.filter((target) => target.awsStageType ===
|
|
100
|
+
return this.awsDeploymentTargets.filter((target) => target.awsStageType === utils_1.AWS_STAGE_TYPE.STAGE);
|
|
101
101
|
}
|
|
102
102
|
get stageTargetsForCI() {
|
|
103
|
-
return this.awsDeploymentTargets.filter((target) => target.awsStageType ===
|
|
103
|
+
return this.awsDeploymentTargets.filter((target) => target.awsStageType === utils_1.AWS_STAGE_TYPE.STAGE && target.ciDeployment);
|
|
104
104
|
}
|
|
105
105
|
get stageTargetsForLocal() {
|
|
106
|
-
return this.awsDeploymentTargets.filter((target) => target.awsStageType ===
|
|
106
|
+
return this.awsDeploymentTargets.filter((target) => target.awsStageType === utils_1.AWS_STAGE_TYPE.STAGE && target.localDeployment);
|
|
107
107
|
}
|
|
108
108
|
/**
|
|
109
109
|
*
|
|
110
110
|
* @returns All dev deployment targets.
|
|
111
111
|
*/
|
|
112
112
|
get devTargets() {
|
|
113
|
-
return this.awsDeploymentTargets.filter((target) => target.awsStageType ===
|
|
113
|
+
return this.awsDeploymentTargets.filter((target) => target.awsStageType === utils_1.AWS_STAGE_TYPE.DEV);
|
|
114
114
|
}
|
|
115
115
|
get devTargetsForCI() {
|
|
116
|
-
return this.awsDeploymentTargets.filter((target) => target.awsStageType ===
|
|
116
|
+
return this.awsDeploymentTargets.filter((target) => target.awsStageType === utils_1.AWS_STAGE_TYPE.DEV && target.ciDeployment);
|
|
117
117
|
}
|
|
118
118
|
get devTargetsForLocal() {
|
|
119
|
-
return this.awsDeploymentTargets.filter((target) => target.awsStageType ===
|
|
119
|
+
return this.awsDeploymentTargets.filter((target) => target.awsStageType === utils_1.AWS_STAGE_TYPE.DEV && target.localDeployment);
|
|
120
120
|
}
|
|
121
121
|
preSynthesize() {
|
|
122
122
|
super.preSynthesize();
|
|
@@ -131,4 +131,4 @@ class AwsDeploymentConfig extends projen_1.Component {
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
exports.AwsDeploymentConfig = AwsDeploymentConfig;
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlcGxveW1lbnQtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3cy9hd3MtZGVwbG95bWVudC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQTJDO0FBQzNDLG1DQUFtQztBQUVuQyxtRUFBOEU7QUFDOUUsb0NBQXFDO0FBRXJDOzs7Ozs7Ozs7Z0ZBU2dGO0FBRWhGOztFQUVFO0FBRUYsTUFBYSxtQkFBb0IsU0FBUSxrQkFBUztJQUN6QyxNQUFNLENBQUMsRUFBRSxDQUNkLE9BQTRCO1FBRTVCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUE0QixFQUFFLENBQzNELENBQUMsWUFBWSxtQkFBbUIsQ0FBQztRQUNuQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFnQ0QsWUFBWSxPQUE0QjtRQUN0QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFOakI7O1dBRUc7UUFDYSx5QkFBb0IsR0FBK0IsRUFBRSxDQUFDO1FBNkd0RTs7Ozs7OztzRkFPOEU7UUFFdEUsdUJBQWtCLEdBQUcsR0FBUyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7aUJBQ2YsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDakIsRUFBRSxJQUFJLENBQUMsc0JBQXNCLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUVqRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFB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QUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbkxELGtEQW1MQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4sIHJlbGF0aXZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gXCJwcm9qZW4vbGliL2F3c2Nka1wiO1xuaW1wb3J0IHsgQVdTX1NUQUdFX1RZUEUsIEF3c0RlcGxveW1lbnRUYXJnZXQgfSBmcm9tIFwiLi9hd3MtZGVwbG95bWVudC10YXJnZXRcIjtcbmltcG9ydCB7IFR1cmJvUmVwbyB9IGZyb20gXCIuLi90dXJib1wiO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICpcbiAqIEFXUyBEZXBsb3ltZW50IENvbmZpZ3VyYXRpb25cbiAqXG4gKiBUaGlzIGNvbXBvbmVudCBhbGxvd3MgY29uZmlndXJhdGlvbiBvZiBtdWx0aXBsZSBBV1MgZGVwbG95bWVudFxuICogdGFyZ2V0cywgZWFjaCB3aXRoIGl0cyBvd24gYWNjb3VudCwgcmVnaW9uLCBhbmQgZGVwbG95bWVudCB0eXBlXG4gKiAoZGV2LCBzdGFnZSwgcHJvZCkuIEl0IHN1cHBvcnRzIGJvdGggbG9jYWwgYW5kIENJIGRlcGxveW1lbnRzLFxuICogd2l0aCBjdXN0b21pemFibGUgc2V0dGluZ3MgZm9yIGVhY2ggdGFyZ2V0LlxuICpcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qXG5leHBvcnQgaW50ZXJmYWNlIEF3c0RlcGxveW1lbnRDb25maWdPcHRpb25zIHt9XG4qL1xuXG5leHBvcnQgY2xhc3MgQXdzRGVwbG95bWVudENvbmZpZyBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb2YoXG4gICAgcHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCxcbiAgKTogQXdzRGVwbG95bWVudENvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNEZWZpbmVkID0gKGM6IENvbXBvbmVudCk6IGMgaXMgQXdzRGVwbG95bWVudENvbmZpZyA9PlxuICAgICAgYyBpbnN0YW5jZW9mIEF3c0RlcGxveW1lbnRDb25maWc7XG4gICAgcmV0dXJuIHByb2plY3QuY29tcG9uZW50cy5maW5kKGlzRGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGJlIGluamVjdGVkIGludG8gYWxsIHRhc2tzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVudjogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIHBhdGggdG8gdGhlIHByb2plY3QgZGlyZWN0b3J5IGZyb20gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3QuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdFBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIHBhdGggdG8gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3QgZnJvbSB0aGUgb3V0cHV0IGRpcmVjdG9yeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb290UGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgb3V0cHV0IGRpcmVjdG9yeSBmb3IgdGhlIENESyBzeW50aGVzaXMsIGZyb20gdGhlIHJvb3QgZGlyZWN0b3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvb3RDZGtPdXQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG91dHB1dCBkaXJlY3RvcnkgZm9yIHRoZSBDREsgc3ludGhlc2lzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka091dDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiB0YXJnZXRzIGZvciBkZXBsb3ltZW50LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF3c0RlcGxveW1lbnRUYXJnZXRzOiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0PiA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHApIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIC8qKlxuICAgICAqIENvbW1vbiB2YXJpYWJsZXMgdXNlZCBhY3Jvc3MgdGFza3MuXG4gICAgICovXG4gICAgdGhpcy5lbnYgPSB7IEdJVF9CUkFOQ0g6IFwiJChnaXQgYnJhbmNoIC0tc2hvdy1jdXJyZW50KVwiIH07XG4gICAgdGhpcy5wcm9qZWN0UGF0aCA9IHJlbGF0aXZlKHByb2plY3Qucm9vdC5vdXRkaXIsIHByb2plY3Qub3V0ZGlyKTtcbiAgICB0aGlzLnJvb3RQYXRoID0gcmVsYXRpdmUocHJvamVjdC5vdXRkaXIsIHByb2plY3Qucm9vdC5vdXRkaXIpO1xuICAgIHRoaXMucm9vdENka091dCA9IGpvaW4oXCJkaXN0XCIsIHRoaXMucHJvamVjdFBhdGgsIFwiY2RrLm91dFwiKTtcbiAgICB0aGlzLmNka091dCA9IGpvaW4odGhpcy5yb290UGF0aCwgXCJkaXN0XCIsIHRoaXMucHJvamVjdFBhdGgsIFwiY2RrLm91dFwiKTtcblxuICAgIC8qKlxuICAgICAqIFJlc2V0IHNvbWUgdGFza3Mgd2Ugd2lsbCByZWJ1aWxkIGJlbG93LlxuICAgICAqL1xuICAgIFtcImRlcGxveVwiLCBcIndhdGNoXCJdLmZvckVhY2goKHRhc2tOYW1lKSA9PiB7XG4gICAgICBjb25zdCB0YXNrID0gcHJvamVjdC50YXNrcy50cnlGaW5kKHRhc2tOYW1lKTtcbiAgICAgIGlmICh0YXNrKSB7XG4gICAgICAgIHRhc2sucmVzZXQoKTtcbiAgICAgICAgdGFzay5zYXkoXG4gICAgICAgICAgXCJHZW5lcmljIHRhc2sgaXMgZGlzYWJsZWQuIFBsZWFzZSB1c2UgdGhlIHNwZWNpZmljIHRhc2sgZm9yIHlvdXIgZGVwbG95bWVudCB0YXJnZXQuXCIsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBSZWRlZmluZSBTeW50aCBoZXJlXG4gICAgICpcbiAgICAgKiBEZXBsb3kgYW5kIHdhdGNoIGdldCByZWNvbmZpZ3VyZWQgcGVyIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgICAqIEBzZWUgYWRkRGVwbG95bWVudFRhcmdldCgpXG4gICAgICovXG4gICAgdGhpcy5jb25maWd1cmVTeW50aFRhc2soKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKlxuICAgKiBUYXJnZXQgZmlsdGVyIGhlbHBlcnNcbiAgICpcbiAgICogUmV0dXJuIHZhcmlvdXMgdGFyZ2V0cyBmb3IgZGVwbG95bWVudCBzY3JpcHRzIHRvIHVzZS5cbiAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIEFsbCBwcm9kdWN0aW9uIGRlcGxveW1lbnQgdGFyZ2V0cy5cbiAgICovXG4gIHB1YmxpYyBnZXQgcHJvZFRhcmdldHMoKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+IHRhcmdldC5hd3NTdGFnZVR5cGUgPT09IEFXU19TVEFHRV9UWVBFLlBST0QsXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHByb2RUYXJnZXRzRm9yQ0koKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+XG4gICAgICAgIHRhcmdldC5hd3NTdGFnZVR5cGUgPT09IEFXU19TVEFHRV9UWVBFLlBST0QgJiYgdGFyZ2V0LmNpRGVwbG95bWVudCxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgcHJvZFRhcmdldHNGb3JMb2NhbCgpOiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0PiB7XG4gICAgcmV0dXJuIHRoaXMuYXdzRGVwbG95bWVudFRhcmdldHMuZmlsdGVyKFxuICAgICAgKHRhcmdldCkgPT5cbiAgICAgICAgdGFyZ2V0LmF3c1N0YWdlVHlwZSA9PT0gQVdTX1NUQUdFX1RZUEUuUFJPRCAmJiB0YXJnZXQubG9jYWxEZXBsb3ltZW50LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgQWxsIHN0YWdlIGRlcGxveW1lbnQgdGFyZ2V0cy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc3RhZ2VUYXJnZXRzKCk6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5maWx0ZXIoXG4gICAgICAodGFyZ2V0KSA9PiB0YXJnZXQuYXdzU3RhZ2VUeXBlID09PSBBV1NfU1RBR0VfVFlQRS5TVEFHRSxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgc3RhZ2VUYXJnZXRzRm9yQ0koKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+XG4gICAgICAgIHRhcmdldC5hd3NTdGFnZVR5cGUgPT09IEFXU19TVEFHRV9UWVBFLlNUQUdFICYmIHRhcmdldC5jaURlcGxveW1lbnQsXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHN0YWdlVGFyZ2V0c0ZvckxvY2FsKCk6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5maWx0ZXIoXG4gICAgICAodGFyZ2V0KSA9PlxuICAgICAgICB0YXJnZXQuYXdzU3RhZ2VUeXBlID09PSBBV1NfU1RBR0VfVFlQRS5TVEFHRSAmJiB0YXJnZXQubG9jYWxEZXBsb3ltZW50LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgQWxsIGRldiBkZXBsb3ltZW50IHRhcmdldHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRldlRhcmdldHMoKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+IHRhcmdldC5hd3NTdGFnZVR5cGUgPT09IEFXU19TVEFHRV9UWVBFLkRFVixcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgZGV2VGFyZ2V0c0ZvckNJKCk6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5maWx0ZXIoXG4gICAgICAodGFyZ2V0KSA9PlxuICAgICAgICB0YXJnZXQuYXdzU3RhZ2VUeXBlID09PSBBV1NfU1RBR0VfVFlQRS5ERVYgJiYgdGFyZ2V0LmNpRGVwbG95bWVudCxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgZGV2VGFyZ2V0c0ZvckxvY2FsKCk6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5maWx0ZXIoXG4gICAgICAodGFyZ2V0KSA9PlxuICAgICAgICB0YXJnZXQuYXdzU3RhZ2VUeXBlID09PSBBV1NfU1RBR0VfVFlQRS5ERVYgJiYgdGFyZ2V0LmxvY2FsRGVwbG95bWVudCxcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqXG4gICAqIFN5bnRoIFRhc2tzXG4gICAqXG4gICAqIC0gQ29uZmlndXJlIHN5bnRoIHRhc2sgdG8gdXNlIHRoZSBicmFuY2ggbmFtZVxuICAgKiAtIENoYW5nZSB0aGUgb3V0cHV0IGxvY2F0aW9uIGZvciBlYXNpZXIgd29ya2Zsb3dzLlxuICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGNvbmZpZ3VyZVN5bnRoVGFzayA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZChcInN5bnRoXCIpPy5yZXNldChgcm0gLXJmICR7dGhpcy5jZGtPdXR9YCk7XG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzXG4gICAgICAudHJ5RmluZChcInN5bnRoXCIpXG4gICAgICA/LmV4ZWMoYGNkayBzeW50aCAtLW91dHB1dCAke3RoaXMuY2RrT3V0fWAsIHsgZW52OiB0aGlzLmVudiB9KTtcblxuICAgIHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKFwic3ludGg6c2lsZW50XCIpPy5yZXNldChgcm0gLXJmICR7dGhpcy5jZGtPdXR9YCk7XG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzXG4gICAgICAudHJ5RmluZChcInN5bnRoOnNpbGVudFwiKVxuICAgICAgPy5leGVjKGBjZGsgc3ludGggLXEgLS1vdXRwdXQgJHt0aGlzLmNka091dH1gLCB7IGVudjogdGhpcy5lbnYgfSk7XG4gIH07XG5cbiAgcHJlU3ludGhlc2l6ZSgpOiB2b2lkIHtcbiAgICBzdXBlci5wcmVTeW50aGVzaXplKCk7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0dXJibydzIGFjdGl2ZSB3ZSBzaG91bGQgZW5zdXJlIHRoZSBwb3N0IGNvbXBpbGUgdGFza1xuICAgICAqIGlzIGNvbmZpZ3VyZWQgdG8gY29uc2lkZXIgdGhlIGNkayBvdXRwdXQgZGlyZWN0b3J5IGluIGl0J3Mgcm9vdCBsb2NhdGlvbi5cbiAgICAgKi9cbiAgICBpZiAoVHVyYm9SZXBvLm9mKHRoaXMucHJvamVjdCkpIHtcbiAgICAgIGNvbnN0IHR1cmJvID0gVHVyYm9SZXBvLm9mKHRoaXMucHJvamVjdCkhO1xuICAgICAgdHVyYm8ucG9zdENvbXBpbGVUYXNrPy5vdXRwdXRzLnB1c2goam9pbih0aGlzLmNka091dCwgXCIqKlwiKSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlcGxveW1lbnQtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3cy9hd3MtZGVwbG95bWVudC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQTJDO0FBQzNDLCtDQUFxRDtBQUNyRCxtQ0FBbUM7QUFHbkMsb0NBQXFDO0FBRXJDOzs7Ozs7Ozs7Z0ZBU2dGO0FBRWhGOztFQUVFO0FBRUYsTUFBYSxtQkFBb0IsU0FBUSxrQkFBUztJQUN6QyxNQUFNLENBQUMsRUFBRSxDQUNkLE9BQTRCO1FBRTVCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUE0QixFQUFFLENBQzNELENBQUMsWUFBWSxtQkFBbUIsQ0FBQztRQUNuQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFnQ0QsWUFBWSxPQUE0QjtRQUN0QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFOakI7O1dBRUc7UUFDYSx5QkFBb0IsR0FBK0IsRUFBRSxDQUFDO1FBNkd0RTs7Ozs7OztzRkFPOEU7UUFFdEUsdUJBQWtCLEdBQUcsR0FBUyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7aUJBQ2YsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDakIsRUFBRSxJQUFJLENBQUMsc0JBQXNCLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUVqRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFB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QUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbkxELGtEQW1MQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4sIHJlbGF0aXZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgQVdTX1NUQUdFX1RZUEUgfSBmcm9tIFwiQGNvZGVkcmlmdGVycy91dGlsc1wiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gXCJwcm9qZW4vbGliL2F3c2Nka1wiO1xuaW1wb3J0IHsgQXdzRGVwbG95bWVudFRhcmdldCB9IGZyb20gXCIuL2F3cy1kZXBsb3ltZW50LXRhcmdldFwiO1xuaW1wb3J0IHsgVHVyYm9SZXBvIH0gZnJvbSBcIi4uL3R1cmJvXCI7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKlxuICogQVdTIERlcGxveW1lbnQgQ29uZmlndXJhdGlvblxuICpcbiAqIFRoaXMgY29tcG9uZW50IGFsbG93cyBjb25maWd1cmF0aW9uIG9mIG11bHRpcGxlIEFXUyBkZXBsb3ltZW50XG4gKiB0YXJnZXRzLCBlYWNoIHdpdGggaXRzIG93biBhY2NvdW50LCByZWdpb24sIGFuZCBkZXBsb3ltZW50IHR5cGVcbiAqIChkZXYsIHN0YWdlLCBwcm9kKS4gSXQgc3VwcG9ydHMgYm90aCBsb2NhbCBhbmQgQ0kgZGVwbG95bWVudHMsXG4gKiB3aXRoIGN1c3RvbWl6YWJsZSBzZXR0aW5ncyBmb3IgZWFjaCB0YXJnZXQuXG4gKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLypcbmV4cG9ydCBpbnRlcmZhY2UgQXdzRGVwbG95bWVudENvbmZpZ09wdGlvbnMge31cbiovXG5cbmV4cG9ydCBjbGFzcyBBd3NEZXBsb3ltZW50Q29uZmlnIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHVibGljIHN0YXRpYyBvZihcbiAgICBwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLFxuICApOiBBd3NEZXBsb3ltZW50Q29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0RlZmluZWQgPSAoYzogQ29tcG9uZW50KTogYyBpcyBBd3NEZXBsb3ltZW50Q29uZmlnID0+XG4gICAgICBjIGluc3RhbmNlb2YgQXdzRGVwbG95bWVudENvbmZpZztcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNEZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gYmUgaW5qZWN0ZWQgaW50byBhbGwgdGFza3MuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBUaGUgcmVsYXRpdmUgcGF0aCB0byB0aGUgcHJvamVjdCBkaXJlY3RvcnkgZnJvbSB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0UGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVsYXRpdmUgcGF0aCB0byB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBmcm9tIHRoZSBvdXRwdXQgZGlyZWN0b3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvb3RQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvdXRwdXQgZGlyZWN0b3J5IGZvciB0aGUgQ0RLIHN5bnRoZXNpcywgZnJvbSB0aGUgcm9vdCBkaXJlY3RvcnkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9vdENka091dDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgb3V0cHV0IGRpcmVjdG9yeSBmb3IgdGhlIENESyBzeW50aGVzaXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrT3V0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFycmF5IG9mIHRhcmdldHMgZm9yIGRlcGxveW1lbnQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXdzRGVwbG95bWVudFRhcmdldHM6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+ID0gW107XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgLyoqXG4gICAgICogQ29tbW9uIHZhcmlhYmxlcyB1c2VkIGFjcm9zcyB0YXNrcy5cbiAgICAgKi9cbiAgICB0aGlzLmVudiA9IHsgR0lUX0JSQU5DSDogXCIkKGdpdCBicmFuY2ggLS1zaG93LWN1cnJlbnQpXCIgfTtcbiAgICB0aGlzLnByb2plY3RQYXRoID0gcmVsYXRpdmUocHJvamVjdC5yb290Lm91dGRpciwgcHJvamVjdC5vdXRkaXIpO1xuICAgIHRoaXMucm9vdFBhdGggPSByZWxhdGl2ZShwcm9qZWN0Lm91dGRpciwgcHJvamVjdC5yb290Lm91dGRpcik7XG4gICAgdGhpcy5yb290Q2RrT3V0ID0gam9pbihcImRpc3RcIiwgdGhpcy5wcm9qZWN0UGF0aCwgXCJjZGsub3V0XCIpO1xuICAgIHRoaXMuY2RrT3V0ID0gam9pbih0aGlzLnJvb3RQYXRoLCBcImRpc3RcIiwgdGhpcy5wcm9qZWN0UGF0aCwgXCJjZGsub3V0XCIpO1xuXG4gICAgLyoqXG4gICAgICogUmVzZXQgc29tZSB0YXNrcyB3ZSB3aWxsIHJlYnVpbGQgYmVsb3cuXG4gICAgICovXG4gICAgW1wiZGVwbG95XCIsIFwid2F0Y2hcIl0uZm9yRWFjaCgodGFza05hbWUpID0+IHtcbiAgICAgIGNvbnN0IHRhc2sgPSBwcm9qZWN0LnRhc2tzLnRyeUZpbmQodGFza05hbWUpO1xuICAgICAgaWYgKHRhc2spIHtcbiAgICAgICAgdGFzay5yZXNldCgpO1xuICAgICAgICB0YXNrLnNheShcbiAgICAgICAgICBcIkdlbmVyaWMgdGFzayBpcyBkaXNhYmxlZC4gUGxlYXNlIHVzZSB0aGUgc3BlY2lmaWMgdGFzayBmb3IgeW91ciBkZXBsb3ltZW50IHRhcmdldC5cIixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFJlZGVmaW5lIFN5bnRoIGhlcmVcbiAgICAgKlxuICAgICAqIERlcGxveSBhbmQgd2F0Y2ggZ2V0IHJlY29uZmlndXJlZCBwZXIgZGVwbG95bWVudCB0YXJnZXQuXG4gICAgICogQHNlZSBhZGREZXBsb3ltZW50VGFyZ2V0KClcbiAgICAgKi9cbiAgICB0aGlzLmNvbmZpZ3VyZVN5bnRoVGFzaygpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqXG4gICAqIFRhcmdldCBmaWx0ZXIgaGVscGVyc1xuICAgKlxuICAgKiBSZXR1cm4gdmFyaW91cyB0YXJnZXRzIGZvciBkZXBsb3ltZW50IHNjcmlwdHMgdG8gdXNlLlxuICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQHJldHVybnMgQWxsIHByb2R1Y3Rpb24gZGVwbG95bWVudCB0YXJnZXRzLlxuICAgKi9cbiAgcHVibGljIGdldCBwcm9kVGFyZ2V0cygpOiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0PiB7XG4gICAgcmV0dXJuIHRoaXMuYXdzRGVwbG95bWVudFRhcmdldHMuZmlsdGVyKFxuICAgICAgKHRhcmdldCkgPT4gdGFyZ2V0LmF3c1N0YWdlVHlwZSA9PT0gQVdTX1NUQUdFX1RZUEUuUFJPRCxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgcHJvZFRhcmdldHNGb3JDSSgpOiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0PiB7XG4gICAgcmV0dXJuIHRoaXMuYXdzRGVwbG95bWVudFRhcmdldHMuZmlsdGVyKFxuICAgICAgKHRhcmdldCkgPT5cbiAgICAgICAgdGFyZ2V0LmF3c1N0YWdlVHlwZSA9PT0gQVdTX1NUQUdFX1RZUEUuUFJPRCAmJiB0YXJnZXQuY2lEZXBsb3ltZW50LFxuICAgICk7XG4gIH1cbiAgcHVibGljIGdldCBwcm9kVGFyZ2V0c0ZvckxvY2FsKCk6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5maWx0ZXIoXG4gICAgICAodGFyZ2V0KSA9PlxuICAgICAgICB0YXJnZXQuYXdzU3RhZ2VUeXBlID09PSBBV1NfU1RBR0VfVFlQRS5QUk9EICYmIHRhcmdldC5sb2NhbERlcGxveW1lbnQsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcmV0dXJucyBBbGwgc3RhZ2UgZGVwbG95bWVudCB0YXJnZXRzLlxuICAgKi9cbiAgcHVibGljIGdldCBzdGFnZVRhcmdldHMoKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+IHRhcmdldC5hd3NTdGFnZVR5cGUgPT09IEFXU19TVEFHRV9UWVBFLlNUQUdFLFxuICAgICk7XG4gIH1cbiAgcHVibGljIGdldCBzdGFnZVRhcmdldHNGb3JDSSgpOiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0PiB7XG4gICAgcmV0dXJuIHRoaXMuYXdzRGVwbG95bWVudFRhcmdldHMuZmlsdGVyKFxuICAgICAgKHRhcmdldCkgPT5cbiAgICAgICAgdGFyZ2V0LmF3c1N0YWdlVHlwZSA9PT0gQVdTX1NUQUdFX1RZUEUuU1RBR0UgJiYgdGFyZ2V0LmNpRGVwbG95bWVudCxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgc3RhZ2VUYXJnZXRzRm9yTG9jYWwoKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+XG4gICAgICAgIHRhcmdldC5hd3NTdGFnZVR5cGUgPT09IEFXU19TVEFHRV9UWVBFLlNUQUdFICYmIHRhcmdldC5sb2NhbERlcGxveW1lbnQsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcmV0dXJucyBBbGwgZGV2IGRlcGxveW1lbnQgdGFyZ2V0cy5cbiAgICovXG4gIHB1YmxpYyBnZXQgZGV2VGFyZ2V0cygpOiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0PiB7XG4gICAgcmV0dXJuIHRoaXMuYXdzRGVwbG95bWVudFRhcmdldHMuZmlsdGVyKFxuICAgICAgKHRhcmdldCkgPT4gdGFyZ2V0LmF3c1N0YWdlVHlwZSA9PT0gQVdTX1NUQUdFX1RZUEUuREVWLFxuICAgICk7XG4gIH1cbiAgcHVibGljIGdldCBkZXZUYXJnZXRzRm9yQ0koKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+XG4gICAgICAgIHRhcmdldC5hd3NTdGFnZVR5cGUgPT09IEFXU19TVEFHRV9UWVBFLkRFViAmJiB0YXJnZXQuY2lEZXBsb3ltZW50LFxuICAgICk7XG4gIH1cbiAgcHVibGljIGdldCBkZXZUYXJnZXRzRm9yTG9jYWwoKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+XG4gICAgICAgIHRhcmdldC5hd3NTdGFnZVR5cGUgPT09IEFXU19TVEFHRV9UWVBFLkRFViAmJiB0YXJnZXQubG9jYWxEZXBsb3ltZW50LFxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICpcbiAgICogU3ludGggVGFza3NcbiAgICpcbiAgICogLSBDb25maWd1cmUgc3ludGggdGFzayB0byB1c2UgdGhlIGJyYW5jaCBuYW1lXG4gICAqIC0gQ2hhbmdlIHRoZSBvdXRwdXQgbG9jYXRpb24gZm9yIGVhc2llciB3b3JrZmxvd3MuXG4gICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgY29uZmlndXJlU3ludGhUYXNrID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKFwic3ludGhcIik/LnJlc2V0KGBybSAtcmYgJHt0aGlzLmNka091dH1gKTtcbiAgICB0aGlzLnByb2plY3QudGFza3NcbiAgICAgIC50cnlGaW5kKFwic3ludGhcIilcbiAgICAgID8uZXhlYyhgY2RrIHN5bnRoIC0tb3V0cHV0ICR7dGhpcy5jZGtPdXR9YCwgeyBlbnY6IHRoaXMuZW52IH0pO1xuXG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoXCJzeW50aDpzaWxlbnRcIik/LnJlc2V0KGBybSAtcmYgJHt0aGlzLmNka091dH1gKTtcbiAgICB0aGlzLnByb2plY3QudGFza3NcbiAgICAgIC50cnlGaW5kKFwic3ludGg6c2lsZW50XCIpXG4gICAgICA/LmV4ZWMoYGNkayBzeW50aCAtcSAtLW91dHB1dCAke3RoaXMuY2RrT3V0fWAsIHsgZW52OiB0aGlzLmVudiB9KTtcbiAgfTtcblxuICBwcmVTeW50aGVzaXplKCk6IHZvaWQge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKTtcblxuICAgIC8qKlxuICAgICAqIElmIHR1cmJvJ3MgYWN0aXZlIHdlIHNob3VsZCBlbnN1cmUgdGhlIHBvc3QgY29tcGlsZSB0YXNrXG4gICAgICogaXMgY29uZmlndXJlZCB0byBjb25zaWRlciB0aGUgY2RrIG91dHB1dCBkaXJlY3RvcnkgaW4gaXQncyByb290IGxvY2F0aW9uLlxuICAgICAqL1xuICAgIGlmIChUdXJib1JlcG8ub2YodGhpcy5wcm9qZWN0KSkge1xuICAgICAgY29uc3QgdHVyYm8gPSBUdXJib1JlcG8ub2YodGhpcy5wcm9qZWN0KSE7XG4gICAgICB0dXJiby5wb3N0Q29tcGlsZVRhc2s/Lm91dHB1dHMucHVzaChqb2luKHRoaXMuY2RrT3V0LCBcIioqXCIpKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AwsEnvironmentType, AwsStageType } from "@codedrifters/utils";
|
|
1
2
|
import { Component } from "projen";
|
|
2
3
|
import { AwsCdkTypeScriptApp } from "projen/lib/awscdk";
|
|
3
4
|
import { AwsDeploymentConfig } from "./aws-deployment-config";
|
|
@@ -9,50 +10,6 @@ import { GitBranch } from "../git";
|
|
|
9
10
|
* A single deployment target that CDK applications can be deployed into.
|
|
10
11
|
*
|
|
11
12
|
******************************************************************************/
|
|
12
|
-
/**
|
|
13
|
-
* Stage Types
|
|
14
|
-
*
|
|
15
|
-
* What stage of deployment is this? Dev, staging, or prod?
|
|
16
|
-
*/
|
|
17
|
-
export declare const AWS_STAGE_TYPE: {
|
|
18
|
-
/**
|
|
19
|
-
* Development environment, typically used for testing and development.
|
|
20
|
-
*/
|
|
21
|
-
readonly DEV: "dev";
|
|
22
|
-
/**
|
|
23
|
-
* Staging environment, used for pre-production testing.
|
|
24
|
-
*/
|
|
25
|
-
readonly STAGE: "stage";
|
|
26
|
-
/**
|
|
27
|
-
* Production environment, used for live deployments.
|
|
28
|
-
*/
|
|
29
|
-
readonly PROD: "prod";
|
|
30
|
-
};
|
|
31
|
-
/**
|
|
32
|
-
* Above const as a type.
|
|
33
|
-
*/
|
|
34
|
-
export type AwsStageType = (typeof AWS_STAGE_TYPE)[keyof typeof AWS_STAGE_TYPE];
|
|
35
|
-
/**
|
|
36
|
-
* Environment Types
|
|
37
|
-
*
|
|
38
|
-
* Is this a primary of secondary region / environment?
|
|
39
|
-
*/
|
|
40
|
-
export declare const AWS_ENVIRONMENT_TYPE: {
|
|
41
|
-
/**
|
|
42
|
-
* Account and region that represents the primary region for this service.
|
|
43
|
-
* For example, the base DynamoDB Region for global tables.
|
|
44
|
-
*/
|
|
45
|
-
readonly PRIMARY: "primary";
|
|
46
|
-
/**
|
|
47
|
-
* Account and region that represents a secondary region for this service.
|
|
48
|
-
* For example, a replica region for a global DynamoDB table.
|
|
49
|
-
*/
|
|
50
|
-
readonly SECONDARY: "secondary";
|
|
51
|
-
};
|
|
52
|
-
/**
|
|
53
|
-
* Above const as a type.
|
|
54
|
-
*/
|
|
55
|
-
export type AwsEnvironmentType = (typeof AWS_ENVIRONMENT_TYPE)[keyof typeof AWS_ENVIRONMENT_TYPE];
|
|
56
13
|
/**
|
|
57
14
|
* Represents the configuration for local deployment in AWS.
|
|
58
15
|
*/
|
|
@@ -1,51 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AwsDeploymentTarget =
|
|
3
|
+
exports.AwsDeploymentTarget = void 0;
|
|
4
|
+
const utils_1 = require("@codedrifters/utils");
|
|
4
5
|
const projen_1 = require("projen");
|
|
5
6
|
const aws_deployment_config_1 = require("./aws-deployment-config");
|
|
6
|
-
/*******************************************************************************
|
|
7
|
-
*
|
|
8
|
-
* AWS Deployment Configuration
|
|
9
|
-
*
|
|
10
|
-
* A single deployment target that CDK applications can be deployed into.
|
|
11
|
-
*
|
|
12
|
-
******************************************************************************/
|
|
13
|
-
/**
|
|
14
|
-
* Stage Types
|
|
15
|
-
*
|
|
16
|
-
* What stage of deployment is this? Dev, staging, or prod?
|
|
17
|
-
*/
|
|
18
|
-
exports.AWS_STAGE_TYPE = {
|
|
19
|
-
/**
|
|
20
|
-
* Development environment, typically used for testing and development.
|
|
21
|
-
*/
|
|
22
|
-
DEV: "dev",
|
|
23
|
-
/**
|
|
24
|
-
* Staging environment, used for pre-production testing.
|
|
25
|
-
*/
|
|
26
|
-
STAGE: "stage",
|
|
27
|
-
/**
|
|
28
|
-
* Production environment, used for live deployments.
|
|
29
|
-
*/
|
|
30
|
-
PROD: "prod",
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Environment Types
|
|
34
|
-
*
|
|
35
|
-
* Is this a primary of secondary region / environment?
|
|
36
|
-
*/
|
|
37
|
-
exports.AWS_ENVIRONMENT_TYPE = {
|
|
38
|
-
/**
|
|
39
|
-
* Account and region that represents the primary region for this service.
|
|
40
|
-
* For example, the base DynamoDB Region for global tables.
|
|
41
|
-
*/
|
|
42
|
-
PRIMARY: "primary",
|
|
43
|
-
/**
|
|
44
|
-
* Account and region that represents a secondary region for this service.
|
|
45
|
-
* For example, a replica region for a global DynamoDB table.
|
|
46
|
-
*/
|
|
47
|
-
SECONDARY: "secondary",
|
|
48
|
-
};
|
|
49
7
|
class AwsDeploymentTarget extends projen_1.Component {
|
|
50
8
|
/**
|
|
51
9
|
* Static method to discovert targets in a project.
|
|
@@ -121,18 +79,18 @@ class AwsDeploymentTarget extends projen_1.Component {
|
|
|
121
79
|
/**
|
|
122
80
|
* Set default type
|
|
123
81
|
*/
|
|
124
|
-
this.awsStageType = options.awsStageType ||
|
|
82
|
+
this.awsStageType = options.awsStageType || utils_1.AWS_STAGE_TYPE.DEV;
|
|
125
83
|
/**
|
|
126
84
|
* Set default environment type
|
|
127
85
|
*/
|
|
128
86
|
this.awsEnvironmentType =
|
|
129
|
-
options.awsEnvironmentType ||
|
|
87
|
+
options.awsEnvironmentType || utils_1.AWS_ENVIRONMENT_TYPE.PRIMARY;
|
|
130
88
|
/**
|
|
131
89
|
* Set default Branches
|
|
132
90
|
*/
|
|
133
91
|
this.branches =
|
|
134
92
|
options.branches ??
|
|
135
|
-
(this.awsStageType ===
|
|
93
|
+
(this.awsStageType === utils_1.AWS_STAGE_TYPE.PROD
|
|
136
94
|
? [
|
|
137
95
|
{
|
|
138
96
|
branch: "main",
|
|
@@ -147,7 +105,7 @@ class AwsDeploymentTarget extends projen_1.Component {
|
|
|
147
105
|
* Set default for local deployment
|
|
148
106
|
*/
|
|
149
107
|
this.localDeployment =
|
|
150
|
-
options.localDeployment ?? this.awsStageType ===
|
|
108
|
+
options.localDeployment ?? this.awsStageType === utils_1.AWS_STAGE_TYPE.DEV;
|
|
151
109
|
/**
|
|
152
110
|
* Some default configurations for local deployments.
|
|
153
111
|
*/
|
|
@@ -199,4 +157,4 @@ class AwsDeploymentTarget extends projen_1.Component {
|
|
|
199
157
|
}
|
|
200
158
|
}
|
|
201
159
|
exports.AwsDeploymentTarget = AwsDeploymentTarget;
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlcGxveW1lbnQtdGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3cy9hd3MtZGVwbG95bWVudC10YXJnZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBRW5DLG1FQUE4RDtBQUc5RDs7Ozs7O2dGQU1nRjtBQUVoRjs7OztHQUlHO0FBQ1UsUUFBQSxjQUFjLEdBQUc7SUFDNUI7O09BRUc7SUFDSCxHQUFHLEVBQUUsS0FBSztJQUVWOztPQUVHO0lBQ0gsS0FBSyxFQUFFLE9BQU87SUFFZDs7T0FFRztJQUNILElBQUksRUFBRSxNQUFNO0NBQ0osQ0FBQztBQU9YOzs7O0dBSUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHO0lBQ2xDOzs7T0FHRztJQUNILE9BQU8sRUFBRSxTQUFTO0lBQ2xCOzs7T0FHRztJQUNILFNBQVMsRUFBRSxXQUFXO0NBQ2QsQ0FBQztBQThHWCxNQUFhLG1CQUFvQixTQUFRLGtCQUFTO0lBQ2hEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FDZCxPQUE0QjtRQUU1QixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQVksRUFBNEIsRUFBRSxDQUMzRCxDQUFDLFlBQVksbUJBQW1CLENBQUM7UUFDbkMsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBOERELFlBQ0UsT0FBNEIsRUFDNUIsT0FBbUM7UUFFbkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBeENqQjs7OztXQUlHO1FBQ0ksYUFBUSxHQUFxQixFQUFFLENBQUM7UUErSXZDOzs7Ozs7c0ZBTThFO1FBRXRFLHdCQUFtQixHQUFHLEdBQVMsRUFBRTtZQUN2QyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxRQUFRLEdBQUc7b0JBQ2YsUUFBUTtvQkFDUixJQUFJLENBQUMsWUFBWTtvQkFDakIsSUFBSSxDQUFDLE9B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LENBQUMsa0JBQWtCO2FBQzlCLENBQUM7UUFDSixDQUFDO1FBRUQ7O1dBRUc7UUFDSCxJQUFJLENBQUMsbUJBQW1CO1lBQ3RCLDJDQUFtQixDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLDJDQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXRFOztXQUVHO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6RCwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFM0IseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7Q0FpRUY7QUF2UEQsa0RBdVBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gXCJwcm9qZW4vbGliL2F3c2Nka1wiO1xuaW1wb3J0IHsgQXdzRGVwbG95bWVudENvbmZpZyB9IGZyb20gXCIuL2F3cy1kZXBsb3ltZW50LWNvbmZpZ1wiO1xuaW1wb3J0IHsgR2l0QnJhbmNoIH0gZnJvbSBcIi4uL2dpdFwiO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICpcbiAqIEFXUyBEZXBsb3ltZW50IENvbmZpZ3VyYXRpb25cbiAqXG4gKiBBIHNpbmdsZSBkZXBsb3ltZW50IHRhcmdldCB0aGF0IENESyBhcHBsaWNhdGlvbnMgY2FuIGJlIGRlcGxveWVkIGludG8uXG4gKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBTdGFnZSBUeXBlc1xuICpcbiAqIFdoYXQgc3RhZ2Ugb2YgZGVwbG95bWVudCBpcyB0aGlzPyBEZXYsIHN0YWdpbmcsIG9yIHByb2Q/XG4gKi9cbmV4cG9ydCBjb25zdCBBV1NfU1RBR0VfVFlQRSA9IHtcbiAgLyoqXG4gICAqIERldmVsb3BtZW50IGVudmlyb25tZW50LCB0eXBpY2FsbHkgdXNlZCBmb3IgdGVzdGluZyBhbmQgZGV2ZWxvcG1lbnQuXG4gICAqL1xuICBERVY6IFwiZGV2XCIsXG5cbiAgLyoqXG4gICAqIFN0YWdpbmcgZW52aXJvbm1lbnQsIHVzZWQgZm9yIHByZS1wcm9kdWN0aW9uIHRlc3RpbmcuXG4gICAqL1xuICBTVEFHRTogXCJzdGFnZVwiLFxuXG4gIC8qKlxuICAgKiBQcm9kdWN0aW9uIGVudmlyb25tZW50LCB1c2VkIGZvciBsaXZlIGRlcGxveW1lbnRzLlxuICAgKi9cbiAgUFJPRDogXCJwcm9kXCIsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEFib3ZlIGNvbnN0IGFzIGEgdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgQXdzU3RhZ2VUeXBlID0gKHR5cGVvZiBBV1NfU1RBR0VfVFlQRSlba2V5b2YgdHlwZW9mIEFXU19TVEFHRV9UWVBFXTtcblxuLyoqXG4gKiBFbnZpcm9ubWVudCBUeXBlc1xuICpcbiAqIElzIHRoaXMgYSBwcmltYXJ5IG9mIHNlY29uZGFyeSByZWdpb24gLyBlbnZpcm9ubWVudD9cbiAqL1xuZXhwb3J0IGNvbnN0IEFXU19FTlZJUk9OTUVOVF9UWVBFID0ge1xuICAvKipcbiAgICogQWNjb3VudCBhbmQgcmVnaW9uIHRoYXQgcmVwcmVzZW50cyB0aGUgcHJpbWFyeSByZWdpb24gZm9yIHRoaXMgc2VydmljZS5cbiAgICogRm9yIGV4YW1wbGUsIHRoZSBiYXNlIER5bmFtb0RCIFJlZ2lvbiBmb3IgZ2xvYmFsIHRhYmxlcy5cbiAgICovXG4gIFBSSU1BUlk6IFwicHJpbWFyeVwiLFxuICAvKipcbiAgICogQWNjb3VudCBhbmQgcmVnaW9uIHRoYXQgcmVwcmVzZW50cyBhIHNlY29uZGFyeSByZWdpb24gZm9yIHRoaXMgc2VydmljZS5cbiAgICogRm9yIGV4YW1wbGUsIGEgcmVwbGljYSByZWdpb24gZm9yIGEgZ2xvYmFsIER5bmFtb0RCIHRhYmxlLlxuICAgKi9cbiAgU0VDT05EQVJZOiBcInNlY29uZGFyeVwiLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBBYm92ZSBjb25zdCBhcyBhIHR5cGUuXG4gKi9cbmV4cG9ydCB0eXBlIEF3c0Vudmlyb25tZW50VHlwZSA9XG4gICh0eXBlb2YgQVdTX0VOVklST05NRU5UX1RZUEUpW2tleW9mIHR5cGVvZiBBV1NfRU5WSVJPTk1FTlRfVFlQRV07XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgY29uZmlndXJhdGlvbiBmb3IgbG9jYWwgZGVwbG95bWVudCBpbiBBV1MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXdzTG9jYWxEZXBsb3ltZW50Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBBV1MgcHJvZmlsZSAoaW4gfi8uYXdzL2NvbmZpZykgdG8gdXNlIGZvciBsb2NhbCBkZXBsb3ltZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCBnZW5lcmF0ZWQgZHluYW1pY2FsbHkgYmFzZWQgcm9sZSBuYW1lLCBhY2NvdW50IGFuZCByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHByb2ZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWVkIFJvbGUgdXNlZCB0byBjb25kdWN0IGxvY2FsIGRlcGxveW1lbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcInBvd2VydXNlcmFjY2Vzc1wiXG4gICAqL1xuICByZWFkb25seSByb2xlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdHRlcm4gdXNlZCB0byBpZGVudGlmeSBzdGFja3MgdG8gZGVwbG95IGluIENJIGRlcGxveW1lbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAqLSR7YWNjb3VudH0tJHtyZWdpb259XG4gICAqL1xuICByZWFkb25seSBzdGFja1BhdHRlcm4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2lEZXBsb3ltZW50Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBPSURDIElBTSBSb2xlIHRvIGFzc3VtZSBmb3IgQ0kgZGVwbG95bWVudHMuXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXR0ZXJuIHVzZWQgdG8gaWRlbnRpZnkgc3RhY2tzIHRvIGRlcGxveSBpbiBDSSBkZXBsb3ltZW50cy5cbiAgICpcbiAgICogQGRlZmF1bHQgKi0ke2FjY291bnR9LSR7cmVnaW9ufVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tQYXR0ZXJuPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBkZXBsb3ltZW50IHRhcmdldCBpbiBBV1MsIGluY2x1ZGluZyBhY2NvdW50IGFuZCByZWdpb24sIGFuZFxuICogYnJhbmNoZXMgYWxsb3dlZCB0byBkZXBsb3kgdG8gdGhpcyB0YXJnZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXdzRGVwbG95bWVudFRhcmdldE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGFjY291bnQgbmFtZSBmb3IgdGhlIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHJlZ2lvbiBmb3IgdGhlIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFXUyBkZXBsb3ltZW50IHR5cGUsIHN1Y2ggYXMgZGV2LCBzdGFnZSwgb3IgcHJvZC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2RldidcbiAgICovXG4gIHJlYWRvbmx5IGF3c1N0YWdlVHlwZT86IEF3c1N0YWdlVHlwZTtcblxuICAvKipcbiAgICogQVdTIGVudmlyb25tZW50IHR5cGUsIHN1Y2ggYXMgcHJpbWFyeSBvciBzZWNvbmRhcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdwcmltYXJ5J1xuICAgKi9cbiAgcmVhZG9ubHkgYXdzRW52aXJvbm1lbnRUeXBlPzogQXdzRW52aXJvbm1lbnRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHByb2ZpbGUgdG8gdXNlIGZvciB0aGlzIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBbJ21haW4nXSB3aGVuIHByb2QgcmVsZWFzZSB0eXBlLCBbJ2ZlYXR1cmUvKiddIHdoZW4gZGV2IHR5cGVcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaGVzPzogQXJyYXk8R2l0QnJhbmNoPjtcblxuICAvKipcbiAgICogQ2FuIHRoaXMgZGVwbG95bWVudCB0YXJnZXQgYmUgdXNlZCBmb3IgbG9jYWwgZGV2ZWxvcG1lbnQ/XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWUgZm9yIGRldiBlbnZpcm9ubWVudHMsIGZhbHNlIGZvciBwcm9kIGVudmlyb25tZW50c1xuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWxEZXBsb3ltZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiB3aGVuIGRlcGxveWluZyB0byB0aGlzIHRhcmdldCBsb2NhbGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWxEZXBsb3ltZW50Q29uZmlnPzogQXdzTG9jYWxEZXBsb3ltZW50Q29uZmlnO1xuXG4gIC8qKlxuICAgKiBDYW4gdGhpcyBkZXBsb3ltZW50IHRhcmdldCBiZSB1c2VkIGluIENJIGRlcGxveW1lbnRzP1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY2lEZXBsb3ltZW50PzogYm9vbGVhbjtcblxuICAvKlxuICAgKiBDb25maWd1cmF0aW9uIHdoZW4gZGVwbG95aW5nIHRvIHRoaXMgdGFyZ2V0IGluIENJLlxuXG4gICAqL1xuICByZWFkb25seSBjaURlcGxveW1lbnRDb25maWc/OiBDaURlcGxveW1lbnRDb25maWc7XG59XG5cbmV4cG9ydCBjbGFzcyBBd3NEZXBsb3ltZW50VGFyZ2V0IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFN0YXRpYyBtZXRob2QgdG8gZGlzY292ZXJ0IHRhcmdldHMgaW4gYSBwcm9qZWN0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihcbiAgICBwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLFxuICApOiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0PiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNEZWZpbmVkID0gKGM6IENvbXBvbmVudCk6IGMgaXMgQXdzRGVwbG95bWVudFRhcmdldCA9PlxuICAgICAgYyBpbnN0YW5jZW9mIEF3c0RlcGxveW1lbnRUYXJnZXQ7XG4gICAgcmV0dXJuIHByb2plY3QuY29tcG9uZW50cy5maWx0ZXIoaXNEZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudCBuYW1lIGZvciB0aGUgZGVwbG95bWVudCB0YXJnZXQuXG4gICAqL1xuICBwdWJsaWMgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHJlZ2lvbiBmb3IgdGhlIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgKi9cbiAgcHVibGljIHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKidcbiAgICogQVdTIHN0YWdlIHR5cGUsIHN1Y2ggYXMgZGV2LCBzdGFnZSwgb3IgcHJvZC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2RldidcbiAgICovXG4gIHB1YmxpYyBhd3NTdGFnZVR5cGU6IEF3c1N0YWdlVHlwZTtcblxuICAvKipcbiAgICogQVdTIGVudmlyb25tZW50IHR5cGUsIHN1Y2ggYXMgcHJpbWFyeSBvciBzZWNvbmRhcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdwcmltYXJ5J1xuICAgKi9cbiAgcHVibGljIGF3c0Vudmlyb25tZW50VHlwZTogQXdzRW52aXJvbm1lbnRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHByb2ZpbGUgdG8gdXNlIGZvciB0aGlzIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBbJ21haW4nXSB3aGVuIHByb2QgcmVsZWFzZSB0eXBlLCBbJ2ZlYXR1cmUvKiddIHdoZW4gZGV2IHR5cGVcbiAgICovXG4gIHB1YmxpYyBicmFuY2hlczogQXJyYXk8R2l0QnJhbmNoPiA9IFtdO1xuXG4gIC8qKlxuICAgKiBDYW4gdGhpcyBkZXBsb3ltZW50IHRhcmdldCBiZSB1c2VkIGZvciBsb2NhbCBkZXZlbG9wbWVudD9cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZSBmb3IgZGV2IGVudmlyb25tZW50cywgZmFsc2UgZm9yIHByb2QgZW52aXJvbm1lbnRzXG4gICAqL1xuICBwdWJsaWMgbG9jYWxEZXBsb3ltZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiB3aGVuIGRlcGxveWluZyB0byB0aGlzIHRhcmdldCBsb2NhbGx5LlxuICAgKi9cbiAgcHVibGljIGxvY2FsRGVwbG95bWVudENvbmZpZz86IEF3c0xvY2FsRGVwbG95bWVudENvbmZpZztcblxuICAvKipcbiAgICogQ2FuIHRoaXMgZGVwbG95bWVudCB0YXJnZXQgYmUgdXNlZCBpbiBDSSBkZXBsb3ltZW50cz9cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHB1YmxpYyBjaURlcGxveW1lbnQ/OiBib29sZWFuO1xuXG4gIC8qXG4gICAqIENvbmZpZ3VyYXRpb24gd2hlbiBkZXBsb3lpbmcgdG8gdGhpcyB0YXJnZXQgaW4gQ0kuXG4gICAqL1xuICBwdWJsaWMgY2lEZXBsb3ltZW50Q29uZmlnPzogUmVxdWlyZWQ8Q2lEZXBsb3ltZW50Q29uZmlnPjtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIENESyBvdXRwdXQgZGlyZWN0b3J5IGZvciB0aGlzIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgKi9cbiAgcHVibGljIGF3c0RlcGxveW1lbnRDb25maWc6IEF3c0RlcGxveW1lbnRDb25maWc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCxcbiAgICBvcHRpb25zOiBBd3NEZXBsb3ltZW50VGFyZ2V0T3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGFyZ2V0IHJlZ2lvbiBhbmQgYWNjb3VudC5cbiAgICAgKi9cbiAgICB0aGlzLmFjY291bnQgPSBvcHRpb25zLmFjY291bnQ7XG4gICAgdGhpcy5yZWdpb24gPSBvcHRpb25zLnJlZ2lvbjtcblxuICAgIC8qKlxuICAgICAqIFNldCBkZWZhdWx0IHR5cGVcbiAgICAgKi9cbiAgICB0aGlzLmF3c1N0YWdlVHlwZSA9IG9wdGlvbnMuYXdzU3RhZ2VUeXBlIHx8IEFXU19TVEFHRV9UWVBFLkRFVjtcblxuICAgIC8qKlxuICAgICAqIFNldCBkZWZhdWx0IGVudmlyb25tZW50IHR5cGVcbiAgICAgKi9cbiAgICB0aGlzLmF3c0Vudmlyb25tZW50VHlwZSA9XG4gICAgICBvcHRpb25zLmF3c0Vudmlyb25tZW50VHlwZSB8fCBBV1NfRU5WSVJPTk1FTlRfVFlQRS5QUklNQVJZO1xuXG4gICAgLyoqXG4gICAgICogU2V0IGRlZmF1bHQgQnJhbmNoZXNcbiAgICAgKi9cblxuICAgIHRoaXMuYnJhbmNoZXMgPVxuICAgICAgb3B0aW9ucy5icmFuY2hlcyA/P1xuICAgICAgKHRoaXMuYXdzU3RhZ2VUeXBlID09PSBBV1NfU1RBR0VfVFlQRS5QUk9EXG4gICAgICAgID8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBicmFuY2g6IFwibWFpblwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBicmFuY2g6IFwiZmVhdHVyZS8qXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0pO1xuXG4gICAgLyoqXG4gICAgICogU2V0IGRlZmF1bHQgZm9yIGxvY2FsIGRlcGxveW1lbnRcbiAgICAgKi9cbiAgICB0aGlzLmxvY2FsRGVwbG95bWVudCA9XG4gICAgICBvcHRpb25zLmxvY2FsRGVwbG95bWVudCA/PyB0aGlzLmF3c1N0YWdlVHlwZSA9PT0gQVdTX1NUQUdFX1RZUEUuREVWO1xuXG4gICAgLyoqXG4gICAgICogU29tZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb25zIGZvciBsb2NhbCBkZXBsb3ltZW50cy5cbiAgICAgKi9cbiAgICBpZiAodGhpcy5sb2NhbERlcGxveW1lbnQpIHtcbiAgICAgIGNvbnN0IHJvbGVOYW1lID1cbiAgICAgICAgb3B0aW9ucy5sb2NhbERlcGxveW1lbnRDb25maWc/LnJvbGVOYW1lPy50b0xvd2VyQ2FzZSgpIHx8XG4gICAgICAgIFwicG93ZXJ1c2VyYWNjZXNzXCI7XG4gICAgICBjb25zdCBwcm9maWxlID1cbiAgICAgICAgb3B0aW9ucy5sb2NhbERlcGxveW1lbnRDb25maWc/LnByb2ZpbGUgfHxcbiAgICAgICAgYCR7cm9sZU5hbWV9LSR7dGhpcy5hd3NTdGFnZVR5cGV9LSR7dGhpcy5hY2NvdW50fS0ke3RoaXMucmVnaW9ufWA7XG5cbiAgICAgIGNvbnN0IHN0YWNrUGF0dGVybiA9XG4gICAgICAgIG9wdGlvbnMubG9jYWxEZXBsb3ltZW50Q29uZmlnPy5zdGFja1BhdHRlcm4gfHxcbiAgICAgICAgYCR7dGhpcy5hd3NTdGFnZVR5cGV9LyR7dGhpcy5hd3NFbnZpcm9ubWVudFR5cGV9LyotJHt0aGlzLmFjY291bnR9LSR7dGhpcy5yZWdpb259YDtcblxuICAgICAgdGhpcy5sb2NhbERlcGxveW1lbnRDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGUsXG4gICAgICAgIHJvbGVOYW1lLFxuICAgICAgICBzdGFja1BhdHRlcm4sXG4gICAgICAgIC4uLm9wdGlvbnMubG9jYWxEZXBsb3ltZW50Q29uZmlnLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgQ0kgZGVwbG95bWVudCBkZWZhdWx0XG4gICAgICovXG4gICAgdGhpcy5jaURlcGxveW1lbnQgPSBvcHRpb25zLmNpRGVwbG95bWVudCA/PyBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNvbWUgZGVmYXVsdHMgZm9yIENJIGRlcGxveW1lbnRzLlxuICAgICAqL1xuICAgIGlmICh0aGlzLmNpRGVwbG95bWVudCkge1xuICAgICAgY29uc3Qgcm9sZUFybiA9XG4gICAgICAgIG9wdGlvbnMuY2lEZXBsb3ltZW50Q29uZmlnPy5yb2xlQXJuIHx8XG4gICAgICAgIGBhcm46YXdzOmlhbTo6JHt0aGlzLmFjY291bnR9OnJvbGUvR2l0SHViRGVwbG95ZXJ9YDtcblxuICAgICAgY29uc3Qgc3RhY2tQYXR0ZXJuID1cbiAgICAgICAgb3B0aW9ucy5jaURlcGxveW1lbnRDb25maWc/LnN0YWNrUGF0dGVybiB8fFxuICAgICAgICBgJHt0aGlzLmF3c1N0YWdlVHlwZX0vJHt0aGlzLmF3c0Vudmlyb25tZW50VHlwZX0vKi0ke3RoaXMuYWNjb3VudH0tJHt0aGlzLnJlZ2lvbn1gO1xuXG4gICAgICB0aGlzLmNpRGVwbG95bWVudENvbmZpZyA9IHtcbiAgICAgICAgcm9sZUFybixcbiAgICAgICAgc3RhY2tQYXR0ZXJuLFxuICAgICAgICAuLi5vcHRpb25zLmNpRGVwbG95bWVudENvbmZpZyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZCBvciBjcmVhdGUgQ0RLIGZvbGRlciBjb25maWcgZm9yIHRoaXMgcHJvamVjdC5cbiAgICAgKi9cbiAgICB0aGlzLmF3c0RlcGxveW1lbnRDb25maWcgPVxuICAgICAgQXdzRGVwbG95bWVudENvbmZpZy5vZihwcm9qZWN0KSB8fCBuZXcgQXdzRGVwbG95bWVudENvbmZpZyhwcm9qZWN0KTtcblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgdGFyZ2V0IHRvIHRoZSBkZXBsb3ltZW50IHRhcmdldHMgYXJyYXkuXG4gICAgICovXG4gICAgdGhpcy5hd3NEZXBsb3ltZW50Q29uZmlnLmF3c0RlcGxveW1lbnRUYXJnZXRzLnB1c2godGhpcyk7XG5cbiAgICAvLyBEZXBsb3kgdGFza3MgYXJlIGNvbmZpZ3VyZWQgcGVyIHRhcmdldC5cbiAgICB0aGlzLmNvbmZpZ3VyZURlcGxveVRhc2soKTtcblxuICAgIC8vIFdhdGNoIHRhc2tzIGFyZSBjb25maWd1cmVkIHBlciB0YXJnZXQuXG4gICAgdGhpcy5jb25maWd1cmVXYXRjaFRhc2soKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKlxuICAgKiBEZXBsb3kgVGFza3NcbiAgICpcbiAgICogLSBJZiBsb2NhbCBkZXBsb3ksIGFkZCBhIGRlcGxveSB0YXNrLlxuICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGNvbmZpZ3VyZURlcGxveVRhc2sgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMubG9jYWxEZXBsb3ltZW50KSB7XG4gICAgICBjb25zdCB0YXNrTmFtZSA9IFtcbiAgICAgICAgXCJkZXBsb3lcIixcbiAgICAgICAgdGhpcy5hd3NTdGFnZVR5cGUsXG4gICAgICAgIHRoaXMuYWNjb3VudCxcbiAgICAgICAgdGhpcy5yZWdpb24sXG4gICAgICBdLmpvaW4oXCI6XCIpO1xuICAgICAgY29uc3QgZGVwbG95VGFzayA9IHRoaXMucHJvamVjdC50YXNrcy5hZGRUYXNrKHRhc2tOYW1lLCB7XG4gICAgICAgIGVudjogdGhpcy5hd3NEZXBsb3ltZW50Q29uZmlnLmVudixcbiAgICAgIH0pO1xuICAgICAgZGVwbG95VGFzay5leGVjKFxuICAgICAgICBgY2RrIGRlcGxveSAtLWxvb2t1cHM9ZmFsc2UgLS1yZXF1aXJlLWFwcHJvdmFsPW5ldmVyIC0tcHJvZmlsZT0ke3RoaXMubG9jYWxEZXBsb3ltZW50Q29uZmlnPy5wcm9maWxlfSAtLWFwcD0ke3RoaXMuYXdzRGVwbG95bWVudENvbmZpZy5jZGtPdXR9IFwiJHt0aGlzLmxvY2FsRGVwbG95bWVudENvbmZpZz8uc3RhY2tQYXR0ZXJufVwiYCxcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKlxuICAgKiBXYXRjaCB0YXNrc1xuICAgKlxuICAgKiAtIENvbmZpZ3VyZSB3YXRjaCB0YXNrIHRvIHVzZSB0aGUgYnJhbmNoIG5hbWVcbiAgICogLSBjb25maWd1cmUgd2F0Y2ggdGFzayB0byB1c2UgdGhlIGNvcnJlY3Qgc3ludGggb3V0cHV0IGxvY2F0aW9uLlxuICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGNvbmZpZ3VyZVdhdGNoVGFzayA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5sb2NhbERlcGxveW1lbnQpIHtcbiAgICAgIGNvbnN0IHRhc2tOYW1lID0gW1xuICAgICAgICBcIndhdGNoXCIsXG4gICAgICAgIHRoaXMuYXdzU3RhZ2VUeXBlLFxuICAgICAgICB0aGlzLmFjY291bnQsXG4gICAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgXS5qb2luKFwiOlwiKTtcbiAgICAgIGNvbnN0IHdhdGNoVGFzayA9IHRoaXMucHJvamVjdC50YXNrcy5hZGRUYXNrKHRhc2tOYW1lLCB7XG4gICAgICAgIGVudjogdGhpcy5hd3NEZXBsb3ltZW50Q29uZmlnLmVudixcbiAgICAgIH0pO1xuXG4gICAgICAvLyB1cGRhdGUgdGhlIHN5bnRoIGZpcnN0XG4gICAgICBjb25zdCBzeW50aFNpbGVudCA9IHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKFwic3ludGg6c2lsZW50XCIpO1xuICAgICAgaWYgKHN5bnRoU2lsZW50KSB7XG4gICAgICAgIHdhdGNoVGFzay5zcGF3bihzeW50aFNpbGVudCk7XG4gICAgICB9XG5cbiAgICAgIC8vIGRvIGEgbm9ybWFsIGRlcGxveVxuICAgICAgd2F0Y2hUYXNrLmV4ZWMoXG4gICAgICAgIGBjZGsgZGVwbG95IC0tbG9va3Vwcz1mYWxzZSAtLXJlcXVpcmUtYXBwcm92YWw9bmV2ZXIgLS1wcm9maWxlPSR7dGhpcy5sb2NhbERlcGxveW1lbnRDb25maWc/LnByb2ZpbGV9IC0tYXBwPSR7dGhpcy5hd3NEZXBsb3ltZW50Q29uZmlnLmNka091dH0gXCIke3RoaXMubG9jYWxEZXBsb3ltZW50Q29uZmlnPy5zdGFja1BhdHRlcm59XCJgLFxuICAgICAgKTtcblxuICAgICAgLy8gd2F0Y2ggZm9yIGNoYW5nZXMgYW5kIGxvZyBvdXRwdXRcbiAgICAgIHdhdGNoVGFzay5leGVjKFxuICAgICAgICBgY2RrIHdhdGNoIC0tbG9va3Vwcz1mYWxzZSAtLXJlcXVpcmUtYXBwcm92YWw9bmV2ZXIgLS1ob3Rzd2FwIC0tcHJvZmlsZT0ke3RoaXMubG9jYWxEZXBsb3ltZW50Q29uZmlnPy5wcm9maWxlfSBcIiR7dGhpcy5sb2NhbERlcGxveW1lbnRDb25maWc/LnN0YWNrUGF0dGVybn1cImAsXG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlcGxveW1lbnQtdGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3cy9hd3MtZGVwbG95bWVudC10YXJnZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBSzZCO0FBQzdCLG1DQUFtQztBQUVuQyxtRUFBOEQ7QUFpSDlELE1BQWEsbUJBQW9CLFNBQVEsa0JBQVM7SUFDaEQ7O09BRUc7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUNkLE9BQTRCO1FBRTVCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUE0QixFQUFFLENBQzNELENBQUMsWUFBWSxtQkFBbUIsQ0FBQztRQUNuQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUE4REQsWUFDRSxPQUE0QixFQUM1QixPQUFtQztRQUVuQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUF4Q2pCOzs7O1dBSUc7UUFDSSxhQUFRLEdBQXFCLEVBQUUsQ0FBQztRQStJdkM7Ozs7OztzRkFNOEU7UUFFdEUsd0JBQW1CLEdBQUcsR0FBUyxFQUFFO1lBQ3ZDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN6QixNQUFNLFFBQVEsR0FBRztvQkFDZixRQUFRO29CQUNSLElBQUksQ0FBQyxZQUFZO29CQUNqQixJQUFJLENBQUMsT0FBTztvQkFDWixJQUFJLENBQUMsTUFBTTtpQkFDWixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDWixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO29CQUN0RCxHQUFHLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUc7aUJBQ2xDLENBQUMsQ0FBQztnQkFDSCxVQUFVLENBQUMsSUFBSSxDQUNiLGlFQUFpRSxJQUFJLENBQUMscUJBQXFCLEVBQUUsT0FBTyxV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LEVBQUUsQ0FBQztRQUUzQix5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztDQWlFRjtBQXZQRCxrREF1UEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBV1NfRU5WSVJPTk1FTlRfVFlQRSxcbiAgQVdTX1NUQUdFX1RZUEUsXG4gIEF3c0Vudmlyb25tZW50VHlwZSxcbiAgQXdzU3RhZ2VUeXBlLFxufSBmcm9tIFwiQGNvZGVkcmlmdGVycy91dGlsc1wiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gXCJwcm9qZW4vbGliL2F3c2Nka1wiO1xuaW1wb3J0IHsgQXdzRGVwbG95bWVudENvbmZpZyB9IGZyb20gXCIuL2F3cy1kZXBsb3ltZW50LWNvbmZpZ1wiO1xuaW1wb3J0IHsgR2l0QnJhbmNoIH0gZnJvbSBcIi4uL2dpdFwiO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICpcbiAqIEFXUyBEZXBsb3ltZW50IENvbmZpZ3VyYXRpb25cbiAqXG4gKiBBIHNpbmdsZSBkZXBsb3ltZW50IHRhcmdldCB0aGF0IENESyBhcHBsaWNhdGlvbnMgY2FuIGJlIGRlcGxveWVkIGludG8uXG4gKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBjb25maWd1cmF0aW9uIGZvciBsb2NhbCBkZXBsb3ltZW50IGluIEFXUy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NMb2NhbERlcGxveW1lbnRDb25maWcge1xuICAvKipcbiAgICogVGhlIEFXUyBwcm9maWxlIChpbiB+Ly5hd3MvY29uZmlnKSB0byB1c2UgZm9yIGxvY2FsIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGdlbmVyYXRlZCBkeW5hbWljYWxseSBiYXNlZCByb2xlIG5hbWUsIGFjY291bnQgYW5kIHJlZ2lvblxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZWQgUm9sZSB1c2VkIHRvIGNvbmR1Y3QgbG9jYWwgZGVwbG95bWVudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwicG93ZXJ1c2VyYWNjZXNzXCJcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0dGVybiB1c2VkIHRvIGlkZW50aWZ5IHN0YWNrcyB0byBkZXBsb3kgaW4gQ0kgZGVwbG95bWVudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICotJHthY2NvdW50fS0ke3JlZ2lvbn1cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrUGF0dGVybj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaURlcGxveW1lbnRDb25maWcge1xuICAvKipcbiAgICogVGhlIE9JREMgSUFNIFJvbGUgdG8gYXNzdW1lIGZvciBDSSBkZXBsb3ltZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdHRlcm4gdXNlZCB0byBpZGVudGlmeSBzdGFja3MgdG8gZGVwbG95IGluIENJIGRlcGxveW1lbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAqLSR7YWNjb3VudH0tJHtyZWdpb259XG4gICAqL1xuICByZWFkb25seSBzdGFja1BhdHRlcm4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGRlcGxveW1lbnQgdGFyZ2V0IGluIEFXUywgaW5jbHVkaW5nIGFjY291bnQgYW5kIHJlZ2lvbiwgYW5kXG4gKiBicmFuY2hlcyBhbGxvd2VkIHRvIGRlcGxveSB0byB0aGlzIHRhcmdldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NEZXBsb3ltZW50VGFyZ2V0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudCBuYW1lIGZvciB0aGUgZGVwbG95bWVudCB0YXJnZXQuXG4gICAqL1xuICByZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgcmVnaW9uIGZvciB0aGUgZGVwbG95bWVudCB0YXJnZXQuXG4gICAqL1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogQVdTIGRlcGxveW1lbnQgdHlwZSwgc3VjaCBhcyBkZXYsIHN0YWdlLCBvciBwcm9kLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnZGV2J1xuICAgKi9cbiAgcmVhZG9ubHkgYXdzU3RhZ2VUeXBlPzogQXdzU3RhZ2VUeXBlO1xuXG4gIC8qKlxuICAgKiBBV1MgZW52aXJvbm1lbnQgdHlwZSwgc3VjaCBhcyBwcmltYXJ5IG9yIHNlY29uZGFyeS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ3ByaW1hcnknXG4gICAqL1xuICByZWFkb25seSBhd3NFbnZpcm9ubWVudFR5cGU/OiBBd3NFbnZpcm9ubWVudFR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgcHJvZmlsZSB0byB1c2UgZm9yIHRoaXMgZGVwbG95bWVudCB0YXJnZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFsnbWFpbiddIHdoZW4gcHJvZCByZWxlYXNlIHR5cGUsIFsnZmVhdHVyZS8qJ10gd2hlbiBkZXYgdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoZXM/OiBBcnJheTxHaXRCcmFuY2g+O1xuXG4gIC8qKlxuICAgKiBDYW4gdGhpcyBkZXBsb3ltZW50IHRhcmdldCBiZSB1c2VkIGZvciBsb2NhbCBkZXZlbG9wbWVudD9cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZSBmb3IgZGV2IGVudmlyb25tZW50cywgZmFsc2UgZm9yIHByb2QgZW52aXJvbm1lbnRzXG4gICAqL1xuICByZWFkb25seSBsb2NhbERlcGxveW1lbnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIHdoZW4gZGVwbG95aW5nIHRvIHRoaXMgdGFyZ2V0IGxvY2FsbHkuXG4gICAqL1xuICByZWFkb25seSBsb2NhbERlcGxveW1lbnRDb25maWc/OiBBd3NMb2NhbERlcGxveW1lbnRDb25maWc7XG5cbiAgLyoqXG4gICAqIENhbiB0aGlzIGRlcGxveW1lbnQgdGFyZ2V0IGJlIHVzZWQgaW4gQ0kgZGVwbG95bWVudHM/XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjaURlcGxveW1lbnQ/OiBib29sZWFuO1xuXG4gIC8qXG4gICAqIENvbmZpZ3VyYXRpb24gd2hlbiBkZXBsb3lpbmcgdG8gdGhpcyB0YXJnZXQgaW4gQ0kuXG5cbiAgICovXG4gIHJlYWRvbmx5IGNpRGVwbG95bWVudENvbmZpZz86IENpRGVwbG95bWVudENvbmZpZztcbn1cblxuZXhwb3J0IGNsYXNzIEF3c0RlcGxveW1lbnRUYXJnZXQgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogU3RhdGljIG1ldGhvZCB0byBkaXNjb3ZlcnQgdGFyZ2V0cyBpbiBhIHByb2plY3QuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKFxuICAgIHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHAsXG4gICk6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0RlZmluZWQgPSAoYzogQ29tcG9uZW50KTogYyBpcyBBd3NEZXBsb3ltZW50VGFyZ2V0ID0+XG4gICAgICBjIGluc3RhbmNlb2YgQXdzRGVwbG95bWVudFRhcmdldDtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbHRlcihpc0RlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IG5hbWUgZm9yIHRoZSBkZXBsb3ltZW50IHRhcmdldC5cbiAgICovXG4gIHB1YmxpYyBhY2NvdW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgcmVnaW9uIGZvciB0aGUgZGVwbG95bWVudCB0YXJnZXQuXG4gICAqL1xuICBwdWJsaWMgcmVnaW9uOiBzdHJpbmc7XG5cbiAgLyoqJ1xuICAgKiBBV1Mgc3RhZ2UgdHlwZSwgc3VjaCBhcyBkZXYsIHN0YWdlLCBvciBwcm9kLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnZGV2J1xuICAgKi9cbiAgcHVibGljIGF3c1N0YWdlVHlwZTogQXdzU3RhZ2VUeXBlO1xuXG4gIC8qKlxuICAgKiBBV1MgZW52aXJvbm1lbnQgdHlwZSwgc3VjaCBhcyBwcmltYXJ5IG9yIHNlY29uZGFyeS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ3ByaW1hcnknXG4gICAqL1xuICBwdWJsaWMgYXdzRW52aXJvbm1lbnRUeXBlOiBBd3NFbnZpcm9ubWVudFR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgcHJvZmlsZSB0byB1c2UgZm9yIHRoaXMgZGVwbG95bWVudCB0YXJnZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFsnbWFpbiddIHdoZW4gcHJvZCByZWxlYXNlIHR5cGUsIFsnZmVhdHVyZS8qJ10gd2hlbiBkZXYgdHlwZVxuICAgKi9cbiAgcHVibGljIGJyYW5jaGVzOiBBcnJheTxHaXRCcmFuY2g+ID0gW107XG5cbiAgLyoqXG4gICAqIENhbiB0aGlzIGRlcGxveW1lbnQgdGFyZ2V0IGJlIHVzZWQgZm9yIGxvY2FsIGRldmVsb3BtZW50P1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlIGZvciBkZXYgZW52aXJvbm1lbnRzLCBmYWxzZSBmb3IgcHJvZCBlbnZpcm9ubWVudHNcbiAgICovXG4gIHB1YmxpYyBsb2NhbERlcGxveW1lbnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIHdoZW4gZGVwbG95aW5nIHRvIHRoaXMgdGFyZ2V0IGxvY2FsbHkuXG4gICAqL1xuICBwdWJsaWMgbG9jYWxEZXBsb3ltZW50Q29uZmlnPzogQXdzTG9jYWxEZXBsb3ltZW50Q29uZmlnO1xuXG4gIC8qKlxuICAgKiBDYW4gdGhpcyBkZXBsb3ltZW50IHRhcmdldCBiZSB1c2VkIGluIENJIGRlcGxveW1lbnRzP1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcHVibGljIGNpRGVwbG95bWVudD86IGJvb2xlYW47XG5cbiAgLypcbiAgICogQ29uZmlndXJhdGlvbiB3aGVuIGRlcGxveWluZyB0byB0aGlzIHRhcmdldCBpbiBDSS5cbiAgICovXG4gIHB1YmxpYyBjaURlcGxveW1lbnRDb25maWc/OiBSZXF1aXJlZDxDaURlcGxveW1lbnRDb25maWc+O1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciB0aGUgQ0RLIG91dHB1dCBkaXJlY3RvcnkgZm9yIHRoaXMgZGVwbG95bWVudCB0YXJnZXQuXG4gICAqL1xuICBwdWJsaWMgYXdzRGVwbG95bWVudENvbmZpZzogQXdzRGVwbG95bWVudENvbmZpZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLFxuICAgIG9wdGlvbnM6IEF3c0RlcGxveW1lbnRUYXJnZXRPcHRpb25zLFxuICApIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIC8qKlxuICAgICAqIFNldCB0YXJnZXQgcmVnaW9uIGFuZCBhY2NvdW50LlxuICAgICAqL1xuICAgIHRoaXMuYWNjb3VudCA9IG9wdGlvbnMuYWNjb3VudDtcbiAgICB0aGlzLnJlZ2lvbiA9IG9wdGlvbnMucmVnaW9uO1xuXG4gICAgLyoqXG4gICAgICogU2V0IGRlZmF1bHQgdHlwZVxuICAgICAqL1xuICAgIHRoaXMuYXdzU3RhZ2VUeXBlID0gb3B0aW9ucy5hd3NTdGFnZVR5cGUgfHwgQVdTX1NUQUdFX1RZUEUuREVWO1xuXG4gICAgLyoqXG4gICAgICogU2V0IGRlZmF1bHQgZW52aXJvbm1lbnQgdHlwZVxuICAgICAqL1xuICAgIHRoaXMuYXdzRW52aXJvbm1lbnRUeXBlID1cbiAgICAgIG9wdGlvbnMuYXdzRW52aXJvbm1lbnRUeXBlIHx8IEFXU19FTlZJUk9OTUVOVF9UWVBFLlBSSU1BUlk7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgZGVmYXVsdCBCcmFuY2hlc1xuICAgICAqL1xuXG4gICAgdGhpcy5icmFuY2hlcyA9XG4gICAgICBvcHRpb25zLmJyYW5jaGVzID8/XG4gICAgICAodGhpcy5hd3NTdGFnZVR5cGUgPT09IEFXU19TVEFHRV9UWVBFLlBST0RcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGJyYW5jaDogXCJtYWluXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGJyYW5jaDogXCJmZWF0dXJlLypcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSk7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgZGVmYXVsdCBmb3IgbG9jYWwgZGVwbG95bWVudFxuICAgICAqL1xuICAgIHRoaXMubG9jYWxEZXBsb3ltZW50ID1cbiAgICAgIG9wdGlvbnMubG9jYWxEZXBsb3ltZW50ID8/IHRoaXMuYXdzU3RhZ2VUeXBlID09PSBBV1NfU1RBR0VfVFlQRS5ERVY7XG5cbiAgICAvKipcbiAgICAgKiBTb21lIGRlZmF1bHQgY29uZmlndXJhdGlvbnMgZm9yIGxvY2FsIGRlcGxveW1lbnRzLlxuICAgICAqL1xuICAgIGlmICh0aGlzLmxvY2FsRGVwbG95bWVudCkge1xuICAgICAgY29uc3Qgcm9sZU5hbWUgPVxuICAgICAgICBvcHRpb25zLmxvY2FsRGVwbG95bWVudENvbmZpZz8ucm9sZU5hbWU/LnRvTG93ZXJDYXNlKCkgfHxcbiAgICAgICAgXCJwb3dlcnVzZXJhY2Nlc3NcIjtcbiAgICAgIGNvbnN0IHByb2ZpbGUgPVxuICAgICAgICBvcHRpb25zLmxvY2FsRGVwbG95bWVudENvbmZpZz8ucHJvZmlsZSB8fFxuICAgICAgICBgJHtyb2xlTmFtZX0tJHt0aGlzLmF3c1N0YWdlVHlwZX0tJHt0aGlzLmFjY291bnR9LSR7dGhpcy5yZWdpb259YDtcblxuICAgICAgY29uc3Qgc3RhY2tQYXR0ZXJuID1cbiAgICAgICAgb3B0aW9ucy5sb2NhbERlcGxveW1lbnRDb25maWc/LnN0YWNrUGF0dGVybiB8fFxuICAgICAgICBgJHt0aGlzLmF3c1N0YWdlVHlwZX0vJHt0aGlzLmF3c0Vudmlyb25tZW50VHlwZX0vKi0ke3RoaXMuYWNjb3VudH0tJHt0aGlzLnJlZ2lvbn1gO1xuXG4gICAgICB0aGlzLmxvY2FsRGVwbG95bWVudENvbmZpZyA9IHtcbiAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgcm9sZU5hbWUsXG4gICAgICAgIHN0YWNrUGF0dGVybixcbiAgICAgICAgLi4ub3B0aW9ucy5sb2NhbERlcGxveW1lbnRDb25maWcsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBDSSBkZXBsb3ltZW50IGRlZmF1bHRcbiAgICAgKi9cbiAgICB0aGlzLmNpRGVwbG95bWVudCA9IG9wdGlvbnMuY2lEZXBsb3ltZW50ID8/IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogU29tZSBkZWZhdWx0cyBmb3IgQ0kgZGVwbG95bWVudHMuXG4gICAgICovXG4gICAgaWYgKHRoaXMuY2lEZXBsb3ltZW50KSB7XG4gICAgICBjb25zdCByb2xlQXJuID1cbiAgICAgICAgb3B0aW9ucy5jaURlcGxveW1lbnRDb25maWc/LnJvbGVBcm4gfHxcbiAgICAgICAgYGFybjphd3M6aWFtOjoke3RoaXMuYWNjb3VudH06cm9sZS9HaXRIdWJEZXBsb3llcn1gO1xuXG4gICAgICBjb25zdCBzdGFja1BhdHRlcm4gPVxuICAgICAgICBvcHRpb25zLmNpRGVwbG95bWVudENvbmZpZz8uc3RhY2tQYXR0ZXJuIHx8XG4gICAgICAgIGAke3RoaXMuYXdzU3RhZ2VUeXBlfS8ke3RoaXMuYXdzRW52aXJvbm1lbnRUeXBlfS8qLSR7dGhpcy5hY2NvdW50fS0ke3RoaXMucmVnaW9ufWA7XG5cbiAgICAgIHRoaXMuY2lEZXBsb3ltZW50Q29uZmlnID0ge1xuICAgICAgICByb2xlQXJuLFxuICAgICAgICBzdGFja1BhdHRlcm4sXG4gICAgICAgIC4uLm9wdGlvbnMuY2lEZXBsb3ltZW50Q29uZmlnLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaW5kIG9yIGNyZWF0ZSBDREsgZm9sZGVyIGNvbmZpZyBmb3IgdGhpcyBwcm9qZWN0LlxuICAgICAqL1xuICAgIHRoaXMuYXdzRGVwbG95bWVudENvbmZpZyA9XG4gICAgICBBd3NEZXBsb3ltZW50Q29uZmlnLm9mKHByb2plY3QpIHx8IG5ldyBBd3NEZXBsb3ltZW50Q29uZmlnKHByb2plY3QpO1xuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSB0YXJnZXQgdG8gdGhlIGRlcGxveW1lbnQgdGFyZ2V0cyBhcnJheS5cbiAgICAgKi9cbiAgICB0aGlzLmF3c0RlcGxveW1lbnRDb25maWcuYXdzRGVwbG95bWVudFRhcmdldHMucHVzaCh0aGlzKTtcblxuICAgIC8vIERlcGxveSB0YXNrcyBhcmUgY29uZmlndXJlZCBwZXIgdGFyZ2V0LlxuICAgIHRoaXMuY29uZmlndXJlRGVwbG95VGFzaygpO1xuXG4gICAgLy8gV2F0Y2ggdGFza3MgYXJlIGNvbmZpZ3VyZWQgcGVyIHRhcmdldC5cbiAgICB0aGlzLmNvbmZpZ3VyZVdhdGNoVGFzaygpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqXG4gICAqIERlcGxveSBUYXNrc1xuICAgKlxuICAgKiAtIElmIGxvY2FsIGRlcGxveSwgYWRkIGEgZGVwbG95IHRhc2suXG4gICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgY29uZmlndXJlRGVwbG95VGFzayA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5sb2NhbERlcGxveW1lbnQpIHtcbiAgICAgIGNvbnN0IHRhc2tOYW1lID0gW1xuICAgICAgICBcImRlcGxveVwiLFxuICAgICAgICB0aGlzLmF3c1N0YWdlVHlwZSxcbiAgICAgICAgdGhpcy5hY2NvdW50LFxuICAgICAgICB0aGlzLnJlZ2lvbixcbiAgICAgIF0uam9pbihcIjpcIik7XG4gICAgICBjb25zdCBkZXBsb3lUYXNrID0gdGhpcy5wcm9qZWN0LnRhc2tzLmFkZFRhc2sodGFza05hbWUsIHtcbiAgICAgICAgZW52OiB0aGlzLmF3c0RlcGxveW1lbnRDb25maWcuZW52LFxuICAgICAgfSk7XG4gICAgICBkZXBsb3lUYXNrLmV4ZWMoXG4gICAgICAgIGBjZGsgZGVwbG95IC0tbG9va3Vwcz1mYWxzZSAtLXJlcXVpcmUtYXBwcm92YWw9bmV2ZXIgLS1wcm9maWxlPSR7dGhpcy5sb2NhbERlcGxveW1lbnRDb25maWc/LnByb2ZpbGV9IC0tYXBwPSR7dGhpcy5hd3NEZXBsb3ltZW50Q29uZmlnLmNka091dH0gXCIke3RoaXMubG9jYWxEZXBsb3ltZW50Q29uZmlnPy5zdGFja1BhdHRlcm59XCJgLFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqXG4gICAqIFdhdGNoIHRhc2tzXG4gICAqXG4gICAqIC0gQ29uZmlndXJlIHdhdGNoIHRhc2sgdG8gdXNlIHRoZSBicmFuY2ggbmFtZVxuICAgKiAtIGNvbmZpZ3VyZSB3YXRjaCB0YXNrIHRvIHVzZSB0aGUgY29ycmVjdCBzeW50aCBvdXRwdXQgbG9jYXRpb24uXG4gICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgY29uZmlndXJlV2F0Y2hUYXNrID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLmxvY2FsRGVwbG95bWVudCkge1xuICAgICAgY29uc3QgdGFza05hbWUgPSBbXG4gICAgICAgIFwid2F0Y2hcIixcbiAgICAgICAgdGhpcy5hd3NTdGFnZVR5cGUsXG4gICAgICAgIHRoaXMuYWNjb3VudCxcbiAgICAgICAgdGhpcy5yZWdpb24sXG4gICAgICBdLmpvaW4oXCI6XCIpO1xuICAgICAgY29uc3Qgd2F0Y2hUYXNrID0gdGhpcy5wcm9qZWN0LnRhc2tzLmFkZFRhc2sodGFza05hbWUsIHtcbiAgICAgICAgZW52OiB0aGlzLmF3c0RlcGxveW1lbnRDb25maWcuZW52LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHVwZGF0ZSB0aGUgc3ludGggZmlyc3RcbiAgICAgIGNvbnN0IHN5bnRoU2lsZW50ID0gdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoXCJzeW50aDpzaWxlbnRcIik7XG4gICAgICBpZiAoc3ludGhTaWxlbnQpIHtcbiAgICAgICAgd2F0Y2hUYXNrLnNwYXduKHN5bnRoU2lsZW50KTtcbiAgICAgIH1cblxuICAgICAgLy8gZG8gYSBub3JtYWwgZGVwbG95XG4gICAgICB3YXRjaFRhc2suZXhlYyhcbiAgICAgICAgYGNkayBkZXBsb3kgLS1sb29rdXBzPWZhbHNlIC0tcmVxdWlyZS1hcHByb3ZhbD1uZXZlciAtLXByb2ZpbGU9JHt0aGlzLmxvY2FsRGVwbG95bWVudENvbmZpZz8ucHJvZmlsZX0gLS1hcHA9JHt0aGlzLmF3c0RlcGxveW1lbnRDb25maWcuY2RrT3V0fSBcIiR7dGhpcy5sb2NhbERlcGxveW1lbnRDb25maWc/LnN0YWNrUGF0dGVybn1cImAsXG4gICAgICApO1xuXG4gICAgICAvLyB3YXRjaCBmb3IgY2hhbmdlcyBhbmQgbG9nIG91dHB1dFxuICAgICAgd2F0Y2hUYXNrLmV4ZWMoXG4gICAgICAgIGBjZGsgd2F0Y2ggLS1sb29rdXBzPWZhbHNlIC0tcmVxdWlyZS1hcHByb3ZhbD1uZXZlciAtLWhvdHN3YXAgLS1wcm9maWxlPSR7dGhpcy5sb2NhbERlcGxveW1lbnRDb25maWc/LnByb2ZpbGV9IFwiJHt0aGlzLmxvY2FsRGVwbG95bWVudENvbmZpZz8uc3RhY2tQYXR0ZXJufVwiYCxcbiAgICAgICk7XG4gICAgfVxuICB9O1xufVxuIl19
|
|
@@ -87,6 +87,68 @@ export interface PnpmWorkspaceOptions {
|
|
|
87
87
|
* @default none (empty array)
|
|
88
88
|
*/
|
|
89
89
|
readonly subprojects?: Array<string>;
|
|
90
|
+
/**
|
|
91
|
+
* Catalog of reusable dependency version ranges.
|
|
92
|
+
*
|
|
93
|
+
* The catalog allows you to define dependency versions as reusable constants
|
|
94
|
+
* that can be referenced in package.json files using the catalog: protocol.
|
|
95
|
+
*
|
|
96
|
+
* Example:
|
|
97
|
+
* ```yaml
|
|
98
|
+
* catalog:
|
|
99
|
+
* react: ^18.0.0
|
|
100
|
+
* typescript: ^5.0.0
|
|
101
|
+
* ```
|
|
102
|
+
*
|
|
103
|
+
* Then in package.json:
|
|
104
|
+
* ```json
|
|
105
|
+
* {
|
|
106
|
+
* "dependencies": {
|
|
107
|
+
* "react": "catalog:react"
|
|
108
|
+
* }
|
|
109
|
+
* }
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
* @default undefined (not included in output)
|
|
113
|
+
*
|
|
114
|
+
* See: https://pnpm.io/pnpm-workspace_yaml#catalog
|
|
115
|
+
*/
|
|
116
|
+
readonly defaultCatalog?: {
|
|
117
|
+
[key: string]: string;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Named catalogs of reusable dependency version ranges.
|
|
121
|
+
*
|
|
122
|
+
* Multiple named catalogs with arbitrarily chosen names can be configured under the namedCatalogs key.
|
|
123
|
+
*
|
|
124
|
+
* Example:
|
|
125
|
+
* ```yaml
|
|
126
|
+
* namedCatalogs:
|
|
127
|
+
* frontend:
|
|
128
|
+
* react: ^18.0.0
|
|
129
|
+
* typescript: ^5.0.0
|
|
130
|
+
* backend:
|
|
131
|
+
* express: ^4.18.0
|
|
132
|
+
* ```
|
|
133
|
+
*
|
|
134
|
+
* Then in package.json:
|
|
135
|
+
* ```json
|
|
136
|
+
* {
|
|
137
|
+
* "dependencies": {
|
|
138
|
+
* "react": "catalog:frontend/react"
|
|
139
|
+
* }
|
|
140
|
+
* }
|
|
141
|
+
* ```
|
|
142
|
+
*
|
|
143
|
+
* @default undefined (not included in output)
|
|
144
|
+
*
|
|
145
|
+
* See: https://pnpm.io/catalogs
|
|
146
|
+
*/
|
|
147
|
+
readonly namedCatalogs?: {
|
|
148
|
+
[catalogName: string]: {
|
|
149
|
+
[dependencyName: string]: string;
|
|
150
|
+
};
|
|
151
|
+
};
|
|
90
152
|
}
|
|
91
153
|
export declare class PnpmWorkspace extends Component {
|
|
92
154
|
/**
|
|
@@ -155,5 +217,28 @@ export declare class PnpmWorkspace extends Component {
|
|
|
155
217
|
* project.subprojects property.
|
|
156
218
|
*/
|
|
157
219
|
subprojects: Array<string>;
|
|
220
|
+
/**
|
|
221
|
+
* Default catalog of reusable dependency version ranges.
|
|
222
|
+
*
|
|
223
|
+
* The default catalog is used to define dependency versions as reusable constants
|
|
224
|
+
* that can be referenced in package.json files using the catalog: protocol.
|
|
225
|
+
*
|
|
226
|
+
* See:https://pnpm.io/catalogs
|
|
227
|
+
*/
|
|
228
|
+
defaultCatalog?: {
|
|
229
|
+
[key: string]: string;
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* Named catalogs of reusable dependency version ranges.
|
|
233
|
+
*
|
|
234
|
+
* Multiple named catalogs with arbitrarily chosen names can be configured under the namedCatalogs key.
|
|
235
|
+
*
|
|
236
|
+
* See: https://pnpm.io/catalogs
|
|
237
|
+
*/
|
|
238
|
+
namedCatalogs?: {
|
|
239
|
+
[catalogName: string]: {
|
|
240
|
+
[dependencyName: string]: string;
|
|
241
|
+
};
|
|
242
|
+
};
|
|
158
243
|
constructor(project: Project, options?: PnpmWorkspaceOptions);
|
|
159
244
|
}
|
|
@@ -84,6 +84,14 @@ class PnpmWorkspace extends projen_1.Component {
|
|
|
84
84
|
* Store additional subproject paths if provided
|
|
85
85
|
*/
|
|
86
86
|
this.subprojects = options.subprojects ?? [];
|
|
87
|
+
/**
|
|
88
|
+
* Store catalog if provided
|
|
89
|
+
*/
|
|
90
|
+
this.defaultCatalog = options.defaultCatalog;
|
|
91
|
+
/**
|
|
92
|
+
* Store named catalogs if provided
|
|
93
|
+
*/
|
|
94
|
+
this.namedCatalogs = options.namedCatalogs;
|
|
87
95
|
/**
|
|
88
96
|
* In case that this file is in a package, don't package it.
|
|
89
97
|
*/
|
|
@@ -140,6 +148,19 @@ class PnpmWorkspace extends projen_1.Component {
|
|
|
140
148
|
if (this.ignoredBuiltDependencies.length > 0) {
|
|
141
149
|
pnpmConfig.ignoreBuiltDependencies = this.ignoredBuiltDependencies;
|
|
142
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Set default catalog if provided.
|
|
153
|
+
*/
|
|
154
|
+
if (this.defaultCatalog &&
|
|
155
|
+
Object.keys(this.defaultCatalog).length > 0) {
|
|
156
|
+
pnpmConfig.catalog = this.defaultCatalog;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Set named catalogs if provided.
|
|
160
|
+
*/
|
|
161
|
+
if (this.namedCatalogs && Object.keys(this.namedCatalogs).length > 0) {
|
|
162
|
+
pnpmConfig.namedCatalogs = this.namedCatalogs;
|
|
163
|
+
}
|
|
143
164
|
/**
|
|
144
165
|
* Return the final pnpm config object.
|
|
145
166
|
*/
|
|
@@ -152,4 +173,4 @@ class PnpmWorkspace extends projen_1.Component {
|
|
|
152
173
|
}
|
|
153
174
|
}
|
|
154
175
|
exports.PnpmWorkspace = PnpmWorkspace;
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG5wbS13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcG5wbS9wbnBtLXdvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBZ0M7QUFDaEMsbUNBQXNEO0FBR3REOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRztJQUNqQyxTQUFTLEVBQUUsQ0FBQztJQUNaLFFBQVEsRUFBRSxFQUFFO0lBQ1osU0FBUyxFQUFFLEdBQUc7SUFDZCxZQUFZLEVBQUUsR0FBRztJQUNqQixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxJQUFJO0lBQ2QsVUFBVSxFQUFFLElBQUk7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLEtBQUs7Q0FDaEIsQ0FBQztBQWdGRixNQUFhLGFBQWMsU0FBUSxrQkFBUztJQUMxQzs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQWdCO1FBQy9CLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUFzQixFQUFFLENBQ3JELENBQUMsWUFBWSxhQUFhLENBQUM7UUFDN0IsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQWtFRCxZQUFZLE9BQWdCLEVBQUUsVUFBZ0MsRUFBRTtRQUM5RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZjs7Ozs7Ozs7b0ZBUTRFO1FBRTVFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2RTs7Ozs7Ozs7Ozs7V0FXRztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxxQkFBcUIsQ0FBQztRQUUxRDs7V0FFRztRQUNILElBQUksQ0FBQyxp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QUFPO29CQUNMLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM1QyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDekMsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF2TkQsc0NBdU5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVsYXRpdmUgfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9qZWN0LCBZYW1sRmlsZSB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IFZhbHVlT2YgfSBmcm9tIFwidHlwZS1mZXN0XCI7XG5cbi8qKlxuICogUHJlZGVmaW5lZCBtaW5pbXVtIHJlbGVhc2UgYWdlIHZhbHVlcyBpbiBtaW51dGVzLlxuICovXG5leHBvcnQgY29uc3QgTUlNSU1VTV9SRUxFQVNFX0FHRSA9IHtcbiAgWkVST19EQVlTOiAwLFxuICBPTkVfSE9VUjogNjAsXG4gIFNJWF9IT1VSUzogMzYwLFxuICBUV0VMVkVfSE9VUlM6IDcyMCxcbiAgT05FX0RBWTogMTQ0MCxcbiAgVFdPX0RBWVM6IDI4ODAsXG4gIFRIUkVFX0RBWVM6IDQzMjAsXG4gIEZPVVJfREFZUzogNTc2MCxcbiAgRklWRV9EQVlTOiA3MjAwLFxuICBTSVhfREFZUzogODY0MCxcbiAgT05FX1dFRUs6IDEwMDgwLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBQbnBtV29ya3NwYWNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBGaWxlbmFtZSBmb3IgdGhlIHBucG0gd29ya3NwYWNlIGZpbGUuIFRoaXMgc2hvdWxkIHByb2JhYmx5IG5ldmVyIGNoYW5nZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJwbnBtLXdvcmtzcGFjZS55YW1sXCJcbiAgICovXG4gIHJlYWRvbmx5IGZpbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUbyByZWR1Y2UgdGhlIHJpc2sgb2YgaW5zdGFsbGluZyBjb21wcm9taXNlZCBwYWNrYWdlcywgeW91IGNhbiBkZWxheSB0aGVcbiAgICogaW5zdGFsbGF0aW9uIG9mIG5ld2x5IHB1Ymxpc2hlZCB2ZXJzaW9ucy4gSW4gbW9zdCBjYXNlcywgbWFsaWNpb3VzIHJlbGVhc2VzXG4gICAqIGFyZSBkaXNjb3ZlcmVkIGFuZCByZW1vdmVkIGZyb20gdGhlIHJlZ2lzdHJ5IHdpdGhpbiBhbiBob3VyLlxuICAgKlxuICAgKiBtaW5pbXVtUmVsZWFzZUFnZSBkZWZpbmVzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBtaW51dGVzIHRoYXQgbXVzdCBwYXNzXG4gICAqIGFmdGVyIGEgdmVyc2lvbiBpcyBwdWJsaXNoZWQgYmVmb3JlIHBucG0gd2lsbCBpbnN0YWxsIGl0LiBUaGlzIGFwcGxpZXMgdG9cbiAgICogYWxsIGRlcGVuZGVuY2llcywgaW5jbHVkaW5nIHRyYW5zaXRpdmUgb25lcy5cbiAgICpcbiAgICogTm90ZTogdGhpcyBzaG91bGQgbWF0Y2ggZGVwc1VwZ3JhZGVPcHRpb25zLmNvb2xkb3duIGluIHRoZSBwcm9qZWN0IGNvbmZpZy5cbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vc2V0dGluZ3MjbWluaW11bXJlbGVhc2VhZ2VcbiAgICpcbiAgICogQGRlZmF1bHQgTUlNSU1VTV9SRUxFQVNFX0FHRS5PTkVfREFZXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtUmVsZWFzZUFnZT86IFZhbHVlT2Y8dHlwZW9mIE1JTUlNVU1fUkVMRUFTRV9BR0U+O1xuXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IG1pbmltdW1SZWxlYXNlQWdlIGJ1dCBuZWVkIGNlcnRhaW4gZGVwZW5kZW5jaWVzIHRvIGFsd2F5c1xuICAgKiBpbnN0YWxsIHRoZSBuZXdlc3QgdmVyc2lvbiBpbW1lZGlhdGVseSwgeW91IGNhbiBsaXN0IHRoZW0gdW5kZXJcbiAgICogbWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlLiBUaGUgZXhjbHVzaW9uIHdvcmtzIGJ5IHBhY2thZ2UgbmFtZSBhbmQgYXBwbGllc1xuICAgKiB0byBhbGwgdmVyc2lvbnMgb2YgdGhhdCBwYWNrYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGV4Y2x1c2lvbnMgKGVtcHR5IGFycmF5KVxuICAgKlxuICAgKiBTZWU6IGh0dHBzOi8vcG5wbS5pby9zZXR0aW5ncyNtaW5pbXVtcmVsZWFzZWFnZWV4Y2x1ZGVcbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZT86IEFycmF5PHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYWNrYWdlIG5hbWVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZXhlY3V0ZSBcInByZWluc3RhbGxcIixcbiAgICogXCJpbnN0YWxsXCIsIGFuZC9vciBcInBvc3RpbnN0YWxsXCIgc2NyaXB0cyBkdXJpbmcgaW5zdGFsbGF0aW9uLiBPbmx5IHRoZVxuICAgKiBwYWNrYWdlcyBsaXN0ZWQgaW4gdGhpcyBhcnJheSB3aWxsIGJlIGFibGUgdG8gcnVuIHRob3NlIGxpZmVjeWNsZSBzY3JpcHRzLlxuICAgKiBJZiBvbmx5QnVpbHREZXBlbmRlbmNpZXNGaWxlIGFuZCBuZXZlckJ1aWx0RGVwZW5kZW5jaWVzIGFyZSBvbWl0dGVkLCB0aGlzXG4gICAqIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHdpbGwgZGVmYXVsdCB0byBibG9ja2luZyBhbGwgaW5zdGFsbCBzY3JpcHRzLlxuICAgKlxuICAgKiBZb3UgbWF5IHJlc3RyaWN0IGFsbG93YW5jZXMgdG8gc3BlY2lmaWMgdmVyc2lvbnMgKGFuZCBsaXN0cyBvZiB2ZXJzaW9uc1xuICAgKiB1c2luZyBhIGRpc2p1bmN0aW9uIHdpdGggfHwpLiBXaGVuIHZlcnNpb25zIGFyZSBzcGVjaWZpZWQsIG9ubHkgdGhvc2VcbiAgICogdmVyc2lvbnMgb2YgdGhlIHBhY2thZ2UgbWF5IHJ1biBsaWZlY3ljbGUgc2NyaXB0czpcbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vc2V0dGluZ3Mjb25seWJ1aWx0ZGVwZW5kZW5jaWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmUgKGVtcHR5IGFycmF5KVxuICAgKi9cbiAgcmVhZG9ubHkgb25seUJ1aWx0RGVwZW5kZW5jaWVzPzogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhY2thZ2UgbmFtZXMgdGhhdCBhcmUgTk9UIGFsbG93ZWQgdG8gZXhlY3V0ZSBcInByZWluc3RhbGxcIixcbiAgICogXCJpbnN0YWxsXCIsIGFuZC9vciBcInBvc3RpbnN0YWxsXCIgc2NyaXB0cyBkdXJpbmcgaW5zdGFsbGF0aW9uIGFuZCB3aWxsIG5vdFxuICAgKiB3YXJuIG9yIGFzayB0byBiZSBleGVjdXRlZC5cbiAgICpcbiAgICogVGhpcyBpcyB1c2VmdWwgd2hlbiB5b3Ugd2FudCB0byBoaWRlIHRoZSB3YXJuaW5nIGJlY2F1c2UgeW91IGtub3cgdGhlXG4gICAqIGxpZmVjeWNsZSBzY3JpcHRzIGFyZSBub3QgbmVlZGVkLlxuICAgKlxuICAgKiBodHRwczovL3BucG0uaW8vc2V0dGluZ3MjaWdub3JlZGJ1aWx0ZGVwZW5kZW5jaWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmUgKGVtcHR5IGFycmF5KVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlZEJ1aWx0RGVwZW5kZW5jaWVzPzogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdWJwcm9qZWN0IHBhdGhzIHRvIGluY2x1ZGUgaW4gdGhlIHdvcmtzcGFjZSBwYWNrYWdlcyBhcnJheS5cbiAgICogVGhlc2Ugd2lsbCBiZSBjb21iaW5lZCB3aXRoIGFueSBzdWJwcm9qZWN0cyBkaXNjb3ZlcmVkIHZpYSBwcm9qZW4nc1xuICAgKiBwcm9qZWN0LnN1YnByb2plY3RzIHByb3BlcnR5LiBQYXRocyBzaG91bGQgYmUgcmVsYXRpdmUgdG8gdGhlIHByb2plY3Qgcm9vdC5cbiAgICpcbiAgICogQGRlZmF1bHQgbm9uZSAoZW1wdHkgYXJyYXkpXG4gICAqL1xuICByZWFkb25seSBzdWJwcm9qZWN0cz86IEFycmF5PHN0cmluZz47XG59XG5cbmV4cG9ydCBjbGFzcyBQbnBtV29ya3NwYWNlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIEdldCB0aGUgcG5wbSB3b3Jrc3BhY2UgY29tcG9uZW50IG9mIGEgcHJvamVjdC4gSWYgaXQgZG9lcyBub3QgZXhpc3QsXG4gICAqIHJldHVybiB1bmRlZmluZWQuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9qZWN0XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHByb2plY3Q6IFByb2plY3QpOiBQbnBtV29ya3NwYWNlIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0RlZmluZWQgPSAoYzogQ29tcG9uZW50KTogYyBpcyBQbnBtV29ya3NwYWNlID0+XG4gICAgICBjIGluc3RhbmNlb2YgUG5wbVdvcmtzcGFjZTtcbiAgICByZXR1cm4gcHJvamVjdC5yb290LmNvbXBvbmVudHMuZmluZChpc0RlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbGVuYW1lIGZvciB0aGUgcG5wbSB3b3Jrc3BhY2UgZmlsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUbyByZWR1Y2UgdGhlIHJpc2sgb2YgaW5zdGFsbGluZyBjb21wcm9taXNlZCBwYWNrYWdlcywgeW91IGNhbiBkZWxheSB0aGVcbiAgICogaW5zdGFsbGF0aW9uIG9mIG5ld2x5IHB1Ymxpc2hlZCB2ZXJzaW9ucy4gSW4gbW9zdCBjYXNlcywgbWFsaWNpb3VzIHJlbGVhc2VzXG4gICAqIGFyZSBkaXNjb3ZlcmVkIGFuZCByZW1vdmVkIGZyb20gdGhlIHJlZ2lzdHJ5IHdpdGhpbiBhbiBob3VyLlxuICAgKlxuICAgKiBtaW5pbXVtUmVsZWFzZUFnZSBkZWZpbmVzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBtaW51dGVzIHRoYXQgbXVzdCBwYXNzXG4gICAqIGFmdGVyIGEgdmVyc2lvbiBpcyBwdWJsaXNoZWQgYmVmb3JlIHBucG0gd2lsbCBpbnN0YWxsIGl0LiBUaGlzIGFwcGxpZXMgdG9cbiAgICogYWxsIGRlcGVuZGVuY2llcywgaW5jbHVkaW5nIHRyYW5zaXRpdmUgb25lcy5cbiAgICpcbiAgICogTm90ZTogdGhpcyBzaG91bGQgbWF0Y2ggZGVwc1VwZ3JhZGVPcHRpb25zLmNvb2xkb3duIGluIHRoZSBwcm9qZWN0IGNvbmZpZy5cbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vc2V0dGluZ3MjbWluaW11bXJlbGVhc2VhZ2VcbiAgICovXG4gIHB1YmxpYyBtaW5pbXVtUmVsZWFzZUFnZTogVmFsdWVPZjx0eXBlb2YgTUlNSU1VTV9SRUxFQVNFX0FHRT47XG5cbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgbWluaW11bVJlbGVhc2VBZ2UgYnV0IG5lZWQgY2VydGFpbiBkZXBlbmRlbmNpZXMgdG8gYWx3YXlzXG4gICAqIGluc3RhbGwgdGhlIG5ld2VzdCB2ZXJzaW9uIGltbWVkaWF0ZWx5LCB5b3UgY2FuIGxpc3QgdGhlbSB1bmRlclxuICAgKiBtaW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGUuIFRoZSBleGNsdXNpb24gd29ya3MgYnkgcGFja2FnZSBuYW1lIGFuZCBhcHBsaWVzXG4gICAqIHRvIGFsbCB2ZXJzaW9ucyBvZiB0aGF0IHBhY2thZ2UuXG4gICAqXG4gICAqIFNlZTogaHR0cHM6Ly9wbnBtLmlvL3NldHRpbmdzI21pbmltdW1yZWxlYXNlYWdlZXhjbHVkZVxuICAgKi9cbiAgcHVibGljIG1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZTogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhY2thZ2UgbmFtZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBleGVjdXRlIFwicHJlaW5zdGFsbFwiLFxuICAgKiBcImluc3RhbGxcIiwgYW5kL29yIFwicG9zdGluc3RhbGxcIiBzY3JpcHRzIGR1cmluZyBpbnN0YWxsYXRpb24uIE9ubHkgdGhlXG4gICAqIHBhY2thZ2VzIGxpc3RlZCBpbiB0aGlzIGFycmF5IHdpbGwgYmUgYWJsZSB0byBydW4gdGhvc2UgbGlmZWN5Y2xlIHNjcmlwdHMuXG4gICAqIElmIG9ubHlCdWlsdERlcGVuZGVuY2llc0ZpbGUgYW5kIG5ldmVyQnVpbHREZXBlbmRlbmNpZXMgYXJlIG9taXR0ZWQsIHRoaXNcbiAgICogY29uZmlndXJhdGlvbiBvcHRpb24gd2lsbCBkZWZhdWx0IHRvIGJsb2NraW5nIGFsbCBpbnN0YWxsIHNjcmlwdHMuXG4gICAqXG4gICAqIFlvdSBtYXkgcmVzdHJpY3QgYWxsb3dhbmNlcyB0byBzcGVjaWZpYyB2ZXJzaW9ucyAoYW5kIGxpc3RzIG9mIHZlcnNpb25zXG4gICAqIHVzaW5nIGEgZGlzanVuY3Rpb24gd2l0aCB8fCkuIFdoZW4gdmVyc2lvbnMgYXJlIHNwZWNpZmllZCwgb25seSB0aG9zZVxuICAgKiB2ZXJzaW9ucyBvZiB0aGUgcGFja2FnZSBtYXkgcnVuIGxpZmVjeWNsZSBzY3JpcHRzOlxuICAgKlxuICAgKiBTZWU6IGh0dHBzOi8vcG5wbS5pby9zZXR0aW5ncyNvbmx5YnVpbHRkZXBlbmRlbmNpZXNcbiAgICovXG4gIHB1YmxpYyBvbmx5QnVpbHREZXBlbmRlbmNpZXM6IEFycmF5PHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYWNrYWdlIG5hbWVzIHRoYXQgYXJlIE5PVCBhbGxvd2VkIHRvIGV4ZWN1dGUgXCJwcmVpbnN0YWxsXCIsXG4gICAqIFwiaW5zdGFsbFwiLCBhbmQvb3IgXCJwb3N0aW5zdGFsbFwiIHNjcmlwdHMgZHVyaW5nIGluc3RhbGxhdGlvbiBhbmQgd2lsbCBub3RcbiAgICogd2FybiBvciBhc2sgdG8gYmUgZXhlY3V0ZWQuXG4gICAqXG4gICAqIFRoaXMgaXMgdXNlZnVsIHdoZW4geW91IHdhbnQgdG8gaGlkZSB0aGUgd2FybmluZyBiZWNhdXNlIHlvdSBrbm93IHRoZVxuICAgKiBsaWZlY3ljbGUgc2NyaXB0cyBhcmUgbm90IG5lZWRlZC5cbiAgICpcbiAgICogaHR0cHM6Ly9wbnBtLmlvL3NldHRpbmdzI2lnbm9yZWRidWlsdGRlcGVuZGVuY2llc1xuICAgKi9cbiAgcHVibGljIGlnbm9yZWRCdWlsdERlcGVuZGVuY2llczogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdWJwcm9qZWN0IHBhdGhzIHRvIGluY2x1ZGUgaW4gdGhlIHdvcmtzcGFjZSBwYWNrYWdlcyBhcnJheS5cbiAgICogVGhlc2Ugd2lsbCBiZSBjb21iaW5lZCB3aXRoIGFueSBzdWJwcm9qZWN0cyBkaXNjb3ZlcmVkIHZpYSBwcm9qZW4nc1xuICAgKiBwcm9qZWN0LnN1YnByb2plY3RzIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIHN1YnByb2plY3RzOiBBcnJheTxzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IFBucG1Xb3Jrc3BhY2VPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIENMRUFSIHBhY2thZ2UsanNvblxuICAgICAqXG4gICAgICogSXQgYXBwZWFycyB0aGF0IGlmIEFOWSBwbnBtIHNldHRpbmdzIGV4aXN0IGluIHRoZSBwYWNrYWdlLmpzb24gZmlsZSwgYWxsXG4gICAgICogb2YgdGhlIHNldHRpbmcgaW4gdGhlIHBucG0td29ya3NwYWNlLnlhbWwgZmlsZSBhcmUgaWdub3JlZC4gc28gd2UgbmVlZCB0b1xuICAgICAqIGNsZWFyIG91dCBhbnl0aGluZyB0aGF0IHdhcyBwbGFjZWQgaW50byB0aGUgcGFja2FnZS5qc29uIGZpbGUuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBwcm9qZWN0LnRyeUZpbmRPYmplY3RGaWxlKFwicGFja2FnZS5qc29uXCIpPy5hZGREZWxldGlvbk92ZXJyaWRlKFwicG5wbVwiKTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiBcbiAgICAgKiBTZXR1cCBwbnBtLXdvcmtzcGFjZS55YW1sIGZpbGUuXG4gICAgICogXG4gICAgICogTm93IHRoYXQgdGhlIHBhY2thZ2UuanNvbiBmaWxlIGlzIGNsZWFyZWQgb2YgYW55IHBucG0gc2V0dGluZ3MsIHdlIGNhblxuICAgICAqIHNhZmVseSB3cml0ZSBzZXR0aW5ncyB0byB0aGUgcG5wbS13b3Jrc3BhY2UueWFtbCBmaWxlLlxuICAgICAqIFxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4gICAgLyoqXG4gICAgICogU2V0IGZpbGVuYW1lIHRvIGRlZmF1bHQgaWYgbm90IHByb3ZpZGVkLlxuICAgICAqL1xuICAgIHRoaXMuZmlsZU5hbWUgPSBvcHRpb25zLmZpbGVOYW1lID8/IFwicG5wbS13b3Jrc3BhY2UueWFtbFwiO1xuXG4gICAgLyoqXG4gICAgICogU2V0IG1pbmltdW0gcmVsZWFzZSBhZ2UgdG8gZGVmYXVsdCBpZiBub3QgcHJvdmlkZWRcbiAgICAgKi9cbiAgICB0aGlzLm1pbmltdW1SZWxlYXNlQWdlID0gb3B0aW9ucy5taW5pbXVtUmVsZWFzZUFnZVxuICAgICAgPyBvcHRpb25zLm1pbmltdW1SZWxlYXNlQWdlXG4gICAgICA6IE1JTUlNVU1fUkVMRUFTRV9BR0UuT05FX0RBWTtcblxuICAgIC8qKlxuICAgICAqIFNldCBtaW5pbXVtIHJlbGVhc2UgYWdlIGV4Y2x1ZGUgdG8gZW1wdHkgYXJyYXkgaWYgbm90IHByb3ZpZGVkXG4gICAgICovXG4gICAgdGhpcy5taW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGUgPSBvcHRpb25zLm1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZVxuICAgICAgPyBbXCJAY29kZWRyaWZ0ZXJzLypcIiwgLi4ub3B0aW9ucy5taW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGVdXG4gICAgICA6IFtcIkBjb2RlZHJpZnRlcnMvKlwiXTtcblxuICAgIC8qKlxuICAgICAqIFNldCBvbmx5IGJ1aWx0IGRlcGVuZGVuY2llcyB0byBlbXB0eSBhcnJheSBpZiBub3QgcHJvdmlkZWRcbiAgICAgKi9cbiAgICB0aGlzLm9ubHlCdWlsdERlcGVuZGVuY2llcyA9IG9wdGlvbnMub25seUJ1aWx0RGVwZW5kZW5jaWVzXG4gICAgICA/IG9wdGlvbnMub25seUJ1aWx0RGVwZW5kZW5jaWVzXG4gICAgICA6IFtdO1xuXG4gICAgLyoqXG4gICAgICogU2V0IGlnbm9yZWQgYnVpbHQgZGVwZW5kZW5jaWVzIHRvIGVtcHR5IGFycmF5IGlmIG5vdCBwcm92aWRlZFxuICAgICAqL1xuICAgIHRoaXMuaWdub3JlZEJ1aWx0RGVwZW5kZW5jaWVzID0gb3B0aW9ucy5pZ25vcmVkQnVpbHREZXBlbmRlbmNpZXNcbiAgICAgID8gb3B0aW9ucy5pZ25vcmVkQnVpbHREZXBlbmRlbmNpZXNcbiAgICAgIDogW107XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZSBhZGRpdGlvbmFsIHN1YnByb2plY3QgcGF0aHMgaWYgcHJvdmlkZWRcbiAgICAgKi9cbiAgICB0aGlzLnN1YnByb2plY3RzID0gb3B0aW9ucy5zdWJwcm9qZWN0cyA/PyBbXTtcblxuICAgIC8qKlxuICAgICAqIEluIGNhc2UgdGhhdCB0aGlzIGZpbGUgaXMgaW4gYSBwYWNrYWdlLCBkb24ndCBwYWNrYWdlIGl0LlxuICAgICAqL1xuICAgIHByb2plY3QuYWRkUGFja2FnZUlnbm9yZSh0aGlzLmZpbGVOYW1lKTtcblxuICAgIC8qKlxuICAgICAqIFdyaXRlIHBucG0gd29ya3NwYWNlIGZpbGVcbiAgICAgKi9cbiAgICBuZXcgWWFtbEZpbGUodGhpcy5wcm9qZWN0LCB0aGlzLmZpbGVOYW1lLCB7XG4gICAgICBvYmo6ICgpID0+IHtcbiAgICAgICAgY29uc3QgcG5wbUNvbmZpZzogYW55ID0ge307XG4gICAgICAgIGNvbnN0IHBhY2thZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQWRkIHByb2plbiBzdWJwcm9qZWN0cyB0byB0aGUgcGFja2FnZXMgYXJyYXkuXG4gICAgICAgICAqL1xuICAgICAgICBmb3IgKGNvbnN0IHN1YnByb2plY3Qgb2YgcHJvamVjdC5zdWJwcm9qZWN0cykge1xuICAgICAgICAgIC8vIGdyYWIgdGhlIHJlbGF0aXZlIG91dCBkaXJlY3RvcnlcbiAgICAgICAgICBwYWNrYWdlcy5wdXNoKHJlbGF0aXZlKHRoaXMucHJvamVjdC5vdXRkaXIsIHN1YnByb2plY3Qub3V0ZGlyKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQWRkIGFkZGl0aW9uYWwgc3VicHJvamVjdCBwYXRocyBwcm92aWRlZCB2aWEgb3B0aW9ucy5cbiAgICAgICAgICogVXNlIGEgU2V0IHRvIGRlZHVwbGljYXRlIHBhdGhzIHRvIGF2b2lkIGluY2x1ZGluZyB0aGUgc2FtZVxuICAgICAgICAgKiBzdWJwcm9qZWN0IG11bHRpcGxlIHRpbWVzLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgcGFja2FnZVNldCA9IG5ldyBTZXQocGFja2FnZXMpO1xuICAgICAgICBmb3IgKGNvbnN0IHN1YnByb2plY3RQYXRoIG9mIHRoaXMuc3VicHJvamVjdHMpIHtcbiAgICAgICAgICBwYWNrYWdlU2V0LmFkZChzdWJwcm9qZWN0UGF0aCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQ29udmVydCBiYWNrIHRvIGFycmF5IGlmIHdlIGFkZGVkIGFueSBhZGRpdGlvbmFsIHBhdGhzXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5zdWJwcm9qZWN0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcGFja2FnZXMubGVuZ3RoID0gMDtcbiAgICAgICAgICBwYWNrYWdlcy5wdXNoKC4uLnBhY2thZ2VTZXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldCBtaW5pbXVtIHJlbGVhc2UgYWdlLlxuICAgICAgICAgKi9cbiAgICAgICAgcG5wbUNvbmZpZy5taW5pbXVtUmVsZWFzZUFnZSA9IHRoaXMubWluaW11bVJlbGVhc2VBZ2U7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldCBtaW5pbXVtIHJlbGVhc2UgYWdlIGV4Y2x1ZGUgaWYgYW55IGFyZSBwcm92aWRlZC5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLm1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcG5wbUNvbmZpZy5taW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGUgPSB0aGlzLm1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZXQgb25seSBidWlsdCBkZXBlbmRlbmNpZXMgaWYgYW55IGFyZSBwcm92aWRlZC5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLm9ubHlCdWlsdERlcGVuZGVuY2llcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcG5wbUNvbmZpZy5vbmx5QnVpbHREZXBlbmRlbmNpZXMgPSB0aGlzLm9ubHlCdWlsdERlcGVuZGVuY2llcztcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZXQgaWdub3JlZCBidWlsdCBkZXBlbmRlbmNpZXMgaWYgYW55IGFyZSBwcm92aWRlZC5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLmlnbm9yZWRCdWlsdERlcGVuZGVuY2llcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcG5wbUNvbmZpZy5pZ25vcmVCdWlsdERlcGVuZGVuY2llcyA9IHRoaXMuaWdub3JlZEJ1aWx0RGVwZW5kZW5jaWVzO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybiB0aGUgZmluYWwgcG5wbSBjb25maWcgb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi4ocGFja2FnZXMubGVuZ3RoID4gMCA/IHsgcGFja2FnZXMgfSA6IHt9KSxcbiAgICAgICAgICAuLi4ocG5wbUNvbmZpZyA/IHsgLi4ucG5wbUNvbmZpZyB9IDoge30pLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG5wbS13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcG5wbS9wbnBtLXdvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBZ0M7QUFDaEMsbUNBQXNEO0FBR3REOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRztJQUNqQyxTQUFTLEVBQUUsQ0FBQztJQUNaLFFBQVEsRUFBRSxFQUFFO0lBQ1osU0FBUyxFQUFFLEdBQUc7SUFDZCxZQUFZLEVBQUUsR0FBRztJQUNqQixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxJQUFJO0lBQ2QsVUFBVSxFQUFFLElBQUk7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLEtBQUs7Q0FDaEIsQ0FBQztBQTRJRixNQUFhLGFBQWMsU0FBUSxrQkFBUztJQUMxQzs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQWdCO1FBQy9CLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUFzQixFQUFFLENBQ3JELENBQUMsWUFBWSxhQUFhLENBQUM7UUFDN0IsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQXVGRCxZQUFZLE9BQWdCLEVBQUUsVUFBZ0MsRUFBRTtRQUM5RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZjs7Ozs7Ozs7b0ZBUTRFO1FBRTVFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2RTs7Ozs7Ozs7Ozs7V0FXRztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxxQkFBcUIsQ0FBQztRQUUxRDs7V0FFRztRQUNILElBQUksQ0FBQyxp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LENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUM3QyxVQUFVLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO2dCQUNyRSxDQUFDO2dCQUVEOzttQkFFRztnQkFDSCxJQUNFLElBQUksQ0FBQyxjQUFjO29CQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUMzQyxDQUFDO29CQUNELFVBQVUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztnQkFDM0MsQ0FBQztnQkFFRDs7bUJBRUc7Z0JBQ0gsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDckUsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUNoRCxDQUFDO2dCQUVEOzttQkFFRztnQkFDSCxPQUFPO29CQUNMLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM1QyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDekMsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF2UUQsc0NBdVFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVsYXRpdmUgfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBQcm9qZWN0LCBZYW1sRmlsZSB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IFZhbHVlT2YgfSBmcm9tIFwidHlwZS1mZXN0XCI7XG5cbi8qKlxuICogUHJlZGVmaW5lZCBtaW5pbXVtIHJlbGVhc2UgYWdlIHZhbHVlcyBpbiBtaW51dGVzLlxuICovXG5leHBvcnQgY29uc3QgTUlNSU1VTV9SRUxFQVNFX0FHRSA9IHtcbiAgWkVST19EQVlTOiAwLFxuICBPTkVfSE9VUjogNjAsXG4gIFNJWF9IT1VSUzogMzYwLFxuICBUV0VMVkVfSE9VUlM6IDcyMCxcbiAgT05FX0RBWTogMTQ0MCxcbiAgVFdPX0RBWVM6IDI4ODAsXG4gIFRIUkVFX0RBWVM6IDQzMjAsXG4gIEZPVVJfREFZUzogNTc2MCxcbiAgRklWRV9EQVlTOiA3MjAwLFxuICBTSVhfREFZUzogODY0MCxcbiAgT05FX1dFRUs6IDEwMDgwLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBQbnBtV29ya3NwYWNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBGaWxlbmFtZSBmb3IgdGhlIHBucG0gd29ya3NwYWNlIGZpbGUuIFRoaXMgc2hvdWxkIHByb2JhYmx5IG5ldmVyIGNoYW5nZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJwbnBtLXdvcmtzcGFjZS55YW1sXCJcbiAgICovXG4gIHJlYWRvbmx5IGZpbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUbyByZWR1Y2UgdGhlIHJpc2sgb2YgaW5zdGFsbGluZyBjb21wcm9taXNlZCBwYWNrYWdlcywgeW91IGNhbiBkZWxheSB0aGVcbiAgICogaW5zdGFsbGF0aW9uIG9mIG5ld2x5IHB1Ymxpc2hlZCB2ZXJzaW9ucy4gSW4gbW9zdCBjYXNlcywgbWFsaWNpb3VzIHJlbGVhc2VzXG4gICAqIGFyZSBkaXNjb3ZlcmVkIGFuZCByZW1vdmVkIGZyb20gdGhlIHJlZ2lzdHJ5IHdpdGhpbiBhbiBob3VyLlxuICAgKlxuICAgKiBtaW5pbXVtUmVsZWFzZUFnZSBkZWZpbmVzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBtaW51dGVzIHRoYXQgbXVzdCBwYXNzXG4gICAqIGFmdGVyIGEgdmVyc2lvbiBpcyBwdWJsaXNoZWQgYmVmb3JlIHBucG0gd2lsbCBpbnN0YWxsIGl0LiBUaGlzIGFwcGxpZXMgdG9cbiAgICogYWxsIGRlcGVuZGVuY2llcywgaW5jbHVkaW5nIHRyYW5zaXRpdmUgb25lcy5cbiAgICpcbiAgICogTm90ZTogdGhpcyBzaG91bGQgbWF0Y2ggZGVwc1VwZ3JhZGVPcHRpb25zLmNvb2xkb3duIGluIHRoZSBwcm9qZWN0IGNvbmZpZy5cbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vc2V0dGluZ3MjbWluaW11bXJlbGVhc2VhZ2VcbiAgICpcbiAgICogQGRlZmF1bHQgTUlNSU1VTV9SRUxFQVNFX0FHRS5PTkVfREFZXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtUmVsZWFzZUFnZT86IFZhbHVlT2Y8dHlwZW9mIE1JTUlNVU1fUkVMRUFTRV9BR0U+O1xuXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IG1pbmltdW1SZWxlYXNlQWdlIGJ1dCBuZWVkIGNlcnRhaW4gZGVwZW5kZW5jaWVzIHRvIGFsd2F5c1xuICAgKiBpbnN0YWxsIHRoZSBuZXdlc3QgdmVyc2lvbiBpbW1lZGlhdGVseSwgeW91IGNhbiBsaXN0IHRoZW0gdW5kZXJcbiAgICogbWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlLiBUaGUgZXhjbHVzaW9uIHdvcmtzIGJ5IHBhY2thZ2UgbmFtZSBhbmQgYXBwbGllc1xuICAgKiB0byBhbGwgdmVyc2lvbnMgb2YgdGhhdCBwYWNrYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGV4Y2x1c2lvbnMgKGVtcHR5IGFycmF5KVxuICAgKlxuICAgKiBTZWU6IGh0dHBzOi8vcG5wbS5pby9zZXR0aW5ncyNtaW5pbXVtcmVsZWFzZWFnZWV4Y2x1ZGVcbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZT86IEFycmF5PHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYWNrYWdlIG5hbWVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZXhlY3V0ZSBcInByZWluc3RhbGxcIixcbiAgICogXCJpbnN0YWxsXCIsIGFuZC9vciBcInBvc3RpbnN0YWxsXCIgc2NyaXB0cyBkdXJpbmcgaW5zdGFsbGF0aW9uLiBPbmx5IHRoZVxuICAgKiBwYWNrYWdlcyBsaXN0ZWQgaW4gdGhpcyBhcnJheSB3aWxsIGJlIGFibGUgdG8gcnVuIHRob3NlIGxpZmVjeWNsZSBzY3JpcHRzLlxuICAgKiBJZiBvbmx5QnVpbHREZXBlbmRlbmNpZXNGaWxlIGFuZCBuZXZlckJ1aWx0RGVwZW5kZW5jaWVzIGFyZSBvbWl0dGVkLCB0aGlzXG4gICAqIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHdpbGwgZGVmYXVsdCB0byBibG9ja2luZyBhbGwgaW5zdGFsbCBzY3JpcHRzLlxuICAgKlxuICAgKiBZb3UgbWF5IHJlc3RyaWN0IGFsbG93YW5jZXMgdG8gc3BlY2lmaWMgdmVyc2lvbnMgKGFuZCBsaXN0cyBvZiB2ZXJzaW9uc1xuICAgKiB1c2luZyBhIGRpc2p1bmN0aW9uIHdpdGggfHwpLiBXaGVuIHZlcnNpb25zIGFyZSBzcGVjaWZpZWQsIG9ubHkgdGhvc2VcbiAgICogdmVyc2lvbnMgb2YgdGhlIHBhY2thZ2UgbWF5IHJ1biBsaWZlY3ljbGUgc2NyaXB0czpcbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vc2V0dGluZ3Mjb25seWJ1aWx0ZGVwZW5kZW5jaWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmUgKGVtcHR5IGFycmF5KVxuICAgKi9cbiAgcmVhZG9ubHkgb25seUJ1aWx0RGVwZW5kZW5jaWVzPzogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhY2thZ2UgbmFtZXMgdGhhdCBhcmUgTk9UIGFsbG93ZWQgdG8gZXhlY3V0ZSBcInByZWluc3RhbGxcIixcbiAgICogXCJpbnN0YWxsXCIsIGFuZC9vciBcInBvc3RpbnN0YWxsXCIgc2NyaXB0cyBkdXJpbmcgaW5zdGFsbGF0aW9uIGFuZCB3aWxsIG5vdFxuICAgKiB3YXJuIG9yIGFzayB0byBiZSBleGVjdXRlZC5cbiAgICpcbiAgICogVGhpcyBpcyB1c2VmdWwgd2hlbiB5b3Ugd2FudCB0byBoaWRlIHRoZSB3YXJuaW5nIGJlY2F1c2UgeW91IGtub3cgdGhlXG4gICAqIGxpZmVjeWNsZSBzY3JpcHRzIGFyZSBub3QgbmVlZGVkLlxuICAgKlxuICAgKiBodHRwczovL3BucG0uaW8vc2V0dGluZ3MjaWdub3JlZGJ1aWx0ZGVwZW5kZW5jaWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmUgKGVtcHR5IGFycmF5KVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlZEJ1aWx0RGVwZW5kZW5jaWVzPzogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdWJwcm9qZWN0IHBhdGhzIHRvIGluY2x1ZGUgaW4gdGhlIHdvcmtzcGFjZSBwYWNrYWdlcyBhcnJheS5cbiAgICogVGhlc2Ugd2lsbCBiZSBjb21iaW5lZCB3aXRoIGFueSBzdWJwcm9qZWN0cyBkaXNjb3ZlcmVkIHZpYSBwcm9qZW4nc1xuICAgKiBwcm9qZWN0LnN1YnByb2plY3RzIHByb3BlcnR5LiBQYXRocyBzaG91bGQgYmUgcmVsYXRpdmUgdG8gdGhlIHByb2plY3Qgcm9vdC5cbiAgICpcbiAgICogQGRlZmF1bHQgbm9uZSAoZW1wdHkgYXJyYXkpXG4gICAqL1xuICByZWFkb25seSBzdWJwcm9qZWN0cz86IEFycmF5PHN0cmluZz47XG5cbiAgLyoqXG4gICAqIENhdGFsb2cgb2YgcmV1c2FibGUgZGVwZW5kZW5jeSB2ZXJzaW9uIHJhbmdlcy5cbiAgICpcbiAgICogVGhlIGNhdGFsb2cgYWxsb3dzIHlvdSB0byBkZWZpbmUgZGVwZW5kZW5jeSB2ZXJzaW9ucyBhcyByZXVzYWJsZSBjb25zdGFudHNcbiAgICogdGhhdCBjYW4gYmUgcmVmZXJlbmNlZCBpbiBwYWNrYWdlLmpzb24gZmlsZXMgdXNpbmcgdGhlIGNhdGFsb2c6IHByb3RvY29sLlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKiBgYGB5YW1sXG4gICAqIGNhdGFsb2c6XG4gICAqICAgcmVhY3Q6IF4xOC4wLjBcbiAgICogICB0eXBlc2NyaXB0OiBeNS4wLjBcbiAgICogYGBgXG4gICAqXG4gICAqIFRoZW4gaW4gcGFja2FnZS5qc29uOlxuICAgKiBgYGBqc29uXG4gICAqIHtcbiAgICogICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAqICAgICBcInJlYWN0XCI6IFwiY2F0YWxvZzpyZWFjdFwiXG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWQgKG5vdCBpbmNsdWRlZCBpbiBvdXRwdXQpXG4gICAqXG4gICAqIFNlZTogaHR0cHM6Ly9wbnBtLmlvL3BucG0td29ya3NwYWNlX3lhbWwjY2F0YWxvZ1xuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENhdGFsb2c/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBOYW1lZCBjYXRhbG9ncyBvZiByZXVzYWJsZSBkZXBlbmRlbmN5IHZlcnNpb24gcmFuZ2VzLlxuICAgKlxuICAgKiBNdWx0aXBsZSBuYW1lZCBjYXRhbG9ncyB3aXRoIGFyYml0cmFyaWx5IGNob3NlbiBuYW1lcyBjYW4gYmUgY29uZmlndXJlZCB1bmRlciB0aGUgbmFtZWRDYXRhbG9ncyBrZXkuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqIGBgYHlhbWxcbiAgICogbmFtZWRDYXRhbG9nczpcbiAgICogICBmcm9udGVuZDpcbiAgICogICAgIHJlYWN0OiBeMTguMC4wXG4gICAqICAgICB0eXBlc2NyaXB0OiBeNS4wLjBcbiAgICogICBiYWNrZW5kOlxuICAgKiAgICAgZXhwcmVzczogXjQuMTguMFxuICAgKiBgYGBcbiAgICpcbiAgICogVGhlbiBpbiBwYWNrYWdlLmpzb246XG4gICAqIGBgYGpzb25cbiAgICoge1xuICAgKiAgIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICogICAgIFwicmVhY3RcIjogXCJjYXRhbG9nOmZyb250ZW5kL3JlYWN0XCJcbiAgICogICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZCAobm90IGluY2x1ZGVkIGluIG91dHB1dClcbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vY2F0YWxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IG5hbWVkQ2F0YWxvZ3M/OiB7XG4gICAgW2NhdGFsb2dOYW1lOiBzdHJpbmddOiB7IFtkZXBlbmRlbmN5TmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBQbnBtV29ya3NwYWNlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIEdldCB0aGUgcG5wbSB3b3Jrc3BhY2UgY29tcG9uZW50IG9mIGEgcHJvamVjdC4gSWYgaXQgZG9lcyBub3QgZXhpc3QsXG4gICAqIHJldHVybiB1bmRlZmluZWQuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9qZWN0XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHByb2plY3Q6IFByb2plY3QpOiBQbnBtV29ya3NwYWNlIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0RlZmluZWQgPSAoYzogQ29tcG9uZW50KTogYyBpcyBQbnBtV29ya3NwYWNlID0+XG4gICAgICBjIGluc3RhbmNlb2YgUG5wbVdvcmtzcGFjZTtcbiAgICByZXR1cm4gcHJvamVjdC5yb290LmNvbXBvbmVudHMuZmluZChpc0RlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbGVuYW1lIGZvciB0aGUgcG5wbSB3b3Jrc3BhY2UgZmlsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUbyByZWR1Y2UgdGhlIHJpc2sgb2YgaW5zdGFsbGluZyBjb21wcm9taXNlZCBwYWNrYWdlcywgeW91IGNhbiBkZWxheSB0aGVcbiAgICogaW5zdGFsbGF0aW9uIG9mIG5ld2x5IHB1Ymxpc2hlZCB2ZXJzaW9ucy4gSW4gbW9zdCBjYXNlcywgbWFsaWNpb3VzIHJlbGVhc2VzXG4gICAqIGFyZSBkaXNjb3ZlcmVkIGFuZCByZW1vdmVkIGZyb20gdGhlIHJlZ2lzdHJ5IHdpdGhpbiBhbiBob3VyLlxuICAgKlxuICAgKiBtaW5pbXVtUmVsZWFzZUFnZSBkZWZpbmVzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBtaW51dGVzIHRoYXQgbXVzdCBwYXNzXG4gICAqIGFmdGVyIGEgdmVyc2lvbiBpcyBwdWJsaXNoZWQgYmVmb3JlIHBucG0gd2lsbCBpbnN0YWxsIGl0LiBUaGlzIGFwcGxpZXMgdG9cbiAgICogYWxsIGRlcGVuZGVuY2llcywgaW5jbHVkaW5nIHRyYW5zaXRpdmUgb25lcy5cbiAgICpcbiAgICogTm90ZTogdGhpcyBzaG91bGQgbWF0Y2ggZGVwc1VwZ3JhZGVPcHRpb25zLmNvb2xkb3duIGluIHRoZSBwcm9qZWN0IGNvbmZpZy5cbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vc2V0dGluZ3MjbWluaW11bXJlbGVhc2VhZ2VcbiAgICovXG4gIHB1YmxpYyBtaW5pbXVtUmVsZWFzZUFnZTogVmFsdWVPZjx0eXBlb2YgTUlNSU1VTV9SRUxFQVNFX0FHRT47XG5cbiAgLyoqXG4gICAqIElmIHlvdSBzZXQgbWluaW11bVJlbGVhc2VBZ2UgYnV0IG5lZWQgY2VydGFpbiBkZXBlbmRlbmNpZXMgdG8gYWx3YXlzXG4gICAqIGluc3RhbGwgdGhlIG5ld2VzdCB2ZXJzaW9uIGltbWVkaWF0ZWx5LCB5b3UgY2FuIGxpc3QgdGhlbSB1bmRlclxuICAgKiBtaW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGUuIFRoZSBleGNsdXNpb24gd29ya3MgYnkgcGFja2FnZSBuYW1lIGFuZCBhcHBsaWVzXG4gICAqIHRvIGFsbCB2ZXJzaW9ucyBvZiB0aGF0IHBhY2thZ2UuXG4gICAqXG4gICAqIFNlZTogaHR0cHM6Ly9wbnBtLmlvL3NldHRpbmdzI21pbmltdW1yZWxlYXNlYWdlZXhjbHVkZVxuICAgKi9cbiAgcHVibGljIG1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZTogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhY2thZ2UgbmFtZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBleGVjdXRlIFwicHJlaW5zdGFsbFwiLFxuICAgKiBcImluc3RhbGxcIiwgYW5kL29yIFwicG9zdGluc3RhbGxcIiBzY3JpcHRzIGR1cmluZyBpbnN0YWxsYXRpb24uIE9ubHkgdGhlXG4gICAqIHBhY2thZ2VzIGxpc3RlZCBpbiB0aGlzIGFycmF5IHdpbGwgYmUgYWJsZSB0byBydW4gdGhvc2UgbGlmZWN5Y2xlIHNjcmlwdHMuXG4gICAqIElmIG9ubHlCdWlsdERlcGVuZGVuY2llc0ZpbGUgYW5kIG5ldmVyQnVpbHREZXBlbmRlbmNpZXMgYXJlIG9taXR0ZWQsIHRoaXNcbiAgICogY29uZmlndXJhdGlvbiBvcHRpb24gd2lsbCBkZWZhdWx0IHRvIGJsb2NraW5nIGFsbCBpbnN0YWxsIHNjcmlwdHMuXG4gICAqXG4gICAqIFlvdSBtYXkgcmVzdHJpY3QgYWxsb3dhbmNlcyB0byBzcGVjaWZpYyB2ZXJzaW9ucyAoYW5kIGxpc3RzIG9mIHZlcnNpb25zXG4gICAqIHVzaW5nIGEgZGlzanVuY3Rpb24gd2l0aCB8fCkuIFdoZW4gdmVyc2lvbnMgYXJlIHNwZWNpZmllZCwgb25seSB0aG9zZVxuICAgKiB2ZXJzaW9ucyBvZiB0aGUgcGFja2FnZSBtYXkgcnVuIGxpZmVjeWNsZSBzY3JpcHRzOlxuICAgKlxuICAgKiBTZWU6IGh0dHBzOi8vcG5wbS5pby9zZXR0aW5ncyNvbmx5YnVpbHRkZXBlbmRlbmNpZXNcbiAgICovXG4gIHB1YmxpYyBvbmx5QnVpbHREZXBlbmRlbmNpZXM6IEFycmF5PHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYWNrYWdlIG5hbWVzIHRoYXQgYXJlIE5PVCBhbGxvd2VkIHRvIGV4ZWN1dGUgXCJwcmVpbnN0YWxsXCIsXG4gICAqIFwiaW5zdGFsbFwiLCBhbmQvb3IgXCJwb3N0aW5zdGFsbFwiIHNjcmlwdHMgZHVyaW5nIGluc3RhbGxhdGlvbiBhbmQgd2lsbCBub3RcbiAgICogd2FybiBvciBhc2sgdG8gYmUgZXhlY3V0ZWQuXG4gICAqXG4gICAqIFRoaXMgaXMgdXNlZnVsIHdoZW4geW91IHdhbnQgdG8gaGlkZSB0aGUgd2FybmluZyBiZWNhdXNlIHlvdSBrbm93IHRoZVxuICAgKiBsaWZlY3ljbGUgc2NyaXB0cyBhcmUgbm90IG5lZWRlZC5cbiAgICpcbiAgICogaHR0cHM6Ly9wbnBtLmlvL3NldHRpbmdzI2lnbm9yZWRidWlsdGRlcGVuZGVuY2llc1xuICAgKi9cbiAgcHVibGljIGlnbm9yZWRCdWlsdERlcGVuZGVuY2llczogQXJyYXk8c3RyaW5nPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdWJwcm9qZWN0IHBhdGhzIHRvIGluY2x1ZGUgaW4gdGhlIHdvcmtzcGFjZSBwYWNrYWdlcyBhcnJheS5cbiAgICogVGhlc2Ugd2lsbCBiZSBjb21iaW5lZCB3aXRoIGFueSBzdWJwcm9qZWN0cyBkaXNjb3ZlcmVkIHZpYSBwcm9qZW4nc1xuICAgKiBwcm9qZWN0LnN1YnByb2plY3RzIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIHN1YnByb2plY3RzOiBBcnJheTxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGNhdGFsb2cgb2YgcmV1c2FibGUgZGVwZW5kZW5jeSB2ZXJzaW9uIHJhbmdlcy5cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgY2F0YWxvZyBpcyB1c2VkIHRvIGRlZmluZSBkZXBlbmRlbmN5IHZlcnNpb25zIGFzIHJldXNhYmxlIGNvbnN0YW50c1xuICAgKiB0aGF0IGNhbiBiZSByZWZlcmVuY2VkIGluIHBhY2thZ2UuanNvbiBmaWxlcyB1c2luZyB0aGUgY2F0YWxvZzogcHJvdG9jb2wuXG4gICAqXG4gICAqIFNlZTpodHRwczovL3BucG0uaW8vY2F0YWxvZ3NcbiAgICovXG4gIHB1YmxpYyBkZWZhdWx0Q2F0YWxvZz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIE5hbWVkIGNhdGFsb2dzIG9mIHJldXNhYmxlIGRlcGVuZGVuY3kgdmVyc2lvbiByYW5nZXMuXG4gICAqXG4gICAqIE11bHRpcGxlIG5hbWVkIGNhdGFsb2dzIHdpdGggYXJiaXRyYXJpbHkgY2hvc2VuIG5hbWVzIGNhbiBiZSBjb25maWd1cmVkIHVuZGVyIHRoZSBuYW1lZENhdGFsb2dzIGtleS5cbiAgICpcbiAgICogU2VlOiBodHRwczovL3BucG0uaW8vY2F0YWxvZ3NcbiAgICovXG4gIHB1YmxpYyBuYW1lZENhdGFsb2dzPzoge1xuICAgIFtjYXRhbG9nTmFtZTogc3RyaW5nXTogeyBbZGVwZW5kZW5jeU5hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IFBucG1Xb3Jrc3BhY2VPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIENMRUFSIHBhY2thZ2UsanNvblxuICAgICAqXG4gICAgICogSXQgYXBwZWFycyB0aGF0IGlmIEFOWSBwbnBtIHNldHRpbmdzIGV4aXN0IGluIHRoZSBwYWNrYWdlLmpzb24gZmlsZSwgYWxsXG4gICAgICogb2YgdGhlIHNldHRpbmcgaW4gdGhlIHBucG0td29ya3NwYWNlLnlhbWwgZmlsZSBhcmUgaWdub3JlZC4gc28gd2UgbmVlZCB0b1xuICAgICAqIGNsZWFyIG91dCBhbnl0aGluZyB0aGF0IHdhcyBwbGFjZWQgaW50byB0aGUgcGFja2FnZS5qc29uIGZpbGUuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBwcm9qZWN0LnRyeUZpbmRPYmplY3RGaWxlKFwicGFja2FnZS5qc29uXCIpPy5hZGREZWxldGlvbk92ZXJyaWRlKFwicG5wbVwiKTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiBcbiAgICAgKiBTZXR1cCBwbnBtLXdvcmtzcGFjZS55YW1sIGZpbGUuXG4gICAgICogXG4gICAgICogTm93IHRoYXQgdGhlIHBhY2thZ2UuanNvbiBmaWxlIGlzIGNsZWFyZWQgb2YgYW55IHBucG0gc2V0dGluZ3MsIHdlIGNhblxuICAgICAqIHNhZmVseSB3cml0ZSBzZXR0aW5ncyB0byB0aGUgcG5wbS13b3Jrc3BhY2UueWFtbCBmaWxlLlxuICAgICAqIFxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4gICAgLyoqXG4gICAgICogU2V0IGZpbGVuYW1lIHRvIGRlZmF1bHQgaWYgbm90IHByb3ZpZGVkLlxuICAgICAqL1xuICAgIHRoaXMuZmlsZU5hbWUgPSBvcHRpb25zLmZpbGVOYW1lID8/IFwicG5wbS13b3Jrc3BhY2UueWFtbFwiO1xuXG4gICAgLyoqXG4gICAgICogU2V0IG1pbmltdW0gcmVsZWFzZSBhZ2UgdG8gZGVmYXVsdCBpZiBub3QgcHJvdmlkZWRcbiAgICAgKi9cbiAgICB0aGlzLm1pbmltdW1SZWxlYXNlQWdlID0gb3B0aW9ucy5taW5pbXVtUmVsZWFzZUFnZVxuICAgICAgPyBvcHRpb25zLm1pbmltdW1SZWxlYXNlQWdlXG4gICAgICA6IE1JTUlNVU1fUkVMRUFTRV9BR0UuT05FX0RBWTtcblxuICAgIC8qKlxuICAgICAqIFNldCBtaW5pbXVtIHJlbGVhc2UgYWdlIGV4Y2x1ZGUgdG8gZW1wdHkgYXJyYXkgaWYgbm90IHByb3ZpZGVkXG4gICAgICovXG4gICAgdGhpcy5taW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGUgPSBvcHRpb25zLm1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZVxuICAgICAgPyBbXCJAY29kZWRyaWZ0ZXJzLypcIiwgLi4ub3B0aW9ucy5taW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGVdXG4gICAgICA6IFtcIkBjb2RlZHJpZnRlcnMvKlwiXTtcblxuICAgIC8qKlxuICAgICAqIFNldCBvbmx5IGJ1aWx0IGRlcGVuZGVuY2llcyB0byBlbXB0eSBhcnJheSBpZiBub3QgcHJvdmlkZWRcbiAgICAgKi9cbiAgICB0aGlzLm9ubHlCdWlsdERlcGVuZGVuY2llcyA9IG9wdGlvbnMub25seUJ1aWx0RGVwZW5kZW5jaWVzXG4gICAgICA/IG9wdGlvbnMub25seUJ1aWx0RGVwZW5kZW5jaWVzXG4gICAgICA6IFtdO1xuXG4gICAgLyoqXG4gICAgICogU2V0IGlnbm9yZWQgYnVpbHQgZGVwZW5kZW5jaWVzIHRvIGVtcHR5IGFycmF5IGlmIG5vdCBwcm92aWRlZFxuICAgICAqL1xuICAgIHRoaXMuaWdub3JlZEJ1aWx0RGVwZW5kZW5jaWVzID0gb3B0aW9ucy5pZ25vcmVkQnVpbHREZXBlbmRlbmNpZXNcbiAgICAgID8gb3B0aW9ucy5pZ25vcmVkQnVpbHREZXBlbmRlbmNpZXNcbiAgICAgIDogW107XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZSBhZGRpdGlvbmFsIHN1YnByb2plY3QgcGF0aHMgaWYgcHJvdmlkZWRcbiAgICAgKi9cbiAgICB0aGlzLnN1YnByb2plY3RzID0gb3B0aW9ucy5zdWJwcm9qZWN0cyA/PyBbXTtcblxuICAgIC8qKlxuICAgICAqIFN0b3JlIGNhdGFsb2cgaWYgcHJvdmlkZWRcbiAgICAgKi9cbiAgICB0aGlzLmRlZmF1bHRDYXRhbG9nID0gb3B0aW9ucy5kZWZhdWx0Q2F0YWxvZztcblxuICAgIC8qKlxuICAgICAqIFN0b3JlIG5hbWVkIGNhdGFsb2dzIGlmIHByb3ZpZGVkXG4gICAgICovXG4gICAgdGhpcy5uYW1lZENhdGFsb2dzID0gb3B0aW9ucy5uYW1lZENhdGFsb2dzO1xuXG4gICAgLyoqXG4gICAgICogSW4gY2FzZSB0aGF0IHRoaXMgZmlsZSBpcyBpbiBhIHBhY2thZ2UsIGRvbid0IHBhY2thZ2UgaXQuXG4gICAgICovXG4gICAgcHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKHRoaXMuZmlsZU5hbWUpO1xuXG4gICAgLyoqXG4gICAgICogV3JpdGUgcG5wbSB3b3Jrc3BhY2UgZmlsZVxuICAgICAqL1xuICAgIG5ldyBZYW1sRmlsZSh0aGlzLnByb2plY3QsIHRoaXMuZmlsZU5hbWUsIHtcbiAgICAgIG9iajogKCkgPT4ge1xuICAgICAgICBjb25zdCBwbnBtQ29uZmlnOiBhbnkgPSB7fTtcbiAgICAgICAgY29uc3QgcGFja2FnZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBZGQgcHJvamVuIHN1YnByb2plY3RzIHRvIHRoZSBwYWNrYWdlcyBhcnJheS5cbiAgICAgICAgICovXG4gICAgICAgIGZvciAoY29uc3Qgc3VicHJvamVjdCBvZiBwcm9qZWN0LnN1YnByb2plY3RzKSB7XG4gICAgICAgICAgLy8gZ3JhYiB0aGUgcmVsYXRpdmUgb3V0IGRpcmVjdG9yeVxuICAgICAgICAgIHBhY2thZ2VzLnB1c2gocmVsYXRpdmUodGhpcy5wcm9qZWN0Lm91dGRpciwgc3VicHJvamVjdC5vdXRkaXIpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBZGQgYWRkaXRpb25hbCBzdWJwcm9qZWN0IHBhdGhzIHByb3ZpZGVkIHZpYSBvcHRpb25zLlxuICAgICAgICAgKiBVc2UgYSBTZXQgdG8gZGVkdXBsaWNhdGUgcGF0aHMgdG8gYXZvaWQgaW5jbHVkaW5nIHRoZSBzYW1lXG4gICAgICAgICAqIHN1YnByb2plY3QgbXVsdGlwbGUgdGltZXMuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBwYWNrYWdlU2V0ID0gbmV3IFNldChwYWNrYWdlcyk7XG4gICAgICAgIGZvciAoY29uc3Qgc3VicHJvamVjdFBhdGggb2YgdGhpcy5zdWJwcm9qZWN0cykge1xuICAgICAgICAgIHBhY2thZ2VTZXQuYWRkKHN1YnByb2plY3RQYXRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb252ZXJ0IGJhY2sgdG8gYXJyYXkgaWYgd2UgYWRkZWQgYW55IGFkZGl0aW9uYWwgcGF0aHNcbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLnN1YnByb2plY3RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwYWNrYWdlcy5sZW5ndGggPSAwO1xuICAgICAgICAgIHBhY2thZ2VzLnB1c2goLi4ucGFja2FnZVNldCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogU2V0IG1pbmltdW0gcmVsZWFzZSBhZ2UuXG4gICAgICAgICAqL1xuICAgICAgICBwbnBtQ29uZmlnLm1pbmltdW1SZWxlYXNlQWdlID0gdGhpcy5taW5pbXVtUmVsZWFzZUFnZTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogU2V0IG1pbmltdW0gcmVsZWFzZSBhZ2UgZXhjbHVkZSBpZiBhbnkgYXJlIHByb3ZpZGVkLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMubWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwbnBtQ29uZmlnLm1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZSA9IHRoaXMubWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldCBvbmx5IGJ1aWx0IGRlcGVuZGVuY2llcyBpZiBhbnkgYXJlIHByb3ZpZGVkLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMub25seUJ1aWx0RGVwZW5kZW5jaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwbnBtQ29uZmlnLm9ubHlCdWlsdERlcGVuZGVuY2llcyA9IHRoaXMub25seUJ1aWx0RGVwZW5kZW5jaWVzO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldCBpZ25vcmVkIGJ1aWx0IGRlcGVuZGVuY2llcyBpZiBhbnkgYXJlIHByb3ZpZGVkLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuaWdub3JlZEJ1aWx0RGVwZW5kZW5jaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwbnBtQ29uZmlnLmlnbm9yZUJ1aWx0RGVwZW5kZW5jaWVzID0gdGhpcy5pZ25vcmVkQnVpbHREZXBlbmRlbmNpZXM7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogU2V0IGRlZmF1bHQgY2F0YWxvZyBpZiBwcm92aWRlZC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmRlZmF1bHRDYXRhbG9nICYmXG4gICAgICAgICAgT2JqZWN0LmtleXModGhpcy5kZWZhdWx0Q2F0YWxvZykubGVuZ3RoID4gMFxuICAgICAgICApIHtcbiAgICAgICAgICBwbnBtQ29uZmlnLmNhdGFsb2cgPSB0aGlzLmRlZmF1bHRDYXRhbG9nO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldCBuYW1lZCBjYXRhbG9ncyBpZiBwcm92aWRlZC5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLm5hbWVkQ2F0YWxvZ3MgJiYgT2JqZWN0LmtleXModGhpcy5uYW1lZENhdGFsb2dzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcG5wbUNvbmZpZy5uYW1lZENhdGFsb2dzID0gdGhpcy5uYW1lZENhdGFsb2dzO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybiB0aGUgZmluYWwgcG5wbSBjb25maWcgb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi4ocGFja2FnZXMubGVuZ3RoID4gMCA/IHsgcGFja2FnZXMgfSA6IHt9KSxcbiAgICAgICAgICAuLi4ocG5wbUNvbmZpZyA/IHsgLi4ucG5wbUNvbmZpZyB9IDoge30pLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|