UNPKG

cdk-iam-floyd

Version:

AWS IAM policy statement generator with fluent interface for AWS CDK

535 lines 37.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FinopsAgent = void 0; const shared_1 = require("../../shared"); /** * Statement provider for service [finops-agent](https://docs.aws.amazon.com/service-authorization/latest/reference/list_finops-agent.html). * * @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement */ class FinopsAgent extends shared_1.PolicyStatement { /** * Grants permission to accept a pending approval request from the agent * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toAcceptAgentRequest() { return this.to('AcceptAgentRequest'); } /** * Grants permission to cancel a task * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toCancelTask() { return this.to('CancelTask'); } /** * Grants permission to cancel an in-progress conversation turn * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toCancelTurn() { return this.to('CancelTurn'); } /** * Grants permission to create a new FinOps Agent workspace * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toCreateAgentSpace() { return this.to('CreateAgentSpace'); } /** * Grants permission to create a reusable automation * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toCreateAutomation() { return this.to('CreateAutomation'); } /** * Grants permission to create a connection * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toCreateConnection() { return this.to('CreateConnection'); } /** * Grants permission to create a new conversation with the FinOps Agent * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toCreateConversation() { return this.to('CreateConversation'); } /** * Grants permission to create a document * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toCreateDocument() { return this.to('CreateDocument'); } /** * Grants permission to create a third-party integration * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toCreateIntegration() { return this.to('CreateIntegration'); } /** * Grants permission to create a one-time login session for the FinOps Agent web application * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toCreateOneTimeLoginSession() { return this.to('CreateOneTimeLoginSession'); } /** * Grants permission to create a task * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toCreateTask() { return this.to('CreateTask'); } /** * Grants permission to create a new turn in a conversation * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toCreateTurn() { return this.to('CreateTurn'); } /** * Grants permission to delete a FinOps Agent workspace * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toDeleteAgentSpace() { return this.to('DeleteAgentSpace'); } /** * Grants permission to delete an artifact and its content * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toDeleteArtifact() { return this.to('DeleteArtifact'); } /** * Grants permission to delete an automation * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toDeleteAutomation() { return this.to('DeleteAutomation'); } /** * Grants permission to delete a connection * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toDeleteConnection() { return this.to('DeleteConnection'); } /** * Grants permission to delete a document * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toDeleteDocument() { return this.to('DeleteDocument'); } /** * Grants permission to delete a third-party integration * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toDeleteIntegration() { return this.to('DeleteIntegration'); } /** * Grants permission to view details of a pending approval request from the agent * * Access Level: Read * * https://docs.aws.amazon.com/finops-agent/ */ toGetAgentRequest() { return this.to('GetAgentRequest'); } /** * Grants permission to view details of a FinOps Agent workspace * * Access Level: Read * * https://docs.aws.amazon.com/finops-agent/ */ toGetAgentSpace() { return this.to('GetAgentSpace'); } /** * Grants permission to download artifact content * * Access Level: Read * * https://docs.aws.amazon.com/finops-agent/ */ toGetArtifactContent() { return this.to('GetArtifactContent'); } /** * Grants permission to view artifact metadata * * Access Level: Read * * https://docs.aws.amazon.com/finops-agent/ */ toGetArtifactMetadata() { return this.to('GetArtifactMetadata'); } /** * Grants permission to view details of an automation * * Access Level: Read * * https://docs.aws.amazon.com/finops-agent/ */ toGetAutomation() { return this.to('GetAutomation'); } /** * Grants permission to view details of a connection * * Access Level: Read * * https://docs.aws.amazon.com/finops-agent/ */ toGetConnection() { return this.to('GetConnection'); } /** * Grants permission to download document content * * Access Level: Read * * https://docs.aws.amazon.com/finops-agent/ */ toGetDocumentContent() { return this.to('GetDocumentContent'); } /** * Grants permission to view document metadata * * Access Level: Read * * https://docs.aws.amazon.com/finops-agent/ */ toGetDocumentMetadata() { return this.to('GetDocumentMetadata'); } /** * Grants permission to view details of a third-party integration * * Access Level: Read * * https://docs.aws.amazon.com/finops-agent/ */ toGetIntegration() { return this.to('GetIntegration'); } /** * Grants permission to view details of a task * * Access Level: Read * * https://docs.aws.amazon.com/finops-agent/ */ toGetTask() { return this.to('GetTask'); } /** * Grants permission to view details of a conversation turn * * Access Level: Read * * https://docs.aws.amazon.com/finops-agent/ */ toGetTurn() { return this.to('GetTurn'); } /** * Grants permission to list all FinOps Agent workspaces in the account * * Access Level: List * * https://docs.aws.amazon.com/finops-agent/ */ toListAgentSpaces() { return this.to('ListAgentSpaces'); } /** * Grants permission to list artifacts * * Access Level: List * * https://docs.aws.amazon.com/finops-agent/ */ toListArtifacts() { return this.to('ListArtifacts'); } /** * Grants permission to list automations * * Access Level: List * * https://docs.aws.amazon.com/finops-agent/ */ toListAutomations() { return this.to('ListAutomations'); } /** * Grants permission to list connections * * Access Level: List * * https://docs.aws.amazon.com/finops-agent/ */ toListConnections() { return this.to('ListConnections'); } /** * Grants permission to list conversations * * Access Level: List * * https://docs.aws.amazon.com/finops-agent/ */ toListConversations() { return this.to('ListConversations'); } /** * Grants permission to list documents * * Access Level: List * * https://docs.aws.amazon.com/finops-agent/ */ toListDocuments() { return this.to('ListDocuments'); } /** * Grants permission to list third-party integrations * * Access Level: List * * https://docs.aws.amazon.com/finops-agent/ */ toListIntegrations() { return this.to('ListIntegrations'); } /** * Grants permission to list records for real-time agent activity display * * Access Level: List * * https://docs.aws.amazon.com/finops-agent/ */ toListRecords() { return this.to('ListRecords'); } /** * Grants permission to list tasks * * Access Level: List * * https://docs.aws.amazon.com/finops-agent/ */ toListTasks() { return this.to('ListTasks'); } /** * Grants permission to list turns in a conversation * * Access Level: List * * https://docs.aws.amazon.com/finops-agent/ */ toListTurns() { return this.to('ListTurns'); } /** * Grants permission to reject a pending approval request from the agent * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toRejectAgentRequest() { return this.to('RejectAgentRequest'); } /** * Grants permission to restore an archived document * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toRestoreDocument() { return this.to('RestoreDocument'); } /** * Grants permission to submit feedback on agent responses * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toSendFeedback() { return this.to('SendFeedback'); } /** * Grants permission to update a FinOps Agent workspace configuration * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toUpdateAgentSpace() { return this.to('UpdateAgentSpace'); } /** * Grants permission to update an automation * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toUpdateAutomation() { return this.to('UpdateAutomation'); } /** * Grants permission to update a connection * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toUpdateConnection() { return this.to('UpdateConnection'); } /** * Grants permission to update a document's content and metadata * * Access Level: Write * * https://docs.aws.amazon.com/finops-agent/ */ toUpdateDocument() { return this.to('UpdateDocument'); } /** * Statement provider for service [finops-agent](https://docs.aws.amazon.com/service-authorization/latest/reference/list_finops-agent.html). * */ constructor(props) { super(props); this.servicePrefix = 'finops-agent'; this.accessLevelList = { Write: [ 'AcceptAgentRequest', 'CancelTask', 'CancelTurn', 'CreateAgentSpace', 'CreateAutomation', 'CreateConnection', 'CreateConversation', 'CreateDocument', 'CreateIntegration', 'CreateOneTimeLoginSession', 'CreateTask', 'CreateTurn', 'DeleteAgentSpace', 'DeleteArtifact', 'DeleteAutomation', 'DeleteConnection', 'DeleteDocument', 'DeleteIntegration', 'RejectAgentRequest', 'RestoreDocument', 'SendFeedback', 'UpdateAgentSpace', 'UpdateAutomation', 'UpdateConnection', 'UpdateDocument' ], Read: [ 'GetAgentRequest', 'GetAgentSpace', 'GetArtifactContent', 'GetArtifactMetadata', 'GetAutomation', 'GetConnection', 'GetDocumentContent', 'GetDocumentMetadata', 'GetIntegration', 'GetTask', 'GetTurn' ], List: [ 'ListAgentSpaces', 'ListArtifacts', 'ListAutomations', 'ListConnections', 'ListConversations', 'ListDocuments', 'ListIntegrations', 'ListRecords', 'ListTasks', 'ListTurns' ] }; } } exports.FinopsAgent = FinopsAgent; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlub3BzLWFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZmlub3BzLWFnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUErQztBQUcvQzs7OztHQUlHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsd0JBQWU7SUFHOUM7Ozs7OztPQU1HO0lBQ0ksb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGtCQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksa0JBQWtCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLG9CQUFvQjtRQUN6QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFD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Z0JBQ2xCLGdCQUFnQjthQUNqQjtZQUNELElBQUksRUFBRTtnQkFDSixpQkFBaUI7Z0JBQ2pCLGVBQWU7Z0JBQ2Ysb0JBQW9CO2dCQUNwQixxQkFBcUI7Z0JBQ3JCLGVBQWU7Z0JBQ2YsZUFBZTtnQkFDZixvQkFBb0I7Z0JBQ3BCLHFCQUFxQjtnQkFDckIsZ0JBQWdCO2dCQUNoQixTQUFTO2dCQUNULFNBQVM7YUFDVjtZQUNELElBQUksRUFBRTtnQkFDSixpQkFBaUI7Z0JBQ2pCLGVBQWU7Z0JBQ2YsaUJBQWlCO2dCQUNqQixpQkFBaUI7Z0JBQ2pCLG1CQUFtQjtnQkFDbkIsZUFBZTtnQkFDZixrQkFBa0I7Z0JBQ2xCLGFBQWE7Z0JBQ2IsV0FBVztnQkFDWCxXQUFXO2FBQ1o7U0FDRixDQUFDO0lBUUYsQ0FBQztDQUNGO0FBM2pCRCxrQ0EyakJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjZXNzTGV2ZWxMaXN0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2FjY2Vzcy1sZXZlbCc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgYXdzX2lhbSBhcyBpYW0gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuLyoqXG4gKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW2Zpbm9wcy1hZ2VudF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfZmlub3BzLWFnZW50Lmh0bWwpLlxuICpcbiAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICovXG5leHBvcnQgY2xhc3MgRmlub3BzQWdlbnQgZXh0ZW5kcyBQb2xpY3lTdGF0ZW1lbnQge1xuICBwdWJsaWMgc2VydmljZVByZWZpeCA9ICdmaW5vcHMtYWdlbnQnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBhY2NlcHQgYSBwZW5kaW5nIGFwcHJvdmFsIHJlcXVlc3QgZnJvbSB0aGUgYWdlbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZmlub3BzLWFnZW50L1xuICAgKi9cbiAgcHVibGljIHRvQWNjZXB0QWdlbnRSZXF1ZXN0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdBY2NlcHRBZ2VudFJlcXVlc3QnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjYW5jZWwgYSB0YXNrXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b0NhbmNlbFRhc2soKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NhbmNlbFRhc2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjYW5jZWwgYW4gaW4tcHJvZ3Jlc3MgY29udmVyc2F0aW9uIHR1cm5cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZmlub3BzLWFnZW50L1xuICAgKi9cbiAgcHVibGljIHRvQ2FuY2VsVHVybigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ2FuY2VsVHVybicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIG5ldyBGaW5PcHMgQWdlbnQgd29ya3NwYWNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUFnZW50U3BhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUFnZW50U3BhY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSByZXVzYWJsZSBhdXRvbWF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUF1dG9tYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUF1dG9tYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBjb25uZWN0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUNvbm5lY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUNvbm5lY3Rpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgY29udmVyc2F0aW9uIHdpdGggdGhlIEZpbk9wcyBBZ2VudFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVDb252ZXJzYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUNvbnZlcnNhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIGRvY3VtZW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZURvY3VtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVEb2N1bWVudCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIHRoaXJkLXBhcnR5IGludGVncmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUludGVncmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVJbnRlZ3JhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIG9uZS10aW1lIGxvZ2luIHNlc3Npb24gZm9yIHRoZSBGaW5PcHMgQWdlbnQgd2ViIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZU9uZVRpbWVMb2dpblNlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZU9uZVRpbWVMb2dpblNlc3Npb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSB0YXNrXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZVRhc2soKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVRhc2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgdHVybiBpbiBhIGNvbnZlcnNhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVUdXJuKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVUdXJuJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgRmluT3BzIEFnZW50IHdvcmtzcGFjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVBZ2VudFNwYWNlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVBZ2VudFNwYWNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIGFydGlmYWN0IGFuZCBpdHMgY29udGVudFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVBcnRpZmFjdCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlQXJ0aWZhY3QnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gYXV0b21hdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVBdXRvbWF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVBdXRvbWF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgY29ubmVjdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVDb25uZWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVDb25uZWN0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgZG9jdW1lbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZmlub3BzLWFnZW50L1xuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlRG9jdW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZURvY3VtZW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgdGhpcmQtcGFydHkgaW50ZWdyYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZmlub3BzLWFnZW50L1xuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlSW50ZWdyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUludGVncmF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdmlldyBkZXRhaWxzIG9mIGEgcGVuZGluZyBhcHByb3ZhbCByZXF1ZXN0IGZyb20gdGhlIGFnZW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZmlub3BzLWFnZW50L1xuICAgKi9cbiAgcHVibGljIHRvR2V0QWdlbnRSZXF1ZXN0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRBZ2VudFJlcXVlc3QnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB2aWV3IGRldGFpbHMgb2YgYSBGaW5PcHMgQWdlbnQgd29ya3NwYWNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZmlub3BzLWFnZW50L1xuICAgKi9cbiAgcHVibGljIHRvR2V0QWdlbnRTcGFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0QWdlbnRTcGFjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRvd25sb2FkIGFydGlmYWN0IGNvbnRlbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9HZXRBcnRpZmFjdENvbnRlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldEFydGlmYWN0Q29udGVudCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHZpZXcgYXJ0aWZhY3QgbWV0YWRhdGFcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9HZXRBcnRpZmFjdE1ldGFkYXRhKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRBcnRpZmFjdE1ldGFkYXRhJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdmlldyBkZXRhaWxzIG9mIGFuIGF1dG9tYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9HZXRBdXRvbWF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRBdXRvbWF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdmlldyBkZXRhaWxzIG9mIGEgY29ubmVjdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b0dldENvbm5lY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldENvbm5lY3Rpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkb3dubG9hZCBkb2N1bWVudCBjb250ZW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZmlub3BzLWFnZW50L1xuICAgKi9cbiAgcHVibGljIHRvR2V0RG9jdW1lbnRDb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXREb2N1bWVudENvbnRlbnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB2aWV3IGRvY3VtZW50IG1ldGFkYXRhXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZmlub3BzLWFnZW50L1xuICAgKi9cbiAgcHVibGljIHRvR2V0RG9jdW1lbnRNZXRhZGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0RG9jdW1lbnRNZXRhZGF0YScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHZpZXcgZGV0YWlscyBvZiBhIHRoaXJkLXBhcnR5IGludGVncmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZmlub3BzLWFnZW50L1xuICAgKi9cbiAgcHVibGljIHRvR2V0SW50ZWdyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldEludGVncmF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdmlldyBkZXRhaWxzIG9mIGEgdGFza1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b0dldFRhc2soKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldFRhc2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB2aWV3IGRldGFpbHMgb2YgYSBjb252ZXJzYXRpb24gdHVyblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b0dldFR1cm4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldFR1cm4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCBGaW5PcHMgQWdlbnQgd29ya3NwYWNlcyBpbiB0aGUgYWNjb3VudFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b0xpc3RBZ2VudFNwYWNlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEFnZW50U3BhY2VzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBhcnRpZmFjdHNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0QXJ0aWZhY3RzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0QXJ0aWZhY3RzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBhdXRvbWF0aW9uc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b0xpc3RBdXRvbWF0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEF1dG9tYXRpb25zJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBjb25uZWN0aW9uc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b0xpc3RDb25uZWN0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdENvbm5lY3Rpb25zJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBjb252ZXJzYXRpb25zXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZmlub3BzLWFnZW50L1xuICAgKi9cbiAgcHVibGljIHRvTGlzdENvbnZlcnNhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RDb252ZXJzYXRpb25zJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBkb2N1bWVudHNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0RG9jdW1lbnRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0RG9jdW1lbnRzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCB0aGlyZC1wYXJ0eSBpbnRlZ3JhdGlvbnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0SW50ZWdyYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0SW50ZWdyYXRpb25zJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCByZWNvcmRzIGZvciByZWFsLXRpbWUgYWdlbnQgYWN0aXZpdHkgZGlzcGxheVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b0xpc3RSZWNvcmRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0UmVjb3JkcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgdGFza3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0VGFza3MoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RUYXNrcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgdHVybnMgaW4gYSBjb252ZXJzYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0VHVybnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RUdXJucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJlamVjdCBhIHBlbmRpbmcgYXBwcm92YWwgcmVxdWVzdCBmcm9tIHRoZSBhZ2VudFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9SZWplY3RBZ2VudFJlcXVlc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1JlamVjdEFnZW50UmVxdWVzdCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJlc3RvcmUgYW4gYXJjaGl2ZWQgZG9jdW1lbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZmlub3BzLWFnZW50L1xuICAgKi9cbiAgcHVibGljIHRvUmVzdG9yZURvY3VtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdSZXN0b3JlRG9jdW1lbnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdWJtaXQgZmVlZGJhY2sgb24gYWdlbnQgcmVzcG9uc2VzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b1NlbmRGZWVkYmFjaygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU2VuZEZlZWRiYWNrJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGEgRmluT3BzIEFnZW50IHdvcmtzcGFjZSBjb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Zpbm9wcy1hZ2VudC9cbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZUFnZW50U3BhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZUFnZW50U3BhY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgYW4gYXV0b21hdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVBdXRvbWF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVBdXRvbWF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGEgY29ubmVjdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVDb25uZWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVDb25uZWN0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGEgZG9jdW1lbnQncyBjb250ZW50IGFuZCBtZXRhZGF0YVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9maW5vcHMtYWdlbnQvXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVEb2N1bWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlRG9jdW1lbnQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY2Nlc3NMZXZlbExpc3Q6IEFjY2Vzc0xldmVsTGlzdCA9IHtcbiAgICBXcml0ZTogW1xuICAgICAgJ0FjY2VwdEFnZW50UmVxdWVzdCcsXG4gICAgICAnQ2FuY2VsVGFzaycsXG4gICAgICAnQ2FuY2VsVHVybicsXG4gICAgICAnQ3JlYXRlQWdlbnRTcGFjZScsXG4gICAgICAnQ3JlYXRlQXV0b21hdGlvbicsXG4gICAgICAnQ3JlYXRlQ29ubmVjdGlvbicsXG4gICAgICAnQ3JlYXRlQ29udmVyc2F0aW9uJyxcbiAgICAgICdDcmVhdGVEb2N1bWVudCcsXG4gICAgICAnQ3JlYXRlSW50ZWdyYXRpb24nLFxuICAgICAgJ0NyZWF0ZU9uZVRpbWVMb2dpblNlc3Npb24nLFxuICAgICAgJ0NyZWF0ZVRhc2snLFxuICAgICAgJ0NyZWF0ZVR1cm4nLFxuICAgICAgJ0RlbGV0ZUFnZW50U3BhY2UnLFxuICAgICAgJ0RlbGV0ZUFydGlmYWN0JyxcbiAgICAgICdEZWxldGVBdXRvbWF0aW9uJyxcbiAgICAgICdEZWxldGVDb25uZWN0aW9uJyxcbiAgICAgICdEZWxldGVEb2N1bWVudCcsXG4gICAgICAnRGVsZXRlSW50ZWdyYXRpb24nLFxuICAgICAgJ1JlamVjdEFnZW50UmVxdWVzdCcsXG4gICAgICAnUmVzdG9yZURvY3VtZW50JyxcbiAgICAgICdTZW5kRmVlZGJhY2snLFxuICAgICAgJ1VwZGF0ZUFnZW50U3BhY2UnLFxuICAgICAgJ1VwZGF0ZUF1dG9tYXRpb24nLFxuICAgICAgJ1VwZGF0ZUNvbm5lY3Rpb24nLFxuICAgICAgJ1VwZGF0ZURvY3VtZW50J1xuICAgIF0sXG4gICAgUmVhZDogW1xuICAgICAgJ0dldEFnZW50UmVxdWVzdCcsXG4gICAgICAnR2V0QWdlbnRTcGFjZScsXG4gICAgICAnR2V0QXJ0aWZhY3RDb250ZW50JyxcbiAgICAgICdHZXRBcnRpZmFjdE1ldGFkYXRhJyxcbiAgICAgICdHZXRBdXRvbWF0aW9uJyxcbiAgICAgICdHZXRDb25uZWN0aW9uJyxcbiAgICAgICdHZXREb2N1bWVudENvbnRlbnQnLFxuICAgICAgJ0dldERvY3VtZW50TWV0YWRhdGEnLFxuICAgICAgJ0dldEludGVncmF0aW9uJyxcbiAgICAgICdHZXRUYXNrJyxcbiAgICAgICdHZXRUdXJuJ1xuICAgIF0sXG4gICAgTGlzdDogW1xuICAgICAgJ0xpc3RBZ2VudFNwYWNlcycsXG4gICAgICAnTGlzdEFydGlmYWN0cycsXG4gICAgICAnTGlzdEF1dG9tYXRpb25zJyxcbiAgICAgICdMaXN0Q29ubmVjdGlvbnMnLFxuICAgICAgJ0xpc3RDb252ZXJzYXRpb25zJyxcbiAgICAgICdMaXN0RG9jdW1lbnRzJyxcbiAgICAgICdMaXN0SW50ZWdyYXRpb25zJyxcbiAgICAgICdMaXN0UmVjb3JkcycsXG4gICAgICAnTGlzdFRhc2tzJyxcbiAgICAgICdMaXN0VHVybnMnXG4gICAgXVxuICB9O1xuXG4gIC8qKlxuICAgKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW2Zpbm9wcy1hZ2VudF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfZmlub3BzLWFnZW50Lmh0bWwpLlxuICAgKlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcHM/OiBpYW0uUG9saWN5U3RhdGVtZW50UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cbn1cbiJdfQ==