cdk-iam-floyd
Version:
AWS IAM policy statement generator with fluent interface for AWS CDK
152 lines • 13.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Polly = void 0;
const shared_1 = require("../../shared");
/**
* Statement provider for service [polly](https://docs.aws.amazon.com/service-authorization/latest/reference/list_polly.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
class Polly extends shared_1.PolicyStatement {
/**
* Grants permission to delete the specified pronunciation lexicon stored in an AWS Region
*
* Access Level: Write
*
* https://docs.aws.amazon.com/polly/latest/dg/API_DeleteLexicon.html
*/
toDeleteLexicon() {
return this.to('DeleteLexicon');
}
/**
* Grants permission to describe the list of voices that are available for use when requesting speech synthesis
*
* Access Level: List
*
* https://docs.aws.amazon.com/polly/latest/dg/API_DescribeVoices.html
*/
toDescribeVoices() {
return this.to('DescribeVoices');
}
/**
* Grants permission to retrieve the content of the specified pronunciation lexicon stored in an AWS Region
*
* Access Level: Read
*
* https://docs.aws.amazon.com/polly/latest/dg/API_GetLexicon.html
*/
toGetLexicon() {
return this.to('GetLexicon');
}
/**
* Grants permission to get information about specific speech synthesis task
*
* Access Level: Read
*
* https://docs.aws.amazon.com/polly/latest/dg/API_GetSpeechSynthesisTask.html
*/
toGetSpeechSynthesisTask() {
return this.to('GetSpeechSynthesisTask');
}
/**
* Grants permission to list the pronunciation lexicons stored in an AWS Region
*
* Access Level: List
*
* https://docs.aws.amazon.com/polly/latest/dg/API_ListLexicons.html
*/
toListLexicons() {
return this.to('ListLexicons');
}
/**
* Grants permission to list requested speech synthesis tasks
*
* Access Level: List
*
* https://docs.aws.amazon.com/polly/latest/dg/API_ListSpeechSynthesisTasks.html
*/
toListSpeechSynthesisTasks() {
return this.to('ListSpeechSynthesisTasks');
}
/**
* Grants permission to store a pronunciation lexicon in an AWS Region
*
* Access Level: Write
*
* https://docs.aws.amazon.com/polly/latest/dg/API_PutLexicon.html
*/
toPutLexicon() {
return this.to('PutLexicon');
}
/**
* Grants permission to perform synthesis with bidirectional streaming
*
* Access Level: Read
*
* https://docs.aws.amazon.com/polly/latest/dg/API_StartSpeechSynthesisStream.html
*/
toStartSpeechSynthesisStream() {
return this.to('StartSpeechSynthesisStream');
}
/**
* Grants permission to synthesize long inputs to the provided S3 location
*
* Access Level: Write
*
* https://docs.aws.amazon.com/polly/latest/dg/API_StartSpeechSynthesisTask.html
*/
toStartSpeechSynthesisTask() {
return this.to('StartSpeechSynthesisTask');
}
/**
* Grants permission to synthesize speech
*
* Access Level: Read
*
* https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html
*/
toSynthesizeSpeech() {
return this.to('SynthesizeSpeech');
}
/**
* Adds a resource of type lexicon to the statement
*
* https://docs.aws.amazon.com/polly/latest/dg/managing-lexicons.html
*
* @param lexiconName - Identifier for the lexiconName.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*/
onLexicon(lexiconName, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:polly:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:lexicon/${lexiconName}`);
}
/**
* Statement provider for service [polly](https://docs.aws.amazon.com/service-authorization/latest/reference/list_polly.html).
*
*/
constructor(props) {
super(props);
this.servicePrefix = 'polly';
this.accessLevelList = {
Write: [
'DeleteLexicon',
'PutLexicon',
'StartSpeechSynthesisTask'
],
List: [
'DescribeVoices',
'ListLexicons',
'ListSpeechSynthesisTasks'
],
Read: [
'GetLexicon',
'GetSpeechSynthesisTask',
'StartSpeechSynthesisStream',
'SynthesizeSpeech'
]
};
}
}
exports.Polly = Polly;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9sbHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwb2xseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBK0M7QUFHL0M7Ozs7R0FJRztBQUNILE1BQWEsS0FBTSxTQUFRLHdCQUFlO0lBR3hDOzs7Ozs7T0FNRztJQUNJLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSx3QkFBd0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSwwQkFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSw0QkFBNEI7UUFDakMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDBCQUEwQjtRQUMvQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksa0JBQWtCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFxQkQ7Ozs7Ozs7OztPQVNHO0lBQ0ksU0FBUyxDQUFDLFdBQW1CLEVBQUUsT0FBZ0IsRUFBRSxNQUFlLEVBQUUsU0FBa0I7UUFDekYsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQVEsU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBaUIsVUFBVyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWMsSUFBSyxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWUsWUFBYSxXQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3JLLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZLEtBQWdDO1FBQzFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQXRKUixrQkFBYSxHQUFHLE9BQU8sQ0FBQztRQWdIckIsb0JBQWUsR0FBb0I7WUFDM0MsS0FBSyxFQUFFO2dCQUNMLGVBQWU7Z0JBQ2YsWUFBWTtnQkFDWiwwQkFBMEI7YUFDM0I7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osZ0JBQWdCO2dCQUNoQixjQUFjO2dCQUNkLDBCQUEwQjthQUMzQjtZQUNELElBQUksRUFBRTtnQkFDSixZQUFZO2dCQUNaLHdCQUF3QjtnQkFDeEIsNEJBQTRCO2dCQUM1QixrQkFBa0I7YUFDbkI7U0FDRixDQUFDO0lBc0JGLENBQUM7Q0FDRjtBQXpKRCxzQkF5SkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2Nlc3NMZXZlbExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWNjZXNzLWxldmVsJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBhd3NfaWFtIGFzIGlhbSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG4vKipcbiAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbcG9sbHldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X3BvbGx5Lmh0bWwpLlxuICpcbiAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICovXG5leHBvcnQgY2xhc3MgUG9sbHkgZXh0ZW5kcyBQb2xpY3lTdGF0ZW1lbnQge1xuICBwdWJsaWMgc2VydmljZVByZWZpeCA9ICdwb2xseSc7XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSB0aGUgc3BlY2lmaWVkIHByb251bmNpYXRpb24gbGV4aWNvbiBzdG9yZWQgaW4gYW4gQVdTIFJlZ2lvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wb2xseS9sYXRlc3QvZGcvQVBJX0RlbGV0ZUxleGljb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlTGV4aWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlTGV4aWNvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlc2NyaWJlIHRoZSBsaXN0IG9mIHZvaWNlcyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHVzZSB3aGVuIHJlcXVlc3Rpbmcgc3BlZWNoIHN5bnRoZXNpc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3BvbGx5L2xhdGVzdC9kZy9BUElfRGVzY3JpYmVWb2ljZXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVWb2ljZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlVm9pY2VzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgdGhlIGNvbnRlbnQgb2YgdGhlIHNwZWNpZmllZCBwcm9udW5jaWF0aW9uIGxleGljb24gc3RvcmVkIGluIGFuIEFXUyBSZWdpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wb2xseS9sYXRlc3QvZGcvQVBJX0dldExleGljb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0TGV4aWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0TGV4aWNvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dCBzcGVjaWZpYyBzcGVlY2ggc3ludGhlc2lzIHRhc2tcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wb2xseS9sYXRlc3QvZGcvQVBJX0dldFNwZWVjaFN5bnRoZXNpc1Rhc2suaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0U3BlZWNoU3ludGhlc2lzVGFzaygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0U3BlZWNoU3ludGhlc2lzVGFzaycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgdGhlIHByb251bmNpYXRpb24gbGV4aWNvbnMgc3RvcmVkIGluIGFuIEFXUyBSZWdpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wb2xseS9sYXRlc3QvZGcvQVBJX0xpc3RMZXhpY29ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0TGV4aWNvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RMZXhpY29ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgcmVxdWVzdGVkIHNwZWVjaCBzeW50aGVzaXMgdGFza3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wb2xseS9sYXRlc3QvZGcvQVBJX0xpc3RTcGVlY2hTeW50aGVzaXNUYXNrcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0U3BlZWNoU3ludGhlc2lzVGFza3MoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RTcGVlY2hTeW50aGVzaXNUYXNrcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN0b3JlIGEgcHJvbnVuY2lhdGlvbiBsZXhpY29uIGluIGFuIEFXUyBSZWdpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vcG9sbHkvbGF0ZXN0L2RnL0FQSV9QdXRMZXhpY29uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1B1dExleGljb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1B1dExleGljb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBwZXJmb3JtIHN5bnRoZXNpcyB3aXRoIGJpZGlyZWN0aW9uYWwgc3RyZWFtaW5nXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vcG9sbHkvbGF0ZXN0L2RnL0FQSV9TdGFydFNwZWVjaFN5bnRoZXNpc1N0cmVhbS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TdGFydFNwZWVjaFN5bnRoZXNpc1N0cmVhbSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RhcnRTcGVlY2hTeW50aGVzaXNTdHJlYW0nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzeW50aGVzaXplIGxvbmcgaW5wdXRzIHRvIHRoZSBwcm92aWRlZCBTMyBsb2NhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wb2xseS9sYXRlc3QvZGcvQVBJX1N0YXJ0U3BlZWNoU3ludGhlc2lzVGFzay5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TdGFydFNwZWVjaFN5bnRoZXNpc1Rhc2soKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N0YXJ0U3BlZWNoU3ludGhlc2lzVGFzaycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN5bnRoZXNpemUgc3BlZWNoXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vcG9sbHkvbGF0ZXN0L2RnL0FQSV9TeW50aGVzaXplU3BlZWNoLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N5bnRoZXNpemVTcGVlY2goKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N5bnRoZXNpemVTcGVlY2gnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY2Nlc3NMZXZlbExpc3Q6IEFjY2Vzc0xldmVsTGlzdCA9IHtcbiAgICBXcml0ZTogW1xuICAgICAgJ0RlbGV0ZUxleGljb24nLFxuICAgICAgJ1B1dExleGljb24nLFxuICAgICAgJ1N0YXJ0U3BlZWNoU3ludGhlc2lzVGFzaydcbiAgICBdLFxuICAgIExpc3Q6IFtcbiAgICAgICdEZXNjcmliZVZvaWNlcycsXG4gICAgICAnTGlzdExleGljb25zJyxcbiAgICAgICdMaXN0U3BlZWNoU3ludGhlc2lzVGFza3MnXG4gICAgXSxcbiAgICBSZWFkOiBbXG4gICAgICAnR2V0TGV4aWNvbicsXG4gICAgICAnR2V0U3BlZWNoU3ludGhlc2lzVGFzaycsXG4gICAgICAnU3RhcnRTcGVlY2hTeW50aGVzaXNTdHJlYW0nLFxuICAgICAgJ1N5bnRoZXNpemVTcGVlY2gnXG4gICAgXVxuICB9O1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBsZXhpY29uIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3BvbGx5L2xhdGVzdC9kZy9tYW5hZ2luZy1sZXhpY29ucy5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBsZXhpY29uTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBsZXhpY29uTmFtZS5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqL1xuICBwdWJsaWMgb25MZXhpY29uKGxleGljb25OYW1lOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06cG9sbHk6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmxleGljb24vJHsgbGV4aWNvbk5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbcG9sbHldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X3BvbGx5Lmh0bWwpLlxuICAgKlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcHM/OiBpYW0uUG9saWN5U3RhdGVtZW50UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cbn1cbiJdfQ==