iam-floyd
Version:
AWS IAM policy statement generator with fluent interface
204 lines • 17.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Groundtruthlabeling = void 0;
const shared_1 = require("../../shared");
/**
* Statement provider for service [groundtruthlabeling](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazongroundtruthlabeling.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
class Groundtruthlabeling extends shared_1.PolicyStatement {
/**
* Statement provider for service [groundtruthlabeling](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazongroundtruthlabeling.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
constructor(sid) {
super(sid);
this.servicePrefix = 'groundtruthlabeling';
this.accessLevelList = {
Write: [
'AssociatePatchToManifestJob',
'CreateBatch',
'CreateIntakeForm',
'CreateProject',
'CreateWorkflowDefinition',
'GenerateLIDARPreviewTaskConfigJob',
'RunFilterOrSampleDatasetJob',
'RunGenerateManifestByCrawlingJob',
'RunGenerateManifestMetricsJob',
'UpdateBatch'
],
Read: [
'DescribeConsoleJob',
'GetBatch',
'GetIntakeFormStatus',
'ListBatches',
'ListDatasetObjects',
'ListProjects'
]
};
}
/**
* Grants permission to associate a patch file with the manifest file to update the manifest file
*
* Access Level: Write
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-console-create-manifest-file
*/
toAssociatePatchToManifestJob() {
return this.to('AssociatePatchToManifestJob');
}
/**
* Grants permission to create a GT+ Batch
*
* Access Level: Write
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-console-create-manifest-file
*/
toCreateBatch() {
return this.to('CreateBatch');
}
/**
* Grants permission to create intake form
*
* Access Level: Write
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-console-create-manifest-file
*/
toCreateIntakeForm() {
return this.to('CreateIntakeForm');
}
/**
* Grants permission to create a GT+ Project
*
* Access Level: Write
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-console-create-manifest-file
*/
toCreateProject() {
return this.to('CreateProject');
}
/**
* Grants permission to create a GT+ Workflow Definition
*
* Access Level: Write
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-console-create-manifest-file
*/
toCreateWorkflowDefinition() {
return this.to('CreateWorkflowDefinition');
}
/**
* Grants permission to get status of GroundTruthLabeling Jobs
*
* Access Level: Read
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-console-create-manifest-file
*/
toDescribeConsoleJob() {
return this.to('DescribeConsoleJob');
}
/**
* Grants permission to generate LiDAR Preview Task
*
* Access Level: Write
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-console-create-manifest-file
*/
toGenerateLIDARPreviewTaskConfigJob() {
return this.to('GenerateLIDARPreviewTaskConfigJob');
}
/**
* Grants permission to get a GT+ Batch
*
* Access Level: Read
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-console-create-manifest-file
*/
toGetBatch() {
return this.to('GetBatch');
}
/**
* Grants permission to get a intake forms
*
* Access Level: Read
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-console-create-manifest-file
*/
toGetIntakeFormStatus() {
return this.to('GetIntakeFormStatus');
}
/**
* Grants permission to list a GT+ Batchs
*
* Access Level: Read
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-console-create-manifest-file
*/
toListBatches() {
return this.to('ListBatches');
}
/**
* Grants permission to list dataset objects in a manifest file
*
* Access Level: Read
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-console-create-manifest-file
*/
toListDatasetObjects() {
return this.to('ListDatasetObjects');
}
/**
* Grants permission to list a GT+ Projects
*
* Access Level: Read
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-console-create-manifest-file
*/
toListProjects() {
return this.to('ListProjects');
}
/**
* Grants permission to filter records from a manifest file using S3 select. Get sample entries based on random sampling
*
* Access Level: Write
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-data-filtering
*/
toRunFilterOrSampleDatasetJob() {
return this.to('RunFilterOrSampleDatasetJob');
}
/**
* Grants permission to list a S3 prefix and create manifest files from objects in that location
*
* Access Level: Write
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-console-create-manifest-file
*/
toRunGenerateManifestByCrawlingJob() {
return this.to('RunGenerateManifestByCrawlingJob');
}
/**
* Grants permission to generate metrics from objects in manifest
*
* Access Level: Write
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-console-create-manifest-file
*/
toRunGenerateManifestMetricsJob() {
return this.to('RunGenerateManifestMetricsJob');
}
/**
* Grants permission to update a GT+ Batch
*
* Access Level: Write
*
* https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-input.html#sms-console-create-manifest-file
*/
toUpdateBatch() {
return this.to('UpdateBatch');
}
}
exports.Groundtruthlabeling = Groundtruthlabeling;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdW5kdHJ1dGhsYWJlbGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImdyb3VuZHRydXRobGFiZWxpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQStDO0FBRS9DOzs7O0dBSUc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLHdCQUFlO0lBR3REOzs7O09BSUc7SUFDSCxZQUFZLEdBQVk7UUFDdEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBUk4sa0JBQWEsR0FBRyxxQkFBcUIsQ0FBQztRQTJMbkMsb0JBQWUsR0FBb0I7WUFDM0MsS0FBSyxFQUFFO2dCQUNMLDZCQUE2QjtnQkFDN0IsYUFBYTtnQkFDYixrQkFBa0I7Z0JBQ2xCLGVBQWU7Z0JBQ2YsMEJBQTBCO2dCQUMxQixtQ0FBbUM7Z0JBQ25DLDZCQUE2QjtnQkFDN0Isa0NBQWtDO2dCQUNsQywrQkFBK0I7Z0JBQy9CLGFBQWE7YUFDZDtZQUNELElBQUksRUFBRTtnQkFDSixvQkFBb0I7Z0JBQ3BCLFVBQVU7Z0JBQ1YscUJBQXFCO2dCQUNyQixhQUFhO2dCQUNiLG9CQUFvQjtnQkFDcEIsY0FBYzthQUNmO1NBQ0YsQ0FBQztJQXZNRixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksNkJBQTZCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksa0JBQWtCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMEJBQTBCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLG1DQUFtQztRQUN4QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsbUNBQW1DLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0kscUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksNkJBQTZCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxrQ0FBa0M7UUFDdkMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLCtCQUErQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQXdCRjtBQWxORCxrREFrTkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2Nlc3NMZXZlbExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWNjZXNzLWxldmVsJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5cbi8qKlxuICogU3RhdGVtZW50IHByb3ZpZGVyIGZvciBzZXJ2aWNlIFtncm91bmR0cnV0aGxhYmVsaW5nXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hbWF6b25ncm91bmR0cnV0aGxhYmVsaW5nLmh0bWwpLlxuICpcbiAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICovXG5leHBvcnQgY2xhc3MgR3JvdW5kdHJ1dGhsYWJlbGluZyBleHRlbmRzIFBvbGljeVN0YXRlbWVudCB7XG4gIHB1YmxpYyBzZXJ2aWNlUHJlZml4ID0gJ2dyb3VuZHRydXRobGFiZWxpbmcnO1xuXG4gIC8qKlxuICAgKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW2dyb3VuZHRydXRobGFiZWxpbmddKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2FtYXpvbmdyb3VuZHRydXRobGFiZWxpbmcuaHRtbCkuXG4gICAqXG4gICAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2lkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2lkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBhc3NvY2lhdGUgYSBwYXRjaCBmaWxlIHdpdGggdGhlIG1hbmlmZXN0IGZpbGUgdG8gdXBkYXRlIHRoZSBtYW5pZmVzdCBmaWxlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NhZ2VtYWtlci9sYXRlc3QvZGcvc21zLWRhdGEtaW5wdXQuaHRtbCNzbXMtY29uc29sZS1jcmVhdGUtbWFuaWZlc3QtZmlsZVxuICAgKi9cbiAgcHVibGljIHRvQXNzb2NpYXRlUGF0Y2hUb01hbmlmZXN0Sm9iKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdBc3NvY2lhdGVQYXRjaFRvTWFuaWZlc3RKb2InKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBHVCsgQmF0Y2hcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2FnZW1ha2VyL2xhdGVzdC9kZy9zbXMtZGF0YS1pbnB1dC5odG1sI3Ntcy1jb25zb2xlLWNyZWF0ZS1tYW5pZmVzdC1maWxlXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVCYXRjaCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlQmF0Y2gnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgaW50YWtlIGZvcm1cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2FnZW1ha2VyL2xhdGVzdC9kZy9zbXMtZGF0YS1pbnB1dC5odG1sI3Ntcy1jb25zb2xlLWNyZWF0ZS1tYW5pZmVzdC1maWxlXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVJbnRha2VGb3JtKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVJbnRha2VGb3JtJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgR1QrIFByb2plY3RcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2FnZW1ha2VyL2xhdGVzdC9kZy9zbXMtZGF0YS1pbnB1dC5odG1sI3Ntcy1jb25zb2xlLWNyZWF0ZS1tYW5pZmVzdC1maWxlXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVQcm9qZWN0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVQcm9qZWN0Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgR1QrIFdvcmtmbG93IERlZmluaXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2FnZW1ha2VyL2xhdGVzdC9kZy9zbXMtZGF0YS1pbnB1dC5odG1sI3Ntcy1jb25zb2xlLWNyZWF0ZS1tYW5pZmVzdC1maWxlXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVXb3JrZmxvd0RlZmluaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVdvcmtmbG93RGVmaW5pdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGdldCBzdGF0dXMgb2YgR3JvdW5kVHJ1dGhMYWJlbGluZyBKb2JzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2FnZW1ha2VyL2xhdGVzdC9kZy9zbXMtZGF0YS1pbnB1dC5odG1sI3Ntcy1jb25zb2xlLWNyZWF0ZS1tYW5pZmVzdC1maWxlXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUNvbnNvbGVKb2IoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlQ29uc29sZUpvYicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGdlbmVyYXRlIExpREFSIFByZXZpZXcgVGFza1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zYWdlbWFrZXIvbGF0ZXN0L2RnL3Ntcy1kYXRhLWlucHV0Lmh0bWwjc21zLWNvbnNvbGUtY3JlYXRlLW1hbmlmZXN0LWZpbGVcbiAgICovXG4gIHB1YmxpYyB0b0dlbmVyYXRlTElEQVJQcmV2aWV3VGFza0NvbmZpZ0pvYigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2VuZXJhdGVMSURBUlByZXZpZXdUYXNrQ29uZmlnSm9iJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZ2V0IGEgR1QrIEJhdGNoXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2FnZW1ha2VyL2xhdGVzdC9kZy9zbXMtZGF0YS1pbnB1dC5odG1sI3Ntcy1jb25zb2xlLWNyZWF0ZS1tYW5pZmVzdC1maWxlXG4gICAqL1xuICBwdWJsaWMgdG9HZXRCYXRjaCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0QmF0Y2gnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZXQgYSBpbnRha2UgZm9ybXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zYWdlbWFrZXIvbGF0ZXN0L2RnL3Ntcy1kYXRhLWlucHV0Lmh0bWwjc21zLWNvbnNvbGUtY3JlYXRlLW1hbmlmZXN0LWZpbGVcbiAgICovXG4gIHB1YmxpYyB0b0dldEludGFrZUZvcm1TdGF0dXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldEludGFrZUZvcm1TdGF0dXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGEgR1QrIEJhdGNoc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NhZ2VtYWtlci9sYXRlc3QvZGcvc21zLWRhdGEtaW5wdXQuaHRtbCNzbXMtY29uc29sZS1jcmVhdGUtbWFuaWZlc3QtZmlsZVxuICAgKi9cbiAgcHVibGljIHRvTGlzdEJhdGNoZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RCYXRjaGVzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBkYXRhc2V0IG9iamVjdHMgaW4gYSBtYW5pZmVzdCBmaWxlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2FnZW1ha2VyL2xhdGVzdC9kZy9zbXMtZGF0YS1pbnB1dC5odG1sI3Ntcy1jb25zb2xlLWNyZWF0ZS1tYW5pZmVzdC1maWxlXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0RGF0YXNldE9iamVjdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3REYXRhc2V0T2JqZWN0cycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgYSBHVCsgUHJvamVjdHNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zYWdlbWFrZXIvbGF0ZXN0L2RnL3Ntcy1kYXRhLWlucHV0Lmh0bWwjc21zLWNvbnNvbGUtY3JlYXRlLW1hbmlmZXN0LWZpbGVcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RQcm9qZWN0cygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdFByb2plY3RzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZmlsdGVyIHJlY29yZHMgZnJvbSBhIG1hbmlmZXN0IGZpbGUgdXNpbmcgUzMgc2VsZWN0LiBHZXQgc2FtcGxlIGVudHJpZXMgYmFzZWQgb24gcmFuZG9tIHNhbXBsaW5nXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NhZ2VtYWtlci9sYXRlc3QvZGcvc21zLWRhdGEtaW5wdXQuaHRtbCNzbXMtZGF0YS1maWx0ZXJpbmdcbiAgICovXG4gIHB1YmxpYyB0b1J1bkZpbHRlck9yU2FtcGxlRGF0YXNldEpvYigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnUnVuRmlsdGVyT3JTYW1wbGVEYXRhc2V0Sm9iJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBhIFMzIHByZWZpeCBhbmQgY3JlYXRlIG1hbmlmZXN0IGZpbGVzIGZyb20gb2JqZWN0cyBpbiB0aGF0IGxvY2F0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NhZ2VtYWtlci9sYXRlc3QvZGcvc21zLWRhdGEtaW5wdXQuaHRtbCNzbXMtY29uc29sZS1jcmVhdGUtbWFuaWZlc3QtZmlsZVxuICAgKi9cbiAgcHVibGljIHRvUnVuR2VuZXJhdGVNYW5pZmVzdEJ5Q3Jhd2xpbmdKb2IoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1J1bkdlbmVyYXRlTWFuaWZlc3RCeUNyYXdsaW5nSm9iJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZ2VuZXJhdGUgbWV0cmljcyBmcm9tIG9iamVjdHMgaW4gbWFuaWZlc3RcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2FnZW1ha2VyL2xhdGVzdC9kZy9zbXMtZGF0YS1pbnB1dC5odG1sI3Ntcy1jb25zb2xlLWNyZWF0ZS1tYW5pZmVzdC1maWxlXG4gICAqL1xuICBwdWJsaWMgdG9SdW5HZW5lcmF0ZU1hbmlmZXN0TWV0cmljc0pvYigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnUnVuR2VuZXJhdGVNYW5pZmVzdE1ldHJpY3NKb2InKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgYSBHVCsgQmF0Y2hcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2FnZW1ha2VyL2xhdGVzdC9kZy9zbXMtZGF0YS1pbnB1dC5odG1sI3Ntcy1jb25zb2xlLWNyZWF0ZS1tYW5pZmVzdC1maWxlXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVCYXRjaCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlQmF0Y2gnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY2Nlc3NMZXZlbExpc3Q6IEFjY2Vzc0xldmVsTGlzdCA9IHtcbiAgICBXcml0ZTogW1xuICAgICAgJ0Fzc29jaWF0ZVBhdGNoVG9NYW5pZmVzdEpvYicsXG4gICAgICAnQ3JlYXRlQmF0Y2gnLFxuICAgICAgJ0NyZWF0ZUludGFrZUZvcm0nLFxuICAgICAgJ0NyZWF0ZVByb2plY3QnLFxuICAgICAgJ0NyZWF0ZVdvcmtmbG93RGVmaW5pdGlvbicsXG4gICAgICAnR2VuZXJhdGVMSURBUlByZXZpZXdUYXNrQ29uZmlnSm9iJyxcbiAgICAgICdSdW5GaWx0ZXJPclNhbXBsZURhdGFzZXRKb2InLFxuICAgICAgJ1J1bkdlbmVyYXRlTWFuaWZlc3RCeUNyYXdsaW5nSm9iJyxcbiAgICAgICdSdW5HZW5lcmF0ZU1hbmlmZXN0TWV0cmljc0pvYicsXG4gICAgICAnVXBkYXRlQmF0Y2gnXG4gICAgXSxcbiAgICBSZWFkOiBbXG4gICAgICAnRGVzY3JpYmVDb25zb2xlSm9iJyxcbiAgICAgICdHZXRCYXRjaCcsXG4gICAgICAnR2V0SW50YWtlRm9ybVN0YXR1cycsXG4gICAgICAnTGlzdEJhdGNoZXMnLFxuICAgICAgJ0xpc3REYXRhc2V0T2JqZWN0cycsXG4gICAgICAnTGlzdFByb2plY3RzJ1xuICAgIF1cbiAgfTtcbn1cbiJdfQ==